From 014dcf97c0b7a7c5354478335a27e89c1209a765 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Mon, 10 Dec 2007 19:13:00 +0000 Subject: crash fixes and added options --- src/engine/client/snd.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'src/engine/client/snd.c') diff --git a/src/engine/client/snd.c b/src/engine/client/snd.c index f2b7f9a4..603683f7 100644 --- a/src/engine/client/snd.c +++ b/src/engine/client/snd.c @@ -207,17 +207,21 @@ static void mix(short *final_out, unsigned frames) /* release the lock */ lock_release(sound_lock); - /* clamp accumulated values */ - /* TODO: this seams slow */ - for(i = 0; i < frames; i++) { - int j = i<<1; - int vl = mix_buffer[j]>>8; - int vr = mix_buffer[j+1]>>8; + int master_vol = config.snd_volume; + + /* clamp accumulated values */ + /* TODO: this seams slow */ + for(i = 0; i < frames; i++) + { + int j = i<<1; + int vl = ((mix_buffer[j]*master_vol)/101)>>8; + int vr = ((mix_buffer[j+1]*master_vol)/101)>>8; - final_out[j] = int2short(vl); - final_out[j+1] = int2short(vr); - } + final_out[j] = int2short(vl); + final_out[j+1] = int2short(vr); + } + } } static int pacallback(const void *in, void *out, unsigned long frames, const PaStreamCallbackTimeInfo* time, PaStreamCallbackFlags status, void *user) @@ -425,11 +429,6 @@ int snd_load_wv(const char *filename) return sid; } -void snd_set_master_volume(float vol) -{ - /*master_vol = vol;*/ -} - void snd_set_listener_pos(float x, float y) { center_x = (int)x; -- cgit 1.4.1