[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