[Scummvm-cvs-logs] SF.net SVN: scummvm: [28173] scummvm/trunk/engines/scumm/imuse_digi/ dimuse_sndmgr.cpp

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Mon Jul 23 04:34:22 CEST 2007


Revision: 28173
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28173&view=rev
Author:   Kirben
Date:     2007-07-22 19:34:21 -0700 (Sun, 22 Jul 2007)

Log Message:
-----------
Add support for FLAC compression of sound bundles in The Dig and COMI.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/imuse_digi/dimuse_sndmgr.cpp

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_sndmgr.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_sndmgr.cpp	2007-07-23 00:40:06 UTC (rev 28172)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_sndmgr.cpp	2007-07-23 02:34:21 UTC (rev 28173)
@@ -26,6 +26,7 @@
 #include "common/scummsys.h"
 #include "common/util.h"
 
+#include "sound/flac.h"
 #include "sound/voc.h"
 #include "sound/vorbis.h"
 #include "sound/mp3.h"
@@ -601,13 +602,16 @@
 		if (scumm_stricmp(fileName, soundDesc->lastFileName) != 0) {
 			int32 offs = 0, len = 0;
 			Common::File *cmpFile;
-			bool oggMode = false;
-			sprintf(fileName, "%s_reg%03d.mp3", soundDesc->name, region);
+			uint8 soundMode = 0;
+
+			sprintf(fileName, "%s_reg%03d.fla", soundDesc->name, region);
 			cmpFile = soundDesc->bundle->getFile(fileName, offs, len);
-#ifndef USE_MAD
-			if (len)
-				error("Mad library compiled support needed!");
+			if (len) {
+#ifndef USE_FLAC
+				error("FLAC library compiled support needed!");
 #endif
+				soundMode = 3;
+			}
 			if (!len) {
 				sprintf(fileName, "%s_reg%03d.ogg", soundDesc->name, region);
 				cmpFile = soundDesc->bundle->getFile(fileName, offs, len);
@@ -616,17 +620,32 @@
 					error("Vorbis library compiled support needed!");
 #endif
 				assert(len);
-				oggMode = true;
+				soundMode = 2;
 			}
+			if (!len) {
+				sprintf(fileName, "%s_reg%03d.mp3", soundDesc->name, region);
+				cmpFile = soundDesc->bundle->getFile(fileName, offs, len);
+#ifndef USE_VORBIS
+				if (len)
+					error("Mad library compiled support needed!");
+#endif
+				assert(len);
+				soundMode = 1;
+			}
+
 			if (!soundDesc->compressedStream) {
 				Common::MemoryReadStream *tmp = cmpFile->readStream(len);
 				assert(tmp);
+#ifdef USE_FLAC
+				if (soundMode == 3)
+					soundDesc->compressedStream = Audio::makeFlacStream(tmp, true);
+#endif
 #ifdef USE_VORBIS
-				if (oggMode)
+				if (soundMode == 2)
 					soundDesc->compressedStream = Audio::makeVorbisStream(tmp, true);
 #endif
 #ifdef USE_MAD
-				if (!oggMode)
+				if (soundMode == 1)
 					soundDesc->compressedStream = Audio::makeMP3Stream(tmp, true);
 #endif
 				assert(soundDesc->compressedStream);


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