aboutsummaryrefslogtreecommitdiff
path: root/engines/sky
diff options
context:
space:
mode:
authorMax Horn2007-02-20 18:50:17 +0000
committerMax Horn2007-02-20 18:50:17 +0000
commit227a080e5b25762dc7a5a942dcfbfdbfcd76c372 (patch)
treec524092b2e9bb023bbaced29e8a245cf2cf6dff5 /engines/sky
parent547858993725af19d2167857c4e7a4a8ba8da185 (diff)
downloadscummvm-rg350-227a080e5b25762dc7a5a942dcfbfdbfcd76c372.tar.gz
scummvm-rg350-227a080e5b25762dc7a5a942dcfbfdbfcd76c372.tar.bz2
scummvm-rg350-227a080e5b25762dc7a5a942dcfbfdbfcd76c372.zip
Patch #1663933 (Kill premix channel) with a few tiny additional tweaks by me
svn-id: r25752
Diffstat (limited to 'engines/sky')
-rw-r--r--engines/sky/music/adlibmusic.cpp4
-rw-r--r--engines/sky/music/adlibmusic.h6
2 files changed, 4 insertions, 6 deletions
diff --git a/engines/sky/music/adlibmusic.cpp b/engines/sky/music/adlibmusic.cpp
index 7df70e4a0f..36c962af5a 100644
--- a/engines/sky/music/adlibmusic.cpp
+++ b/engines/sky/music/adlibmusic.cpp
@@ -39,12 +39,12 @@ AdlibMusic::AdlibMusic(Audio::Mixer *pMixer, Disk *pDisk)
_opl = makeAdlibOPL(_sampleRate);
- _mixer->setupPremix(this);
+ _mixer->playInputStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, false, true);
}
AdlibMusic::~AdlibMusic(void) {
- _mixer->setupPremix(0);
+ _mixer->stopHandle(_soundHandle);
}
void AdlibMusic::premixerCall(int16 *data, uint len) {
diff --git a/engines/sky/music/adlibmusic.h b/engines/sky/music/adlibmusic.h
index 016d43287e..b50157c3b5 100644
--- a/engines/sky/music/adlibmusic.h
+++ b/engines/sky/music/adlibmusic.h
@@ -26,10 +26,7 @@
#include "sky/music/musicbase.h"
#include "sound/audiostream.h"
#include "sound/fmopl.h"
-
-namespace Audio {
- class Mixer;
-}
+#include "sound/mixer.h"
namespace Sky {
@@ -50,6 +47,7 @@ public:
private:
FM_OPL *_opl;
Audio::Mixer *_mixer;
+ Audio::SoundHandle _soundHandle;
uint8 *_initSequence;
uint32 _sampleRate, _nextMusicPoll;
virtual void setupPointers(void);