[Scummvm-cvs-logs] scummvm master -> c0a35b3b00528964c759282f853e60eba87c0bc6

bluegr bluegr at gmail.com
Mon Jan 6 06:41:06 CET 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c0a35b3b00 FULLPIPE: Initial implementation of scene music tracks


Commit: c0a35b3b00528964c759282f853e60eba87c0bc6
    https://github.com/scummvm/scummvm/commit/c0a35b3b00528964c759282f853e60eba87c0bc6
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-01-05T21:40:25-08:00

Commit Message:
FULLPIPE: Initial implementation of scene music tracks

Changed paths:
    engines/fullpipe/fullpipe.h
    engines/fullpipe/sound.cpp



diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 0f3e057..7c7ac05 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -273,6 +273,8 @@ public:
 	void lift_startExitQueue();
 	void lift_sub05(ExCommand *ex);
 
+	GameVar *_musicGameVar;
+	Audio::SoundHandle _sceneTrackHandle;
 public:
 
 	bool _isSaveAllowed;
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 8c6b01f..da9e7e3 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -28,6 +28,7 @@
 #include "fullpipe/ngiarchive.h"
 #include "common/memstream.h"
 #include "audio/audiostream.h"
+#include "audio/decoders/vorbis.h"
 #include "audio/decoders/wave.h"
 
 namespace Fullpipe {
@@ -117,10 +118,31 @@ void Sound::setPanAndVolumeByStaticAni() {
 
 void FullpipeEngine::setSceneMusicParameters(GameVar *var) {
 	warning("STUB: FullpipeEngine::setSceneMusicParameters()");
+	// TODO: Finish this (MINDELAY, MAXDELAY, LOCAL, SEQUENCE, STARTDELAY etc)
+	stopAllSoundStreams();
+	_musicGameVar = var;
 }
 
 void FullpipeEngine::startSceneTrack() {
-	debug(3, "STUB: FullpipeEngine::startSceneTrack()");
+	// TODO: Finish this
+#ifdef USE_VORBIS
+	if (g_fp->_mixer->isSoundHandleActive(_sceneTrackHandle))
+		return;
+
+	GameVar *musicTrackVar = _musicGameVar->getSubVarByName("MUSIC")->getSubVarByName("TRACKS")->_subVars;
+	if (!musicTrackVar)
+		return;
+
+	char *trackName = musicTrackVar->_varName;
+	Common::File *track = new Common::File();
+	if (!track->open(trackName)) {
+		warning("Could not open %s", trackName);
+		delete track;
+		return;
+	}
+	Audio::RewindableAudioStream *ogg = Audio::makeVorbisStream(track, DisposeAfterUse::YES);
+	g_fp->_mixer->playStream(Audio::Mixer::kMusicSoundType, &_sceneTrackHandle, ogg);
+#endif
 }
 
 void FullpipeEngine::stopAllSounds() {






More information about the Scummvm-git-logs mailing list