void FullpipeEngine::playTrack(GameVar *sceneVar, const char *name, bool delayed) { warning("STUB: FullpipeEngine::playTrack(var, %s, %d)", name, delayed); #if 0 stopSoundStream2(); if (soundStream3) FSOUND_Stream_Stop(soundStream4); #endif if (_musicLocal) stopAllSoundStreams(); GameVar *var = sceneVar->getSubVarByName(name); memset(_sceneTracks, 0, sizeof(_sceneTracks)); _numSceneTracks = 0; _sceneTrackHasSequence = false; if (!var) return; _musicGameVar = var; GameVar *tr = var->getSubVarByName("TRACKS"); if (tr) { GameVar *sub = tr->_subVars; while (sub) { if (_musicAllowed & sub->_value.intValue) { Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName, 260); _numSceneTracks++; } sub = sub->_nextVarObj; } } _musicMinDelay = var->getSubVarAsInt("MINDELAY"); _musicMaxDelay = var->getSubVarAsInt("MAXDELAY"); _musicLocal = var->getSubVarAsInt("LOCAL"); GameVar *seq = var->getSubVarByName("SEQUENCE"); if (seq) { _sceneTrackHasSequence = true; Common::strlcpy(_trackName, seq->_value.stringValue, 2600); } if (delayed) { if (_sceneTrackIsPlaying && _numSceneTracks == 1) { if (strcmp(_sceneTracksCurrentTrack, _sceneTracks[0])) stopAllSoundStreams(); } _trackStartDelay = var->getSubVarAsInt("STARTDELAY"); } }
void FullpipeEngine::setSceneMusicParameters(GameVar *gvar) { warning("STUB: FullpipeEngine::setSceneMusicParameters()"); #if 0 stopSoundStream2(); if (soundStream3) FSOUND_Stream_Stop(soundStream4); #endif if (_musicLocal) stopAllSoundStreams(); GameVar *var = gvar->getSubVarByName("MUSIC"); memset(_sceneTracks, 0, sizeof(_sceneTracks)); _numSceneTracks = 0; _sceneTrackHasSequence = false; if (!var) return; _musicGameVar = var; GameVar *tr = var->getSubVarByName("TRACKS"); if (tr) { GameVar *sub = tr->_subVars; while (sub) { if (_musicAllowed & sub->_value.intValue) { Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName, 260); _numSceneTracks++; } sub = sub->_nextVarObj; } } _musicMinDelay = var->getSubVarAsInt("MINDELAY"); _musicMaxDelay = var->getSubVarAsInt("MAXDELAY"); _musicLocal = var->getSubVarAsInt("LOCAL"); GameVar *seq = var->getSubVarByName("SEQUENCE"); if (seq) { _sceneTrackHasSequence = true; Common::strlcpy(_trackName, seq->_value.stringValue, 2600); } if (_musicLocal) stopAllSoundStreams(); if (!_sceneTrackIsPlaying || _musicLocal) _trackStartDelay = var->getSubVarAsInt("STARTDELAY"); }
void FullpipeEngine::cleanup() { //cleanRecorder(); clearMessageHandlers(); clearMessages(); _globalMessageQueueList->compact(); for (uint i = 0; i < _globalMessageQueueList->size(); i++) delete (*_globalMessageQueueList)[i]; stopAllSoundStreams(); delete _origFormat; }
void FullpipeEngine::startSoundStream1(char *trackName) { warning("STUB: FullpipeEngine::startSoundStream1(%s)", trackName); stopAllSoundStreams(); #ifdef USE_VORBIS if (_mixer->isSoundHandleActive(*_sceneTrackHandle)) return; 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); _mixer->playStream(Audio::Mixer::kMusicSoundType, _sceneTrackHandle, ogg); #endif }