diff options
author | wm4 <wm4@mplayer2.org> | 2012-01-17 07:54:11 +0100 |
---|---|---|
committer | wm4 <wm4@mplayer2.org> | 2012-01-18 04:21:46 +0100 |
commit | 06b1de26875dded600ac5771d4c0bd87f1d6e802 (patch) | |
tree | adf08f344f280f633ab78c49c88704038b0381db /mixer.h | |
parent | 56c1ab1c62e4e35c7b62d2b8143f6e9247f4c96c (diff) | |
download | mpv-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.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -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; |