Browse Source

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>
tags/22.09
falkTX 2 years ago
parent
commit
4ead1d80bd
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
14 changed files with 95 additions and 18 deletions
  1. +1
    -1
      dpf
  2. +1
    -7
      src/CardinalFX/DistrhoPluginInfo.h
  3. +1
    -0
      src/CardinalNative/CardinalCommon.cpp
  4. +1
    -0
      src/CardinalNative/CardinalPlugin.cpp
  5. +1
    -0
      src/CardinalNative/CardinalUI.cpp
  6. +59
    -0
      src/CardinalNative/DistrhoPluginInfo.h
  7. +8
    -0
      src/CardinalNative/Makefile
  8. +1
    -0
      src/CardinalNative/RemoteNanoVG.cpp
  9. +1
    -0
      src/CardinalNative/RemoteWindow.cpp
  10. +1
    -0
      src/CardinalNative/Window.cpp
  11. +1
    -0
      src/CardinalNative/common.cpp
  12. +1
    -0
      src/CardinalNative/glfw.cpp
  13. +5
    -1
      src/Makefile
  14. +13
    -9
      src/Makefile.cardinal.mk

+ 1
- 1
dpf

@@ -1 +1 @@
Subproject commit d41b971d77dceadcb76a7736908d0b6a36ff1469
Subproject commit f412918c5f4022f074663abf86877a67f9d9a421

+ 1
- 7
src/CardinalFX/DistrhoPluginInfo.h 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


+ 1
- 0
src/CardinalNative/CardinalCommon.cpp View File

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

+ 1
- 0
src/CardinalNative/CardinalPlugin.cpp View File

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

+ 1
- 0
src/CardinalNative/CardinalUI.cpp View File

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

+ 59
- 0
src/CardinalNative/DistrhoPluginInfo.h 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

+ 8
- 0
src/CardinalNative/Makefile View File

@@ -0,0 +1,8 @@
#!/usr/bin/make -f
# Makefile for DISTRHO Plugins #
# ---------------------------- #
# Created by falkTX
#

NAME = CardinalNative
include ../Makefile.cardinal.mk

+ 1
- 0
src/CardinalNative/RemoteNanoVG.cpp View File

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

+ 1
- 0
src/CardinalNative/RemoteWindow.cpp View File

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

+ 1
- 0
src/CardinalNative/Window.cpp View File

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

+ 1
- 0
src/CardinalNative/common.cpp View File

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

+ 1
- 0
src/CardinalNative/glfw.cpp View File

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

+ 5
- 1
src/Makefile 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)


+ 13
- 9
src/Makefile.cardinal.mk 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)


Loading…
Cancel
Save