Based on FX but forces usage of native audio/midi instead of JACK Signed-off-by: falkTX <falktx@falktx.com>tags/22.09
| @@ -1 +1 @@ | |||||
| Subproject commit d41b971d77dceadcb76a7736908d0b6a36ff1469 | |||||
| Subproject commit f412918c5f4022f074663abf86877a67f9d9a421 | |||||
| @@ -28,13 +28,7 @@ | |||||
| #define DISTRHO_PLUGIN_BRAND "DISTRHO" | #define DISTRHO_PLUGIN_BRAND "DISTRHO" | ||||
| #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/cardinal#fx" | #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/cardinal#fx" | ||||
| #if defined(DISTRHO_OS_WASM) && defined(STATIC_BUILD) | |||||
| # define DISTRHO_PLUGIN_NAME "Mini Cardinal" | |||||
| # define DISTRHO_PLUGIN_LABEL "MiniCardinal" | |||||
| #elif defined(DISTRHO_OS_WASM) | |||||
| # define DISTRHO_PLUGIN_NAME "Cardinal" | |||||
| # define DISTRHO_PLUGIN_LABEL "Cardinal" | |||||
| #elif defined(__MOD_DEVICES__) | |||||
| #if defined(__MOD_DEVICES__) | |||||
| # define DISTRHO_PLUGIN_NAME "Cardinal Mini" | # define DISTRHO_PLUGIN_NAME "Cardinal Mini" | ||||
| # define DISTRHO_PLUGIN_LABEL "CardinalMini" | # define DISTRHO_PLUGIN_LABEL "CardinalMini" | ||||
| #else | #else | ||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalCommon.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalPlugin.cpp | |||||
| @@ -0,0 +1 @@ | |||||
| ../CardinalUI.cpp | |||||
| @@ -0,0 +1,59 @@ | |||||
| /* | |||||
| * 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_FX 1 | |||||
| #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" | |||||
| #if defined(DISTRHO_OS_WASM) && defined(STATIC_BUILD) | |||||
| # define DISTRHO_PLUGIN_NAME "Mini Cardinal" | |||||
| # define DISTRHO_PLUGIN_LABEL "MiniCardinal" | |||||
| #else | |||||
| # define DISTRHO_PLUGIN_NAME "Cardinal" | |||||
| # define DISTRHO_PLUGIN_LABEL "Cardinal" | |||||
| #endif | |||||
| #ifdef HEADLESS | |||||
| #define DISTRHO_PLUGIN_HAS_UI 0 | |||||
| #else | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | |||||
| #define DISTRHO_UI_FILE_BROWSER 1 | |||||
| #define DISTRHO_UI_USE_NANOVG 1 | |||||
| #define DISTRHO_UI_USER_RESIZABLE 1 | |||||
| #endif | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS | |||||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS | |||||
| #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 "lv2:UtilityPlugin" | |||||
| #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Generator" | |||||
| #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
| @@ -0,0 +1,8 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| NAME = CardinalNative | |||||
| include ../Makefile.cardinal.mk | |||||
| @@ -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 | |||||
| @@ -206,9 +206,10 @@ ifeq ($(MOD_BUILD),true) | |||||
| $(MAKE) -C Cardinal lv2 | $(MAKE) -C Cardinal lv2 | ||||
| $(MAKE) -C CardinalFX lv2 | $(MAKE) -C CardinalFX lv2 | ||||
| else ifeq ($(WASM),true) | else ifeq ($(WASM),true) | ||||
| $(MAKE) -C CardinalFX jack | |||||
| $(MAKE) -C CardinalNative | |||||
| else | else | ||||
| $(MAKE) -C Cardinal | $(MAKE) -C Cardinal | ||||
| $(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) | ||||
| endif | endif | ||||
| @@ -216,6 +217,9 @@ endif | |||||
| jack: $(TARGET) | jack: $(TARGET) | ||||
| $(MAKE) jack -C Cardinal | $(MAKE) jack -C Cardinal | ||||
| native: $(TARGET) | |||||
| $(MAKE) jack -C CardinalNative | |||||
| lv2: $(TARGET) | lv2: $(TARGET) | ||||
| $(MAKE) lv2 -C Cardinal | $(MAKE) lv2 -C Cardinal | ||||
| $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | ||||
| @@ -10,6 +10,8 @@ ifeq ($(NAME),Cardinal) | |||||
| CARDINAL_VARIANT = main | CARDINAL_VARIANT = main | ||||
| else ifeq ($(NAME),CardinalFX) | else ifeq ($(NAME),CardinalFX) | ||||
| CARDINAL_VARIANT = fx | CARDINAL_VARIANT = fx | ||||
| else ifeq ($(NAME),CardinalNative) | |||||
| CARDINAL_VARIANT = native | |||||
| else ifeq ($(NAME),CardinalSynth) | else ifeq ($(NAME),CardinalSynth) | ||||
| CARDINAL_VARIANT = synth | CARDINAL_VARIANT = synth | ||||
| endif | endif | ||||
| @@ -55,6 +57,15 @@ NVG_DISABLE_SKIPPING_WHITESPACE = true | |||||
| NVG_FONT_TEXTURE_FLAGS = NVG_IMAGE_NEAREST | NVG_FONT_TEXTURE_FLAGS = NVG_IMAGE_NEAREST | ||||
| USE_NANOVG_FBO = true | USE_NANOVG_FBO = true | ||||
| WASM_EXCEPTIONS = true | WASM_EXCEPTIONS = true | ||||
| ifeq ($(CARDINAL_VARIANT),main) | |||||
| # main variant should not use rtaudio/sdl2 fallback (it has CV ports) | |||||
| SKIP_NATIVE_AUDIO_FALLBACK = true | |||||
| else | |||||
| # fx and synth variants should only use rtaudio/sdl2 fallbacks | |||||
| FORCE_NATIVE_AUDIO_FALLBACK = true | |||||
| endif | |||||
| include ../../dpf/Makefile.base.mk | include ../../dpf/Makefile.base.mk | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| @@ -300,11 +311,9 @@ BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' | |||||
| # Enable all possible plugin types and setup resources | # Enable all possible plugin types and setup resources | ||||
| ifeq ($(CARDINAL_VARIANT),main) | ifeq ($(CARDINAL_VARIANT),main) | ||||
| ifneq ($(STATIC_BUILD),true) | |||||
| all: jack lv2 vst3 | all: jack lv2 vst3 | ||||
| else | |||||
| all: lv2 vst3 | |||||
| endif # STATIC_BUILD | |||||
| else ifeq ($(CARDINAL_VARIANT),native) | |||||
| all: jack | |||||
| else | else | ||||
| all: lv2 vst2 vst3 static | all: lv2 vst2 vst3 static | ||||
| endif | endif | ||||
| @@ -323,11 +332,6 @@ LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui/documentation.pdf | |||||
| LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui | LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui | ||||
| endif | endif | ||||
| # Cardinal main variant should not use rtaudio/sdl2 fallback (it has CV ports) | |||||
| ifeq ($(CARDINAL_VARIANT),main) | |||||
| jack: BUILD_CXX_FLAGS += -DDPF_JACK_STANDALONE_SKIP_RTAUDIO_FALLBACK -DDPF_JACK_STANDALONE_SKIP_SDL2_FALLBACK | |||||
| endif | |||||
| # Cardinal main variant is not available as VST2 due to lack of CV ports | # Cardinal main variant is not available as VST2 due to lack of CV ports | ||||
| ifneq ($(CARDINAL_VARIANT),main) | ifneq ($(CARDINAL_VARIANT),main) | ||||
| ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||