From 35a2d6905b7d12025971152cc384f95e8d4b2630 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 21 Jul 2022 12:37:32 -0700 Subject: [PATCH] audio: Backend methods for setting volume --- applets/cosmic-applet-audio/src/pa.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/applets/cosmic-applet-audio/src/pa.rs b/applets/cosmic-applet-audio/src/pa.rs index 6ab34c55..f3ec8e88 100644 --- a/applets/cosmic-applet-audio/src/pa.rs +++ b/applets/cosmic-applet-audio/src/pa.rs @@ -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() + } }