Browse Source

Corrected bug sound playing twice

Samples count was not properly calculated on WAV loading
Ray 8 years ago
parent
commit
4a9b77dd70
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/audio.c

+ 4 - 2
src/audio.c

@@ -1083,11 +1083,13 @@ static Wave LoadWAV(const char *fileName)
                     // Read in the sound data into the soundData variable
                     // Read in the sound data into the soundData variable
                     fread(wave.data, waveData.subChunkSize, 1, wavFile);
                     fread(wave.data, waveData.subChunkSize, 1, wavFile);
 
 
-                    // Now we set the variables that we need later
-                    wave.sampleCount = waveData.subChunkSize;
+                    // Store wave parameters
                     wave.sampleRate = waveFormat.sampleRate;
                     wave.sampleRate = waveFormat.sampleRate;
                     wave.sampleSize = waveFormat.bitsPerSample;
                     wave.sampleSize = waveFormat.bitsPerSample;
                     wave.channels = waveFormat.numChannels;
                     wave.channels = waveFormat.numChannels;
+                    
+                    // NOTE: subChunkSize comes in bytes, we need to translate it to number of samples
+                    wave.sampleCount = waveData.subChunkSize/(waveFormat.bitsPerSample/8);
 
 
                     TraceLog(INFO, "[%s] WAV file loaded successfully (SampleRate: %i, SampleSize: %i, Channels: %i)", fileName, wave.sampleRate, wave.sampleSize, wave.channels);
                     TraceLog(INFO, "[%s] WAV file loaded successfully (SampleRate: %i, SampleSize: %i, Channels: %i)", fileName, wave.sampleRate, wave.sampleSize, wave.channels);
                 }
                 }