File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -148,8 +148,8 @@ pub enum PlayerEvent {
148148 } ,
149149 // Fired when the player is stopped (e.g. by issuing a "stop" command to the player).
150150 Stopped {
151- play_request_id : u64 ,
152- track_id : SpotifyUri ,
151+ play_request_id : Option < u64 > ,
152+ track_id : Option < SpotifyUri > ,
153153 } ,
154154 // The player is delayed by loading a track.
155155 Loading {
@@ -273,7 +273,8 @@ impl PlayerEvent {
273273 play_request_id, ..
274274 }
275275 | Stopped {
276- play_request_id, ..
276+ play_request_id : Some ( play_request_id) ,
277+ ..
277278 }
278279 | PositionCorrection {
279280 play_request_id, ..
@@ -1664,8 +1665,8 @@ impl PlayerInternal {
16641665
16651666 self . ensure_sink_stopped ( false ) ;
16661667 self . send_event ( PlayerEvent :: Stopped {
1667- track_id,
1668- play_request_id,
1668+ track_id : Some ( track_id ) ,
1669+ play_request_id : Some ( play_request_id ) ,
16691670 } ) ;
16701671 self . state = PlayerState :: Stopped ;
16711672 }
@@ -2326,7 +2327,12 @@ impl PlayerInternal {
23262327 track_id : track_id. clone ( ) ,
23272328 } ) ;
23282329 }
2329- _ => ( ) ,
2330+ PlayerState :: Invalid | PlayerState :: Stopped => {
2331+ let _ = sender. send ( PlayerEvent :: Stopped {
2332+ play_request_id : None ,
2333+ track_id : None ,
2334+ } ) ;
2335+ }
23302336 }
23312337
23322338 self . event_senders . push ( sender) ;
Original file line number Diff line number Diff line change @@ -1316,9 +1316,9 @@ impl MprisTask {
13161316 let mut iface = iface_ref. get_mut ( ) . await ;
13171317 let meta = & mut iface. metadata ;
13181318
1319- if meta. mpris . track_id . as_ref ( ) != Some ( & track_id) {
1319+ if meta. mpris . track_id . as_ref ( ) != track_id. as_ref ( ) {
13201320 * meta = Metadata :: default ( ) ;
1321- meta. mpris . track_id = Some ( track_id) ;
1321+ meta. mpris . track_id = track_id;
13221322 warn ! ( "Missed TrackChanged event, metadata missing" ) ;
13231323 iface. metadata_changed ( iface_ref. signal_context ( ) ) . await ?;
13241324 }
Original file line number Diff line number Diff line change @@ -144,13 +144,18 @@ impl EventHandler {
144144 }
145145 }
146146 }
147- PlayerEvent :: Stopped { track_id, .. } => match track_id. to_id ( ) {
148- Err ( e) => warn ! ( "PlayerEvent::Stopped: Invalid track id: {e}" ) ,
149- Ok ( id) => {
150- env_vars. insert ( "PLAYER_EVENT" , "stopped" . to_string ( ) ) ;
151- env_vars. insert ( "TRACK_ID" , id) ;
147+ PlayerEvent :: Stopped { track_id, .. } => {
148+ env_vars. insert ( "PLAYER_EVENT" , "stopped" . to_string ( ) ) ;
149+ match track_id. map ( |track_id| track_id. to_id ( ) ) {
150+ Some ( Err ( e) ) => {
151+ warn ! ( "PlayerEvent::Stopped: Invalid track id: {e}" )
152+ }
153+ Some ( Ok ( id) ) => {
154+ env_vars. insert ( "TRACK_ID" , id) ;
155+ }
156+ None => { }
152157 }
153- } ,
158+ }
154159 PlayerEvent :: Playing {
155160 track_id,
156161 position_ms,
You can’t perform that action at this time.
0 commit comments