TOLTECS: Fixed music looping

This commit is contained in:
Filippos Karapetis 2011-10-22 12:41:51 +00:00 committed by Willem Jan Palenstijn
parent 14cbfd4607
commit 1bddee1e73
3 changed files with 5 additions and 10 deletions

View File

@ -50,7 +50,7 @@ void MusicPlayer::send(uint32 b) {
Audio::MidiPlayer::send(b);
}
void MusicPlayer::playMIDI(const byte *data, uint32 size, MusicFlags flags) {
void MusicPlayer::playMIDI(const byte *data, uint32 size, bool loop) {
Common::StackLock lock(_mutex);
stopAndClear();
@ -76,7 +76,7 @@ void MusicPlayer::playMIDI(const byte *data, uint32 size, MusicFlags flags) {
setVolume(127);
_isLooping = flags & MUSIC_LOOP;
_isLooping = loop;
_isPlaying = true;
} else {
delete parser;

View File

@ -29,16 +29,11 @@
namespace Toltecs {
enum MusicFlags {
MUSIC_NORMAL = 0,
MUSIC_LOOP = 1
};
class MusicPlayer : public Audio::MidiPlayer {
public:
MusicPlayer(bool isGM = true);
void playMIDI(const byte *data, uint32 size, MusicFlags flags = MUSIC_NORMAL);
void playMIDI(const byte *data, uint32 size, bool loop = false);
void pause();
void resume();
void stopAndClear();

View File

@ -1050,8 +1050,8 @@ void ScriptInterpreter::sfStartSequence() {
_vm->_arc->closeResource();
if (!memcmp(data, "FORM", 4)) {
// TODO: Looping flag
_vm->_musicPlayer->playMIDI(data, resourceSize);
// TODO: It seems that music is always looping?
_vm->_musicPlayer->playMIDI(data, resourceSize, true);
} else {
// TODO: Where does this occur? Are these SMF MIDI files?
warning("sfStartSequence: resource %d isn't XMIDI", sequenceResIndex);