From 2e5d868f6dff830075b5bc7bd669915044577c6e Mon Sep 17 00:00:00 2001 From: Oli Larkin Date: Fri, 14 Dec 2018 17:27:50 +0000 Subject: [PATCH] BREAKING: PLUG_DOES_MIDI -> PLUG_DOES_MIDI_IN & PLUG_DOES_MIDI_OUT --- .../scripts/prepare_resources-ios.py | 2 +- .../scripts/prepare_resources-mac.py | 2 +- .../IPlugControls/scripts/validate_audiounit.sh | 4 ++-- Examples/IPlugEffect/config.h | 3 ++- .../IPlugEffect/config/IPlugEffect-mac.xcconfig | 2 +- .../IPlugEffect/scripts/prepare_resources-ios.py | 2 +- .../IPlugEffect/scripts/prepare_resources-mac.py | 2 +- .../IPlugEffect/scripts/validate_audiounit.sh | 4 ++-- Examples/IPlugFaustDSP/config.h | 3 ++- .../scripts/prepare_resources-ios.py | 2 +- .../scripts/prepare_resources-mac.py | 2 +- .../IPlugFaustDSP/scripts/validate_audiounit.sh | 4 ++-- IPlug/AAX/IPlugAAX.cpp | 2 +- IPlug/AAX/IPlugAAX_Describe.cpp | 4 ++-- IPlug/APP/IPlugAPP.cpp | 4 ++-- IPlug/AUv2/IPlugAU.cpp | 4 ++-- IPlug/AUv2/IPlugAU.r | 2 +- IPlug/IPlugProcessor.cpp | 3 ++- IPlug/IPlugProcessor.h | 9 +++++++-- IPlug/IPlugStructs.h | 9 ++++++--- IPlug/IPlug_include_in_plug_src.h | 4 ++-- IPlug/VST2/IPlugVST2.cpp | 16 +++++++++++----- IPlug/VST3/IPlugVST3.cpp | 11 +++++------ IPlug/VST3/IPlugVST3_Processor.cpp | 12 +++++------- Scripts/parse_config.py | 3 ++- Tests/IGraphicsTest/config.h | 3 ++- .../scripts/prepare_resources-ios.py | 2 +- .../scripts/prepare_resources-mac.py | 2 +- .../IGraphicsTest/scripts/validate_audiounit.sh | 4 ++-- 29 files changed, 71 insertions(+), 55 deletions(-) diff --git a/Examples/IPlugControls/scripts/prepare_resources-ios.py b/Examples/IPlugControls/scripts/prepare_resources-ios.py index 93e1bf8f79..bd1875106e 100755 --- a/Examples/IPlugControls/scripts/prepare_resources-ios.py +++ b/Examples/IPlugControls/scripts/prepare_resources-ios.py @@ -34,7 +34,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Examples/IPlugControls/scripts/prepare_resources-mac.py b/Examples/IPlugControls/scripts/prepare_resources-mac.py index 3a35d484b0..b3757c8f38 100755 --- a/Examples/IPlugControls/scripts/prepare_resources-mac.py +++ b/Examples/IPlugControls/scripts/prepare_resources-mac.py @@ -98,7 +98,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Examples/IPlugControls/scripts/validate_audiounit.sh b/Examples/IPlugControls/scripts/validate_audiounit.sh index 92307df13c..c4c9485b9e 100755 --- a/Examples/IPlugControls/scripts/validate_audiounit.sh +++ b/Examples/IPlugControls/scripts/validate_audiounit.sh @@ -20,8 +20,8 @@ PMID=${PMID//\'} PII=`echo | grep PLUG_IS_INST ../config.h` PII=${PII//\#define PLUG_IS_INST } -PDM=`echo | grep PLUG_DOES_MIDI ../config.h` -PDM=${PDM//\#define PLUG_DOES_MIDI } +PDM=`echo | grep PLUG_DOES_MIDI_IN ../config.h` +PDM=${PDM//\#define PLUG_DOES_MIDI_IN } TYPE=aufx diff --git a/Examples/IPlugEffect/config.h b/Examples/IPlugEffect/config.h index 09ce14eaba..bf8bfd9ac0 100644 --- a/Examples/IPlugEffect/config.h +++ b/Examples/IPlugEffect/config.h @@ -18,7 +18,8 @@ #define PLUG_LATENCY 0 #define PLUG_IS_INSTRUMENT 0 #define PLUG_IS_MFX 0 -#define PLUG_DOES_MIDI 1 +#define PLUG_DOES_MIDI_IN 1 +#define PLUG_DOES_MIDI_OUT 0 #define PLUG_DOES_STATE_CHUNKS 0 #define PLUG_HAS_UI 1 #define PLUG_WIDTH 600 diff --git a/Examples/IPlugEffect/config/IPlugEffect-mac.xcconfig b/Examples/IPlugEffect/config/IPlugEffect-mac.xcconfig index 763dce6683..1d580c03ed 100644 --- a/Examples/IPlugEffect/config/IPlugEffect-mac.xcconfig +++ b/Examples/IPlugEffect/config/IPlugEffect-mac.xcconfig @@ -18,7 +18,7 @@ EXTRA_PLUGIN_DEFS = //SWELL_NO_POSTMESSAGE //------------------------------ // PREPROCESSOR MACROS -EXTRA_ALL_DEFS = OBJC_PREFIX=vIPlugEffect SWELL_APP_PREFIX=Swell_vIPlugEffect IGRAPHICS_NANOVG IGRAPHICS_GL2 +EXTRA_ALL_DEFS = OBJC_PREFIX=vIPlugEffect SWELL_APP_PREFIX=Swell_vIPlugEffect IGRAPHICS_NANOVG IGRAPHICS_METAL //EXTRA_DEBUG_DEFS = //EXTRA_RELEASE_DEFS = //EXTRA_TRACER_DEFS = diff --git a/Examples/IPlugEffect/scripts/prepare_resources-ios.py b/Examples/IPlugEffect/scripts/prepare_resources-ios.py index 93e1bf8f79..bd1875106e 100755 --- a/Examples/IPlugEffect/scripts/prepare_resources-ios.py +++ b/Examples/IPlugEffect/scripts/prepare_resources-ios.py @@ -34,7 +34,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Examples/IPlugEffect/scripts/prepare_resources-mac.py b/Examples/IPlugEffect/scripts/prepare_resources-mac.py index 3a35d484b0..b3757c8f38 100755 --- a/Examples/IPlugEffect/scripts/prepare_resources-mac.py +++ b/Examples/IPlugEffect/scripts/prepare_resources-mac.py @@ -98,7 +98,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Examples/IPlugEffect/scripts/validate_audiounit.sh b/Examples/IPlugEffect/scripts/validate_audiounit.sh index 92307df13c..c4c9485b9e 100755 --- a/Examples/IPlugEffect/scripts/validate_audiounit.sh +++ b/Examples/IPlugEffect/scripts/validate_audiounit.sh @@ -20,8 +20,8 @@ PMID=${PMID//\'} PII=`echo | grep PLUG_IS_INST ../config.h` PII=${PII//\#define PLUG_IS_INST } -PDM=`echo | grep PLUG_DOES_MIDI ../config.h` -PDM=${PDM//\#define PLUG_DOES_MIDI } +PDM=`echo | grep PLUG_DOES_MIDI_IN ../config.h` +PDM=${PDM//\#define PLUG_DOES_MIDI_IN } TYPE=aufx diff --git a/Examples/IPlugFaustDSP/config.h b/Examples/IPlugFaustDSP/config.h index 64e07a038d..f50c1473f9 100644 --- a/Examples/IPlugFaustDSP/config.h +++ b/Examples/IPlugFaustDSP/config.h @@ -18,7 +18,8 @@ #define PLUG_LATENCY 0 #define PLUG_IS_INSTRUMENT 0 #define PLUG_IS_MFX 0 -#define PLUG_DOES_MIDI 1 +#define PLUG_DOES_MIDI_IN 1 +#define PLUG_DOES_MIDI_OUT 0 #define PLUG_DOES_STATE_CHUNKS 0 #define PLUG_HAS_UI 1 #define PLUG_WIDTH 600 diff --git a/Examples/IPlugFaustDSP/scripts/prepare_resources-ios.py b/Examples/IPlugFaustDSP/scripts/prepare_resources-ios.py index 93e1bf8f79..bd1875106e 100755 --- a/Examples/IPlugFaustDSP/scripts/prepare_resources-ios.py +++ b/Examples/IPlugFaustDSP/scripts/prepare_resources-ios.py @@ -34,7 +34,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Examples/IPlugFaustDSP/scripts/prepare_resources-mac.py b/Examples/IPlugFaustDSP/scripts/prepare_resources-mac.py index f7da90e645..9441e33094 100755 --- a/Examples/IPlugFaustDSP/scripts/prepare_resources-mac.py +++ b/Examples/IPlugFaustDSP/scripts/prepare_resources-mac.py @@ -96,7 +96,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Examples/IPlugFaustDSP/scripts/validate_audiounit.sh b/Examples/IPlugFaustDSP/scripts/validate_audiounit.sh index 92307df13c..c4c9485b9e 100755 --- a/Examples/IPlugFaustDSP/scripts/validate_audiounit.sh +++ b/Examples/IPlugFaustDSP/scripts/validate_audiounit.sh @@ -20,8 +20,8 @@ PMID=${PMID//\'} PII=`echo | grep PLUG_IS_INST ../config.h` PII=${PII//\#define PLUG_IS_INST } -PDM=`echo | grep PLUG_DOES_MIDI ../config.h` -PDM=${PDM//\#define PLUG_DOES_MIDI } +PDM=`echo | grep PLUG_DOES_MIDI_IN ../config.h` +PDM=${PDM//\#define PLUG_DOES_MIDI_IN } TYPE=aufx diff --git a/IPlug/AAX/IPlugAAX.cpp b/IPlug/AAX/IPlugAAX.cpp index 801aa7195f..1d50f51f89 100644 --- a/IPlug/AAX/IPlugAAX.cpp +++ b/IPlug/AAX/IPlugAAX.cpp @@ -265,7 +265,7 @@ void IPlugAAX::RenderAudio(AAX_SIPlugRenderInfo* pRenderInfo) Controller()->GetInputStemFormat(&inFormat); Controller()->GetOutputStemFormat(&outFormat); - if (DoesMIDI()) + if (DoesMIDIIn()) { AAX_IMIDINode* pMidiIn = pRenderInfo->mInputNode; AAX_CMidiStream* pMidiBuffer = pMidiIn->GetNodeBuffer(); diff --git a/IPlug/AAX/IPlugAAX_Describe.cpp b/IPlug/AAX/IPlugAAX_Describe.cpp index 0a3fd8bdd2..caf646496d 100755 --- a/IPlug/AAX/IPlugAAX_Describe.cpp +++ b/IPlug/AAX/IPlugAAX_Describe.cpp @@ -156,11 +156,11 @@ AAX_Result GetEffectDescriptions(AAX_ICollection* pC) setupInfo.mAudioSuiteID = aaxTypeIDsAudioSuite[configIdx]; #endif setupInfo.mCanBypass = true; - setupInfo.mNeedsInputMIDI = PLUG_DOES_MIDI; + setupInfo.mNeedsInputMIDI = PLUG_DOES_MIDI_IN; setupInfo.mInputMIDINodeName = PLUG_NAME" Midi"; setupInfo.mInputMIDIChannelMask = 0x0001; - setupInfo.mNeedsOutputMIDI = PLUG_DOES_MIDI; + setupInfo.mNeedsOutputMIDI = PLUG_DOES_MIDI_OUT; setupInfo.mOutputMIDINodeName = PLUG_NAME" Midi"; setupInfo.mOutputMIDIChannelMask = 0x0001; diff --git a/IPlug/APP/IPlugAPP.cpp b/IPlug/APP/IPlugAPP.cpp index 6cb97d5c40..38e3322311 100644 --- a/IPlug/APP/IPlugAPP.cpp +++ b/IPlug/APP/IPlugAPP.cpp @@ -55,7 +55,7 @@ void IPlugAPP::ResizeGraphics(int viewWidth, int viewHeight, float scale) bool IPlugAPP::SendMidiMsg(const IMidiMsg& msg) { - if (DoesMIDI() && mAppHost->mMidiOut) + if (DoesMIDIOut() && mAppHost->mMidiOut) { //TODO: midi out channel // uint8_t status; @@ -79,7 +79,7 @@ bool IPlugAPP::SendMidiMsg(const IMidiMsg& msg) bool IPlugAPP::SendSysEx(ISysEx& msg) { - if (DoesMIDI() && mAppHost->mMidiOut) + if (DoesMIDIOut() && mAppHost->mMidiOut) { //TODO: midi out channel diff --git a/IPlug/AUv2/IPlugAU.cpp b/IPlug/AUv2/IPlugAU.cpp index aa58de8d4f..6a0fc1c932 100644 --- a/IPlug/AUv2/IPlugAU.cpp +++ b/IPlug/AUv2/IPlugAU.cpp @@ -2399,7 +2399,7 @@ OSStatus IPlugAU::DoReset(IPlugAU* _this) //static OSStatus IPlugAU::DoMIDIEvent(IPlugAU* _this, UInt32 inStatus, UInt32 inData1, UInt32 inData2, UInt32 inOffsetSampleFrame) { - if(_this->DoesMIDI()) + if(_this->DoesMIDIIn()) { IMidiMsg msg; msg.mStatus = inStatus; @@ -2417,7 +2417,7 @@ OSStatus IPlugAU::DoMIDIEvent(IPlugAU* _this, UInt32 inStatus, UInt32 inData1, U //static OSStatus IPlugAU::DoSysEx(IPlugAU* _this, const UInt8* inData, UInt32 inLength) { - if(_this->DoesMIDI()) + if(_this->DoesMIDIIn()) { ISysEx sysex; sysex.mData = inData; diff --git a/IPlug/AUv2/IPlugAU.r b/IPlug/AUv2/IPlugAU.r index 98fd3bd3dc..5d7f4b47f7 100644 --- a/IPlug/AUv2/IPlugAU.r +++ b/IPlug/AUv2/IPlugAU.r @@ -95,7 +95,7 @@ resource 'thng' (RES_ID, RES_NAME) { kAudioUnitType_MusicDevice, #elif PLUG_IS_MFX 'aumi', -#elif PLUG_DOES_MIDI +#elif PLUG_DOES_MIDI_IN kAudioUnitType_MusicEffect, #else kAudioUnitType_Effect, diff --git a/IPlug/IPlugProcessor.cpp b/IPlug/IPlugProcessor.cpp index 3321c5e43f..92f03e7dc0 100644 --- a/IPlug/IPlugProcessor.cpp +++ b/IPlug/IPlugProcessor.cpp @@ -16,7 +16,8 @@ template IPlugProcessor::IPlugProcessor(IPlugConfig c, EAPI plugAPI) : mLatency(c.latency) , mIsInstrument(c.plugIsInstrument) - , mDoesMIDI(c.plugDoesMidi) + , mDoesMIDIIn(c.plugDoesMidiIn) + , mDoesMIDIOut(c.plugDoesMidiOut) { int totalNInBuses, totalNOutBuses; int totalNInChans, totalNOutChans; diff --git a/IPlug/IPlugProcessor.h b/IPlug/IPlugProcessor.h index 2bc0a01e72..6f64f59b7e 100644 --- a/IPlug/IPlugProcessor.h +++ b/IPlug/IPlugProcessor.h @@ -187,7 +187,10 @@ class IPlugProcessor bool IsInstrument() const { return mIsInstrument; } /** @return \c true if the plug-in was configured to receive midi at compile time */ - bool DoesMIDI() const { return mDoesMIDI; } + bool DoesMIDIIn() const { return mDoesMIDIIn; } + + /** @return \c true if the plug-in was configured to receive midi at compile time */ + bool DoesMIDIOut() const { return mDoesMIDIOut; } /** This allows you to label input/output channels in supporting VST2 hosts. * * For example a 4 channel plug-in that deals with FuMa BFormat first order ambisonic material, might label these channels @@ -248,7 +251,9 @@ class IPlugProcessor /** \c true if the plug-in is an instrument */ bool mIsInstrument; /** \c true if the plug-in accepts MIDI input */ - bool mDoesMIDI; + bool mDoesMIDIIn; + /** \c true if the plug-in produces MIDI output */ + bool mDoesMIDIOut; /** Plug-in latency (in samples) */ int mLatency; /** Current sample rate (in Hz) */ diff --git a/IPlug/IPlugStructs.h b/IPlug/IPlugStructs.h index 19fbe64645..06265318a5 100644 --- a/IPlug/IPlugStructs.h +++ b/IPlug/IPlugStructs.h @@ -245,7 +245,8 @@ struct IPlugConfig int uniqueID; int mfrID; int latency; - bool plugDoesMidi; + bool plugDoesMidiIn; + bool plugDoesMidiOut; bool plugDoesChunks; bool plugIsInstrument; bool plugHasUI; @@ -263,7 +264,8 @@ struct IPlugConfig int uniqueID, int mfrID, int latency, - bool plugDoesMidi, + bool plugDoesMidiIn, + bool plugDoesMidiOut, bool plugDoesChunks, bool plugIsInstrument, bool plugHasUI, @@ -281,7 +283,8 @@ struct IPlugConfig , uniqueID(uniqueID) , mfrID(mfrID) , latency(latency) - , plugDoesMidi(plugDoesMidi) + , plugDoesMidiIn(plugDoesMidiIn) + , plugDoesMidiOut(plugDoesMidiOut) , plugDoesChunks(plugDoesChunks) , plugIsInstrument(plugIsInstrument) , plugHasUI(plugHasUI) diff --git a/IPlug/IPlug_include_in_plug_src.h b/IPlug/IPlug_include_in_plug_src.h index ef1512d0ce..62707561b7 100644 --- a/IPlug/IPlug_include_in_plug_src.h +++ b/IPlug/IPlug_include_in_plug_src.h @@ -234,7 +234,7 @@ class IPlugAUFactory case kAudioUnitScheduleParametersSelect:return (AudioComponentMethod)IPlugAU::AUMethodScheduleParameters; case kAudioUnitRenderSelect: return (AudioComponentMethod)IPlugAU::AUMethodRender; case kAudioUnitResetSelect: return (AudioComponentMethod)IPlugAU::AUMethodReset; -#if PLUG_DOES_MIDI +#if PLUG_DOES_MIDI_IN case kMusicDeviceMIDIEventSelect: return (AudioComponentMethod)IPlugAU::AUMethodMIDIEvent; case kMusicDeviceSysExSelect: return (AudioComponentMethod)IPlugAU::AUMethodSysEx; #endif @@ -440,7 +440,7 @@ DWORD GetTickCount() #define IPLUG_CTOR(nParams, nPresets, instanceInfo) \ IPlug(instanceInfo, IPlugConfig(nParams, nPresets, PLUG_CHANNEL_IO,\ PUBLIC_NAME, "", PLUG_MFR, PLUG_VERSION_HEX, PLUG_UNIQUE_ID, PLUG_MFR_ID, \ - PLUG_LATENCY, PLUG_DOES_MIDI, PLUG_DOES_STATE_CHUNKS, PLUG_IS_INSTRUMENT, \ + PLUG_LATENCY, PLUG_DOES_MIDI_IN, PLUG_DOES_MIDI_OUT, PLUG_DOES_STATE_CHUNKS, PLUG_IS_INSTRUMENT, \ PLUG_HAS_UI, PLUG_WIDTH, PLUG_HEIGHT, BUNDLE_ID)) #if !defined NO_IGRAPHICS && !defined VST3P_API diff --git a/IPlug/VST2/IPlugVST2.cpp b/IPlug/VST2/IPlugVST2.cpp index cd8f4f4970..6bedd500a5 100644 --- a/IPlug/VST2/IPlugVST2.cpp +++ b/IPlug/VST2/IPlugVST2.cpp @@ -626,12 +626,18 @@ VstIntPtr VSTCALLBACK IPlugVST2::VSTDispatcher(AEffect *pEffect, VstInt32 opCode { return 1; } - if (_this->DoesMIDI()) + if (_this->DoesMIDIIn()) + { + if (!strcmp((char*) ptr, "receiveVstEvents") || + !strcmp((char*) ptr, "receiveVstMidiEvent")) + { + return 1; + } + } + if (_this->DoesMIDIOut()) { if (!strcmp((char*) ptr, "sendVstEvents") || - !strcmp((char*) ptr, "sendVstMidiEvent") || - !strcmp((char*) ptr, "receiveVstEvents") || - !strcmp((char*) ptr, "receiveVstMidiEvent")) // || + !strcmp((char*) ptr, "sendVstMidiEvent")) { return 1; } @@ -799,7 +805,7 @@ VstIntPtr VSTCALLBACK IPlugVST2::VSTDispatcher(AEffect *pEffect, VstInt32 opCode template void IPlugVST2::VSTPreProcess(SAMPLETYPE** inputs, SAMPLETYPE** outputs, VstInt32 nFrames) { - if (DoesMIDI()) + if (DoesMIDIIn()) mHostCallback(&mAEffect, __audioMasterWantMidiDeprecated, 0, 0, 0, 0.0f); _AttachBuffers(ERoute::kInput, 0, MaxNChannels(ERoute::kInput), inputs, nFrames); diff --git a/IPlug/VST3/IPlugVST3.cpp b/IPlug/VST3/IPlugVST3.cpp index acbeb346f5..7177ea7104 100644 --- a/IPlug/VST3/IPlugVST3.cpp +++ b/IPlug/VST3/IPlugVST3.cpp @@ -133,11 +133,11 @@ tresult PLUGIN_API IPlugVST3::initialize(FUnknown* context) // } - if(DoesMIDI()) - { + if(DoesMIDIIn()) addEventInput(STR16("MIDI Input"), 1); + + if(DoesMIDIOut()) addEventOutput(STR16("MIDI Output"), 1); - } if (NPresets()) { @@ -343,7 +343,7 @@ tresult PLUGIN_API IPlugVST3::process(ProcessData& data) } } - if(DoesMIDI()) + if(DoesMIDIIn()) { IMidiMsg msg; @@ -493,8 +493,7 @@ tresult PLUGIN_API IPlugVST3::process(ProcessData& data) _ProcessBuffers(0.0, data.numSamples); // process buffers double precision } - // Midi Out - if (DoesMIDI()) + if (DoesMIDIOut()) { IEventList* outputEvents = data.outputEvents; diff --git a/IPlug/VST3/IPlugVST3_Processor.cpp b/IPlug/VST3/IPlugVST3_Processor.cpp index 04028613d8..4a8fe5f32b 100644 --- a/IPlug/VST3/IPlugVST3_Processor.cpp +++ b/IPlug/VST3/IPlugVST3_Processor.cpp @@ -124,12 +124,11 @@ tresult PLUGIN_API IPlugVST3Processor::initialize(FUnknown* context) // } - if(DoesMIDI()) - { + if(DoesMIDIIn()) addEventInput(STR16("MIDI Input"), 1); - addEventOutput(STR16("MIDI Output"), 1); - } + if(DoesMIDIOut()) + addEventOutput(STR16("MIDI Output"), 1); OnHostIdentified(); } @@ -278,7 +277,7 @@ tresult PLUGIN_API IPlugVST3Processor::process(ProcessData& data) } } - if(DoesMIDI()) + if(DoesMIDIIn()) { IMidiMsg msg; @@ -429,8 +428,7 @@ tresult PLUGIN_API IPlugVST3Processor::process(ProcessData& data) _ProcessBuffers(0.0, data.numSamples); // process buffers double precision } - // Midi Out - if (DoesMIDI()) + if (DoesMIDIOut()) { IEventList* outputEvents = data.outputEvents; diff --git a/Scripts/parse_config.py b/Scripts/parse_config.py index b098d70805..1628cc092e 100644 --- a/Scripts/parse_config.py +++ b/Scripts/parse_config.py @@ -29,7 +29,8 @@ IntElements = { "PLUG_IS_INSTRUMENT", "PLUG_IS_MFX", -"PLUG_DOES_MIDI", +"PLUG_DOES_MIDI_IN", +"PLUG_DOES_MIDI_OUT", "PLUG_HAS_UI", "PLUG_SHARED_RESOURCES", "PLUG_WIDTH", diff --git a/Tests/IGraphicsTest/config.h b/Tests/IGraphicsTest/config.h index 9cbfb793af..8614d5ebb1 100644 --- a/Tests/IGraphicsTest/config.h +++ b/Tests/IGraphicsTest/config.h @@ -18,7 +18,8 @@ #define PLUG_LATENCY 0 #define PLUG_IS_INSTRUMENT 1 #define PLUG_IS_MFX 0 -#define PLUG_DOES_MIDI 1 +#define PLUG_DOES_MIDI_IN 1 +#define PLUG_DOES_MIDI_OUT 0 #define PLUG_DOES_STATE_CHUNKS 0 #define PLUG_HAS_UI 1 #define PLUG_WIDTH 600 diff --git a/Tests/IGraphicsTest/scripts/prepare_resources-ios.py b/Tests/IGraphicsTest/scripts/prepare_resources-ios.py index 93e1bf8f79..bd1875106e 100755 --- a/Tests/IGraphicsTest/scripts/prepare_resources-ios.py +++ b/Tests/IGraphicsTest/scripts/prepare_resources-ios.py @@ -34,7 +34,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Tests/IGraphicsTest/scripts/prepare_resources-mac.py b/Tests/IGraphicsTest/scripts/prepare_resources-mac.py index f7da90e645..9441e33094 100755 --- a/Tests/IGraphicsTest/scripts/prepare_resources-mac.py +++ b/Tests/IGraphicsTest/scripts/prepare_resources-mac.py @@ -96,7 +96,7 @@ def main(): COMPONENT_TYPE = kAudioUnitType_MusicDevice elif config['PLUG_IS_MFX']: COMPONENT_TYPE = kAudioUnitType_MIDIProcessor - elif config['PLUG_DOES_MIDI']: + elif config['PLUG_DOES_MIDI_IN']: COMPONENT_TYPE = kAudioUnitType_MusicEffect else: COMPONENT_TYPE = kAudioUnitType_Effect diff --git a/Tests/IGraphicsTest/scripts/validate_audiounit.sh b/Tests/IGraphicsTest/scripts/validate_audiounit.sh index 92307df13c..c4c9485b9e 100755 --- a/Tests/IGraphicsTest/scripts/validate_audiounit.sh +++ b/Tests/IGraphicsTest/scripts/validate_audiounit.sh @@ -20,8 +20,8 @@ PMID=${PMID//\'} PII=`echo | grep PLUG_IS_INST ../config.h` PII=${PII//\#define PLUG_IS_INST } -PDM=`echo | grep PLUG_DOES_MIDI ../config.h` -PDM=${PDM//\#define PLUG_DOES_MIDI } +PDM=`echo | grep PLUG_DOES_MIDI_IN ../config.h` +PDM=${PDM//\#define PLUG_DOES_MIDI_IN } TYPE=aufx