[Scummvm-cvs-logs] CVS: scummvm/scumm/smush smush_player.cpp,1.145,1.146 smush_player.h,1.40,1.41

Pawel Kolodziejski aquadran at users.sourceforge.net
Fri Jan 28 04:00:06 CET 2005


Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21562

Modified Files:
	smush_player.cpp smush_player.h 
Log Message:
added support for mp3 compressed tracks

Index: smush_player.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.cpp,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -d -r1.145 -r1.146
--- smush_player.cpp	16 Jan 2005 13:34:43 -0000	1.145
+++ smush_player.cpp	28 Jan 2005 11:59:08 -0000	1.146
@@ -45,6 +45,7 @@
 
 #include "sound/mixer.h"
 #include "sound/vorbis.h"
+#include "sound/mp3.h"
 
 #ifdef DUMP_SMUSH_FRAMES
 #include <png.h>
@@ -1172,21 +1173,33 @@
 	_frame = contFrame;
 }
 
-void SmushPlayer::tryOggFile(const char *filename) {
+void SmushPlayer::tryCmpFile(const char *filename) {
 	_compressedFileMode = false;
 	const char *i = strrchr(filename, '.');
 	if (i == NULL) {
 		error("invalid filename : %s", filename);
 	}
 	char fname[260];
+#ifdef USE_MAD
 	memcpy(fname, filename, i - filename);
-	strcpy(fname + (i - filename), ".ogg");
+	strcpy(fname + (i - filename), ".mp3");
+	_compressedFile.open(fname);
+	if (_compressedFile.isOpen()) {
+		int size = _compressedFile.size();
+		_compressedFileMode = true;
+		_vm->_mixer->playInputStream(SoundMixer::kSFXAudioDataType, &_compressedFileSoundHandle, makeMP3Stream(&_compressedFile, size));
+		return;
+	}
+#endif
 #ifdef USE_VORBIS
+	memcpy(fname, filename, i - filename);
+	strcpy(fname + (i - filename), ".ogg");
 	_compressedFile.open(fname);
 	if (_compressedFile.isOpen()) {
 		int size = _compressedFile.size();
 		_compressedFileMode = true;
 		_vm->_mixer->playInputStream(SoundMixer::kSFXAudioDataType, &_compressedFileSoundHandle, makeVorbisStream(&_compressedFile, size));
+		return;
 	}
 #endif
 }
@@ -1202,7 +1215,7 @@
 	}
 	f.close();
 
-	tryOggFile(filename);
+	tryCmpFile(filename);
 
 	_updateNeeded = false;
 	

Index: smush_player.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- smush_player.h	9 Jan 2005 03:15:59 -0000	1.40
+++ smush_player.h	28 Jan 2005 11:59:08 -0000	1.41
@@ -104,7 +104,7 @@
 	void release();
 	void setupAnim(const char *file);
 	void updateScreen();
-	void tryOggFile(const char *filename);
+	void tryCmpFile(const char *filename);
 
 	bool readString(const char *file);
 	void checkBlock(const Chunk &, Chunk::type, uint32 = 0);





More information about the Scummvm-git-logs mailing list