Signed-off-by: falkTX <falktx@falktx.com>tags/23.02
| @@ -814,7 +814,11 @@ jobs: | |||||
| run: | | run: | | ||||
| VERSION=$(cat Makefile | awk 'sub("VERSION = ","")') | VERSION=$(cat Makefile | awk 'sub("VERSION = ","")') | ||||
| cd bin | cd bin | ||||
| sed -i "s/CardinalMini\./CardinalMini-v${VERSION}\./g" *.html *.js | |||||
| sed -i "s/CardinalNative\./CardinalNative-v${VERSION}\./g" *.html *.js | sed -i "s/CardinalNative\./CardinalNative-v${VERSION}\./g" *.html *.js | ||||
| mv CardinalMini.data CardinalMini-v${VERSION}.data | |||||
| mv CardinalMini.js CardinalMini-v${VERSION}.js | |||||
| mv CardinalMini.wasm CardinalMini-v${VERSION}.wasm | |||||
| mv CardinalNative.data CardinalNative-v${VERSION}.data | mv CardinalNative.data CardinalNative-v${VERSION}.data | ||||
| mv CardinalNative.js CardinalNative-v${VERSION}.js | mv CardinalNative.js CardinalNative-v${VERSION}.js | ||||
| mv CardinalNative.wasm CardinalNative-v${VERSION}.wasm | mv CardinalNative.wasm CardinalNative-v${VERSION}.wasm | ||||
| @@ -844,82 +848,6 @@ jobs: | |||||
| files: | | files: | | ||||
| *.zip | *.zip | ||||
| wasm-mini: | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | |||||
| - uses: actions/checkout@v3 | |||||
| with: | |||||
| submodules: recursive | |||||
| - name: Set up cache | |||||
| id: cache | |||||
| uses: actions/cache@v3 | |||||
| with: | |||||
| path: | | |||||
| ~/emsdk | |||||
| src/Rack/dep/bin | |||||
| src/Rack/dep/include | |||||
| src/Rack/dep/lib | |||||
| src/Rack/dep/share | |||||
| src/Rack/dep/jansson-2.12 | |||||
| src/Rack/dep/libarchive-3.4.3 | |||||
| src/Rack/dep/libsamplerate-0.1.9 | |||||
| src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 | |||||
| src/Rack/dep/zstd-1.4.5 | |||||
| key: wasm-mini-v${{ env.CACHE_VERSION }} | |||||
| - name: Set up dependencies | |||||
| run: | | |||||
| sudo apt-get update -qq | |||||
| sudo apt-get install -yqq brotli | |||||
| sudo apt-get clean | |||||
| [ -e ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk | |||||
| cd ~/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }} | |||||
| - name: Build wasm-mini cross-compiled | |||||
| env: | |||||
| AR: emar | |||||
| CC: emcc | |||||
| CXX: em++ | |||||
| NM: emnm | |||||
| RANLIB: emranlib | |||||
| STRIP: emstrip | |||||
| WITH_LTO: false | |||||
| run: | | |||||
| source ~/emsdk/emsdk_env.sh | |||||
| make features | |||||
| make CIBUILD=true NOPLUGINS=true NOOPT=true NOSIMD=true STATIC_BUILD=true USE_GLES2=true -j $(nproc) | |||||
| - name: Make wasm versioned and compress | |||||
| run: | | |||||
| VERSION=$(cat Makefile | awk 'sub("VERSION = ","")') | |||||
| cd bin | |||||
| rm -r *.lv2 | |||||
| sed -i "s/CardinalNative\./CardinalNative-v${VERSION}\./g" *.html *.js | |||||
| mv CardinalNative.data CardinalNative-v${VERSION}.data | |||||
| mv CardinalNative.js CardinalNative-v${VERSION}.js | |||||
| mv CardinalNative.wasm CardinalNative-v${VERSION}.wasm | |||||
| brotli -k -q 11 *.data *.html *.js *.wasm | |||||
| - name: Set sha8 (non-release) | |||||
| if: startsWith(github.ref, 'refs/tags/') != true | |||||
| run: echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |||||
| - name: Set sha8 (release) | |||||
| if: startsWith(github.ref, 'refs/tags/') | |||||
| run: echo "SHA8=$(echo ${{ github.ref_name }})" >> $GITHUB_ENV | |||||
| - name: Pack binaries | |||||
| run: | | |||||
| cd bin; zip -r -9 ../${{ github.event.repository.name }}-wasm-mini-${{ github.event.pull_request.number || env.SHA8 }}.zip $(ls *.br *.html *.data *.js *.wasm) | |||||
| - uses: actions/upload-artifact@v3 | |||||
| with: | |||||
| name: ${{ github.event.repository.name }}-wasm-mini-${{ github.event.pull_request.number || env.SHA8 }} | |||||
| path: | | |||||
| *.zip | |||||
| - uses: softprops/action-gh-release@v1 | |||||
| if: startsWith(github.ref, 'refs/tags/') | |||||
| with: | |||||
| tag_name: ${{ github.ref_name }} | |||||
| name: ${{ github.ref_name }} | |||||
| draft: false | |||||
| prerelease: false | |||||
| files: | | |||||
| *.zip | |||||
| win32: | win32: | ||||
| runs-on: ubuntu-22.04 | runs-on: ubuntu-22.04 | ||||
| steps: | steps: | ||||
| @@ -1,19 +0,0 @@ | |||||
| /* | |||||
| * DISTRHO Cardinal Plugin | |||||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||||
| * | |||||
| * This program is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU General Public License as | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #define CARDINAL_COMMON_DSP_ONLY | |||||
| #include "../CardinalCommon.cpp" | |||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalCommon.cpp | |||||
| @@ -35,7 +35,7 @@ | |||||
| #define DISTRHO_PLUGIN_LABEL "CardinalMini" | #define DISTRHO_PLUGIN_LABEL "CardinalMini" | ||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | #define DISTRHO_PLUGIN_HAS_UI 1 | ||||
| #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 0 | |||||
| #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | |||||
| #define DISTRHO_UI_FILE_BROWSER 1 | #define DISTRHO_UI_FILE_BROWSER 1 | ||||
| #define DISTRHO_UI_USE_NANOVG 1 | #define DISTRHO_UI_USE_NANOVG 1 | ||||
| #define DISTRHO_UI_USER_RESIZABLE 1 | #define DISTRHO_UI_USER_RESIZABLE 1 | ||||
| @@ -52,8 +52,4 @@ | |||||
| #define DISTRHO_PLUGIN_LV2_CATEGORY "mod:ControlVoltagePlugin, lv2:UtilityPlugin" | #define DISTRHO_PLUGIN_LV2_CATEGORY "mod:ControlVoltagePlugin, lv2:UtilityPlugin" | ||||
| #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Generator" | #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Generator" | ||||
| // #ifdef __MOD_DEVICES__ | |||||
| # define DISTRHO_PLUGIN_USES_MODGUI 1 | |||||
| // #endif | |||||
| #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | ||||
| @@ -5,5 +5,4 @@ | |||||
| # | # | ||||
| NAME = CardinalMini | NAME = CardinalMini | ||||
| MODGUI_CLASS_NAME = distrho_cardinal_mini | |||||
| include ../Makefile.cardinal.mk | include ../Makefile.cardinal.mk | ||||
| @@ -0,0 +1,19 @@ | |||||
| /* | |||||
| * DISTRHO Cardinal Plugin | |||||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||||
| * | |||||
| * This program is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU General Public License as | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #define CARDINAL_COMMON_DSP_ONLY | |||||
| #include "../CardinalCommon.cpp" | |||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalPlugin.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalRemote.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalUI.cpp | |||||
| @@ -0,0 +1,56 @@ | |||||
| /* | |||||
| * DISTRHO Cardinal Plugin | |||||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||||
| * | |||||
| * This program is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU General Public License as | |||||
| * published by the Free Software Foundation; either version 3 of | |||||
| * the License, or any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||||
| */ | |||||
| #ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| #define CARDINAL_VARIANT_MAIN 0 | |||||
| #define CARDINAL_VARIANT_MINI 1 | |||||
| #define CARDINAL_VARIANT_FX 0 | |||||
| #define CARDINAL_VARIANT_NATIVE 0 | |||||
| #define CARDINAL_VARIANT_SYNTH 0 | |||||
| #define CARDINAL_NUM_AUDIO_INPUTS 2 | |||||
| #define CARDINAL_NUM_AUDIO_OUTPUTS 2 | |||||
| #define DISTRHO_PLUGIN_BRAND "DISTRHO" | |||||
| #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/cardinal#mini" | |||||
| #define DISTRHO_PLUGIN_NAME "Cardinal Mini" | |||||
| #define DISTRHO_PLUGIN_LABEL "CardinalMini" | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 0 | |||||
| #define DISTRHO_UI_FILE_BROWSER 1 | |||||
| #define DISTRHO_UI_USE_NANOVG 1 | |||||
| #define DISTRHO_UI_USER_RESIZABLE 1 | |||||
| #define DISTRHO_UI_DEFAULT_WIDTH 1000 | |||||
| #define DISTRHO_UI_DEFAULT_HEIGHT 600 | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS + 5 | |||||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS + 5 | |||||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||||
| #define DISTRHO_PLUGIN_WANT_STATE 1 | |||||
| #define DISTRHO_PLUGIN_WANT_TIMEPOS 1 | |||||
| #define DISTRHO_PLUGIN_LV2_CATEGORY "mod:ControlVoltagePlugin, lv2:UtilityPlugin" | |||||
| #define DISTRHO_PLUGIN_USES_MODGUI 1 | |||||
| #define DISTRHO_PLUGIN_USES_CUSTOM_MODGUI 1 | |||||
| #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| @@ -0,0 +1,11 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| NAME = CardinalMini | |||||
| DPF_BUILD_DIR = ../../build/$(NAME)-sep | |||||
| DSP_UI_SPLIT = true | |||||
| MODGUI_CLASS_NAME = distrho_cardinal_mini | |||||
| include ../Makefile.cardinal.mk | |||||
| @@ -0,0 +1 @@ | |||||
| ../override/MenuBar.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../custom/RemoteNanoVG.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../custom/RemoteWindow.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../override/Window.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../override/common.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../custom/glfw.cpp | |||||
| @@ -61,7 +61,7 @@ | |||||
| extern const std::string CARDINAL_VERSION; | extern const std::string CARDINAL_VERSION; | ||||
| namespace rack { | namespace rack { | ||||
| #if CARDINAL_VARIANT_MINI || defined(HEADLESS) | |||||
| #if (CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS) || defined(HEADLESS) | |||||
| namespace app { | namespace app { | ||||
| rack::widget::Widget* createMenuBar() { return new rack::widget::Widget; } | rack::widget::Widget* createMenuBar() { return new rack::widget::Widget; } | ||||
| } | } | ||||
| @@ -179,7 +179,7 @@ class CardinalPlugin : public CardinalBasePlugin | |||||
| // real values, not VCV interpreted ones | // real values, not VCV interpreted ones | ||||
| float fWindowParameters[kWindowParameterCount]; | float fWindowParameters[kWindowParameterCount]; | ||||
| #endif | #endif | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| float fMiniReportValues[kCardinalParameterCountAtMini - kCardinalParameterStartMini]; | float fMiniReportValues[kCardinalParameterCountAtMini - kCardinalParameterStartMini]; | ||||
| #endif | #endif | ||||
| @@ -213,7 +213,7 @@ public: | |||||
| fWindowParameters[kWindowParameterInvertZoom] = 0.0f; | fWindowParameters[kWindowParameterInvertZoom] = 0.0f; | ||||
| fWindowParameters[kWindowParameterSqueezeModulePositions] = 1.0f; | fWindowParameters[kWindowParameterSqueezeModulePositions] = 1.0f; | ||||
| #endif | #endif | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| std::memset(fMiniReportValues, 0, sizeof(fMiniReportValues)); | std::memset(fMiniReportValues, 0, sizeof(fMiniReportValues)); | ||||
| fMiniReportValues[kCardinalParameterMiniTimeBar - kCardinalParameterStartMini] = 1; | fMiniReportValues[kCardinalParameterMiniTimeBar - kCardinalParameterStartMini] = 1; | ||||
| fMiniReportValues[kCardinalParameterMiniTimeBeat - kCardinalParameterStartMini] = 1; | fMiniReportValues[kCardinalParameterMiniTimeBeat - kCardinalParameterStartMini] = 1; | ||||
| @@ -460,7 +460,7 @@ protected: | |||||
| parameter.name = "Show tooltips"; | parameter.name = "Show tooltips"; | ||||
| parameter.symbol = "tooltips"; | parameter.symbol = "tooltips"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 1.0f; | parameter.ranges.def = 1.0f; | ||||
| @@ -472,7 +472,7 @@ protected: | |||||
| parameter.symbol = "cableOpacity"; | parameter.symbol = "cableOpacity"; | ||||
| parameter.unit = "%"; | parameter.unit = "%"; | ||||
| parameter.hints = kParameterIsAutomatable; | parameter.hints = kParameterIsAutomatable; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 50.0f; | parameter.ranges.def = 50.0f; | ||||
| @@ -484,7 +484,7 @@ protected: | |||||
| parameter.symbol = "cableTension"; | parameter.symbol = "cableTension"; | ||||
| parameter.unit = "%"; | parameter.unit = "%"; | ||||
| parameter.hints = kParameterIsAutomatable; | parameter.hints = kParameterIsAutomatable; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 75.0f; | parameter.ranges.def = 75.0f; | ||||
| @@ -496,7 +496,7 @@ protected: | |||||
| parameter.symbol = "rackBrightness"; | parameter.symbol = "rackBrightness"; | ||||
| parameter.unit = "%"; | parameter.unit = "%"; | ||||
| parameter.hints = kParameterIsAutomatable; | parameter.hints = kParameterIsAutomatable; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 100.0f; | parameter.ranges.def = 100.0f; | ||||
| @@ -508,7 +508,7 @@ protected: | |||||
| parameter.symbol = "haloBrightness"; | parameter.symbol = "haloBrightness"; | ||||
| parameter.unit = "%"; | parameter.unit = "%"; | ||||
| parameter.hints = kParameterIsAutomatable; | parameter.hints = kParameterIsAutomatable; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 25.0f; | parameter.ranges.def = 25.0f; | ||||
| @@ -519,7 +519,7 @@ protected: | |||||
| parameter.name = "Knob mode"; | parameter.name = "Knob mode"; | ||||
| parameter.symbol = "knobMode"; | parameter.symbol = "knobMode"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 0.0f; | parameter.ranges.def = 0.0f; | ||||
| @@ -539,7 +539,7 @@ protected: | |||||
| parameter.name = "Scroll wheel knob control"; | parameter.name = "Scroll wheel knob control"; | ||||
| parameter.symbol = "knobScroll"; | parameter.symbol = "knobScroll"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 0.0f; | parameter.ranges.def = 0.0f; | ||||
| @@ -550,7 +550,7 @@ protected: | |||||
| parameter.name = "Scroll wheel knob sensitivity"; | parameter.name = "Scroll wheel knob sensitivity"; | ||||
| parameter.symbol = "knobScrollSensitivity"; | parameter.symbol = "knobScrollSensitivity"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsLogarithmic; | parameter.hints = kParameterIsAutomatable|kParameterIsLogarithmic; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 1.0f; | parameter.ranges.def = 1.0f; | ||||
| @@ -561,7 +561,7 @@ protected: | |||||
| parameter.name = "Lock module positions"; | parameter.name = "Lock module positions"; | ||||
| parameter.symbol = "lockModules"; | parameter.symbol = "lockModules"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 0.0f; | parameter.ranges.def = 0.0f; | ||||
| @@ -572,7 +572,7 @@ protected: | |||||
| parameter.name = "Update rate limit"; | parameter.name = "Update rate limit"; | ||||
| parameter.symbol = "rateLimit"; | parameter.symbol = "rateLimit"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 0.0f; | parameter.ranges.def = 0.0f; | ||||
| @@ -592,7 +592,7 @@ protected: | |||||
| parameter.name = "Browser sort"; | parameter.name = "Browser sort"; | ||||
| parameter.symbol = "browserSort"; | parameter.symbol = "browserSort"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 3.0f; | parameter.ranges.def = 3.0f; | ||||
| @@ -618,7 +618,7 @@ protected: | |||||
| parameter.name = "Browser zoom"; | parameter.name = "Browser zoom"; | ||||
| parameter.symbol = "browserZoom"; | parameter.symbol = "browserZoom"; | ||||
| parameter.hints = kParameterIsAutomatable; | parameter.hints = kParameterIsAutomatable; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.unit = "%"; | parameter.unit = "%"; | ||||
| @@ -647,7 +647,7 @@ protected: | |||||
| parameter.name = "Invert zoom"; | parameter.name = "Invert zoom"; | ||||
| parameter.symbol = "invertZoom"; | parameter.symbol = "invertZoom"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 0.0f; | parameter.ranges.def = 0.0f; | ||||
| @@ -658,7 +658,7 @@ protected: | |||||
| parameter.name = "Auto-squeeze module positions"; | parameter.name = "Auto-squeeze module positions"; | ||||
| parameter.symbol = "squeezeModules"; | parameter.symbol = "squeezeModules"; | ||||
| parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | parameter.hints = kParameterIsAutomatable|kParameterIsInteger|kParameterIsBoolean; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| parameter.hints |= kParameterIsHidden; | parameter.hints |= kParameterIsHidden; | ||||
| #endif | #endif | ||||
| parameter.ranges.def = 1.0f; | parameter.ranges.def = 1.0f; | ||||
| @@ -669,7 +669,7 @@ protected: | |||||
| } | } | ||||
| #endif | #endif | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| switch (index) | switch (index) | ||||
| { | { | ||||
| case kCardinalParameterMiniAudioIn1: | case kCardinalParameterMiniAudioIn1: | ||||
| @@ -817,7 +817,7 @@ protected: | |||||
| switch (index) | switch (index) | ||||
| { | { | ||||
| case kCardinalStatePatch: | case kCardinalStatePatch: | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| state.hints = kStateIsHostReadable; | state.hints = kStateIsHostReadable; | ||||
| #else | #else | ||||
| state.hints = kStateIsOnlyForDSP | kStateIsBase64Blob; | state.hints = kStateIsOnlyForDSP | kStateIsBase64Blob; | ||||
| @@ -833,7 +833,7 @@ protected: | |||||
| if (std::fread(fileContent, fileSize, 1, f) == 1) | if (std::fread(fileContent, fileSize, 1, f) == 1) | ||||
| { | { | ||||
| fileContent[fileSize] = '\0'; | fileContent[fileSize] = '\0'; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| state.defaultValue = fileContent; | state.defaultValue = fileContent; | ||||
| #else | #else | ||||
| state.defaultValue = String::asBase64(fileContent, fileSize); | state.defaultValue = String::asBase64(fileContent, fileSize); | ||||
| @@ -859,7 +859,7 @@ protected: | |||||
| break; | break; | ||||
| #if CARDINAL_VARIANT_MINI || !defined(HEADLESS) | #if CARDINAL_VARIANT_MINI || !defined(HEADLESS) | ||||
| case kCardinalStateModuleInfos: | case kCardinalStateModuleInfos: | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| state.hints = kStateIsHostReadable; | state.hints = kStateIsHostReadable; | ||||
| #else | #else | ||||
| state.hints = kStateIsOnlyForDSP; | state.hints = kStateIsOnlyForDSP; | ||||
| @@ -875,7 +875,7 @@ protected: | |||||
| state.label = "Window size"; | state.label = "Window size"; | ||||
| break; | break; | ||||
| #endif | #endif | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| case kCardinalStateParamChange: | case kCardinalStateParamChange: | ||||
| state.hints = kStateIsHostReadable | kStateIsOnlyForDSP; | state.hints = kStateIsHostReadable | kStateIsOnlyForDSP; | ||||
| state.key = "param"; | state.key = "param"; | ||||
| @@ -903,7 +903,7 @@ protected: | |||||
| return fWindowParameters[index - kCardinalParameterStartWindow]; | return fWindowParameters[index - kCardinalParameterStartWindow]; | ||||
| #endif | #endif | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| if (index < kCardinalParameterCountAtMini) | if (index < kCardinalParameterCountAtMini) | ||||
| return fMiniReportValues[index - kCardinalParameterStartMini]; | return fMiniReportValues[index - kCardinalParameterStartMini]; | ||||
| #endif | #endif | ||||
| @@ -1006,7 +1006,7 @@ protected: | |||||
| context->patch->cleanAutosave(); | context->patch->cleanAutosave(); | ||||
| // context->history->setSaved(); | // context->history->setSaved(); | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| FILE* const f = std::fopen(rack::system::join(context->patch->autosavePath, "patch.json").c_str(), "r"); | FILE* const f = std::fopen(rack::system::join(context->patch->autosavePath, "patch.json").c_str(), "r"); | ||||
| DISTRHO_SAFE_ASSERT_RETURN(f != nullptr, String()); | DISTRHO_SAFE_ASSERT_RETURN(f != nullptr, String()); | ||||
| @@ -1037,7 +1037,7 @@ protected: | |||||
| void setState(const char* const key, const char* const value) override | void setState(const char* const key, const char* const value) override | ||||
| { | { | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| if (std::strcmp(key, "param") == 0) | if (std::strcmp(key, "param") == 0) | ||||
| { | { | ||||
| long long moduleId = 0; | long long moduleId = 0; | ||||
| @@ -1115,7 +1115,7 @@ protected: | |||||
| if (fAutosavePath.empty()) | if (fAutosavePath.empty()) | ||||
| return; | return; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| rack::system::removeRecursively(fAutosavePath); | rack::system::removeRecursively(fAutosavePath); | ||||
| rack::system::createDirectories(fAutosavePath); | rack::system::createDirectories(fAutosavePath); | ||||
| @@ -1228,7 +1228,7 @@ protected: | |||||
| context->ticksPerClock = timePos.bbt.ticksPerBeat / timePos.bbt.beatType; | context->ticksPerClock = timePos.bbt.ticksPerBeat / timePos.bbt.beatType; | ||||
| context->ticksPerFrame = 1.0 / samplesPerTick; | context->ticksPerFrame = 1.0 / samplesPerTick; | ||||
| context->tickClock = std::fmod(timePos.bbt.tick, context->ticksPerClock); | context->tickClock = std::fmod(timePos.bbt.tick, context->ticksPerClock); | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| fMiniReportValues[kCardinalParameterMiniTimeBar - kCardinalParameterStartMini] = timePos.bbt.bar; | fMiniReportValues[kCardinalParameterMiniTimeBar - kCardinalParameterStartMini] = timePos.bbt.bar; | ||||
| fMiniReportValues[kCardinalParameterMiniTimeBeat - kCardinalParameterStartMini] = timePos.bbt.beat; | fMiniReportValues[kCardinalParameterMiniTimeBeat - kCardinalParameterStartMini] = timePos.bbt.beat; | ||||
| fMiniReportValues[kCardinalParameterMiniTimeBeatsPerBar - kCardinalParameterStartMini] = timePos.bbt.beatsPerBar; | fMiniReportValues[kCardinalParameterMiniTimeBeatsPerBar - kCardinalParameterStartMini] = timePos.bbt.beatsPerBar; | ||||
| @@ -1243,7 +1243,7 @@ protected: | |||||
| context->reset = reset; | context->reset = reset; | ||||
| fNextExpectedFrame = timePos.playing ? timePos.frame + frames : 0; | fNextExpectedFrame = timePos.playing ? timePos.frame + frames : 0; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| const int flags = (timePos.playing ? 0x1 : 0x0) | const int flags = (timePos.playing ? 0x1 : 0x0) | ||||
| | (timePos.bbt.valid ? 0x2 : 0x0) | | (timePos.bbt.valid ? 0x2 : 0x0) | ||||
| | (reset ? 0x4 : 0x0); | | (reset ? 0x4 : 0x0); | ||||
| @@ -1286,10 +1286,10 @@ protected: | |||||
| std::memset(outputs[i], 0, sizeof(float)*frames); | std::memset(outputs[i], 0, sizeof(float)*frames); | ||||
| } | } | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| for (int i=0; i<DISTRHO_PLUGIN_NUM_INPUTS; ++i) | for (int i=0; i<DISTRHO_PLUGIN_NUM_INPUTS; ++i) | ||||
| fMiniReportValues[i] = context->dataIns[i][0]; | fMiniReportValues[i] = context->dataIns[i][0]; | ||||
| #endif | |||||
| #endif | |||||
| if (bypassed) | if (bypassed) | ||||
| { | { | ||||
| @@ -28,11 +28,11 @@ | |||||
| #include "extra/Base64.hpp" | #include "extra/Base64.hpp" | ||||
| #include "extra/ScopedSafeLocale.hpp" | #include "extra/ScopedSafeLocale.hpp" | ||||
| #if defined(STATIC_BUILD) || CARDINAL_VARIANT_MINI | |||||
| #if defined(STATIC_BUILD) || ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| # undef HAVE_LIBLO | # undef HAVE_LIBLO | ||||
| #endif | #endif | ||||
| #if (CARDINAL_VARIANT_MINI || defined(HAVE_LIBLO)) && !defined(HEADLESS) | |||||
| #if (defined(HAVE_LIBLO) || ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS) && !defined(HEADLESS) | |||||
| # define CARDINAL_REMOTE_ENABLED | # define CARDINAL_REMOTE_ENABLED | ||||
| #endif | #endif | ||||
| @@ -88,7 +88,7 @@ bool connectToRemote() | |||||
| RemoteDetails* remoteDetails = ui->remoteDetails; | RemoteDetails* remoteDetails = ui->remoteDetails; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| if (remoteDetails == nullptr) | if (remoteDetails == nullptr) | ||||
| { | { | ||||
| ui->remoteDetails = remoteDetails = new RemoteDetails; | ui->remoteDetails = remoteDetails = new RemoteDetails; | ||||
| @@ -148,7 +148,7 @@ void idleRemote(RemoteDetails* const remote) | |||||
| void sendParamChangeToRemote(RemoteDetails* const remote, int64_t moduleId, int paramId, float value) | void sendParamChangeToRemote(RemoteDetails* const remote, int64_t moduleId, int paramId, float value) | ||||
| { | { | ||||
| #ifdef CARDINAL_REMOTE_ENABLED | #ifdef CARDINAL_REMOTE_ENABLED | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| char paramBuf[512] = {}; | char paramBuf[512] = {}; | ||||
| { | { | ||||
| const ScopedSafeLocale cssl; | const ScopedSafeLocale cssl; | ||||
| @@ -179,7 +179,7 @@ void sendFullPatchToRemote(RemoteDetails* const remote) | |||||
| std::vector<uint8_t> data; | std::vector<uint8_t> data; | ||||
| using namespace rack::system; | using namespace rack::system; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| FILE* const f = std::fopen(join(context->patch->autosavePath, "patch.json").c_str(), "r"); | FILE* const f = std::fopen(join(context->patch->autosavePath, "patch.json").c_str(), "r"); | ||||
| DISTRHO_SAFE_ASSERT_RETURN(f != nullptr,); | DISTRHO_SAFE_ASSERT_RETURN(f != nullptr,); | ||||
| @@ -221,7 +221,7 @@ void sendFullPatchToRemote(RemoteDetails* const remote) | |||||
| void sendScreenshotToRemote(RemoteDetails*, const char* const screenshot) | void sendScreenshotToRemote(RemoteDetails*, const char* const screenshot) | ||||
| { | { | ||||
| #if defined(HAVE_LIBLO) && ! CARDINAL_VARIANT_MINI | |||||
| #if defined(HAVE_LIBLO) && DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| const lo_address addr = lo_address_new_with_proto(LO_UDP, REMOTE_HOST, CARDINAL_DEFAULT_REMOTE_HOST_PORT); | const lo_address addr = lo_address_new_with_proto(LO_UDP, REMOTE_HOST, CARDINAL_DEFAULT_REMOTE_HOST_PORT); | ||||
| DISTRHO_SAFE_ASSERT_RETURN(addr != nullptr,); | DISTRHO_SAFE_ASSERT_RETURN(addr != nullptr,); | ||||
| @@ -346,7 +346,7 @@ public: | |||||
| { | { | ||||
| rack::contextSet(context); | rack::contextSet(context); | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| // create unique temporary path for this instance | // create unique temporary path for this instance | ||||
| try { | try { | ||||
| char uidBuf[24]; | char uidBuf[24]; | ||||
| @@ -490,7 +490,7 @@ public: | |||||
| context->tlw = nullptr; | context->tlw = nullptr; | ||||
| context->ui = nullptr; | context->ui = nullptr; | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| { | { | ||||
| const ScopedContext sc(this); | const ScopedContext sc(this); | ||||
| context->patch->clear(); | context->patch->clear(); | ||||
| @@ -620,7 +620,7 @@ public: | |||||
| filebrowserhandle = nullptr; | filebrowserhandle = nullptr; | ||||
| } | } | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| { | { | ||||
| const ScopedContext sc(this); | const ScopedContext sc(this); | ||||
| for (uint32_t i=0; i<DISTRHO_PLUGIN_NUM_OUTPUTS;++i) | for (uint32_t i=0; i<DISTRHO_PLUGIN_NUM_OUTPUTS;++i) | ||||
| @@ -726,7 +726,7 @@ protected: | |||||
| // host mapped parameters | // host mapped parameters | ||||
| if (index < kCardinalParameterCountAtModules) | if (index < kCardinalParameterCountAtModules) | ||||
| { | { | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| context->parameters[index] = value; | context->parameters[index] = value; | ||||
| #endif | #endif | ||||
| return; | return; | ||||
| @@ -735,7 +735,7 @@ protected: | |||||
| // bypass | // bypass | ||||
| if (index == kCardinalParameterBypass) | if (index == kCardinalParameterBypass) | ||||
| { | { | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| context->bypassed = value > 0.5f; | context->bypassed = value > 0.5f; | ||||
| #endif | #endif | ||||
| return; | return; | ||||
| @@ -829,7 +829,7 @@ protected: | |||||
| return; | return; | ||||
| } | } | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| if (index < kCardinalParameterCountAtMiniBuffers) | if (index < kCardinalParameterCountAtMiniBuffers) | ||||
| { | { | ||||
| float* const buffer = *const_cast<float**>(&context->dataIns[index - kCardinalParameterStartMiniBuffers]); | float* const buffer = *const_cast<float**>(&context->dataIns[index - kCardinalParameterStartMiniBuffers]); | ||||
| @@ -886,7 +886,7 @@ protected: | |||||
| void stateChanged(const char* const key, const char* const value) override | void stateChanged(const char* const key, const char* const value) override | ||||
| { | { | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if CARDINAL_VARIANT_MINI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| if (std::strcmp(key, "patch") == 0) | if (std::strcmp(key, "patch") == 0) | ||||
| { | { | ||||
| if (fAutosavePath.empty()) | if (fAutosavePath.empty()) | ||||
| @@ -244,12 +244,14 @@ all: $(TARGETS) | |||||
| ifeq ($(MOD_BUILD),true) | ifeq ($(MOD_BUILD),true) | ||||
| $(MAKE) -C Cardinal lv2 | $(MAKE) -C Cardinal lv2 | ||||
| $(MAKE) -C CardinalFX lv2 | $(MAKE) -C CardinalFX lv2 | ||||
| $(MAKE) -C CardinalMini lv2_sep | |||||
| $(MAKE) -C CardinalMiniSep lv2_sep | |||||
| else ifeq ($(WASM),true) | else ifeq ($(WASM),true) | ||||
| $(MAKE) -C CardinalNative | $(MAKE) -C CardinalNative | ||||
| $(MAKE) -C CardinalMini | |||||
| else | else | ||||
| $(MAKE) -C Cardinal | $(MAKE) -C Cardinal | ||||
| $(MAKE) -C CardinalMini | $(MAKE) -C CardinalMini | ||||
| $(MAKE) -C CardinalMiniSep | |||||
| $(MAKE) -C CardinalNative | $(MAKE) -C CardinalNative | ||||
| $(MAKE) -C CardinalFX $(CARDINAL_FX_ARGS) | $(MAKE) -C CardinalFX $(CARDINAL_FX_ARGS) | ||||
| $(MAKE) -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | $(MAKE) -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | ||||
| @@ -265,7 +267,7 @@ lv2: $(TARGETS) | |||||
| $(MAKE) lv2 -C Cardinal | $(MAKE) lv2 -C Cardinal | ||||
| $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | ||||
| $(MAKE) lv2 -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | $(MAKE) lv2 -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | ||||
| $(MAKE) lv2_sep -C CardinalMini | |||||
| $(MAKE) lv2_sep -C CardinalMiniSep | |||||
| vst2: $(TARGETS) | vst2: $(TARGETS) | ||||
| $(MAKE) vst2 -C CardinalFX $(CARDINAL_FX_ARGS) | $(MAKE) vst2 -C CardinalFX $(CARDINAL_FX_ARGS) | ||||
| @@ -67,7 +67,7 @@ WASM_EXCEPTIONS = true | |||||
| ifeq ($(CARDINAL_VARIANT),main) | ifeq ($(CARDINAL_VARIANT),main) | ||||
| # main variant should not use rtaudio/sdl2 fallback (it has CV ports) | # main variant should not use rtaudio/sdl2 fallback (it has CV ports) | ||||
| SKIP_NATIVE_AUDIO_FALLBACK = true | SKIP_NATIVE_AUDIO_FALLBACK = true | ||||
| else | |||||
| else ifneq ($(CARDINAL_VARIANT),mini) | |||||
| # other variants should only use rtaudio/sdl2 fallbacks | # other variants should only use rtaudio/sdl2 fallbacks | ||||
| FORCE_NATIVE_AUDIO_FALLBACK = true | FORCE_NATIVE_AUDIO_FALLBACK = true | ||||
| endif | endif | ||||
| @@ -99,7 +99,7 @@ FILES_DSP += CardinalCommon.cpp | |||||
| FILES_DSP += CardinalRemote.cpp | FILES_DSP += CardinalRemote.cpp | ||||
| FILES_DSP += common.cpp | FILES_DSP += common.cpp | ||||
| ifeq ($(CARDINAL_VARIANT),mini) | |||||
| ifeq ($(DSP_UI_SPLIT),true) | |||||
| FILES_DSP += RemoteNanoVG.cpp | FILES_DSP += RemoteNanoVG.cpp | ||||
| FILES_DSP += RemoteWindow.cpp | FILES_DSP += RemoteWindow.cpp | ||||
| else ifeq ($(HEADLESS),true) | else ifeq ($(HEADLESS),true) | ||||
| @@ -119,18 +119,20 @@ endif | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Rack and plugin libs | # Rack and plugin libs | ||||
| ifeq ($(HEADLESS),true) | |||||
| ifeq ($(DSP_UI_SPLIT),true) | |||||
| TARGET_SUFFIX = -headless | |||||
| else ifeq ($(HEADLESS),true) | |||||
| TARGET_SUFFIX = -headless | TARGET_SUFFIX = -headless | ||||
| endif | endif | ||||
| ifeq ($(CARDINAL_VARIANT),mini) | ifeq ($(CARDINAL_VARIANT),mini) | ||||
| RACK_EXTRA_LIBS = ../../plugins/plugins-mini-headless.a | |||||
| RACK_EXTRA_LIBS = ../../plugins/plugins-mini$(TARGET_SUFFIX).a | |||||
| else | else | ||||
| RACK_EXTRA_LIBS = ../../plugins/plugins$(TARGET_SUFFIX).a | RACK_EXTRA_LIBS = ../../plugins/plugins$(TARGET_SUFFIX).a | ||||
| endif | endif | ||||
| ifeq ($(CARDINAL_VARIANT),mini) | ifeq ($(CARDINAL_VARIANT),mini) | ||||
| RACK_EXTRA_LIBS += ../rack-headless.a | |||||
| RACK_EXTRA_LIBS += ../rack$(TARGET_SUFFIX).a | |||||
| else | else | ||||
| RACK_EXTRA_LIBS += ../rack$(TARGET_SUFFIX).a | RACK_EXTRA_LIBS += ../rack$(TARGET_SUFFIX).a | ||||
| endif | endif | ||||
| @@ -255,7 +257,7 @@ endif | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # mini variant UI | # mini variant UI | ||||
| ifeq ($(CARDINAL_VARIANT),mini) | |||||
| ifeq ($(DSP_UI_SPLIT),true) | |||||
| ifneq ($(HEADLESS),true) | ifneq ($(HEADLESS),true) | ||||
| FILES_UI = CardinalUI.cpp | FILES_UI = CardinalUI.cpp | ||||
| FILES_UI += CardinalCommon-UI.cpp | FILES_UI += CardinalCommon-UI.cpp | ||||
| @@ -324,13 +326,10 @@ endif | |||||
| ifeq ($(MOD_BUILD),true) | ifeq ($(MOD_BUILD),true) | ||||
| BASE_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff | BASE_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff | ||||
| BASE_FLAGS += -DDISTRHO_PLUGIN_USES_MODGUI=1 | BASE_FLAGS += -DDISTRHO_PLUGIN_USES_MODGUI=1 | ||||
| ifeq ($(CARDINAL_VARIANT),mini) | |||||
| BASE_FLAGS += -DDISTRHO_PLUGIN_USES_CUSTOM_MODGUI=0 | |||||
| else | |||||
| BASE_FLAGS += -DDISTRHO_PLUGIN_USES_CUSTOM_MODGUI=1 | |||||
| endif | |||||
| BASE_FLAGS += -DSIMDE_ENABLE_OPENMP -fopenmp | BASE_FLAGS += -DSIMDE_ENABLE_OPENMP -fopenmp | ||||
| LINK_FLAGS += -fopenmp | LINK_FLAGS += -fopenmp | ||||
| else ifeq ($(CARDINAL_VARIANT),mini) | |||||
| BUILD_CXX_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff | |||||
| endif | endif | ||||
| ifneq ($(WASM),true) | ifneq ($(WASM),true) | ||||
| @@ -362,10 +361,6 @@ BUILD_CXX_FLAGS += -std=gnu++17 | |||||
| endif | endif | ||||
| endif | endif | ||||
| ifeq ($(CARDINAL_VARIANT),mini) | |||||
| BUILD_CXX_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff | |||||
| endif | |||||
| # Rack code is not tested for this flag, unset it | # Rack code is not tested for this flag, unset it | ||||
| BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS | BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS | ||||
| @@ -504,8 +499,10 @@ BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' | |||||
| ifeq ($(CARDINAL_VARIANT),main) | ifeq ($(CARDINAL_VARIANT),main) | ||||
| TARGETS = jack lv2 vst3 clap | TARGETS = jack lv2 vst3 clap | ||||
| else ifeq ($(CARDINAL_VARIANT),mini) | |||||
| else ifeq ($(DSP_UI_SPLIT),true) | |||||
| TARGETS = lv2_sep | TARGETS = lv2_sep | ||||
| else ifeq ($(CARDINAL_VARIANT),mini) | |||||
| TARGETS = jack | |||||
| else ifeq ($(CARDINAL_VARIANT),native) | else ifeq ($(CARDINAL_VARIANT),native) | ||||
| TARGETS = jack | TARGETS = jack | ||||
| else | else | ||||
| @@ -205,7 +205,9 @@ struct CardinalPluginContext : rack::Context { | |||||
| // ----------------------------------------------------------------------------------------------------------- | // ----------------------------------------------------------------------------------------------------------- | ||||
| #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| CardinalPluginContext* getRackContextFromPlugin(void* ptr); | CardinalPluginContext* getRackContextFromPlugin(void* ptr); | ||||
| #endif | |||||
| class CardinalBasePlugin : public Plugin { | class CardinalBasePlugin : public Plugin { | ||||
| public: | public: | ||||
| @@ -135,7 +135,7 @@ struct FileButton : MenuButton { | |||||
| patchUtils::loadTemplateDialog(); | patchUtils::loadTemplateDialog(); | ||||
| })); | })); | ||||
| #if ! CARDINAL_VARIANT_MINI | |||||
| #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| #ifndef DISTRHO_OS_WASM | #ifndef DISTRHO_OS_WASM | ||||
| menu->addChild(createMenuItem("Open / Import...", RACK_MOD_CTRL_NAME "+O", []() { | menu->addChild(createMenuItem("Open / Import...", RACK_MOD_CTRL_NAME "+O", []() { | ||||
| patchUtils::loadDialog(); | patchUtils::loadDialog(); | ||||
| @@ -172,7 +172,7 @@ struct FileButton : MenuButton { | |||||
| patchUtils::revertDialog(); | patchUtils::revertDialog(); | ||||
| }, APP->patch->path.empty())); | }, APP->patch->path.empty())); | ||||
| #if defined(HAVE_LIBLO) || CARDINAL_VARIANT_MINI | |||||
| #if defined(HAVE_LIBLO) || ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| #ifdef __MOD_DEVICES__ | #ifdef __MOD_DEVICES__ | ||||
| #define REMOTE_NAME "MOD" | #define REMOTE_NAME "MOD" | ||||
| #else | #else | ||||
| @@ -201,7 +201,7 @@ struct FileButton : MenuButton { | |||||
| } | } | ||||
| #endif | #endif | ||||
| #if ! CARDINAL_VARIANT_MINI | |||||
| #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| #ifndef DISTRHO_OS_WASM | #ifndef DISTRHO_OS_WASM | ||||
| menu->addChild(new ui::MenuSeparator); | menu->addChild(new ui::MenuSeparator); | ||||
| @@ -768,7 +768,7 @@ struct MeterLabel : ui::Label { | |||||
| // uiLastTime = time; | // uiLastTime = time; | ||||
| // } | // } | ||||
| #if CARDINAL_VARIANT_MINI | |||||
| #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| text = string::f("%.1f fps", 1.0 / frameDurationAvg); | text = string::f("%.1f fps", 1.0 / frameDurationAvg); | ||||
| #else | #else | ||||
| double meterAverage = APP->engine->getMeterAverage(); | double meterAverage = APP->engine->getMeterAverage(); | ||||
| @@ -807,7 +807,7 @@ struct MenuBar : widget::OpaqueWidget { | |||||
| viewButton->text = "View"; | viewButton->text = "View"; | ||||
| layout->addChild(viewButton); | layout->addChild(viewButton); | ||||
| #if ! CARDINAL_VARIANT_MINI | |||||
| #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||||
| EngineButton* engineButton = new EngineButton; | EngineButton* engineButton = new EngineButton; | ||||
| engineButton->text = "Engine"; | engineButton->text = "Engine"; | ||||
| layout->addChild(engineButton); | layout->addChild(engineButton); | ||||
| @@ -330,8 +330,10 @@ void Scene::onHoverKey(const HoverKeyEvent& e) { | |||||
| } | } | ||||
| if (e.key == GLFW_KEY_F7 && (e.mods & RACK_MOD_MASK) == 0) { | if (e.key == GLFW_KEY_F7 && (e.mods & RACK_MOD_MASK) == 0) { | ||||
| if (remoteUtils::RemoteDetails* const remoteDetails = remoteUtils::getRemote()) | if (remoteUtils::RemoteDetails* const remoteDetails = remoteUtils::getRemote()) | ||||
| { | |||||
| remoteUtils::sendFullPatchToRemote(remoteDetails); | remoteUtils::sendFullPatchToRemote(remoteDetails); | ||||
| window::generateScreenshot(); | |||||
| window::generateScreenshot(); | |||||
| } | |||||
| e.consume(this); | e.consume(this); | ||||
| } | } | ||||
| if (e.key == GLFW_KEY_F9 && (e.mods & RACK_MOD_MASK) == 0) { | if (e.key == GLFW_KEY_F9 && (e.mods & RACK_MOD_MASK) == 0) { | ||||