aboutsummaryrefslogtreecommitdiff
path: root/scumm/imuse.cpp
diff options
context:
space:
mode:
authorJamieson Christian2002-11-04 18:29:26 +0000
committerJamieson Christian2002-11-04 18:29:26 +0000
commitc10287988edffe5833b444e039348804ee28ddf7 (patch)
tree48b51216cb68a93762144e1fd40ea488535ebae9 /scumm/imuse.cpp
parent2442bce6f376e080e770e5d5380d817f6da6e043 (diff)
downloadscummvm-rg350-c10287988edffe5833b444e039348804ee28ddf7.tar.gz
scummvm-rg350-c10287988edffe5833b444e039348804ee28ddf7.tar.bz2
scummvm-rg350-c10287988edffe5833b444e039348804ee28ddf7.zip
Increased GM channel resource to full spectrum (0-15, instead of 0-8 Base MIDI config); misc. pitchbend cleanups
svn-id: r5403
Diffstat (limited to 'scumm/imuse.cpp')
-rw-r--r--scumm/imuse.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/scumm/imuse.cpp b/scumm/imuse.cpp
index 0c2949375e..8010dee0ed 100644
--- a/scumm/imuse.cpp
+++ b/scumm/imuse.cpp
@@ -608,7 +608,7 @@ class IMuseGM : public IMuseDriver {
IMuseInternal *_se;
OSystem *_system;
MidiDriver *_md;
- MidiChannelGM _midi_channels[9];
+ MidiChannelGM _midi_channels[16];
int16 _midi_pitchbend_last[16];
byte _midi_pitchbend_factor_last[16];
@@ -4550,11 +4550,7 @@ void IMuseGM::midiPitchBend(byte chan, int16 pitchbend)
void IMuseGM::midiPitchBendFactor (byte chan, byte factor) {
if (_midi_pitchbend_factor_last[chan] != factor) {
_midi_pitchbend_factor_last[chan] = factor;
- _md->setPitchBendRange (chan, factor); // For high-level semantic drivers (such as QTMA)
- _md->send(( 0 << 16) | (101 << 8) | (0xB0 | chan));
- _md->send(( 0 << 16) | (100 << 8) | (0xB0 | chan));
- _md->send((factor << 16) | ( 6 << 8) | (0xB0 | chan));
- _md->send(( 0 << 16) | ( 38 << 8) | (0xB0 | chan));
+ _md->setPitchBendRange (chan, factor);
}
}
@@ -4776,13 +4772,15 @@ void IMuseGM::update_pris()
lopri = 255;
lomc = NULL;
for (i = ARRAYSIZE(_midi_channels), mc = _midi_channels;; mc++) {
- if (!mc->_part) {
- lomc = mc;
- break;
- }
- if (mc->_part->_pri_eff <= lopri) {
- lopri = mc->_part->_pri_eff;
- lomc = mc;
+ if (mc->_chan != 9) {
+ if (!mc->_part) {
+ lomc = mc;
+ break;
+ }
+ if (mc->_part->_pri_eff <= lopri) {
+ lopri = mc->_part->_pri_eff;
+ lomc = mc;
+ }
}
if (!--i) {