VST3 MIDI SysEx , Control change and channel Mode support

[1] This does not work:, there is no Sysex transmitted:

// Standard Sysex Device Inquiry command
Event midiEvent2 = { 0 };
uint8 buf[6] = { 0xF0, 0x7E, 0x00, 0x06, 0x01, 0xF7 };
midiEvent2.type = Event::kDataEvent;
midiEvent2.data.type = midiEvent.data.kMidiSysEx;
midiEvent2.data.size = 6;
midiEvent2.data.bytes = (const uint8*)buf;
outputEvents->addEvent(midiEvent2);

Replacing this code with a MidiNoteOn or Off, works.

[2] Would it be possible to support CC e.g;

struct ControlChange
{
int16 channel; ///< channel index in event bus
int16 controller; /// 0 -127
int16 value; // 0 -127
};


struct ChannelMode
{
int16 channel; ///< channel index in event bus
int16 controller; /// 0 -127
int16 value; // 0 -127
};

and

enum EventTypes
{
kNoteOnEvent = 0, ///< is \ref NoteOnEvent
kNoteOffEvent, ///< is \ref NoteOffEvent
kDataEvent, ///< is \ref DataEvent
kPolyPressureEvent, ///< is \ref PolyPressureEvent
kNoteExpressionValueEvent, ///< is \ref NoteExpressionValueEvent
kNoteExpressionTextEvent, ///< is \ref NoteExpressionTextEvent
kChordEvent, ///< is \ref ChordEvent
kScaleEvent, ///< is \ref ScaleEvent
// NEW:
kControlChange. ///
kChannelMode ///
};

Both on receiving and transmission ?

This would provide an easy support for CC/NRPN/RPN etc. Automation playback/recording still would use the parameters, but the VST can send the applicable MIDI messages upon receiving the parameter change.

[1] should work with Cubase in 2 directions as input and as output

[2] not yet planned…