diff options
Diffstat (limited to 'engines/prince/music.cpp')
-rw-r--r-- | engines/prince/music.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/engines/prince/music.cpp b/engines/prince/music.cpp index 6d208e292a..ca72e9caa0 100644 --- a/engines/prince/music.cpp +++ b/engines/prince/music.cpp @@ -20,6 +20,7 @@ * */ +#include "prince/prince.h" #include "prince/music.h" #include "prince/musNum.h" @@ -207,4 +208,26 @@ void MusicPlayer::sendToChannel(byte channel, uint32 b) { _channelsTable[channel]->send(b); } +bool PrinceEngine::loadMusic(int musNumber) { + uint8 midiNumber = MusicPlayer::_musRoomTable[musNumber]; + if (midiNumber) { + if (midiNumber != 100) { + if (_currentMidi != midiNumber) { + _currentMidi = midiNumber; + const char *musName = MusicPlayer::_musTable[_currentMidi]; + _midiPlayer->loadMidi(musName); + } + } + } else { + stopMusic(); + } + return true; +} + +void PrinceEngine::stopMusic() { + if (_midiPlayer->isPlaying()) { + _midiPlayer->stop(); + } +} + } // End of namespace Prince |