summaryrefslogtreecommitdiff
path: root/src/mixer.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-10-01 15:32:02 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2014-10-01 15:32:02 +0200
commit3922f1c36f8d8e60f8537bcaead0422129ec58dd (patch)
tree03bcb9b8007bd4035d34df1c871ada35e81aede5 /src/mixer.cc
parent797be2357ee7062ec6939cd4406fadfd27e1af2e (diff)
Add mute/unmute functions. REflect new functionality in aiomixer.
Diffstat (limited to 'src/mixer.cc')
-rw-r--r--src/mixer.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mixer.cc b/src/mixer.cc
index 00cf156..dd9202c 100644
--- a/src/mixer.cc
+++ b/src/mixer.cc
@@ -336,3 +336,36 @@ bool Mixer::capture()
return true;
}
+
+void Mixer::setMuted(bool muted)
+{
+ if(!isPlayback()) return;
+ int p = muted?0:1;
+ int err;
+ err = snd_mixer_selem_set_playback_switch_all(elem, p);
+ if(err) {
+ printf("snd_mixer_selem_set_playback_switch_all: %s, %d\n",
+ snd_strerror(err), err);
+ }
+}
+
+bool Mixer::muted()
+{
+ if(!isPlayback()) return false;
+
+ int err;
+
+ int num = numberOfChannels();
+ for(int idx = 0; idx < num; idx++) {
+ int value;
+ err = snd_mixer_selem_get_playback_switch(elem, chanId(idx), &value);
+ if(err) {
+ printf(" snd_mixer_selem_get_playback_switch: %s, %d\n",
+ snd_strerror(err), err);
+ return true;
+ }
+ if(value == 0) return true;
+ }
+
+ return false;
+}