Browse Source

Merge branch 'DISTRHO:main' into update-voxglitch

pull/787/head
rl2939 GitHub 2 months ago
parent
commit
c2adb33a2b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
24 changed files with 199 additions and 124 deletions
  1. +1
    -1
      .github/ISSUE_TEMPLATE/bug.yaml
  2. +2
    -1
      .github/workflows/build.yml
  3. +3
    -0
      .gitmodules
  4. +20
    -8
      Makefile
  5. +1
    -0
      README.md
  6. +1
    -1
      carla
  7. +2
    -0
      docs/LICENSES.md
  8. +1
    -1
      dpf
  9. +1
    -1
      plugins/CVfunk
  10. +0
    -9
      plugins/Cardinal/plugin.json
  11. +17
    -9
      plugins/Makefile
  12. +1
    -1
      plugins/Sapphire
  13. +1
    -0
      plugins/Venom
  14. +101
    -8
      plugins/plugins.cpp
  15. +5
    -51
      src/CardinalCommon.cpp
  16. +1
    -1
      src/CardinalPlugin.cpp
  17. +0
    -14
      src/CardinalUI.cpp
  18. +3
    -0
      src/Makefile
  19. +6
    -0
      src/Makefile.cardinal.mk
  20. +2
    -1
      src/custom/RemoteNanoVG.cpp
  21. +11
    -1
      src/custom/glfw.cpp
  22. +17
    -14
      src/override/Scene.cpp
  23. +1
    -1
      utils/macOS/Info_JACK.plist
  24. +1
    -1
      utils/macOS/Info_Native.plist

+ 1
- 1
.github/ISSUE_TEMPLATE/bug.yaml View File

@@ -5,7 +5,7 @@ body:
id: version
attributes:
label: Version
value: "25.06"
value: "25.10"
validations:
required: true
- type: dropdown


+ 2
- 1
.github/workflows/build.yml View File

@@ -180,6 +180,7 @@ jobs:
key: macos-universal-v${{ env.CACHE_VERSION }}
- name: Setup dependencies
run: |
brew uninstall --force --ignore-dependencies cmake
./deps/PawPaw/.github/workflows/bootstrap-deps.sh macos-universal-10.15
- name: Build extra dependencies
run: |
@@ -425,7 +426,7 @@ jobs:
export PATH="/usr/lib/ccache:${PATH}"
source deps/PawPaw/local.env ${{ matrix.target }}
make features
make NOOPT=true -j $(nproc)
xvfb-run make NOOPT=true -j $(nproc)
- name: Build cross-compiled (carla)
if: steps.cache.outputs.cache-hit == 'true'
shell: bash


+ 3
- 0
.gitmodules View File

@@ -263,3 +263,6 @@
[submodule "plugins/eightfold"]
path = plugins/eightfold
url = https://github.com/scanner-darkly/eightfold.git
[submodule "plugins/Venom"]
path = plugins/Venom
url = https://github.com/DaveBenham/VenomModules

+ 20
- 8
Makefile View File

@@ -1,12 +1,12 @@
#!/usr/bin/make -f
# DISTRHO Cardinal Plugin
# Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com>
# Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com>
# SPDX-License-Identifier: GPL-3.0-or-later

ROOT = .
include $(ROOT)/Makefile.base.mk

# -----------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# Set version

# also set in:
@@ -15,20 +15,20 @@ include $(ROOT)/Makefile.base.mk
# src/CardinalPlugin.cpp `getVersion`
# utils/macOS/Info_{JACK,Native}.plist
# .github/ISSUE_TEMPLATE/bug.yaml src/CardinalCommon.cpp src/CardinalPlugin.cpp utils/macOS/Info_{JACK,Native}.plist
VERSION = 25.06
VERSION = 25.10

# --------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# Build targets

all: cardinal carla deps dgl plugins gen resources

# --------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# Build config

PREFIX ?= /usr/local
DESTDIR ?=

# --------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# Carla config

CARLA_EXTRA_ARGS = \
@@ -44,7 +44,16 @@ ifneq ($(DEBUG),true)
CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true
endif

# --------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# DGL config

ifeq ($(WASM),true)
UI_TYPE = gles2
else
UI_TYPE = opengl
endif

# ---------------------------------------------------------------------------------------------------------------------
# Check for required system-wide dependencies

ifeq ($(SYSDEPS),true)
@@ -183,7 +192,7 @@ endif

dgl:
ifneq ($(HEADLESS),true)
$(MAKE) opengl -C dpf/dgl $(DGL_EXTRA_ARGS)
$(MAKE) $(UI_TYPE) -C dpf/dgl $(DGL_EXTRA_ARGS)
endif

plugins: deps
@@ -229,6 +238,9 @@ clap: carla deps dgl plugins resources
lv2: carla deps dgl plugins resources
$(MAKE) lv2 -C src $(CARLA_EXTRA_ARGS)

mapi: carla deps dgl plugins resources
$(MAKE) mapi -C src $(CARLA_EXTRA_ARGS)

vst2: carla deps dgl plugins resources
$(MAKE) vst2 -C src $(CARLA_EXTRA_ARGS)



+ 1
- 0
README.md View File

@@ -196,6 +196,7 @@ At the moment the following 3rd-party modules are provided:
- [Surge XT](https://github.com/surge-synthesizer/surge-rack)
- [unless_modules](https://gitlab.com/unlessgames/unless_modules)
- [Valley](https://github.com/ValleyAudio/ValleyRackFree)
- [Venom](https://github.com/DaveBenham/VenomModules)
- [Voxglitch](https://github.com/clone45/voxglitch)
- [WhatTheRack](https://github.com/korfuri/WhatTheRack)
- [WSTD-Drums](https://github.com/Wasted-Audio/WSTD-Drums)


+ 1
- 1
carla

@@ -1 +1 @@
Subproject commit c9b60551497a7a9b76d86d694b6af08afe96335c
Subproject commit 1d8dcb5aab5e0c30352e9f928ce3e40cbc86a439

+ 2
- 0
docs/LICENSES.md View File

@@ -90,6 +90,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules
| Surge XT | GPL-3.0-or-later | |
| unless_modules | GPL-3.0-or-later | |
| Valley | GPL-3.0-or-later | |
| Venom | GPL-3.0-or-later | |
| Voxglitch | GPL-3.0-or-later | |
| WSTD-Drums | CC0-1.0 | |
| WhatTheRack | WTFPL | |
@@ -266,6 +267,7 @@ Below is a list of artwork licenses from plugins
| ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | |
| ValleyAudio/DSEG14Classic-*.ttf | OFL-1.1-RFN | |
| ValleyAudio/ShareTechMono-*.ttf | OFL-1.1-RFN | |
| Venom/* | GPL-3.0-or-later | No artwork specific license provided |
| voxglitch/* | GPL-3.0-or-later | No artwork specific license provided |
| voxglitch/ShareTechMono-Regular.ttf | OFL-1.1-RFN | |
| WhatTheRack/* | WTFPL | |


+ 1
- 1
dpf

@@ -1 +1 @@
Subproject commit 8c30f9f1eddba89805f4131aeb2d6ca3e31a46b1
Subproject commit 04eb91490c70a0c3f524e473087e263d8a9d550f

+ 1
- 1
plugins/CVfunk

@@ -1 +1 @@
Subproject commit a116e6b18ac05974a23509cc47adfd86e8406385
Subproject commit 51f2b4e61cde7978fb84cdd892a1d3aaedc0ff5b

+ 0
- 9
plugins/Cardinal/plugin.json View File

@@ -192,15 +192,6 @@
"Utility"
]
},
{
"slug": "MPV",
"name": "MPV",
"description": "An embed video player inside Cardinal",
"manualUrl": "https://github.com/DISTRHO/Cardinal/blob/main/docs/CARDINAL-MODULES.md#mpv",
"tags": [
"Visual"
]
},
{
"slug": "SassyScope",
"name": "Sassy Scope",


+ 17
- 9
plugins/Makefile View File

@@ -255,18 +255,12 @@ PLUGIN_FILES += Cardinal/src/glBars.cpp
endif
endif

ifneq ($(STATIC_BUILD),true)
ifneq ($(MOD_BUILD),true)
PLUGIN_FILES += Cardinal/src/AudioFile.cpp
ifneq ($(WASM),true)
PLUGIN_FILES += Cardinal/src/Carla.cpp
PLUGIN_FILES += Cardinal/src/Ildaeil.cpp
endif
ifneq ($(HEADLESS),true)
ifeq ($(HAVE_X11),true)
PLUGIN_FILES += Cardinal/src/EmbedWidget.cpp
PLUGIN_FILES += Cardinal/src/MPV.cpp
endif
endif
endif

ifneq ($(HEADLESS),true)
@@ -678,7 +672,7 @@ COMPUTERSCARE_CUSTOM = Quantizer PanelBorder
PLUGIN_FILES += $(filter-out CVfunk/src/plugin.cpp,$(wildcard CVfunk/src/*.cpp))

# modules/types which are present in other plugins
CVFUNK_CUSTOM = Steps
CVFUNK_CUSTOM = Steps Node

# --------------------------------------------------------------
# dBiz
@@ -810,7 +804,7 @@ IHTSYN_CUSTOM_PER_FILE += mv_statevariable

PLUGIN_FILES += $(filter-out JW-Modules/src/JWModules.cpp JW-Modules/src/Str1ker.cpp,$(wildcard JW-Modules/src/*.cpp))

ifneq ($(STATIC_BUILD),true)
ifneq ($(MOD_BUILD),true)
PLUGIN_FILES += JW-Modules/src/Str1ker.cpp
PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/ip/*.cpp)
PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/osc/*.cpp)
@@ -1310,6 +1304,11 @@ PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin
VALLEYAUDIO_CUSTOM = $(DRWAV) Chord DigitalDisplay
VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob

# --------------------------------------------------------------
# Venom

PLUGIN_FILES += $(filter-out Venom/src/plugin.cpp,$(wildcard Venom/src/*.cpp))

# --------------------------------------------------------------
# Voxglitch

@@ -2821,6 +2820,15 @@ $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp
-Wno-sign-compare \
-Wno-unused-but-set-variable

$(BUILD_DIR)/Venom/%.cpp.o: Venom/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(VENOM_CUSTOM),$(call custom_module_names,$(m),Venom)) \
-DSKIP_MINGW_FORMAT \
-DpluginInstance=pluginInstance__Venom \
-lglfw

$(BUILD_DIR)/voxglitch/%.cpp.o: voxglitch/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"


+ 1
- 1
plugins/Sapphire

@@ -1 +1 @@
Subproject commit e2bcefcaa7753f017cd131a28aae0e5e346aafec
Subproject commit ef10da4e2578162b2db2f6534857d6504491daf4

+ 1
- 0
plugins/Venom

@@ -0,0 +1 @@
Subproject commit 1dc0e0612b75fcf4849f28cb6e569e3b6f13981a

+ 101
- 8
plugins/plugins.cpp View File

@@ -343,9 +343,11 @@ extern Model* modelTestVCF;
#include "cf/src/plugin.hpp"

// CVfunk
#define modelNode modelCVfunkNode
#define modelSteps modelCVfunkSteps
#include "CVfunk/src/plugin.hpp"
#undef modelSteps
#undef modelNode

// ChowDSP
#include "ChowDSP/src/plugin.hpp"
@@ -892,6 +894,13 @@ void surgext_rack_update_theme();
// ValleyAudio
#include "ValleyAudio/src/Valley.hpp"

// Venom
#include "Venom/src/plugin.hpp"
namespace Venom
{
void readDefaultThemes();
}

// Voxglitch
#define modelLooper modelVoxglitchLooper
#include "voxglitch/src/plugin.hpp"
@@ -1011,6 +1020,7 @@ extern Plugin* pluginInstance__stoermelder_p1;
Plugin* pluginInstance__surgext;
Plugin* pluginInstance__unless_modules;
Plugin* pluginInstance__ValleyAudio;
Plugin* pluginInstance__Venom;
Plugin* pluginInstance__Voxglitch;
Plugin* pluginInstance__WhatTheRack;
extern Plugin* pluginInstance__WSTD_Drums;
@@ -1147,12 +1157,12 @@ static void initStatic__Cardinal()
#else
spl.removeModule("glBars");
#endif
#ifndef STATIC_BUILD
#ifndef __MOD_DEVICES__
p->addModel(modelAudioFile);
#else
spl.removeModule("AudioFile");
#endif
#if !(defined(DISTRHO_OS_WASM) || defined(STATIC_BUILD))
#if !(defined(DISTRHO_OS_WASM) || defined(__MOD_DEVICES__))
p->addModel(modelCarla);
p->addModel(modelIldaeil);
#else
@@ -1164,11 +1174,6 @@ static void initStatic__Cardinal()
#else
spl.removeModule("SassyScope");
#endif
#if defined(HAVE_X11) && !defined(HEADLESS) && !defined(STATIC_BUILD)
p->addModel(modelMPV);
#else
spl.removeModule("MPV");
#endif
#ifdef HAVE_FFTW3F
p->addModel(modelAudioToCVPitch);
#else
@@ -2048,6 +2053,7 @@ static void initStatic__CVfunk()
if (spl.ok())
{
#define modelSteps modelCVfunkSteps
#define modelNode modelCVfunkNode
p->addModel(modelSteps);
p->addModel(modelEnvelopeArray);
p->addModel(modelPentaSequencer);
@@ -2069,6 +2075,16 @@ static void initStatic__CVfunk()
p->addModel(modelPreeeeeeeeeeessedDuck);
p->addModel(modelArrange);
p->addModel(modelTriDelay);
p->addModel(modelTatami);
p->addModel(modelCartesia);
p->addModel(modelJunkDNA);
p->addModel(modelPicus);
p->addModel(modelNode);
p->addModel(modelWeave);
p->addModel(modelWonk);
p->addModel(modelHammer);
p->addModel(modelHub);
#undef modelNode
#undef modelSteps
}
}
@@ -2578,7 +2594,7 @@ static void initStatic__JW()
p->addModel(modelCoolBreeze);
p->addModel(modelPete);
p->addModel(modelTimer);
#ifndef STATIC_BUILD
#ifndef __MOD_DEVICES__
p->addModel(modelStr1ker);
#else
spl.removeModule("Str1ker");
@@ -3221,6 +3237,7 @@ static void initStatic__Sapphire()
p->addModel(modelSapphireTout);
p->addModel(modelSapphireTricorder);
p->addModel(modelSapphireTubeUnit);
p->addModel(modelSapphireZoo);
}
}

@@ -3468,6 +3485,81 @@ static void initStatic__ValleyAudio()
}
}

static void initStatic__Venom()
{
Plugin* const p = new Plugin;
pluginInstance__Venom = p;

const StaticPluginLoader spl(p, "Venom");
if (spl.ok())
{
p->addModel(modelVenomAD_ASR);
p->addModel(modelVenomAuxClone);
p->addModel(modelVenomBayInput);
p->addModel(modelVenomBayNorm);
p->addModel(modelVenomBayOutput);
p->addModel(modelVenomBenjolinOsc);
p->addModel(modelVenomBenjolinGatesExpander);
p->addModel(modelVenomBenjolinVoltsExpander);
p->addModel(modelVenomBernoulliSwitch);
p->addModel(modelVenomBernoulliSwitchExpander);
p->addModel(modelVenomBlocker);
p->addModel(modelVenomBypass);
p->addModel(modelVenomCloneMerge);
p->addModel(modelVenomCompare2);
p->addModel(modelVenomCrossFade3D);
p->addModel(modelVenomHQ);
p->addModel(modelVenomKnob5);
p->addModel(modelVenomLinearBeats);
p->addModel(modelVenomLinearBeatsExpander);
p->addModel(modelVenomLogic);
p->addModel(modelVenomMix4);
p->addModel(modelVenomMix4Stereo);
p->addModel(modelVenomMixFade);
p->addModel(modelVenomMixFade2);
p->addModel(modelVenomMixMute);
p->addModel(modelVenomMixOffset);
p->addModel(modelVenomMixPan);
p->addModel(modelVenomMixSend);
p->addModel(modelVenomMixSolo);
p->addModel(modelVenomMousePad);
p->addModel(modelVenomMultiMerge);
p->addModel(modelVenomMultiSplit);
p->addModel(modelVenomOscillator);
p->addModel(modelVenomNORS_IQ);
p->addModel(modelVenomNORSIQChord2Scale);
p->addModel(modelVenomPan3D);
p->addModel(modelVenomPolyClone);
p->addModel(modelVenomPolyFade);
p->addModel(modelVenomPolyOffset);
p->addModel(modelVenomPolySHASR);
p->addModel(modelVenomPolyScale);
p->addModel(modelVenomPolyUnison);
p->addModel(modelVenomPush5);
p->addModel(modelVenomQuadVCPolarizer);
p->addModel(modelVenomRecurse);
p->addModel(modelVenomRecurseStereo);
p->addModel(modelVenomReformation);
p->addModel(modelVenomRhythmExplorer);
p->addModel(modelVenomShapedVCA);
p->addModel(modelVenomSlew);
p->addModel(modelVenomSphereToXYZ);
p->addModel(modelVenomThru);
p->addModel(modelVenomVCAMix4);
p->addModel(modelVenomVCAMix4Stereo);
p->addModel(modelVenomVCOUnit);
p->addModel(modelVenomBlank);
p->addModel(modelVenomWaveFolder);
p->addModel(modelVenomWaveMangler);
p->addModel(modelVenomWaveMultiplier);
p->addModel(modelVenomWidgetMenuExtender);
p->addModel(modelVenomWinComp);
p->addModel(modelVenomXM_OP);

Venom::readDefaultThemes();
}
}

static void initStatic__Voxglitch()
{
Plugin* p = new Plugin;
@@ -3671,6 +3763,7 @@ void initStaticPlugins()
initStatic__surgext();
initStatic__unless_modules();
initStatic__ValleyAudio();
initStatic__Venom();
initStatic__Voxglitch();
initStatic__WhatTheRack();
initStatic__WSTD_Drums();


+ 5
- 51
src/CardinalCommon.cpp View File

@@ -99,7 +99,7 @@ void destroyStaticPlugins();
}
}

const std::string CARDINAL_VERSION = "25.06";
const std::string CARDINAL_VERSION = "25.10";

// -----------------------------------------------------------------------------------------------------------

@@ -626,47 +626,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB

if (asset::userDir.empty())
{
#if defined(DISTRHO_OS_WASM)
asset::userDir = "/userfiles";
#elif defined(ARCH_MAC)
asset::userDir = system::join(homeDir(), "Documents", "Cardinal");
#elif defined(ARCH_WIN)
asset::userDir = system::join(getSpecialPath(kSpecialPathMyDocuments), "Cardinal");
#else
std::string xdgConfigDir;
if (const char* const xdgEnv = getenv("XDG_CONFIG_HOME"))
xdgConfigDir = xdgEnv;
if (xdgConfigDir.empty())
xdgConfigDir = system::join(homeDir(), ".config");

const std::string xdgDirsConfigPath(system::join(xdgConfigDir, "user-dirs.dirs"));

if (system::exists(xdgDirsConfigPath))
{
std::ifstream xdgDirsConfigFile(xdgDirsConfigPath, std::ios::in|std::ios::ate);
std::string xdgDirsConfig(xdgDirsConfigFile.tellg(), 0);

xdgDirsConfigFile.seekg(0);
xdgDirsConfigFile.read(&xdgDirsConfig[0], xdgDirsConfig.size());

if (const char* const xdgDocsDir = std::strstr(xdgDirsConfig.c_str(), "XDG_DOCUMENTS_DIR=\""))
{
if (const char* const xdgDocsDirNL = std::strstr(xdgDocsDir, "\"\n"))
{
asset::userDir = std::string(xdgDocsDir + 19, xdgDocsDirNL - xdgDocsDir - 19);

if (string::startsWith(asset::userDir, "$HOME"))
asset::userDir.replace(asset::userDir.begin(), asset::userDir.begin() + 5, homeDir());

if (! system::exists(asset::userDir))
asset::userDir.clear();
}
}
}

if (asset::userDir.empty())
asset::userDir = system::join(homeDir(), "Documents", "Cardinal");
#endif
asset::userDir = system::join(getSpecialDir(kSpecialDirDocuments), "Cardinal");

if (isRealInstance)
{
@@ -683,17 +643,10 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB
#ifndef CARDINAL_COMMON_DSP_ONLY
if (asset::configDir.empty())
{
#if defined(ARCH_MAC) || defined(ARCH_WIN) || defined(DISTRHO_OS_WASM)
asset::configDir = asset::userDir;
#else
if (const char* const xdgEnv = getenv("XDG_CONFIG_HOME"))
asset::configDir = system::join(xdgEnv, "Cardinal");
else
asset::configDir = system::join(homeDir(), ".config", "Cardinal");
asset::configDir = system::join(getSpecialDir(kSpecialDirConfig), "Cardinal");

if (isRealInstance)
system::createDirectory(asset::configDir);
#endif
}
#endif
@@ -875,7 +828,8 @@ void Initializer::stopRemoteServer()
lo_server_thread_stop(oscServerThread);
lo_server_thread_del_method(oscServerThread, nullptr, nullptr);
lo_server_thread_free(oscServerThread);
oscServerThread = oscServer = nullptr;
oscServerThread = nullptr;
oscServer = nullptr;
}
#else
if (oscServer != nullptr)


+ 1
- 1
src/CardinalPlugin.cpp View File

@@ -414,7 +414,7 @@ protected:
uint32_t getVersion() const override
{
return d_version(0, 25, 6);
return d_version(0, 25, 10);
}
int64_t getUniqueId() const override


+ 0
- 14
src/CardinalUI.cpp View File

@@ -1259,20 +1259,6 @@ protected:
#endif
}

#if 0
void uiReshape(const uint width, const uint height) override
{
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, width, 0.0, height, -1.0, 1.0);
glViewport(0, 0, width, height);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
#endif

private:
/**
Set our UI class as non-copyable and add a leak detector just in case.


+ 3
- 0
src/Makefile View File

@@ -147,6 +147,9 @@ au: $(TARGETS)
$(MAKE) au -C CardinalFX $(CARDINAL_SYNTH_ARGS)
$(MAKE) au -C CardinalSynth $(CARDINAL_SYNTH_ARGS)

mapi: $(TARGETS)
$(MAKE) mapi -C CardinalFX $(CARDINAL_FX_ARGS)

lv2: $(TARGETS)
$(MAKE) lv2 -C Cardinal
$(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS)


+ 6
- 0
src/Makefile.cardinal.mk View File

@@ -264,6 +264,7 @@ endif

ifeq ($(WASM),true)
APP_EXT = .js
UI_TYPE = gles2
endif

USE_VST2_BUNDLE = true
@@ -408,6 +409,11 @@ endif

BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"'

# --------------------------------------------------------------
# we know what we are doing, promise!

BUILD_CXX_FLAGS += -DDISTRHO_NO_WARNINGS

# --------------------------------------------------------------
# Enable all possible plugin types and setup resources



+ 2
- 1
src/custom/RemoteNanoVG.cpp View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2021-2025 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
@@ -55,6 +55,7 @@ GLFWAPI void glfwSetClipboardString(GLFWwindow*, const char*) {}
GLFWAPI GLFWcursor* glfwCreateStandardCursor(int) { return nullptr; }
GLFWAPI void glfwSetCursor(GLFWwindow*, GLFWcursor*) {}
GLFWAPI const char* glfwGetKeyName(int, int) { return nullptr; }
GLFWAPI int glfwGetKey(GLFWwindow*, int) { return 0; }
GLFWAPI int glfwGetKeyScancode(int) { return 0; }
GLFWAPI double glfwGetTime(void) { return 0.0; }



+ 11
- 1
src/custom/glfw.cpp View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2021-2025 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
@@ -17,6 +17,7 @@

#include "Application.hpp"
#include "CardinalPluginContext.hpp"
#include "widget/event.hpp"

#include <GLFW/glfw3.h>

@@ -207,3 +208,12 @@ GLFWAPI const char* glfwGetKeyName(const int key, int)
default: return nullptr;
}
}

int glfwGetKey(GLFWwindow*, const int key)
{
CardinalPluginContext* const context = static_cast<CardinalPluginContext*>(APP);
DISTRHO_SAFE_ASSERT_RETURN(context != nullptr, GLFW_RELEASE);
DISTRHO_SAFE_ASSERT_RETURN(context->event != nullptr, GLFW_RELEASE);

return context->event->heldKeys.find(key) != context->event->heldKeys.end() ? GLFW_PRESS : GLFW_RELEASE;
}

+ 17
- 14
src/override/Scene.cpp View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/

@@ -207,20 +207,23 @@ void Scene::step() {
(internal->historyActionIndex != actionIndex
&& actionIndex > 0
&& time - internal->lastSceneChangeTime >= 1.0)) {
remoteDetails->first = false;

const std::string& name(APP->history->actions[actionIndex - 1]->name);
static const std::vector<std::string> ignoredNames = {
"move knob",
"move modules",
"move switch",
};
if (std::find(ignoredNames.cbegin(), ignoredNames.cend(), name) == ignoredNames.cend()) {
printf("action '%s'\n", APP->history->actions[actionIndex - 1]->name.c_str());
if (remoteDetails->first) {
remoteDetails->first = false;
remoteUtils::sendFullPatchToRemote(remoteDetails);

if (remoteDetails->screenshot) {
window::generateScreenshot();
} else {
const std::string& name(APP->history->actions[actionIndex - 1]->name);
static const std::vector<std::string> ignoredNames = {
"move knob",
"move modules",
"move switch",
};
if (std::find(ignoredNames.cbegin(), ignoredNames.cend(), name) == ignoredNames.cend()) {
d_debug("action '%s'\n", APP->history->actions[actionIndex - 1]->name.c_str());
remoteUtils::sendFullPatchToRemote(remoteDetails);

if (remoteDetails->screenshot) {
window::generateScreenshot();
}
}
}
internal->historyActionIndex = actionIndex;


+ 1
- 1
utils/macOS/Info_JACK.plist View File

@@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>studio.kx.distrho.cardinal.jack</string>
<key>CFBundleShortVersionString</key>
<string>25.06</string>
<string>25.10</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<key>NSHumanReadableCopyright</key>


+ 1
- 1
utils/macOS/Info_Native.plist View File

@@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>studio.kx.distrho.cardinal.native</string>
<key>CFBundleShortVersionString</key>
<string>25.06</string>
<string>25.10</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<key>NSHumanReadableCopyright</key>


Loading…
Cancel
Save