From 7f06a7b96e61e6235c53a4d0f316410ba40f89bd Mon Sep 17 00:00:00 2001 From: poka Date: Sun, 16 Apr 2023 03:30:01 +0200 Subject: [PATCH] feat: add keyboard media controls --- lib/screens/home.dart | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/lib/screens/home.dart b/lib/screens/home.dart index a417855..7c51c0c 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -30,12 +30,34 @@ class _HomeScreenState extends State { autofocus: true, focusNode: FocusNode(), onKey: (RawKeyEvent event) { - if (event.runtimeType == RawKeyDownEvent && - event.data.logicalKey.keyId == 32) //Enter Key ID from keyboard + log.d(event.data.logicalKey.keyId); + if (event.runtimeType == RawKeyDownEvent) //Enter Key ID from keyboard { - hp.player.state.name == 'playing' - ? hp.player.pause() - : hp.player.resume(); + switch (event.data.logicalKey.keyId) { + case 32: + case 112: + case 4294969861: + hp.player.state.name == 'playing' + ? hp.player.pause() + : hp.player.resume(); + break; + case 110: + case 94489280688: + if (hp.currentTrack != null && + hp.currentTrack!.number < hp.trackList.last.number) { + hp.currentTrack = hp.trackList.firstWhere( + (element) => element.number == hp.currentTrack!.number + 1); + hp.playTrack(hp.currentTrack!); + } + break; + case 98: + case 94489280689: + if (hp.currentTrack != null && hp.currentTrack!.number > 1) { + hp.currentTrack = hp.trackList.firstWhere( + (element) => element.number == hp.currentTrack!.number - 1); + hp.playTrack(hp.currentTrack!); + } + } } }, child: Stack(