[Scummvm-cvs-logs] CVS: scummvm/simon sound.cpp,1.57,1.58
Max Horn
fingolfin at users.sourceforge.net
Sat Dec 27 06:12:01 CET 2003
Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv24187
Modified Files:
sound.cpp
Log Message:
Use VOC reader from voc.h
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/sound.cpp,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- sound.cpp 24 Dec 2003 00:25:03 -0000 1.57
+++ sound.cpp 27 Dec 2003 14:11:03 -0000 1.58
@@ -154,8 +154,7 @@
data[0] = _file->readUint32LE();
data[1] = _file->readUint32LE();
- if (//fread(data, sizeof(data), 1, sound_file) != 1 ||
- data[0] != 'atad') {
+ if (data[0] != 'atad') {
error("playWav(%d): can't read data header", sound);
}
@@ -169,45 +168,25 @@
if (_offsets == NULL)
return;
- VocHeader voc_hdr;
- VocBlockHeader voc_block_hdr;
- uint32 size;
-
- flags |= SoundMixer::FLAG_AUTOFREE;
-
_file->seek(_offsets[sound], SEEK_SET);
- if (_file->read(&voc_hdr, sizeof(voc_hdr)) != sizeof(voc_hdr) ||
- strncmp((char *)voc_hdr.desc, "Creative Voice File\x1A", 10) != 0) {
- error("playVoc(%d): can't read voc header", sound);
- }
-
- _file->read(&voc_block_hdr, sizeof(voc_block_hdr));
-
- size = voc_block_hdr.size[0] + (voc_block_hdr.size[1] << 8) + (voc_block_hdr.size[2] << 16) - 2;
- uint32 samples_per_sec;
-
- /* workaround for voc weakness */
- samples_per_sec = getSampleRateFromVOCRate(voc_block_hdr.sr);
-
- byte *buffer = (byte *)malloc(size);
- _file->read(buffer, size);
+ int size, samples_per_sec;
+ byte *buffer = loadVOCFile(_file, size, samples_per_sec);
- _mixer->playRaw(handle, buffer, size, samples_per_sec, flags);
+ _mixer->playRaw(handle, buffer, size, samples_per_sec, flags | SoundMixer::FLAG_AUTOFREE);
}
void RawSound::playSound(uint sound, PlayingSoundHandle *handle, byte flags) {
if (_offsets == NULL)
return;
- flags |= SoundMixer::FLAG_AUTOFREE;
-
_file->seek(_offsets[sound], SEEK_SET);
+
uint size = _file->readUint32BE();
byte *buffer = (byte *)malloc(size);
_file->read(buffer, size);
- _mixer->playRaw(handle, buffer, size, 22050, flags);
+ _mixer->playRaw(handle, buffer, size, 22050, flags | SoundMixer::FLAG_AUTOFREE);
}
#ifdef USE_MAD
More information about the Scummvm-git-logs
mailing list