about summary refs log tree commit diff
path: root/src/engine/client/snd.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-10 19:13:00 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-10 19:13:00 +0000
commit014dcf97c0b7a7c5354478335a27e89c1209a765 (patch)
tree5a32a6c4bff76bd157d58e1ceec2a24111741b4e /src/engine/client/snd.c
parent6f20ceabcc92fcf57e52f443f3865217e970f74b (diff)
downloadzcatch-014dcf97c0b7a7c5354478335a27e89c1209a765.tar.gz
zcatch-014dcf97c0b7a7c5354478335a27e89c1209a765.zip
crash fixes and added options
Diffstat (limited to 'src/engine/client/snd.c')
-rw-r--r--src/engine/client/snd.c27
1 files changed, 13 insertions, 14 deletions
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;