- Added POGRAM CHANGES to switch Mode via MIDI
- Added Control Change to switch On/Off Pause Light
This commit is contained in:
@@ -83,13 +83,17 @@ void Core1_MIDI_Receiver_Process(void)
|
||||
switch(_Parsing.State)
|
||||
{
|
||||
case WAITING_FOR_COMMAND:
|
||||
if(MIDI_EVENT_FROM_COMMAND(Data) == MIDI_EVENT_NOTE_ON || MIDI_EVENT_FROM_COMMAND(Data) == MIDI_EVENT_NOTE_OFF)
|
||||
if( MIDI_EVENT_FROM_COMMAND(Data) == MIDI_EVENT_NOTE_ON ||
|
||||
MIDI_EVENT_FROM_COMMAND(Data) == MIDI_EVENT_NOTE_OFF ||
|
||||
MIDI_EVENT_FROM_COMMAND(Data) == MIDI_EVENT_CONTROL_CHANGE ||
|
||||
MIDI_EVENT_FROM_COMMAND(Data) == MIDI_EVENT_PROGRAM_CHANGE
|
||||
)
|
||||
{
|
||||
_Parsing.MIDI_Event = MIDI_EVENT_FROM_COMMAND(Data);
|
||||
_Parsing.MIDI_Channel = MIDI_CHANNEL_FROM_COMMAND(Data);
|
||||
_Parsing.State = WAITING_FOR_DATA1;
|
||||
|
||||
Core1_MIDI_Receiver_Issue_Event_On_Off_Received(_Parsing.MIDI_Channel, _Parsing.MIDI_Event);
|
||||
// Core1_MIDI_Receiver_Issue_Event_On_Off_Received(_Parsing.MIDI_Channel, _Parsing.MIDI_Event);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -100,7 +104,14 @@ void Core1_MIDI_Receiver_Process(void)
|
||||
if(IS_MIDI_DATA(Data))
|
||||
{
|
||||
_Parsing.MIDI_Data1 = Data;
|
||||
_Parsing.State = WAITING_FOR_DATA2;
|
||||
|
||||
if(_Parsing.MIDI_Event == MIDI_EVENT_PROGRAM_CHANGE) {
|
||||
_Parsing.State = WAITING_FOR_COMMAND;
|
||||
Core1_MIDI_Receiver_Issue_Full_Event_Received(_Parsing.MIDI_Event, _Parsing.MIDI_Channel, _Parsing.MIDI_Data1, NOTE_UNDEFINED);
|
||||
}
|
||||
else {
|
||||
_Parsing.State = WAITING_FOR_DATA2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -153,10 +164,22 @@ void Core1_MIDI_Receiver_Issue_Data_Received(uint8_t midi_data)
|
||||
|
||||
void Core1_MIDI_Receiver_Issue_Full_Event_Received(uint8_t midi_event, uint8_t midi_channel, uint8_t midi_data1, uint8_t midi_data2)
|
||||
{
|
||||
if(midi_event == MIDI_EVENT_CONTROL_CHANGE) {
|
||||
Core1_Light_Controller_MIDI_Full_CC_Received(midi_event, midi_channel, midi_data1, midi_data2);
|
||||
}
|
||||
else {
|
||||
Core1_Light_Controller_MIDI_Full_Note_Received(midi_event, midi_channel, midi_data1, midi_data2);
|
||||
}
|
||||
switch (midi_event)
|
||||
{
|
||||
case MIDI_EVENT_NOTE_ON:
|
||||
case MIDI_EVENT_NOTE_OFF:
|
||||
Core1_Light_Controller_MIDI_Full_Note_Received(midi_event, midi_channel, midi_data1, midi_data2);
|
||||
break;
|
||||
|
||||
case MIDI_EVENT_PROGRAM_CHANGE:
|
||||
Core1_Light_Controller_MIDI_Full_ProgramChange_Received(midi_event, midi_channel, midi_data1);
|
||||
break;
|
||||
|
||||
case MIDI_EVENT_CONTROL_CHANGE:
|
||||
Core1_Light_Controller_MIDI_Full_ControlChange_Received(midi_event, midi_channel, midi_data1, midi_data2);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user