From 14607f27ef01c81e4544d0eaa7ed182001c15305 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 27 Feb 2014 01:07:46 +0100 Subject: command: use the step size for "add volume" commands The step argument for "add volume " 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. --- audio/mixer.c | 14 ++------------ audio/mixer.h | 3 +-- 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; } } -- cgit v1.2.3