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) { | ||||