[Scummvm-cvs-logs] CVS: scummvm/bs2/driver d_sound.cpp,1.20,1.21 d_sound.h,1.6,1.7

Torbj?rn Andersson eriktorbjorn at users.sourceforge.net
Sun Aug 31 03:46:04 CEST 2003


Update of /cvsroot/scummvm/scummvm/bs2/driver
In directory sc8-pr-cvs1:/tmp/cvs-serv13083/driver

Modified Files:
	d_sound.cpp d_sound.h 
Log Message:
No longer assume that all sound effects are 22 kHz. Some are 11 kHz.


Index: d_sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/d_sound.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- d_sound.cpp	31 Aug 2003 10:38:32 -0000	1.20
+++ d_sound.cpp	31 Aug 2003 10:45:14 -0000	1.21
@@ -328,6 +328,7 @@
 	memset(fxCached,	0, sizeof(fxCached));
 	memset(fxiPaused,	0, sizeof(fxiPaused));
 	memset(fxLooped, 	0, sizeof(fxLooped));
+	memset(fxRate,		0, sizeof(fxRate));
 
  	memset(musStreaming,	0, sizeof(musStreaming));
 	memset(musicPaused,	0, sizeof(musicPaused));
@@ -686,6 +687,8 @@
 		if (wav->channels == 2)
 			flagsFx[fxi] |= SoundMixer::FLAG_STEREO;
 
+		fxRate[fxi] = wav->samplesPerSec;
+
 		//Until the mixer supports LE samples natively, we need to convert our LE ones to BE
 		for (int32 j = 0; j < (bufferSizeFx[fxi] / 2); j++)
 			bufferFx[fxi][j] = TO_BE_16(bufferFx[fxi][j]);
@@ -831,7 +834,7 @@
 //					IDirectSoundBuffer_SetVolume(dsbFx[i], musicVolTable[volMusic[0]]);
 				}
 //				IDirectSoundBuffer_SetPan(dsbFx[i], 0);
-				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], 22050, flagsFx[i]);
+				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], fxRate[i], flagsFx[i]);
 
 				fxCached[i] = RDSE_FXTOCLEAR;
 			} else {
@@ -855,7 +858,7 @@
 				}
 //				IDirectSoundBuffer_SetPan(dsbFx[i], panTable[pan+16]);
 
-				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], 22050, flagsFx[i]);
+				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], fxRate[i], flagsFx[i]);
 				if (id == (int32) 0xffffffff) {
 					fxCached[i] = RDSE_FXTOCLEAR;
 				}
@@ -878,7 +881,7 @@
 //					IDirectSoundBuffer_SetVolume(dsbFx[i], musicVolTable[volMusic[0]]);
 				}
 //				IDirectSoundBuffer_SetPan(dsbFx[i], 0);
-				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], 22050, flagsFx[i]);
+				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], fxRate[i], flagsFx[i]);
 			} else {
 				hr = OpenFx(id, data);
 				if (hr != RD_OK) {
@@ -904,7 +907,7 @@
 //					IDirectSoundBuffer_SetVolume(dsbFx[i], volTable[vol*fxVol]);
 				}
 //				IDirectSoundBuffer_SetPan(dsbFx[i], panTable[pan+16]);
-				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], 22050, flagsFx[i]);
+				g_engine->_mixer->playRaw(&soundHandleFx[i], bufferFx[i], bufferSizeFx[i], fxRate[i], flagsFx[i]);
 			}
 		}
 	}

Index: d_sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/d_sound.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- d_sound.h	30 Aug 2003 18:06:08 -0000	1.6
+++ d_sound.h	31 Aug 2003 10:45:14 -0000	1.7
@@ -98,6 +98,7 @@
 		uint8 fxiPaused[MAXFX];
 		uint8 fxLooped[MAXFX];
 		uint8 fxVolume[MAXFX];
+		uint16 fxRate[MAXFX];
 		uint32 flagsFx[MAXFX];
 		uint16 *bufferFx[MAXFX];
 		int32 bufferSizeFx[MAXFX];





More information about the Scummvm-git-logs mailing list