aboutsummaryrefslogtreecommitdiff
path: root/engines/cine
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/cine
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/cine')
-rw-r--r--engines/cine/sound_driver.cpp4
-rw-r--r--engines/cine/sound_driver.h6
2 files changed, 4 insertions, 6 deletions
diff --git a/engines/cine/sound_driver.cpp b/engines/cine/sound_driver.cpp
index 84b0a1416e..0bc7c8c33f 100644
--- a/engines/cine/sound_driver.cpp
+++ b/engines/cine/sound_driver.cpp
@@ -60,11 +60,11 @@ AdlibSoundDriver::AdlibSoundDriver(Audio::Mixer *mixer)
memset(_channelsVolumeTable, 0, sizeof(_channelsVolumeTable));
memset(_instrumentsTable, 0, sizeof(_instrumentsTable));
initCard();
- _mixer->setupPremix(this);
+ _mixer->playInputStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, false, true);
}
AdlibSoundDriver::~AdlibSoundDriver() {
- _mixer->setupPremix(NULL);
+ _mixer->stopHandle(_soundHandle);
}
void AdlibSoundDriver::setupChannel(int channel, const byte *data, int instrument, int volume) {
diff --git a/engines/cine/sound_driver.h b/engines/cine/sound_driver.h
index 2cb2b5c97f..c6fc571f89 100644
--- a/engines/cine/sound_driver.h
+++ b/engines/cine/sound_driver.h
@@ -27,10 +27,7 @@
#include "sound/audiostream.h"
#include "sound/fmopl.h"
-
-namespace Audio {
- class Mixer;
-}
+#include "sound/mixer.h"
namespace Cine {
@@ -105,6 +102,7 @@ protected:
FM_OPL *_opl;
int _sampleRate;
Audio::Mixer *_mixer;
+ Audio::SoundHandle _soundHandle;
byte _vibrato;
int _channelsVolumeTable[4];