[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