[Scummvm-cvs-logs] SF.net SVN: scummvm: [26473] scummvm/trunk/engines/saga

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sat Apr 14 19:35:29 CEST 2007


Revision: 26473
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26473&view=rev
Author:   fingolfin
Date:     2007-04-14 10:35:28 -0700 (Sat, 14 Apr 2007)

Log Message:
-----------
Replaced the use of DigitalTrackInfo objects (which were being leaked, BTW) with a call to openStreamFile (code completely *untested*, so it might not work properly yet). Note the new FIXME comment regarding the playback duration

Modified Paths:
--------------
    scummvm/trunk/engines/saga/music.cpp
    scummvm/trunk/engines/saga/music.h

Modified: scummvm/trunk/engines/saga/music.cpp
===================================================================
--- scummvm/trunk/engines/saga/music.cpp	2007-04-14 17:24:08 UTC (rev 26472)
+++ scummvm/trunk/engines/saga/music.cpp	2007-04-14 17:35:28 UTC (rev 26473)
@@ -307,8 +307,6 @@
 	_songTableLen = 0;
 	_songTable = 0;
 
-	_track = NULL;
-
 	_midiMusicData = NULL;
 }
 
@@ -411,13 +409,17 @@
 	}
 
 	// Try to open standalone digital track
-	for (int i = 0; i < ARRAYSIZE(TRACK_FORMATS) - 1; ++i)
-		if ((_track = TRACK_FORMATS[i].openTrackFunction(realTrackNumber))) {
-			break;
+	char trackName[2][16];
+	sprintf(trackName[0], "track%d", realTrackNumber);
+	sprintf(trackName[1], "track%02d", realTrackNumber);
+	Audio::AudioStream *stream = 0;
+	for (int i = 0; i < 2; ++i) {
+		// FIXME: Do we really want a duration of 10000 frames = 133 seconds, or is that just a random value?
+		stream = Audio::AudioStream::openStreamFile(trackName[i], 0, 10000, (flags == MUSIC_LOOP) ? 0 : 1);
+		if (stream) {
+			_mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_musicHandle, stream);
+			return;
 		}
-	if (_track) {
-		_track->play(_mixer, &_musicHandle, (flags == MUSIC_LOOP) ? -1 : 1, 0, 10000);
-		return;
 	}
 
 	if (_vm->getGameType() == GType_ITE) {

Modified: scummvm/trunk/engines/saga/music.h
===================================================================
--- scummvm/trunk/engines/saga/music.h	2007-04-14 17:24:08 UTC (rev 26472)
+++ scummvm/trunk/engines/saga/music.h	2007-04-14 17:35:28 UTC (rev 26473)
@@ -137,8 +137,6 @@
 	MidiParser *xmidiParser;
 	MidiParser *smfParser;
 
-	Audio::DigitalTrackInfo *_track;
-
 	byte *_midiMusicData;
 
 	static void musicVolumeGaugeCallback(void *refCon);


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