diff options
author | wm4 <wm4@mplayer2.org> | 2011-12-22 07:19:43 +0100 |
---|---|---|
committer | wm4 <wm4@mplayer2.org> | 2012-01-07 16:43:35 +0100 |
commit | 7e3a4578bd99313541c6da4060bcc0bd12fadb46 (patch) | |
tree | dcdead07a91c34664374f858bdcfa8105c6c517c | |
parent | 685fbf25fecd13524b083f3b05264806d054f21d (diff) | |
download | mpv-7e3a4578bd99313541c6da4060bcc0bd12fadb46.tar.bz2 mpv-7e3a4578bd99313541c6da4060bcc0bd12fadb46.tar.xz |
mixer: keep balance setting
Similarly to the last commit, restore the balance setting when switching
to a new file. Unlike the volume setting, balance is always implemented
as filter, so this affects usage without --softvol too.
-rw-r--r-- | mixer.c | 7 | ||||
-rw-r--r-- | mixer.h | 1 |
2 files changed, 8 insertions, 0 deletions
@@ -43,6 +43,9 @@ void mixer_reinit(mixer_t *mixer) mixer_setvolume(mixer, mixer->softvol_l, mixer->softvol_r); mixer->muted = muted; } + if (mixer->balance != 0) { + mixer_setbalance(mixer, mixer->balance); + } } void mixer_getvolume(mixer_t *mixer, float *l, float *r) @@ -176,6 +179,9 @@ void mixer_setbalance(mixer_t *mixer, float val) if (!mixer->afilter) return; + + mixer->balance = val; + if (af_control_any_rev(mixer->afilter, AF_CONTROL_PAN_BALANCE | AF_CONTROL_SET, &val)) return; @@ -183,6 +189,7 @@ void mixer_setbalance(mixer_t *mixer, float val) if (!(af_pan_balance = af_add(mixer->afilter, "pan"))) { mp_tmsg(MSGT_GLOBAL, MSGL_ERR, "[Mixer] No balance control available.\n"); + mixer->balance = 0; return; } @@ -35,6 +35,7 @@ typedef struct mixer_s { float last_l, last_r; float softvol_l, softvol_r; int restore_softvol; + float balance; } mixer_t; void mixer_reinit(mixer_t *mixer); |