[Scummvm-cvs-logs] CVS: scummvm/saga music.cpp,1.16,1.17
Torbj?rn Andersson
eriktorbjorn at users.sourceforge.net
Mon May 31 01:47:03 CEST 2004
Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17461
Modified Files:
music.cpp
Log Message:
Make sure music is unloaded and the parser object deleted before starting a
new piece of music.
Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/music.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- music.cpp 29 May 2004 21:04:44 -0000 1.16
+++ music.cpp 31 May 2004 08:46:36 -0000 1.17
@@ -48,14 +48,14 @@
47, 117, 127, 118, 118, 116, 115, 119, 115, 112, 55, 124, 123, 0, 14, 117 // 7x
};
-MusicPlayer::MusicPlayer(MidiDriver *driver) : _driver(driver), _looping(false), _isPlaying(false) {
+MusicPlayer::MusicPlayer(MidiDriver *driver) : _parser(0), _driver(driver), _looping(false), _isPlaying(false) {
memset(_channel, 0, sizeof(_channel));
this->open();
}
MusicPlayer::~MusicPlayer() {
_driver->setTimerCallback(NULL, NULL);
- _parser->unloadMusic();
+ stopMusic();
this->close();
}
@@ -145,7 +145,10 @@
void MusicPlayer::stopMusic() {
_isPlaying = false;
- _parser->unloadMusic();
+ if (_parser) {
+ _parser->unloadMusic();
+ delete _parser;
+ }
}
Music::Music(MidiDriver *driver, int enabled) : _enabled(enabled) {
@@ -216,6 +219,8 @@
}
}
+ _player->stopMusic();
+
// FIXME: Is resource_data ever freed?
if (f_midi.isOpen()) {
More information about the Scummvm-git-logs
mailing list