summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2011-12-22 07:19:43 +0100
committerwm4 <wm4@mplayer2.org>2012-01-07 16:43:35 +0100
commit7e3a4578bd99313541c6da4060bcc0bd12fadb46 (patch)
treedcdead07a91c34664374f858bdcfa8105c6c517c
parent685fbf25fecd13524b083f3b05264806d054f21d (diff)
downloadmpv-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.c7
-rw-r--r--mixer.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/mixer.c b/mixer.c
index 4c196e4bdf..2f3d57b07e 100644
--- a/mixer.c
+++ b/mixer.c
@@ -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;
}
diff --git a/mixer.h b/mixer.h
index 473933ecbe..1e45ac56b4 100644
--- a/mixer.h
+++ b/mixer.h
@@ -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);