|
|
|
@@ -73,6 +73,7 @@ struct NativeBridge { |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT || DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
bool midiAvailable; |
|
|
|
bool midiUsed; |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT |
|
|
|
static constexpr const uint32_t kMaxMIDIInputMessageSize = 3; |
|
|
|
@@ -105,6 +106,7 @@ struct NativeBridge { |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT || DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
, midiAvailable(false) |
|
|
|
, midiUsed(false) |
|
|
|
#endif |
|
|
|
{ |
|
|
|
#if DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS > 0 |
|
|
|
@@ -136,8 +138,16 @@ struct NativeBridge { |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
virtual bool isMIDIEnabled() const |
|
|
|
{ |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT || DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
return midiUsed; |
|
|
|
#else |
|
|
|
return false; |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
virtual bool supportsBufferSizeChanges() const { return false; } |
|
|
|
virtual bool isMIDIEnabled() const { return false; } |
|
|
|
virtual bool requestAudioInput() { return false; } |
|
|
|
virtual bool requestBufferSizeChange(uint32_t) { return false; } |
|
|
|
virtual bool requestMIDI() { return false; } |
|
|
|
@@ -238,7 +248,7 @@ struct NativeBridge { |
|
|
|
|
|
|
|
if (audio) |
|
|
|
{ |
|
|
|
#if DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS > 0 |
|
|
|
#if DISTRHO_PLUGIN_NUM_INPUTS + DISTRHO_PLUGIN_NUM_OUTPUTS > 0 |
|
|
|
audioBufferStorage = new float[bufferSize*(DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS)]; |
|
|
|
|
|
|
|
for (uint i=0; i<DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS; ++i) |
|
|
|
@@ -252,6 +262,9 @@ struct NativeBridge { |
|
|
|
|
|
|
|
if (midi) |
|
|
|
{ |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT || DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
midiUsed = true; |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT |
|
|
|
midiInBufferCurrent.createBuffer(kMaxMIDIInputMessageSize * 512); |
|
|
|
midiInBufferPending.createBuffer(kMaxMIDIInputMessageSize * 512); |
|
|
|
@@ -268,12 +281,18 @@ struct NativeBridge { |
|
|
|
delete[] audioBufferStorage; |
|
|
|
audioBufferStorage = nullptr; |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT |
|
|
|
midiInBufferCurrent.deleteBuffer(); |
|
|
|
midiInBufferPending.deleteBuffer(); |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
midiOutBuffer.deleteBuffer(); |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT || DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
if (midiUsed) |
|
|
|
{ |
|
|
|
midiUsed = false; |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_INPUT |
|
|
|
midiInBufferCurrent.deleteBuffer(); |
|
|
|
midiInBufferPending.deleteBuffer(); |
|
|
|
#endif |
|
|
|
#if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT |
|
|
|
midiOutBuffer.deleteBuffer(); |
|
|
|
#endif |
|
|
|
} |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
|