Skip to content

Commit 90cd456

Browse files
committed
feat(mpris): Update track id on EndOfTrack
1 parent 8297fdd commit 90cd456

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/mpris_event_handler.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,12 +1306,19 @@ impl MprisTask {
13061306
PlayerEvent::Loading { .. } => {}
13071307
PlayerEvent::Preloading { .. } => {}
13081308
PlayerEvent::TimeToPreloadNextTrack { .. } => {}
1309-
PlayerEvent::EndOfTrack { track_id, .. } => match track_id.to_id() {
1310-
Err(e) => warn!("PlayerEvent::EndOfTrack: Invalid track id: {e}"),
1311-
Ok(_id) => {
1312-
// TODO: ?
1309+
PlayerEvent::EndOfTrack { track_id, .. } => {
1310+
// TODO: Update position
1311+
let iface_ref = self.mpris_player_iface().await;
1312+
let mut iface = iface_ref.get_mut().await;
1313+
let meta = &mut iface.metadata;
1314+
1315+
if meta.mpris.track_id.as_ref() != Some(&track_id) {
1316+
*meta = Metadata::default();
1317+
meta.mpris.track_id = Some(track_id);
1318+
warn!("Missed TrackChanged event, metadata missing");
1319+
iface.metadata_changed(iface_ref.signal_context()).await?;
13131320
}
1314-
},
1321+
}
13151322
PlayerEvent::Unavailable { .. } => {}
13161323
PlayerEvent::VolumeChanged { volume, .. } => {
13171324
let iface_ref = self.mpris_player_iface().await;
@@ -1326,7 +1333,7 @@ impl MprisTask {
13261333
// position_ms,
13271334
..
13281335
} => {
1329-
// TODO: Update position + track_id
1336+
// TODO: Update position
13301337
let iface_ref = self.mpris_player_iface().await;
13311338
let mut iface = iface_ref.get_mut().await;
13321339
let meta = &mut iface.metadata;

0 commit comments

Comments
 (0)