[Scummvm-cvs-logs] SF.net SVN: scummvm:[33819] scummvm/trunk/engines/agi
buddha_ at users.sourceforge.net
buddha_ at users.sourceforge.net
Wed Aug 13 13:36:46 CEST 2008
Revision: 33819
http://scummvm.svn.sourceforge.net/scummvm/?rev=33819&view=rev
Author: buddha_
Date: 2008-08-13 11:36:45 +0000 (Wed, 13 Aug 2008)
Log Message:
-----------
Reverted r33815 (But not r33816).
Modified Paths:
--------------
scummvm/trunk/engines/agi/sound.cpp
scummvm/trunk/engines/agi/sound.h
Modified: scummvm/trunk/engines/agi/sound.cpp
===================================================================
--- scummvm/trunk/engines/agi/sound.cpp 2008-08-13 10:42:01 UTC (rev 33818)
+++ scummvm/trunk/engines/agi/sound.cpp 2008-08-13 11:36:45 UTC (rev 33819)
@@ -435,9 +435,13 @@
_gsChannels.clear();
}
+static int16 *buffer;
+
int SoundMgr::initSound() {
int r = -1;
+ buffer = _sndBuffer = (int16 *)calloc(2, BUFFER_SIZE);
+
_env = false;
switch (_vm->_soundemu) {
@@ -474,6 +478,7 @@
void SoundMgr::deinitSound() {
debugC(3, kDebugLevelSound, "()");
_mixer->stopHandle(_soundHandle);
+ free(_sndBuffer);
}
void SoundMgr::stopNote(int i) {
@@ -1180,7 +1185,7 @@
return _gsSound.loadWaveFile(waveFsnode->getPath(), *exeInfo) && _gsSound.loadInstrumentHeaders(exeFsnode->getPath(), *exeInfo);
}
-void SoundMgr::fillAudio(void *udata, int16 *stream, uint len) {
+static void fillAudio(void *udata, int16 *stream, uint len) {
SoundMgr *soundMgr = (SoundMgr *)udata;
uint32 p = 0;
static uint32 n = 0, s = 0;
@@ -1188,32 +1193,32 @@
len <<= 2;
debugC(5, kDebugLevelSound, "(%p, %p, %d)", (void *)udata, (void *)stream, len);
- memcpy(stream, ((uint8 *)&_sndBuffer[0]) + s, p = n);
+ memcpy(stream, (uint8 *)buffer + s, p = n);
for (n = 0, len -= p; n < len; p += n, len -= n) {
soundMgr->playSound();
n = soundMgr->mixSound() << 1;
if (len < n) {
- memcpy((uint8 *)stream + p, _sndBuffer, len);
+ memcpy((uint8 *)stream + p, buffer, len);
s = len;
n -= s;
return;
} else {
- memcpy((uint8 *)stream + p, _sndBuffer, n);
+ memcpy((uint8 *)stream + p, buffer, n);
}
}
soundMgr->playSound();
n = soundMgr->mixSound() << 1;
- memcpy((uint8 *)stream + p, _sndBuffer, s = len);
+ memcpy((uint8 *)stream + p, buffer, s = len);
n -= s;
}
-SoundMgr::SoundMgr(AgiBase *agi, Audio::Mixer *pMixer) : _sndBuffer(), _chn() {
+SoundMgr::SoundMgr(AgiBase *agi, Audio::Mixer *pMixer) : _chn() {
_vm = agi;
_mixer = pMixer;
_sampleRate = pMixer->getOutputRate();
_endflag = -1;
- _playing = false;
_playingSound = -1;
+ _sndBuffer = 0;
_waveform = 0;
}
Modified: scummvm/trunk/engines/agi/sound.h
===================================================================
--- scummvm/trunk/engines/agi/sound.h 2008-08-13 10:42:01 UTC (rev 33818)
+++ scummvm/trunk/engines/agi/sound.h 2008-08-13 11:36:45 UTC (rev 33819)
@@ -468,11 +468,10 @@
int _playingSound;
uint8 _env;
- int16 _sndBuffer[BUFFER_SIZE];
+ int16 *_sndBuffer;
const int16 *_waveform;
void premixerCall(int16 *buf, uint len);
- void fillAudio(void *udata, int16 *stream, uint len);
public:
void unloadSound(int);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list