Added SysEx hooks

svn-id: r7579
This commit is contained in:
Jamieson Christian 2003-05-16 21:05:58 +00:00
parent 053e7cb71e
commit 9540497263
2 changed files with 13 additions and 0 deletions

View File

@ -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 *MidiDriver_MPU401::allocateChannel() {
MidiChannel_MPU401 *chan; MidiChannel_MPU401 *chan;
uint i; uint i;

View File

@ -90,6 +90,8 @@ public:
void setTimerCallback(void *timer_param, void (*timer_proc) (void *)); void setTimerCallback(void *timer_param, void (*timer_proc) (void *));
uint32 getBaseTempo(void) { return 0x4A0000; } uint32 getBaseTempo(void) { return 0x4A0000; }
virtual void sysEx_customInstrument (byte channel, uint32 type, byte *instr);
MidiChannel *allocateChannel(); MidiChannel *allocateChannel();
MidiChannel *getPercussionChannel() { return &_midi_channels [9]; } MidiChannel *getPercussionChannel() { return &_midi_channels [9]; }
}; };