diff --git a/.gitmodules b/.gitmodules index 4784971..1f4cd2f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -142,3 +142,6 @@ [submodule "plugins/Axioma"] path = plugins/Axioma url = https://github.com/kauewerner/Axioma.git +[submodule "plugins/GoodSheperd"] + path = plugins/GoodSheperd + url = https://github.com/jensschulze/GoodSheperd.git diff --git a/README.md b/README.md index 67c78fa..420fc55 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ At the moment the following 3rd-party modules are provided: - Extratone - Fehler Fabrik - Glue the Giant +- GoodSheperd - Grande - HetrickCV - ihtsyn diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 1b78018..604b51a 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -33,6 +33,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Extratone | GPL-3.0-or-later | | | Fehler Fabrik | GPL-3.0-or-later | | | Glue the Giant | GPL-3.0-or-later | | +| GoodSheperd | GPL-3.0-or-later | | | Grande | GPL-3.0-or-later | | | HetrickCV | CC0-1.0 | | | ihtsyn | GPL-3.0-or-later | | @@ -114,6 +115,7 @@ Below is a list of artwork licenses from plugins | FehlerFabrik/* | GPL-3.0-or-later | No artwork specific license provided, see [FehlerFabrik#17](https://github.com/RCameron93/FehlerFabrik/issues/17) | | GlueTheGiant/* | GPL-3.0-or-later | Same license as source code | | GlueTheGiant/fonts/DSEG7-* | OFL-1.1-RFN | | +| GoodSheperd/* | GPL-3.0-or-later | No artwork specific license provided | | GrandeModular/* | CC-BY-NC-ND-4.0 | | | HetrickCV/* | CC0-1.0 | | | ihtsyn/* | GPL-3.0-or-later | [Same license as source code](https://github.com/nysthi/nysthi/issues/379#issuecomment-1027873902) | diff --git a/plugins/GoodSheperd b/plugins/GoodSheperd new file mode 160000 index 0000000..6363510 --- /dev/null +++ b/plugins/GoodSheperd @@ -0,0 +1 @@ +Subproject commit 636351059f2eec629f3b8a537451dd3d0eb01c30 diff --git a/plugins/Makefile b/plugins/Makefile index a08a6b3..6fab44c 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -486,6 +486,11 @@ endif PLUGIN_FILES += $(filter-out GlueTheGiant/src/plugin.cpp,$(wildcard GlueTheGiant/src/*.cpp)) +# -------------------------------------------------------------- +# GoodSheperd + +PLUGIN_FILES += $(wildcard GoodSheperd/src/*.cpp) + # -------------------------------------------------------------- # GrandeModular @@ -1269,6 +1274,13 @@ $(BUILD_DIR)/GlueTheGiant/src/gtgComponents.cpp.o: GlueTheGiant/src/gtgComponent -DloadGtgPluginDefault=ignoredGlueTheGiant1 \ -DsaveGtgPluginDefault=ignoredGlueTheGiant2 +$(BUILD_DIR)/GoodSheperd/%.cpp.o: GoodSheperd/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(GOODSHEPERD_CUSTOM),$(call custom_module_names,$(m),GoodSheperd)) \ + -DpluginInstance=pluginInstance__GoodSheperd + $(BUILD_DIR)/GrandeModular/%.cpp.o: GrandeModular/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index ac968a0..67928a2 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -305,6 +305,9 @@ int gtg_default_theme = 1; int loadGtgPluginDefault(const char*, int) { return 1; } void saveGtgPluginDefault(const char*, int) {} +// GoodSheperd +#include "GoodSheperd/src/plugin.hpp" + // GrandeModular #include "GrandeModular/src/plugin.hpp" @@ -590,8 +593,9 @@ Plugin* pluginInstance__FehlerFabrik; #ifdef WITH_FUNDAMENTAL Plugin* pluginInstance__Fundamental; #endif -Plugin* pluginInstance__GrandeModular; Plugin* pluginInstance__GlueTheGiant; +Plugin* pluginInstance__GoodSheperd; +Plugin* pluginInstance__GrandeModular; Plugin* pluginInstance__HetrickCV; extern Plugin* pluginInstance__ImpromptuModular; Plugin* pluginInstance__ihtsyn; @@ -1460,6 +1464,23 @@ static void initStatic__GlueTheGiant() } } +static void initStatic__GoodSheperd() +{ + Plugin* const p = new Plugin; + pluginInstance__GoodSheperd = p; + + const StaticPluginLoader spl(p, "GoodSheperd"); + if (spl.ok()) + { + p->addModel(modelHurdle); + p->addModel(modelSEQ3st); + p->addModel(modelStable16); + p->addModel(modelStall); + p->addModel(modelSwitch1); + p->addModel(modelSeqtrol); + } +} + static void initStatic__GrandeModular() { Plugin* const p = new Plugin; @@ -2063,6 +2084,7 @@ void initStaticPlugins() initStatic__Fundamental(); #endif initStatic__GlueTheGiant(); + initStatic__GoodSheperd(); initStatic__GrandeModular(); initStatic__HetrickCV(); initStatic__ImpromptuModular();