aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/sound.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2014-01-06 07:40:25 +0200
committerFilippos Karapetis2014-01-06 07:40:25 +0200
commitc0a35b3b00528964c759282f853e60eba87c0bc6 (patch)
treedd70cc4e3661293a632f7b58448cb0ec2478af61 /engines/fullpipe/sound.cpp
parentb0b3e918812334426e108fee212df657c8056676 (diff)
downloadscummvm-rg350-c0a35b3b00528964c759282f853e60eba87c0bc6.tar.gz
scummvm-rg350-c0a35b3b00528964c759282f853e60eba87c0bc6.tar.bz2
scummvm-rg350-c0a35b3b00528964c759282f853e60eba87c0bc6.zip
FULLPIPE: Initial implementation of scene music tracks
Diffstat (limited to 'engines/fullpipe/sound.cpp')
-rw-r--r--engines/fullpipe/sound.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 8c6b01fae4..da9e7e3984 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() {