From e5ae62d326440d169dea1b56f5f9019dbd441dd9 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Sat, 25 May 2024 17:41:56 +0200 Subject: [PATCH] add rcm-modules (#669) * add rcm-modules * Fix build Signed-off-by: falkTX * append README and LICENSES files * setup symbol conflicts for RCM Signed-off-by: falkTX --------- Signed-off-by: falkTX Co-authored-by: falkTX --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 2 ++ plugins/Makefile | 23 +++++++++++++++++++++++ plugins/plugins.cpp | 27 +++++++++++++++++++++++++++ plugins/rcm-modules | 1 + 6 files changed, 57 insertions(+) create mode 160000 plugins/rcm-modules diff --git a/.gitmodules b/.gitmodules index 91755d3..7d9b38a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -251,3 +251,6 @@ [submodule "deps/JUCE"] path = deps/JUCE url = https://github.com/CardinalModules/JUCE.git +[submodule "plugins/rcm-modules"] + path = plugins/rcm-modules + url = https://github.com/Rcomian/rcm-modules.git diff --git a/README.md b/README.md index da1eb25..0161637 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,7 @@ At the moment the following 3rd-party modules are provided: - [PinkTrombone](https://github.com/VegaDeftwing/PinkTromboneVCV) - [Prism](https://github.com/SteveRussell33/Prism) - [rackwindows](https://github.com/n0jo/rackwindows) +- [RCM](https://github.com/Rcomian/rcm-modules/) - [RebelTech](https://github.com/hemmer/rebel-tech-vcv) - [repelzen](https://github.com/wiqid/repelzen) - [Sapphire](https://github.com/cosinekitty/sapphire) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 01641de..d2b048f 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -77,6 +77,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | PinkTrombone | GPL-3.0-or-later | | | Prism | BSD-3-Clause | | | Rackwindows | MIT | | +| RCM | GPL-2.0-or-later | | | repelzen | GPL-3.0-or-later | | | RebelTech | GPL-2.0-or-later | | | Sapphire | GPL-3.0-or-later | | @@ -240,6 +241,7 @@ Below is a list of artwork licenses from plugins | Prism/* | CC-BY-SA-4.0 | | | Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | | | Rackwindows/* | MIT | [Same license as source code](https://github.com/n0jo/rackwindows/issues/15) | +| RCM/* | GPL-2.0-or-later | No artwork specific license provided | | repelzen/* | CC-BY-SA-4.0 | | | RebelTech/* | CC-BY-NC-4.0 | | | Sapphire/* | GPL-3.0-or-later | No artwork specific license provided | diff --git a/plugins/Makefile b/plugins/Makefile index 68a36ef..f560dc2 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1002,6 +1002,16 @@ PRISM_CUSTOM = bogaudio Scale PLUGIN_FILES += $(filter-out rackwindows/src/plugin.cpp,$(wildcard rackwindows/src/*.cpp)) +# -------------------------------------------------------------- +# RCM + +PLUGIN_FILES += $(filter-out rcm-modules/src/plugin.cpp,$(wildcard rcm-modules/src/*.cpp)) +PLUGIN_FILES += $(wildcard rcm-modules/src/*.c) +PLUGIN_FILES += $(wildcard rcm-modules/src/PianoRoll/*.cpp) + +# modules/types which are present in other plugins +RCM_CUSTOM = Transport + # -------------------------------------------------------------- # RebelTech @@ -2680,6 +2690,19 @@ $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp -Wno-implicit-fallthrough \ -Wno-sign-compare +$(BUILD_DIR)/rcm-modules/%.c.o: rcm-modules/%.c + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@ \ + $(foreach m,$(RCM_CUSTOM),$(call custom_module_names,$(m),RCM)) + +$(BUILD_DIR)/rcm-modules/%.cpp.o: rcm-modules/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(RCM_CUSTOM),$(call custom_module_names,$(m),RCM)) \ + -DpluginInstance=pluginInstance__RCM + $(BUILD_DIR)/RebelTech/%.cpp.o: RebelTech/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 5caa03b..8950bf3 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -796,6 +796,9 @@ extern Model* modelBlankPanel; // rackwindows #include "rackwindows/src/plugin.hpp" +// RCM +#include "rcm-modules/src/plugin.hpp" + // RebelTech #define BefacoInputPort BefacoInputPortRebelTech #define BefacoOutputPort BefacoOutputPortRebelTech @@ -961,6 +964,7 @@ Plugin* pluginInstance__PdArray; Plugin* pluginInstance__PinkTrombone; Plugin* pluginInstance__Prism; Plugin* pluginInstance__rackwindows; +Plugin* pluginInstance__RCM; Plugin* pluginInstance__RebelTech; Plugin* pluginInstance__repelzen; Plugin* pluginInstance__sapphire; @@ -2996,6 +3000,28 @@ static void initStatic__rackwindows() } } +static void initStatic__RCM() +{ + Plugin* const p = new Plugin; + pluginInstance__RCM = p; + + const StaticPluginLoader spl(p, "rcm-modules"); + if (spl.ok()) + { + p->addModel(modelGVerbModule); + p->addModel(modelCV0to10Module); + p->addModel(modelCVS0to10Module); + p->addModel(modelCV5to5Module); + p->addModel(modelCVMmtModule); + p->addModel(modelCVTglModule); + p->addModel(modelPianoRollModule); + p->addModel(modelDuckModule); + p->addModel(modelSEQAdapterModule); + p->addModel(modelSyncModule); + p->addModel(modelPolyNosModule); + } +} + static void initStatic__RebelTech() { Plugin* const p = new Plugin; @@ -3458,6 +3484,7 @@ void initStaticPlugins() initStatic__PinkTrombone(); initStatic__Prism(); initStatic__rackwindows(); + initStatic__RCM(); initStatic__RebelTech(); initStatic__repelzen(); initStatic__Sapphire(); diff --git a/plugins/rcm-modules b/plugins/rcm-modules new file mode 160000 index 0000000..c4a243e --- /dev/null +++ b/plugins/rcm-modules @@ -0,0 +1 @@ +Subproject commit c4a243ec7089254aa19225c0666bb4bda2163a6a