diff options
author | Jamieson Christian | 2003-05-16 21:05:58 +0000 |
---|---|---|
committer | Jamieson Christian | 2003-05-16 21:05:58 +0000 |
commit | 954049726374bd49ec226904268e8b8360eb0617 (patch) | |
tree | eb6d24eb89e67c60c205f66dd35a2f89cafe6f81 /sound | |
parent | 053e7cb71edb02abc9e260ff750a57ce337f7089 (diff) | |
download | scummvm-rg350-954049726374bd49ec226904268e8b8360eb0617.tar.gz scummvm-rg350-954049726374bd49ec226904268e8b8360eb0617.tar.bz2 scummvm-rg350-954049726374bd49ec226904268e8b8360eb0617.zip |
Added SysEx hooks
svn-id: r7579
Diffstat (limited to 'sound')
-rw-r--r-- | sound/mpu401.cpp | 11 | ||||
-rw-r--r-- | sound/mpu401.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/sound/mpu401.cpp b/sound/mpu401.cpp index 6c946ff686..3aab56e05d 100644 --- a/sound/mpu401.cpp +++ b/sound/mpu401.cpp @@ -74,6 +74,17 @@ MidiDriver_MPU401::MidiDriver_MPU401() : MidiDriver() { } } +void MidiDriver_MPU401::sysEx_customInstrument (byte channel, uint32 type, byte *instr) { + if (type != 'ROL ') + return; + + // The SysEx stream for a Roland MT-32 instrument definition starts with + // the Roland manufacturer ID. So we just need to substitute the appropriate + // device # (i.e. channel), and go. + instr[1] = channel; + sysEx (instr, 253); +} + MidiChannel *MidiDriver_MPU401::allocateChannel() { MidiChannel_MPU401 *chan; uint i; diff --git a/sound/mpu401.h b/sound/mpu401.h index 7c9450e613..3f4cfecfee 100644 --- a/sound/mpu401.h +++ b/sound/mpu401.h @@ -90,6 +90,8 @@ public: void setTimerCallback(void *timer_param, void (*timer_proc) (void *)); uint32 getBaseTempo(void) { return 0x4A0000; } + virtual void sysEx_customInstrument (byte channel, uint32 type, byte *instr); + MidiChannel *allocateChannel(); MidiChannel *getPercussionChannel() { return &_midi_channels [9]; } }; |