Add a single CardinalNative standalone variant

Based on FX but forces usage of native audio/midi instead of JACK

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2022-07-27 04:29:54 +01:00
parent 39f240f705
commit 4ead1d80bd
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
14 changed files with 95 additions and 18 deletions

View file

@ -28,13 +28,7 @@
#define DISTRHO_PLUGIN_BRAND "DISTRHO"
#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_LABEL "CardinalMini"
#else

View file

@ -0,0 +1 @@
../CardinalCommon.cpp

View file

@ -0,0 +1 @@
../CardinalPlugin.cpp

View file

@ -0,0 +1 @@
../CardinalUI.cpp

View file

@ -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

View file

@ -0,0 +1,8 @@
#!/usr/bin/make -f
# Makefile for DISTRHO Plugins #
# ---------------------------- #
# Created by falkTX
#
NAME = CardinalNative
include ../Makefile.cardinal.mk

View file

@ -0,0 +1 @@
../custom/RemoteNanoVG.cpp

View file

@ -0,0 +1 @@
../custom/RemoteWindow.cpp

View file

@ -0,0 +1 @@
../override/Window.cpp

View file

@ -0,0 +1 @@
../override/common.cpp

1
src/CardinalNative/glfw.cpp Symbolic link
View file

@ -0,0 +1 @@
../custom/glfw.cpp

View file

@ -206,9 +206,10 @@ ifeq ($(MOD_BUILD),true)
$(MAKE) -C Cardinal lv2
$(MAKE) -C CardinalFX lv2
else ifeq ($(WASM),true)
$(MAKE) -C CardinalFX jack
$(MAKE) -C CardinalNative
else
$(MAKE) -C Cardinal
$(MAKE) -C CardinalNative
$(MAKE) -C CardinalFX $(CARDINAL_FX_ARGS)
$(MAKE) -C CardinalSynth $(CARDINAL_SYNTH_ARGS)
endif
@ -216,6 +217,9 @@ endif
jack: $(TARGET)
$(MAKE) jack -C Cardinal
native: $(TARGET)
$(MAKE) jack -C CardinalNative
lv2: $(TARGET)
$(MAKE) lv2 -C Cardinal
$(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS)

View file

@ -10,6 +10,8 @@ ifeq ($(NAME),Cardinal)
CARDINAL_VARIANT = main
else ifeq ($(NAME),CardinalFX)
CARDINAL_VARIANT = fx
else ifeq ($(NAME),CardinalNative)
CARDINAL_VARIANT = native
else ifeq ($(NAME),CardinalSynth)
CARDINAL_VARIANT = synth
endif
@ -55,6 +57,15 @@ NVG_DISABLE_SKIPPING_WHITESPACE = true
NVG_FONT_TEXTURE_FLAGS = NVG_IMAGE_NEAREST
USE_NANOVG_FBO = 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
# --------------------------------------------------------------
@ -300,11 +311,9 @@ BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"'
# Enable all possible plugin types and setup resources
ifeq ($(CARDINAL_VARIANT),main)
ifneq ($(STATIC_BUILD),true)
all: jack lv2 vst3
else
all: lv2 vst3
endif # STATIC_BUILD
else ifeq ($(CARDINAL_VARIANT),native)
all: jack
else
all: lv2 vst2 vst3 static
endif
@ -323,11 +332,6 @@ LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui/documentation.pdf
LV2_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui
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
ifneq ($(CARDINAL_VARIANT),main)
ifeq ($(MACOS),true)