diff options
Diffstat (limited to 'engines/sci/sfx/softseq')
-rw-r--r-- | engines/sci/sfx/softseq/adlib.cpp | 13 | ||||
-rw-r--r-- | engines/sci/sfx/softseq/adlib.h | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/engines/sci/sfx/softseq/adlib.cpp b/engines/sci/sfx/softseq/adlib.cpp index 15e1ed9089..1623520ea5 100644 --- a/engines/sci/sfx/softseq/adlib.cpp +++ b/engines/sci/sfx/softseq/adlib.cpp @@ -629,6 +629,19 @@ bool MidiDriver_Adlib::loadResource(const byte *data, uint size) { return true; } +int32 MidiDriver_Adlib::property(int prop, int32 param) { + switch(prop) { + case MIDI_PROP_MASTER_VOLUME: + if(param != -1) + _masterVolume = param; + return _masterVolume; + default: + break; + } + return -1; +} + + int MidiPlayer_Adlib::open(ResourceManager *resMan) { assert(resMan != NULL); diff --git a/engines/sci/sfx/softseq/adlib.h b/engines/sci/sfx/softseq/adlib.h index 771bdc3927..fccf0a2c94 100644 --- a/engines/sci/sfx/softseq/adlib.h +++ b/engines/sci/sfx/softseq/adlib.h @@ -36,7 +36,7 @@ public: }; MidiDriver_Adlib(Audio::Mixer *mixer) : MidiDriver_Emulated(mixer), _playSwitch(true), _masterVolume(15), _rhythmKeyMap(0), _opl(0) { } - ~MidiDriver_Adlib() { } + virtual ~MidiDriver_Adlib() { } // MidiDriver int open(bool isSCI0); @@ -55,6 +55,7 @@ public: void setVolume(byte volume); void playSwitch(bool play); bool loadResource(const byte *data, uint size); + virtual int32 property(int prop, int32 param); private: enum ChannelID { |