feat(audio): MPRIS Raise functionality

This commit is contained in:
Alex Rennie 2025-09-23 10:28:19 +01:00 committed by Michael Murphy
parent f0199dffe8
commit 3daffb4fba
2 changed files with 20 additions and 5 deletions

View file

@ -603,6 +603,17 @@ impl cosmic::Application for Audio {
tracing::error!("Error playing previous: {}", err);
}
}),
MprisRequest::Raise => tokio::spawn(async move {
let res = player.media_player().await;
if let Err(err) = res {
tracing::error!("Error fetching MediaPlayer: {}", err);
} else {
let res = res.unwrap().raise().await;
if let Err(err) = res {
tracing::error!("Error raising client: {}", err);
}
}
}),
};
}
Message::OpenSettings => {
@ -945,10 +956,13 @@ impl cosmic::Application for Audio {
audio_content = audio_content
.push(padded_control(divider::horizontal::default()).padding([space_xxs, space_s]));
audio_content = audio_content.push(
Row::with_children(elements)
.align_y(Alignment::Center)
.spacing(8)
.padding(menu_control_padding()),
menu_button(
Row::with_children(elements)
.align_y(Alignment::Center)
.spacing(8),
)
.on_press(Message::MprisRequest(MprisRequest::Raise))
.padding(menu_control_padding()),
);
}
let content = column![

View file

@ -126,6 +126,7 @@ pub enum MprisRequest {
Pause,
Next,
Previous,
Raise,
}
struct State {
@ -282,7 +283,7 @@ async fn run(output: &mut futures::channel::mpsc::Sender<MprisUpdate>) {
_ = state.any_player_state_stream.next(), if !state.players.is_empty() => {
state.update_active_player().await;
},
};
}
}
}