summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfalkTX <falktx@gmail.com>2019-01-28 22:48:56 +0000
committerfalkTX <falktx@gmail.com>2019-01-28 22:48:56 +0000
commita291737aef87bfbac914f004bcf3f36bea80affc (patch)
treeefadd54d23fcaf8b4866e1e1d4016a09ba49750f
parentf530315314f7bb54e47eb381744bd67f56779bb5 (diff)
AU: activate/deactivate plugin
-rw-r--r--distrho/src/DistrhoPluginAU.cpp37
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;