diff --git a/Makefile b/Makefile index 2cf6ed6..a820d8a 100644 --- a/Makefile +++ b/Makefile @@ -220,6 +220,9 @@ native: carla deps dgl plugins resources mini: carla deps dgl mini-plugins mini-resources $(MAKE) mini -C src $(CARLA_EXTRA_ARGS) +au: carla deps dgl plugins resources + $(MAKE) au -C src $(CARLA_EXTRA_ARGS) + clap: carla deps dgl plugins resources $(MAKE) clap -C src $(CARLA_EXTRA_ARGS) diff --git a/dpf b/dpf index 8ac24f8..32ba6c1 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 8ac24f80446a0f3d48365e96a31f12fd201fd3ff +Subproject commit 32ba6c1cb418e6a1d6d97c979e76c8ecab46fbc7 diff --git a/src/Cardinal/DistrhoPluginInfo.h b/src/Cardinal/DistrhoPluginInfo.h index 18afb2b..200488a 100644 --- a/src/Cardinal/DistrhoPluginInfo.h +++ b/src/Cardinal/DistrhoPluginInfo.h @@ -36,6 +36,7 @@ #define DISTRHO_PLUGIN_AU_TYPE aumf #define DISTRHO_PLUGIN_BRAND_ID Dstr #define DISTRHO_PLUGIN_UNIQUE_ID DcnM +#define DISTRHO_PLUGIN_EXTRA_IO { CARDINAL_NUM_AUDIO_INPUTS, CARDINAL_NUM_AUDIO_OUTPUTS }, { 2, 2 } #ifdef HEADLESS #define DISTRHO_PLUGIN_HAS_UI 0 diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index 3ed2fe9..4f5acb5 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -196,6 +196,14 @@ class CardinalPlugin : public CardinalBasePlugin float fMiniReportValues[kCardinalParameterCountAtMini - kCardinalParameterStartMini]; #endif + #ifdef DISTRHO_PLUGIN_EXTRA_IO + uint16_t fNumActiveInputs = DISTRHO_PLUGIN_NUM_INPUTS; + uint16_t fNumActiveOutputs = DISTRHO_PLUGIN_NUM_OUTPUTS; + #else + static constexpr const uint16_t fNumActiveInputs = DISTRHO_PLUGIN_NUM_INPUTS; + static constexpr const uint16_t fNumActiveOutputs = DISTRHO_PLUGIN_NUM_OUTPUTS; + #endif + public: CardinalPlugin() : CardinalBasePlugin(kCardinalParameterCount, 0, kCardinalStateCount), @@ -1135,7 +1143,10 @@ protected: #if DISTRHO_PLUGIN_NUM_INPUTS != 0 fAudioBufferCopy = new float*[DISTRHO_PLUGIN_NUM_INPUTS]; for (int i=0; ibufferSize]; + std::memset(fAudioBufferCopy[i], 0, sizeof(float) * context->bufferSize); + } #endif fNextExpectedFrame = 0; @@ -1226,7 +1237,7 @@ protected: else { #if DISTRHO_PLUGIN_NUM_INPUTS != 0 - for (int i=0; idataOuts = outputs; } - for (int i=0; iengine->setSampleRate(newSampleRate); } + #ifdef DISTRHO_PLUGIN_EXTRA_IO + void ioChanged(const uint16_t numInputs, const uint16_t numOutputs) override + { + fNumActiveInputs = numInputs; + fNumActiveOutputs = numOutputs; + } + #endif + // ------------------------------------------------------------------------------------------------------- private: diff --git a/src/CardinalUI.cpp b/src/CardinalUI.cpp index b088e59..c1c01fd 100644 --- a/src/CardinalUI.cpp +++ b/src/CardinalUI.cpp @@ -426,10 +426,6 @@ public: const double height = std::max(538.f, rack::settings::windowSize.y) * scaleFactor; setSize(width, height); } - else if (scaleFactor != 1.0) - { - setSize(DISTRHO_UI_DEFAULT_WIDTH * scaleFactor, DISTRHO_UI_DEFAULT_HEIGHT * scaleFactor); - } #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS const DGL_NAMESPACE::Window::ScopedGraphicsContext sgc(window); @@ -932,7 +928,7 @@ protected: context->patch->loadAutosave(); } catch(const rack::Exception& e) { d_stderr(e.what()); - } DISTRHO_SAFE_EXCEPTION_RETURN("setState loadAutosave",); + } DISTRHO_SAFE_EXCEPTION_RETURN("stateChanged loadAutosave",); return; } @@ -1180,7 +1176,7 @@ protected: const int height = static_cast(ev.size.getHeight() / scaleFactor + 0.5); char sizeString[64] = {}; - std::snprintf(sizeString, sizeof(sizeString), "%d:%d", width, height); + std::snprintf(sizeString, sizeof(sizeString) - 1, "%d:%d", width, height); setState("windowSize", sizeString); if (rack::isStandalone()) diff --git a/src/Makefile b/src/Makefile index 24038a8..0e892e1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -142,6 +142,10 @@ native: $(TARGETS) mini: $(TARGETS) $(MAKE) jack -C CardinalMini +au: $(TARGETS) + $(MAKE) au -C CardinalFX $(CARDINAL_SYNTH_ARGS) + $(MAKE) au -C CardinalSynth $(CARDINAL_SYNTH_ARGS) + lv2: $(TARGETS) $(MAKE) lv2 -C Cardinal $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index fd4c058..56b3dd9 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -412,7 +412,7 @@ BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' # Enable all possible plugin types and setup resources ifeq ($(CARDINAL_VARIANT),main) -TARGETS = jack lv2 vst3 clap +TARGETS = clap jack lv2 vst3 else ifeq ($(DSP_UI_SPLIT),true) TARGETS = lv2_sep else ifeq ($(CARDINAL_VARIANT),mini)