summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfalkTX <falktx@gmail.com>2019-01-31 11:51:53 +0000
committerfalkTX <falktx@gmail.com>2019-01-31 11:51:53 +0000
commitd8a29a68bf11cae588750e96384ed935dcb7e978 (patch)
treef4cddfcce138f6a7ffd9904692cbf6941ac27583
parenta291737aef87bfbac914f004bcf3f36bea80affc (diff)
AU: working number of audio channels
-rw-r--r--distrho/src/DistrhoPluginAU.cpp28
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;