diff options
author | wm4 <wm4@nowhere> | 2014-02-27 01:07:46 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-02-27 01:07:46 +0100 |
commit | 14607f27ef01c81e4544d0eaa7ed182001c15305 (patch) | |
tree | 73c18acabeef92272543af8be450c7bf9738e02a | |
parent | b4fb71634cf746cfd9ba19c1260dbc0aee38700e (diff) | |
download | mpv-14607f27ef01c81e4544d0eaa7ed182001c15305.tar.bz2 mpv-14607f27ef01c81e4544d0eaa7ed182001c15305.tar.xz |
command: use the step size for "add volume" commands
The step argument for "add volume <step>" was ignored until now. Fix it.
There is one problem: by defualt, "add volume" should use the value set
with --volstep. This value is 3 by default. Since the default volue for
the step argument is always 1 (and we don't really want to make the
generic code more complicated by introducing custom step sizes), we
simply multiply the step argument with --volstep to keep it compatible.
The --volstep option should probably be just removed in the future.
-rw-r--r-- | audio/mixer.c | 14 | ||||
-rw-r--r-- | audio/mixer.h | 3 | ||||
-rw-r--r-- | player/command.c | 5 |
3 files changed, 4 insertions, 18 deletions
diff --git a/audio/mixer.c b/audio/mixer.c index 162d9d5a0a..a9759976a2 100644 --- a/audio/mixer.c +++ b/audio/mixer.c @@ -172,21 +172,11 @@ bool mixer_getmute(struct mixer *mixer) return mixer->muted; } -static void addvolume(struct mixer *mixer, float d) +void mixer_addvolume(struct mixer *mixer, float step) { float vol_l, vol_r; mixer_getvolume(mixer, &vol_l, &vol_r); - mixer_setvolume(mixer, vol_l + d, vol_r + d); -} - -void mixer_incvolume(struct mixer *mixer) -{ - addvolume(mixer, mixer->opts->volstep); -} - -void mixer_decvolume(struct mixer *mixer) -{ - addvolume(mixer, -mixer->opts->volstep); + mixer_setvolume(mixer, vol_l + step, vol_r + step); } void mixer_getbalance(struct mixer *mixer, float *val) diff --git a/audio/mixer.h b/audio/mixer.h index 7a14e0b23e..d5ec07e9ba 100644 --- a/audio/mixer.h +++ b/audio/mixer.h @@ -39,8 +39,7 @@ void mixer_uninit_audio(struct mixer *mixer); bool mixer_audio_initialized(struct mixer *mixer); void mixer_getvolume(struct mixer *mixer, float *l, float *r); void mixer_setvolume(struct mixer *mixer, float l, float r); -void mixer_incvolume(struct mixer *mixer); -void mixer_decvolume(struct mixer *mixer); +void mixer_addvolume(struct mixer *mixer, float step); void mixer_getbothvolume(struct mixer *mixer, float *b); void mixer_setmute(struct mixer *mixer, bool mute); bool mixer_getmute(struct mixer *mixer); diff --git a/player/command.c b/player/command.c index 7712a6e550..4997056be4 100644 --- a/player/command.c +++ b/player/command.c @@ -931,10 +931,7 @@ static int mp_property_volume(m_option_t *prop, int action, void *arg, if (!mixer_audio_initialized(mpctx->mixer)) return M_PROPERTY_ERROR; struct m_property_switch_arg *sarg = arg; - if (sarg->inc <= 0) - mixer_decvolume(mpctx->mixer); - else - mixer_incvolume(mpctx->mixer); + mixer_addvolume(mpctx->mixer, mpctx->opts->volstep * sarg->inc); return M_PROPERTY_OK; } } |