audio: Backend methods for setting volume

This commit is contained in:
Ian Douglas Scott 2022-07-21 12:37:32 -07:00
parent 61d82e128b
commit 35a2d6905b

View file

@ -213,4 +213,30 @@ impl PA {
});
receiver.await.unwrap()
}
pub async fn set_sink_volume_by_name(&self, name: &str, volume: &ChannelVolumes) -> bool {
let (sender, receiver) = oneshot::channel();
let mut sender = Some(sender);
self.introspect().set_sink_volume_by_name(
name,
volume,
Some(Box::new(move |success| {
sender.take().unwrap().send(success);
})),
);
receiver.await.unwrap()
}
pub async fn set_source_volume_by_name(&self, name: &str, volume: &ChannelVolumes) -> bool {
let (sender, receiver) = oneshot::channel();
let mut sender = Some(sender);
self.introspect().set_source_volume_by_name(
name,
volume,
Some(Box::new(move |success| {
sender.take().unwrap().send(success);
})),
);
receiver.await.unwrap()
}
}