@@ -16,7 +16,7 @@ use super::sound_action::SoundAction;
1616pub struct Media {
1717 controls : Option < MediaControls > ,
1818
19- current_meta : Option < ( String , String , String ) > ,
19+ current_meta : Option < ( String , String , String , Option < Duration > ) > ,
2020 current_playback : Option < MediaPlayback > ,
2121}
2222
@@ -65,12 +65,16 @@ impl Media {
6565 media_meta. title . unwrap_or ( "" ) . to_string ( ) ,
6666 media_meta. album . unwrap_or ( "" ) . to_string ( ) ,
6767 media_meta. artist . unwrap_or ( "" ) . to_string ( ) ,
68+ sink. duration ( )
69+ . map ( |duration| Duration :: from_secs ( duration as u64 ) ) ,
6870 ) )
6971 {
7072 self . current_meta = Some ( (
7173 media_meta. title . unwrap_or ( "" ) . to_string ( ) ,
7274 media_meta. album . unwrap_or ( "" ) . to_string ( ) ,
7375 media_meta. artist . unwrap_or ( "" ) . to_string ( ) ,
76+ sink. duration ( )
77+ . map ( |duration| Duration :: from_secs ( duration as u64 ) ) ,
7478 ) ) ;
7579 e. set_metadata ( media_meta) ?;
7680 }
@@ -138,7 +142,7 @@ fn connect(mpris: &mut MediaControls, sender: Sender<SoundAction>) -> Result<(),
138142 shutdown ( ) ;
139143 }
140144 MediaControlEvent :: SetVolume ( e) => {
141- todo ! ( "Implement volume setting {e:?}" ) ;
145+ sender . send ( SoundAction :: SetVolume ( e as f32 ) ) . unwrap ( ) ;
142146 }
143147 } )
144148}
0 commit comments