aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2009-08-18 15:31:26 +0000
committerJohannes Schickel2009-08-18 15:31:26 +0000
commitb33b90ecd0468c58b93e13ff80bf6939e97ed7a6 (patch)
tree1badb8720dc0022a1c5fcf76a9232b43766c1ada
parentdb0cd620f6f5766b6287bb0f0aa1ac9c866c4cba (diff)
downloadscummvm-rg350-b33b90ecd0468c58b93e13ff80bf6939e97ed7a6.tar.gz
scummvm-rg350-b33b90ecd0468c58b93e13ff80bf6939e97ed7a6.tar.bz2
scummvm-rg350-b33b90ecd0468c58b93e13ff80bf6939e97ed7a6.zip
Made AGOS, DRASCULA, GOB, GROOVIE, MADE, SCUMM and TINSEL properly stop CD audio playback on engine quit. (This only problem affected playback from CD, not from ripped audio files)
svn-id: r43512
-rw-r--r--engines/agos/agos.cpp2
-rw-r--r--engines/drascula/drascula.cpp1
-rw-r--r--engines/gob/sound/cdrom.cpp1
-rw-r--r--engines/groovie/music.cpp4
-rw-r--r--engines/groovie/music.h2
-rw-r--r--engines/made/made.cpp2
-rw-r--r--engines/scumm/sound.cpp2
-rw-r--r--engines/tinsel/tinsel.cpp1
8 files changed, 12 insertions, 3 deletions
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp
index 07b5c12247..ee2ef98c42 100644
--- a/engines/agos/agos.cpp
+++ b/engines/agos/agos.cpp
@@ -899,7 +899,7 @@ AGOSEngine::~AGOSEngine() {
if (_driver)
delete _driver;
- AudioCD.destroy();
+ AudioCD.stop();
for (uint i = 0; i < _itemHeap.size(); i++) {
delete[] _itemHeap[i];
diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp
index 2e3db3478e..3920f8a56c 100644
--- a/engines/drascula/drascula.cpp
+++ b/engines/drascula/drascula.cpp
@@ -106,6 +106,7 @@ DrasculaEngine::DrasculaEngine(OSystem *syst, const DrasculaGameDescription *gam
DrasculaEngine::~DrasculaEngine() {
delete _rnd;
+ stopSound();
free(_charMap);
free(_itemLocations);
diff --git a/engines/gob/sound/cdrom.cpp b/engines/gob/sound/cdrom.cpp
index 4d6a7ec966..68cbb1b9e2 100644
--- a/engines/gob/sound/cdrom.cpp
+++ b/engines/gob/sound/cdrom.cpp
@@ -46,6 +46,7 @@ CDROM::CDROM() {
}
CDROM::~CDROM() {
+ stop();
}
void CDROM::readLIC(DataStream &stream) {
diff --git a/engines/groovie/music.cpp b/engines/groovie/music.cpp
index 797290a6f3..a92beee17e 100644
--- a/engines/groovie/music.cpp
+++ b/engines/groovie/music.cpp
@@ -38,6 +38,10 @@ MusicPlayer::MusicPlayer(GroovieEngine *vm) :
_prevCDtrack(0), _backgroundDelay(0) {
}
+MusicPlayer::~MusicPlayer() {
+ AudioCD.stop();
+}
+
void MusicPlayer::playSong(uint32 fileref) {
Common::StackLock lock(_mutex);
diff --git a/engines/groovie/music.h b/engines/groovie/music.h
index 9909c8a185..fb1ddfe9c3 100644
--- a/engines/groovie/music.h
+++ b/engines/groovie/music.h
@@ -37,7 +37,7 @@ namespace Groovie {
class MusicPlayer {
public:
MusicPlayer(GroovieEngine *vm);
- virtual ~MusicPlayer() {}
+ virtual ~MusicPlayer();
void playSong(uint32 fileref);
void setBackgroundSong(uint32 fileref);
diff --git a/engines/made/made.cpp b/engines/made/made.cpp
index c83f7aaf02..e826e3788a 100644
--- a/engines/made/made.cpp
+++ b/engines/made/made.cpp
@@ -127,6 +127,8 @@ MadeEngine::MadeEngine(OSystem *syst, const MadeGameDescription *gameDesc) : Eng
}
MadeEngine::~MadeEngine() {
+ AudioCD.stop();
+
delete _rnd;
delete _pmvPlayer;
delete _res;
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 528cceb0cc..524dbf70ea 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -86,7 +86,7 @@ Sound::Sound(ScummEngine *parent, Audio::Mixer *mixer)
Sound::~Sound() {
stopCDTimer();
- AudioCD.destroy();
+ AudioCD.stop();
delete _sfxFile;
}
diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp
index 5f056351b6..7586c5e749 100644
--- a/engines/tinsel/tinsel.cpp
+++ b/engines/tinsel/tinsel.cpp
@@ -888,6 +888,7 @@ TinselEngine::~TinselEngine() {
if (MoviePlaying())
FinishBMV();
+ AudioCD.stop();
delete _sound;
delete _midiMusic;
delete _pcmMusic;