Fixed bug reading stereo wav files
diff --git a/wave.c b/wave.c
index 1f3dc5a..2765eeb 100644
--- a/wave.c
+++ b/wave.c
@@ -29,6 +29,7 @@
     SNDFILE *soundFile;
     short *values;
     int numValues;
+    int numChannels;
 };
 
 /* Open the file for reading.  Also determine it's sample rate. */
@@ -48,6 +49,7 @@
     }
     file = (waveFile)calloc(1, sizeof(struct waveFileStruct));
     file->soundFile = soundFile;
+    file->numChannels = info.channels;
     file->numValues = 42;
     file->values = (short *)calloc(file->numValues, sizeof(short));
     *sampleRate = info.samplerate;
@@ -96,19 +98,28 @@
     int maxSamples)
 {
     SNDFILE *soundFile = file->soundFile;
+    float value;
+    short *values;
     int samplesRead;
-    int i;
+    int numChannels = file->numChannels;
+    int i, j;
 
     if(maxSamples > file->numValues) {
 	file->numValues = maxSamples;
 	file->values = (short *)realloc(file->values, maxSamples*sizeof(short));
     }
-    samplesRead = sf_read_short(soundFile, file->values, maxSamples);
+    values = file->values;
+    samplesRead = sf_read_short(soundFile, values, maxSamples);
     if(samplesRead <= 0) {
 	return 0;
     }
+    samplesRead /= numChannels;
     for(i = 0; i < samplesRead; i++) {
-	buffer[i] = file->values[i]/32768.0;
+	value = 0.0f;
+	for(j = 0; j < numChannels; j++) {
+	    value += values[i*numChannels + j];
+	}
+	buffer[i] = value/(numChannels*32768.0f);
     }
     return samplesRead;
 }