diff options
Diffstat (limited to 'audio')
-rw-r--r-- | audio/mixer.c | 4 | ||||
-rw-r--r-- | audio/mixer.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/audio/mixer.c b/audio/mixer.c index d97391cf7e..b67e548a3c 100644 --- a/audio/mixer.c +++ b/audio/mixer.c @@ -130,6 +130,7 @@ void mixer_setvolume(mixer_t *mixer, float l, float r) if (!mixer->ao || mixer->muted_using_volume) return; setvolume_internal(mixer, mixer->vol_l, mixer->vol_r); + mixer->user_set_volume = true; } void mixer_getbothvolume(mixer_t *mixer, float *b) @@ -152,6 +153,7 @@ void mixer_setmute(struct mixer *mixer, bool mute) } mixer->muted = mute; mixer->muted_by_us = mute; + mixer->user_set_mute = true; } } @@ -264,6 +266,8 @@ void mixer_reinit(struct mixer *mixer, struct ao *ao) mixer_setmute(mixer, true); if (mixer->balance != 0) mixer_setbalance(mixer, mixer->balance); + mixer->user_set_mute = false; + mixer->user_set_volume = false; } /* Called before uninitializing the audio output. The main purpose is to diff --git a/audio/mixer.h b/audio/mixer.h index 3de92e1e03..3160c20cfe 100644 --- a/audio/mixer.h +++ b/audio/mixer.h @@ -41,6 +41,8 @@ typedef struct mixer { * and needs to be restored after the driver is reinitialized. */ const char *restore_volume; float balance; + bool user_set_mute; + bool user_set_volume; } mixer_t; void mixer_reinit(struct mixer *mixer, struct ao *ao); |