summaryrefslogtreecommitdiffstats
path: root/mixer.h
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2012-01-17 07:54:11 +0100
committerwm4 <wm4@mplayer2.org>2012-01-18 04:21:46 +0100
commit06b1de26875dded600ac5771d4c0bd87f1d6e802 (patch)
treeadf08f344f280f633ab78c49c88704038b0381db /mixer.h
parent56c1ab1c62e4e35c7b62d2b8143f6e9247f4c96c (diff)
downloadmpv-06b1de26875dded600ac5771d4c0bd87f1d6e802.tar.bz2
mpv-06b1de26875dded600ac5771d4c0bd87f1d6e802.tar.xz
mixer, libao: add proper mute control
The mixer frontend code can now make use of a proper system mixer mute toggle, if the audio output driver supports it. The consequence is that, if support is available, mplayer will no longer temporarily set the system volume to 0 if mute is enabled. Generally, the code now deals with the following combinations of available AO features: - software volume control forced by user (--softvol / soft_vol flag) => if enabled, never touch the "hardware" controls - "hardware"/driver volume control available (whether AOCONTROL_GET/SET_VOLUME works) => if not available, enable volume controls by enabling softvol - "hardware"/driver mute control (AOCONTROL_GET/SET_MUTE) => if not available, emulate by setting volume to 0 - whether the volume+mute controls are kept or not when the AO is closed (indicated by ao->no_persistent_volume) => if not persistent, restore the volume/mute next time the AO is opened
Diffstat (limited to 'mixer.h')
-rw-r--r--mixer.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/mixer.h b/mixer.h
index f99e860ff3..6619783a58 100644
--- a/mixer.h
+++ b/mixer.h
@@ -34,6 +34,7 @@ typedef struct mixer_s {
af_stream_t *afilter;
int volstep;
bool muted;
+ bool mute_emulation;
float last_l, last_r;
float restore_vol_l, restore_vol_r;
bool restore_volume;