feat(audio): update volume sliders when changing volume with media keys

This commit is contained in:
Jason Hansen 2024-07-08 08:20:28 -06:00 committed by GitHub
parent b4d280c477
commit a630428f08
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 134 additions and 33 deletions

View file

@ -173,6 +173,8 @@ pub enum Message {
SetDefaultSource(DeviceInfo),
SetSinkVolumeByName(String, ChannelVolumes),
SetSourceVolumeByName(String, ChannelVolumes),
SetSinkMuteByName(String, bool),
SetSourceMuteByName(String, bool),
}
struct PulseHandle {
@ -290,6 +292,27 @@ impl PulseHandle {
};
server.set_source_volume_by_name(&name, &channel_volumes)
}
Message::SetSinkMuteByName(name, mute) => {
let server = match server.as_mut() {
Some(s) => s,
None => continue,
};
let op =
server.introspector.set_sink_mute_by_name(&name, mute, None);
server.wait_for_result(op).ok();
}
Message::SetSourceMuteByName(name, mute) => {
let server = match server.as_mut() {
Some(s) => s,
None => continue,
};
let op = server
.introspector
.set_source_mute_by_name(&name, mute, None);
server.wait_for_result(op).ok();
}
Message::UpdateConnection => {
tracing::info!(
"Updating Connection, server exists: {:?}",