From 5456164dce1d0cad73d895d8618fe7df4beaaf67 Mon Sep 17 00:00:00 2001 From: Johns Date: Fri, 27 Apr 2012 12:31:40 +0200 Subject: Mute pass-through, if volume is 0. --- audio.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/audio.c b/audio.c index 2da5d00..fffcb7d 100644 --- a/audio.c +++ b/audio.c @@ -848,16 +848,17 @@ static int AlsaPlayRingbuffer(void) if (!avail) { // full or buffer empty break; } - if (AudioSoftVolume && !AudioRing[AudioRingRead].UseAc3) { + // muting ac3, can produce disturbance + if (AudioMute || (AudioSoftVolume && !AudioRing[AudioRingRead].UseAc3)) { // FIXME: quick&dirty cast AudioSoftAmplifier((int16_t *) p, avail); // FIXME: if not all are written, we double amplify them } frames = snd_pcm_bytes_to_frames(AlsaPCMHandle, avail); +#ifdef DEBUG if (avail != snd_pcm_frames_to_bytes(AlsaPCMHandle, frames)) { Error(_("audio/alsa: bytes lost -> out of sync\n")); } -#ifdef DEBUG #endif for (;;) { @@ -3586,7 +3587,7 @@ void AudioEnqueue(const void *samples, int count) return; // no setup yet } if (AudioRing[AudioRingWrite].UseAc3) { - buffer = (void*)samples; + buffer = (void *)samples; } else { // // Convert / resample input to hardware format @@ -3897,6 +3898,7 @@ int64_t AudioGetClock(void) void AudioSetVolume(int volume) { AudioVolume = volume; + AudioMute = !volume; #ifdef USE_AUDIORING // reduce loudness for stereo output if (AudioStereoDescent && AudioRing[AudioRingRead].InChannels == 2 -- cgit v1.2.3