diff options
author | falkTX <falktx@gmail.com> | 2019-01-28 22:48:56 +0000 |
---|---|---|
committer | falkTX <falktx@gmail.com> | 2019-01-28 22:48:56 +0000 |
commit | a291737aef87bfbac914f004bcf3f36bea80affc (patch) | |
tree | efadd54d23fcaf8b4866e1e1d4016a09ba49750f | |
parent | f530315314f7bb54e47eb381744bd67f56779bb5 (diff) |
AU: activate/deactivate plugin
-rw-r--r-- | distrho/src/DistrhoPluginAU.cpp | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/distrho/src/DistrhoPluginAU.cpp b/distrho/src/DistrhoPluginAU.cpp index 04dc4e3b..9fad0e75 100644 --- a/distrho/src/DistrhoPluginAU.cpp +++ b/distrho/src/DistrhoPluginAU.cpp @@ -54,11 +54,6 @@ public: { CreateElements(); - // FIXME this does not seem right - fNumChannels = GetNumberOfChannels(); - d_stdout("fNumChannels %u", fNumChannels); - DISTRHO_SAFE_ASSERT(fNumChannels == DISTRHO_PLUGIN_NUM_INPUTS); - AUElement* const globals = Globals(); DISTRHO_SAFE_ASSERT_RETURN(globals != nullptr,); @@ -84,6 +79,7 @@ public: } } +protected: OSStatus GetParameterValueStrings(AudioUnitScope inScope, AudioUnitParameterID inParameterID, CFArrayRef* outStrings) override @@ -212,9 +208,9 @@ public: return fPlugin.getVersion(); } - OSStatus ProcessBufferLists(AudioUnitRenderActionFlags &ioActionFlags, - const AudioBufferList &inBuffer, - AudioBufferList &outBuffer, + OSStatus ProcessBufferLists(AudioUnitRenderActionFlags& ioActionFlags, + const AudioBufferList& inBuffer, + AudioBufferList& outBuffer, UInt32 inFramesToProcess) override { const float* srcBuffer[fNumChannels]; @@ -238,6 +234,31 @@ public: // ------------------------------------------------------------------- + ComponentResult Initialize() override + { + ComponentResult err; + + if ((err = AUEffectBase::Initialize()) != noErr) + return err; + + fPlugin.activate(); + + // FIXME this does not seem right + fNumChannels = GetNumberOfChannels(); + d_stdout("fNumChannels %u", fNumChannels); + DISTRHO_SAFE_ASSERT(fNumChannels == DISTRHO_PLUGIN_NUM_INPUTS); + + return noErr; + } + + void Cleanup() override + { + AUEffectBase::Cleanup(); + fPlugin.deactivate(); + } + + // ------------------------------------------------------------------- + private: LastValuesInit fLastValuesInit; PluginExporter fPlugin; |