From 82a81ce07ce2f1c5bc2399a78fcda839abc91f16 Mon Sep 17 00:00:00 2001 From: Roddy Rappaport Date: Sat, 13 Jan 2024 01:47:35 +0200 Subject: [PATCH] feat(pulseaudio): Add unmute on scroll option (polybar#3067) This will allow users to specify in their config if they want the mixers to unmute if they use the scroll wheel on the module. Closes: #3067 --- include/modules/pulseaudio.hpp | 1 + src/modules/pulseaudio.cpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/include/modules/pulseaudio.hpp b/include/modules/pulseaudio.hpp index fdc73bde..2ecdc35d 100644 --- a/include/modules/pulseaudio.hpp +++ b/include/modules/pulseaudio.hpp @@ -51,6 +51,7 @@ namespace modules { pulseaudio_t m_pulseaudio; int m_interval{5}; + bool m_unmute_on_scroll{false}; atomic m_muted{false}; atomic m_volume{0}; atomic m_decibels{0}; diff --git a/src/modules/pulseaudio.cpp b/src/modules/pulseaudio.cpp index a5d49bd3..34196ab3 100644 --- a/src/modules/pulseaudio.cpp +++ b/src/modules/pulseaudio.cpp @@ -23,6 +23,7 @@ namespace modules { // Load configuration values m_interval = m_conf.get(name(), "interval", m_interval); + m_unmute_on_scroll = m_conf.get(name(), "unmute-on-scroll", m_unmute_on_scroll); auto sink_name = m_conf.get(name(), "sink", ""s); bool m_max_volume = m_conf.get(name(), "use-ui-max", true); @@ -156,10 +157,16 @@ namespace modules { } void pulseaudio_module::action_inc() { + if (m_unmute_on_scroll) { + m_pulseaudio->set_mute(false); + } m_pulseaudio->inc_volume(m_interval); } void pulseaudio_module::action_dec() { + if (m_unmute_on_scroll) { + m_pulseaudio->set_mute(false); + } m_pulseaudio->inc_volume(-m_interval); }