File tree Expand file tree Collapse file tree 3 files changed +25
-14
lines changed Expand file tree Collapse file tree 3 files changed +25
-14
lines changed Original file line number Diff line number Diff line change @@ -142,8 +142,8 @@ pub enum PlayerEvent {
142142 } ,
143143 // Fired when the player is stopped (e.g. by issuing a "stop" command to the player).
144144 Stopped {
145- play_request_id : u64 ,
146- track_id : SpotifyUri ,
145+ play_request_id : Option < u64 > ,
146+ track_id : Option < SpotifyUri > ,
147147 } ,
148148 // The player is delayed by loading a track.
149149 Loading {
@@ -267,7 +267,8 @@ impl PlayerEvent {
267267 play_request_id, ..
268268 }
269269 | Stopped {
270- play_request_id, ..
270+ play_request_id : Some ( play_request_id) ,
271+ ..
271272 }
272273 | PositionCorrection {
273274 play_request_id, ..
@@ -1541,8 +1542,8 @@ impl PlayerInternal {
15411542
15421543 self . ensure_sink_stopped ( false ) ;
15431544 self . send_event ( PlayerEvent :: Stopped {
1544- track_id,
1545- play_request_id,
1545+ track_id : Some ( track_id ) ,
1546+ play_request_id : Some ( play_request_id ) ,
15461547 } ) ;
15471548 self . state = PlayerState :: Stopped ;
15481549 }
@@ -2203,7 +2204,12 @@ impl PlayerInternal {
22032204 track_id : track_id. clone ( ) ,
22042205 } ) ;
22052206 }
2206- _ => ( ) ,
2207+ PlayerState :: Invalid | PlayerState :: Stopped => {
2208+ let _ = sender. send ( PlayerEvent :: Stopped {
2209+ play_request_id : None ,
2210+ track_id : None ,
2211+ } ) ;
2212+ }
22072213 }
22082214
22092215 self . event_senders . push ( sender) ;
Original file line number Diff line number Diff line change @@ -1301,9 +1301,9 @@ impl MprisTask {
13011301 let mut iface = iface_ref. get_mut ( ) . await ;
13021302 let meta = & mut iface. metadata ;
13031303
1304- if meta. mpris . track_id . as_ref ( ) != Some ( & track_id) {
1304+ if meta. mpris . track_id . as_ref ( ) != track_id. as_ref ( ) {
13051305 * meta = Metadata :: default ( ) ;
1306- meta. mpris . track_id = Some ( track_id) ;
1306+ meta. mpris . track_id = track_id;
13071307 warn ! ( "Missed TrackChanged event, metadata missing" ) ;
13081308 iface. metadata_changed ( iface_ref. signal_context ( ) ) . await ?;
13091309 }
Original file line number Diff line number Diff line change @@ -109,13 +109,18 @@ impl EventHandler {
109109 }
110110 }
111111 }
112- PlayerEvent :: Stopped { track_id, .. } => match track_id. to_id ( ) {
113- Err ( e) => warn ! ( "PlayerEvent::Stopped: Invalid track id: {e}" ) ,
114- Ok ( id) => {
115- env_vars. insert ( "PLAYER_EVENT" , "stopped" . to_string ( ) ) ;
116- env_vars. insert ( "TRACK_ID" , id) ;
112+ PlayerEvent :: Stopped { track_id, .. } => {
113+ env_vars. insert ( "PLAYER_EVENT" , "stopped" . to_string ( ) ) ;
114+ match track_id. map ( |track_id| track_id. to_id ( ) ) {
115+ Some ( Err ( e) ) => {
116+ warn ! ( "PlayerEvent::Stopped: Invalid track id: {e}" )
117+ }
118+ Some ( Ok ( id) ) => {
119+ env_vars. insert ( "TRACK_ID" , id) ;
120+ }
121+ None => { }
117122 }
118- } ,
123+ }
119124 PlayerEvent :: Playing {
120125 track_id,
121126 position_ms,
You can’t perform that action at this time.
0 commit comments