File tree Expand file tree Collapse file tree 3 files changed +27
-1
lines changed
Expand file tree Collapse file tree 3 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -130,6 +130,20 @@ impl Client {
130130 match request {
131131 PlayerRequest :: NextTrack => self . spotify . next_track ( device_id) . await ?,
132132 PlayerRequest :: PreviousTrack => self . spotify . previous_track ( device_id) . await ?,
133+ PlayerRequest :: Resume => {
134+ if !playback. is_playing {
135+ self . spotify . resume_playback ( device_id, None ) . await ?;
136+ playback. is_playing = true ;
137+ state. player . write ( ) . buffered_playback = Some ( playback) ;
138+ }
139+ }
140+ PlayerRequest :: Pause => {
141+ if playback. is_playing {
142+ self . spotify . pause_playback ( device_id) . await ?;
143+ playback. is_playing = false ;
144+ state. player . write ( ) . buffered_playback = Some ( playback) ;
145+ }
146+ }
133147 PlayerRequest :: ResumePause => {
134148 if !playback. is_playing {
135149 self . spotify . resume_playback ( device_id, None ) . await ?
Original file line number Diff line number Diff line change @@ -18,6 +18,8 @@ mod window;
1818pub enum PlayerRequest {
1919 NextTrack ,
2020 PreviousTrack ,
21+ Resume ,
22+ Pause ,
2123 ResumePause ,
2224 SeekTrack ( chrono:: Duration ) ,
2325 Repeat ,
Original file line number Diff line number Diff line change @@ -77,7 +77,17 @@ pub fn start_event_watcher(
7777 controls. attach ( move |e| {
7878 tracing:: info!( "Got a media control event: {e:?}" ) ;
7979 match e {
80- MediaControlEvent :: Play | MediaControlEvent :: Pause | MediaControlEvent :: Toggle => {
80+ MediaControlEvent :: Play => {
81+ client_pub
82+ . send ( ClientRequest :: Player ( PlayerRequest :: Resume ) )
83+ . unwrap_or_default ( ) ;
84+ }
85+ MediaControlEvent :: Pause => {
86+ client_pub
87+ . send ( ClientRequest :: Player ( PlayerRequest :: Pause ) )
88+ . unwrap_or_default ( ) ;
89+ }
90+ MediaControlEvent :: Toggle => {
8191 client_pub
8292 . send ( ClientRequest :: Player ( PlayerRequest :: ResumePause ) )
8393 . unwrap_or_default ( ) ;
You can’t perform that action at this time.
0 commit comments