From 6b47c3b5b92e88a4bc57aeb5ae2c4041379e6c4c Mon Sep 17 00:00:00 2001 From: Ashley Wulber <48420062+wash2@users.noreply.github.com> Date: Fri, 28 Mar 2025 10:45:51 -0400 Subject: [PATCH] chore: update cosmic-settings-subscriptions --- Cargo.lock | 77 +++++++++++++++++----------------- cosmic-applet-audio/src/lib.rs | 21 ++++------ 2 files changed, 45 insertions(+), 53 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b3985103..0bd37082 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -676,7 +676,7 @@ dependencies = [ "log", "macaddr", "nix 0.29.0", - "num-derive 0.4.2", + "num-derive", "num-traits", "pin-project", "serde", @@ -1083,7 +1083,7 @@ dependencies = [ "i18n-embed", "i18n-embed-fl", "image", - "itertools 0.14.0", + "itertools", "libcosmic", "memmap2 0.9.5", "once_cell", @@ -1241,7 +1241,7 @@ dependencies = [ "futures-util", "i18n-embed", "i18n-embed-fl", - "itertools 0.14.0", + "itertools", "libcosmic", "rust-embed", "tokio", @@ -1557,18 +1557,18 @@ dependencies = [ [[package]] name = "cosmic-settings-subscriptions" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-subscriptions#f666c7cfcad79547e55a368640784bca51081bd2" +source = "git+https://github.com/pop-os/cosmic-settings-subscriptions#613e56f858db9e10d913b6d57e761e58d146ebc7" dependencies = [ "bluez-zbus", "cosmic-dbus-networkmanager", "futures", "iced_futures", - "itertools 0.13.0", + "itertools", "libpulse-binding", "log", - "rustix 0.38.44", + "rustix 1.0.3", "secure-string", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tokio-stream", "tracing", @@ -2129,7 +2129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3695,15 +3695,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -3914,7 +3905,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -3925,26 +3916,26 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libpulse-binding" -version = "2.28.2" +version = "2.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1040a6c4c4d1e9e852000f6202df1a02a4f074320de336ab21e4fd317b538" +checksum = "441092fb2d05962d74246a00c1b2f8c87c60fb6b38a5cc42227c229a702c0ce5" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.8.0", "libc", "libpulse-sys", - "num-derive 0.3.3", + "num-derive", "num-traits", "winapi", ] [[package]] name = "libpulse-sys" -version = "1.21.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc19e110fbf42c17260d30f6d3dc545f58491c7830d38ecb9aaca96e26067a9b" +checksum = "b8febf45075a6ac7e36d0c7aa62536217f476f24456854cdad296952852b5cd2" dependencies = [ "libc", - "num-derive 0.3.3", + "num-derive", "num-traits", "pkg-config", "winapi", @@ -3989,6 +3980,12 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + [[package]] name = "litemap" version = "0.7.4" @@ -4375,17 +4372,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-derive" version = "0.4.2" @@ -4452,7 +4438,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.98", @@ -5498,7 +5484,20 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +dependencies = [ + "bitflags 2.8.0", + "errno", + "libc", + "linux-raw-sys 0.9.3", + "windows-sys 0.59.0", ] [[package]] @@ -6023,7 +6022,7 @@ dependencies = [ "getrandom 0.3.1", "once_cell", "rustix 0.38.44", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/cosmic-applet-audio/src/lib.rs b/cosmic-applet-audio/src/lib.rs index d9aeb408..7dfd39e7 100644 --- a/cosmic-applet-audio/src/lib.rs +++ b/cosmic-applet-audio/src/lib.rs @@ -79,6 +79,7 @@ pub struct Audio { config: AudioAppletConfig, player_status: Option, token_tx: Option>, + channels: Option, } impl Audio { @@ -399,20 +400,8 @@ impl cosmic::Application for Audio { Message::ApplyOutputVolume => { self.output_volume_debounce = false; - self.current_output.as_mut().map(|o| { - o.volume - .set(o.volume.len(), percent_to_volume(self.output_volume)) - }); - - if let PulseState::Connected(connection) = &mut self.pulse_state { - if let Some(device) = &self.current_output { - if let Some(name) = &device.name { - connection.send(pulse::Message::SetSinkVolumeByName( - name.clone(), - device.volume, - )) - } - } + if let Some(channel) = self.channels.as_mut() { + channel.set_volume(self.output_volume as f32 / 100.); } } Message::ApplyInputVolume => { @@ -667,9 +656,13 @@ impl cosmic::Application for Audio { input.mute = value; } } + sub_pulse::Event::Channels(c) => { + self.channels = Some(c); + } sub_pulse::Event::DefaultSink(_) => {} sub_pulse::Event::DefaultSource(_) => {} sub_pulse::Event::CardInfo(_) => {} + sub_pulse::Event::Balance(_) => {} }, Message::Surface(a) => { return cosmic::task::message(cosmic::Action::Cosmic(