mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00
47 lines
1.2 KiB
Dart
47 lines
1.2 KiB
Dart
import 'package:spotube/models/Logger.dart';
|
|
import 'package:spotube/provider/Playback.dart';
|
|
|
|
final logger = getLogger("PlaybackHook");
|
|
|
|
Future<void> Function() useNextTrack(Playback playback) {
|
|
return () async {
|
|
try {
|
|
await playback.player.pause();
|
|
await playback.player.seek(Duration.zero);
|
|
playback.seekForward();
|
|
} catch (e, stack) {
|
|
logger.e("useNextTrack", e, stack);
|
|
}
|
|
};
|
|
}
|
|
|
|
Future<void> Function() usePreviousTrack(Playback playback) {
|
|
return () async {
|
|
try {
|
|
await playback.player.pause();
|
|
await playback.player.seek(Duration.zero);
|
|
playback.seekBackward();
|
|
} catch (e, stack) {
|
|
logger.e("onPrevious", e, stack);
|
|
}
|
|
};
|
|
}
|
|
|
|
Future<void> Function([dynamic]) useTogglePlayPause(Playback playback) {
|
|
return ([key]) async {
|
|
try {
|
|
if (playback.track == null) {
|
|
return;
|
|
} else if (playback.track != null &&
|
|
playback.currentDuration == Duration.zero &&
|
|
await playback.player.getCurrentPosition() == Duration.zero) {
|
|
await playback.play(playback.track!);
|
|
} else {
|
|
await playback.togglePlayPause();
|
|
}
|
|
} catch (e, stack) {
|
|
logger.e("useTogglePlayPause", e, stack);
|
|
}
|
|
};
|
|
}
|