diff --git a/.gitmodules b/.gitmodules index 5057d40..4be9d87 100644 --- a/.gitmodules +++ b/.gitmodules @@ -221,3 +221,6 @@ [submodule "include/simde"] path = include/simde url = https://github.com/simd-everywhere/simde.git +[submodule "plugins/RebelTech"] + path = plugins/RebelTech + url = https://github.com/hemmer/rebel-tech-vcv.git diff --git a/README.md b/README.md index 21430ad..1606cc7 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,7 @@ At the moment the following 3rd-party modules are provided: - PinkTrombone - Prism - rackwindows +- RebelTech - repelzen - Sonus Modular - stocaudio diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 898afb5..fda67aa 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -72,6 +72,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Prism | BSD-3-Clause | | | Rackwindows | MIT | | | repelzen | GPL-3.0-or-later | | +| RebelTech | GPL-2.0-or-later | | | Sonus Modular | GPL-3.0-or-later | | | stocaudio | GPL-3.0-or-later | | | unless_modules | GPL-3.0-or-later | | @@ -208,6 +209,7 @@ Below is a list of artwork licenses from plugins | Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | | | Rackwindows/* | MIT | [Same license as source code](https://github.com/n0jo/rackwindows/issues/15) | | repelzen/* | CC-BY-SA-4.0 | | +| RebelTech/* | CC-BY-NC-4.0 | | | sonusmodular/* | GPL-3.0-or-later | [Same license as source code](https://gitlab.com/sonusdept/sonusmodular/-/issues/14) | | stocaudio/* | GPL-3.0-or-later | No artwork specific license provided | | unless_modules/* | CC-BY-NC-ND-4.0 | | diff --git a/plugins/Makefile b/plugins/Makefile index 69919a4..c37314e 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -875,6 +875,14 @@ PRISM_CUSTOM = bogaudio Scale PLUGIN_FILES += $(filter-out rackwindows/src/plugin.cpp,$(wildcard rackwindows/src/*.cpp)) +# -------------------------------------------------------------- +# RebelTech + +PLUGIN_FILES += $(filter-out RebelTech/src/plugin.cpp,$(wildcard RebelTech/src/*.cpp)) + +# modules/types which are present in other plugins +REBELTECH_CUSTOM = BefacoInputPort BefacoOutputPort + # -------------------------------------------------------------- # repelzen @@ -1176,8 +1184,8 @@ RESOURCE_FILES = \ $(wildcard Cardinal/res/*.svg) \ $(wildcard Fundamental/res/*.svg) \ $(wildcard Fundamental/res/components/*.svg) \ - $(wildcard ZamAudio/res/*.svg) \ Fundamental/presets +# $(wildcard ZamAudio/res/*.svg) else PLUGIN_LIST = $(subst /plugin.json,,$(wildcard */plugin.json)) @@ -1982,6 +1990,13 @@ $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp -Wno-implicit-fallthrough \ -Wno-sign-compare +$(BUILD_DIR)/RebelTech/%.cpp.o: RebelTech/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(REBELTECH_CUSTOM),$(call custom_module_names,$(m),RebelTech)) \ + -DpluginInstance=pluginInstance__RebelTech + $(BUILD_DIR)/repelzen/%.cpp.o: repelzen/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/RebelTech b/plugins/RebelTech new file mode 160000 index 0000000..6ac79f5 --- /dev/null +++ b/plugins/RebelTech @@ -0,0 +1 @@ +Subproject commit 6ac79f59c5b95433d82bcc759c4cd0642ec35098 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index dab01bd..2a25a2e 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -689,6 +689,15 @@ extern Model* modelBlankPanel; // rackwindows #include "rackwindows/src/plugin.hpp" +// RebelTech +#define BefacoInputPort BefacoInputPortRebelTech +#define BefacoOutputPort BefacoOutputPortRebelTech +#include "RebelTech/src/plugin.hpp" +#undef BefacoInputPort +#undef BefacoOutputPort +ModuleTheme defaultPanelTheme = DARK_THEME; +void addThemeMenuItems(Menu*, ModuleTheme*) {} + // repelzen #define modelBlank modelrepelzenBlank #define modelMixer modelrepelzenMixer @@ -736,14 +745,18 @@ extern Model* modelBlankPanel; // known terminal modules std::vector hostTerminalModels; -// stuff that reads config files, we dont want that +// stuff that reads config files, we don't want that int loadConsoleType() { return 0; } -bool loadDarkAsDefault() { return 1; } +bool loadDarkAsDefault() { return settings::darkMode; } +ModuleTheme loadDefaultTheme() { return settings::darkMode ? DARK_THEME : LIGHT_THEME; } int loadDirectOutMode() { return 0; } +void readDefaultTheme() { defaultPanelTheme = loadDefaultTheme(); } void saveConsoleType(int) {} void saveDarkAsDefault(bool) {} +void saveDefaultTheme(ModuleTheme) {} void saveDirectOutMode(bool) {} void saveHighQualityAsDefault(bool) {} +void writeDefaultTheme() {} // plugin instances Plugin* pluginInstance__Cardinal; @@ -807,6 +820,7 @@ Plugin* pluginInstance__PathSet; Plugin* pluginInstance__PinkTrombone; Plugin* pluginInstance__Prism; Plugin* pluginInstance__rackwindows; +Plugin* pluginInstance__RebelTech; Plugin* pluginInstance__repelzen; Plugin* pluginInstance__sonusmodular; Plugin* pluginInstance__stocaudio; @@ -2636,6 +2650,23 @@ static void initStatic__rackwindows() } } +static void initStatic__RebelTech() +{ + Plugin* const p = new Plugin; + pluginInstance__RebelTech = p; + + const StaticPluginLoader spl(p, "RebelTech"); + if (spl.ok()) + { + p->addModel(modelStoicheia); + p->addModel(modelTonic); + p->addModel(modelKlasmata); + p->addModel(modelCLK); + p->addModel(modelLogoi); + p->addModel(modelPhoreo); + } +} + static void initStatic__repelzen() { Plugin* const p = new Plugin; @@ -2905,6 +2936,7 @@ void initStaticPlugins() initStatic__PinkTrombone(); initStatic__Prism(); initStatic__rackwindows(); + initStatic__RebelTech(); initStatic__repelzen(); initStatic__sonusmodular(); initStatic__stocaudio();