diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-10-01 15:32:02 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-10-01 15:32:02 +0200 |
commit | 3922f1c36f8d8e60f8537bcaead0422129ec58dd (patch) | |
tree | 03bcb9b8007bd4035d34df1c871ada35e81aede5 /src/mixer.cc | |
parent | 797be2357ee7062ec6939cd4406fadfd27e1af2e (diff) |
Add mute/unmute functions. REflect new functionality in aiomixer.
Diffstat (limited to 'src/mixer.cc')
-rw-r--r-- | src/mixer.cc | 33 |
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; +} |