From b1a8c072d45d22ca05c0c814597c391d2a027737 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sat, 18 Jul 2020 13:10:31 +0200 Subject: [PATCH] desktop: Add dummy playback handler --- desktop/lib/playback.dart | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/desktop/lib/playback.dart b/desktop/lib/playback.dart index 3672d46..86baae5 100644 --- a/desktop/lib/playback.dart +++ b/desktop/lib/playback.dart @@ -1,43 +1,55 @@ import 'package:musicus_common/musicus_common.dart'; class MusicusDesktopPlayback extends MusicusPlayback { + @override + Future setup() async {} + @override Future addTracks(List tracks) async { - // TODO: implement addTracks + final List newPlaylist = List.from(playlist.value); + newPlaylist.addAll(tracks); + playlist.add(newPlaylist); + active.add(true); } @override Future playPause() async { - // TODO: implement playPause + playing.add(!playing.value); } @override Future removeTrack(int index) async { - // TODO: implement removeTrack + final List tracks = List.from(playlist.value); + tracks.removeAt(index); + playlist.add(tracks); } @override Future seekTo(double pos) async { - // TODO: implement seekTo - } - - @override - Future setup() async { - // TODO: implement setup + if (active.value && pos >= 0.0 && pos <= 1.0) { + final durationMs = duration.value.inMilliseconds; + updatePosition((pos * durationMs).floor()); + } } @override Future skipTo(int index) async { - // TODO: implement skipTo + updateCurrentTrack(index); } @override Future skipToNext() async { - // TODO: implement skipToNext + final index = currentIndex.value; + if (playlist.value.length > index + 1) { + updateCurrentTrack(index + 1); + } } @override Future skipToPrevious() async { - // TODO: implement skipToPrevious + final index = currentIndex.value; + if (index > 0) { + updateCurrentTrack(index - 1); + } } }