feat(audio): update volume sliders when changing volume with media keys
This commit is contained in:
parent
b4d280c477
commit
a630428f08
2 changed files with 134 additions and 33 deletions
|
|
@ -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: {:?}",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue