diff options
Diffstat (limited to 'dolmetsch-ctl/dolmetsch-ctl.c')
-rw-r--r-- | dolmetsch-ctl/dolmetsch-ctl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/dolmetsch-ctl/dolmetsch-ctl.c b/dolmetsch-ctl/dolmetsch-ctl.c index bb56350..afc74b2 100644 --- a/dolmetsch-ctl/dolmetsch-ctl.c +++ b/dolmetsch-ctl/dolmetsch-ctl.c @@ -76,6 +76,7 @@ void EVENT_USB_Device_ControlRequest(void) #include "eventqueue.h" #define MIDI_COMMAND_CONTROL_CHANGE 0xB0 +#define MIDI_COMMAND_PROGRAM_CHANGE 0xC0 static void process_incoming_midi(void) { @@ -84,6 +85,12 @@ static void process_incoming_midi(void) uint8_t cmd = ReceivedMIDIEvent.Data1 & 0xF0; uint8_t note = ReceivedMIDIEvent.Data2; uint8_t value = ReceivedMIDIEvent.Data3 & 0x7F; + if(cmd == MIDI_COMMAND_PROGRAM_CHANGE) { + switch(note) { + case 127: reset2bootloader(); + } + continue; + } if((note >= KEYPAD_MIDI_NOTE_OFFSET && note < KEYPAD_MIDI_NOTE_OFFSET + KEYPAD_NUM_KEYS) || // KEYPAD note == KEYPAD_MIDI_NOTE_ALL) { if(cmd == MIDI_COMMAND_CONTROL_CHANGE) { |