diff options
author | falkTX <falktx@gmail.com> | 2019-01-31 11:51:53 +0000 |
---|---|---|
committer | falkTX <falktx@gmail.com> | 2019-01-31 11:51:53 +0000 |
commit | d8a29a68bf11cae588750e96384ed935dcb7e978 (patch) | |
tree | f4cddfcce138f6a7ffd9904692cbf6941ac27583 | |
parent | a291737aef87bfbac914f004bcf3f36bea80affc (diff) |
AU: working number of audio channels
-rw-r--r-- | distrho/src/DistrhoPluginAU.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/distrho/src/DistrhoPluginAU.cpp b/distrho/src/DistrhoPluginAU.cpp index 9fad0e75..572104e8 100644 --- a/distrho/src/DistrhoPluginAU.cpp +++ b/distrho/src/DistrhoPluginAU.cpp @@ -49,7 +49,6 @@ public: : AUEffectBase(component), fLastValuesInit(), fPlugin(this, writeMidiCallback), - fNumChannels(0), fLastParameterValues(nullptr) { CreateElements(); @@ -213,13 +212,14 @@ protected: AudioBufferList& outBuffer, UInt32 inFramesToProcess) override { - const float* srcBuffer[fNumChannels]; - /* */ float* destBuffer[fNumChannels]; + const float* srcBuffer[DISTRHO_PLUGIN_NUM_INPUTS]; + /* */ float* destBuffer[DISTRHO_PLUGIN_NUM_OUTPUTS]; - for (uint32_t i = 0; i < fNumChannels; ++i) { + for (uint32_t i = 0; i < DISTRHO_PLUGIN_NUM_INPUTS; ++i) srcBuffer[i] = (const float*)inBuffer.mBuffers[i].mData; + + for (uint32_t i = 0; i < DISTRHO_PLUGIN_NUM_OUTPUTS; ++i) destBuffer[i] = (float *)outBuffer.mBuffers[i].mData; - } updateParameterInputs(); @@ -243,18 +243,23 @@ protected: 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(); + AUEffectBase::Cleanup(); + } + + UInt32 SupportedNumChannels(const AUChannelInfo** outInfo) override + { + static const AUChannelInfo sChannels[1] = {{ DISTRHO_PLUGIN_NUM_INPUTS, DISTRHO_PLUGIN_NUM_OUTPUTS }}; + + if (outInfo != nullptr) + *outInfo = sChannels; + + return 1; } // ------------------------------------------------------------------- @@ -262,7 +267,6 @@ protected: private: LastValuesInit fLastValuesInit; PluginExporter fPlugin; - uint32_t fNumChannels; // Temporary data float* fLastParameterValues; |