aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/music.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/prince/music.cpp')
-rw-r--r--engines/prince/music.cpp23
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