diff options
author | Johannes Schickel | 2011-07-10 18:06:33 +0200 |
---|---|---|
committer | Johannes Schickel | 2011-07-10 18:06:33 +0200 |
commit | adb2bbbb5902f0cb9f9c6ca6db81d57b723e1a23 (patch) | |
tree | c95a3f16369821739e9e3eff26227568449d36a9 | |
parent | 5edb6f9e4a331049e49c04441aa36b67053f605c (diff) | |
download | scummvm-rg350-adb2bbbb5902f0cb9f9c6ca6db81d57b723e1a23.tar.gz scummvm-rg350-adb2bbbb5902f0cb9f9c6ca6db81d57b723e1a23.tar.bz2 scummvm-rg350-adb2bbbb5902f0cb9f9c6ca6db81d57b723e1a23.zip |
SCUMM: Properly implement volume controler for PC Speaker output.
-rw-r--r-- | engines/scumm/imuse/pcspk.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/scumm/imuse/pcspk.cpp b/engines/scumm/imuse/pcspk.cpp index 6eaf7ad168..1b8afcabe5 100644 --- a/engines/scumm/imuse/pcspk.cpp +++ b/engines/scumm/imuse/pcspk.cpp @@ -307,8 +307,15 @@ void PcSpkDriver::MidiChannel_PcSpk::controlChange(byte control, byte value) { case 7: _tl = value; - // TODO: Properly implement this - _owner->updateNote(); + if (_owner->_activeChannel == this) { + if (_tl == 0) { + _owner->_lastActiveChannel = 0; + _owner->_lastActiveOut = 0; + _owner->_pcSpk.stop(); + } else { + _owner->output((_out.note << 7) + _pitchBend + _out.unk60 + _out.unkE); + } + } break; case 64: |