From 609f29454d74cb2bc1f47b66c1538f3de3297075 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Thu, 24 Feb 2022 19:35:32 +0100 Subject: [PATCH] Feature/add hampton harmonics (#170) * adding Hampton Harmonics * add custom module in makefile * custom module --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 3 +++ plugins/HamptonHarmonics | 1 + plugins/Makefile | 15 +++++++++++++++ plugins/plugins.cpp | 26 ++++++++++++++++++++++++++ 6 files changed, 49 insertions(+) create mode 160000 plugins/HamptonHarmonics diff --git a/.gitmodules b/.gitmodules index 1f4cd2f..63c1ea2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -145,3 +145,6 @@ [submodule "plugins/GoodSheperd"] path = plugins/GoodSheperd url = https://github.com/jensschulze/GoodSheperd.git +[submodule "plugins/HamptonHarmonics"] + path = plugins/HamptonHarmonics + url = https://gitlab.com/hampton-harmonics/hampton-harmonics-modules.git diff --git a/README.md b/README.md index 420fc55..5099834 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ At the moment the following 3rd-party modules are provided: - Glue the Giant - GoodSheperd - Grande +- Hampton Harmonics - HetrickCV - ihtsyn - Impromptu diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 604b51a..7e08888 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -35,6 +35,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Glue the Giant | GPL-3.0-or-later | | | GoodSheperd | GPL-3.0-or-later | | | Grande | GPL-3.0-or-later | | +| Hampton Harmonics | MIT | | | HetrickCV | CC0-1.0 | | | ihtsyn | GPL-3.0-or-later | | | Impromptu | GPL-3.0-or-later | | @@ -117,6 +118,8 @@ Below is a list of artwork licenses from plugins | 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 | | +| HamptonHarmonics/* | MIT | No artwork specific license provided | +| HamptonHarmonics/PixelOperator.ttf | CC0-1.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) | | ImpromptuModular/* | CC-BY-NC-ND-4.0 | | diff --git a/plugins/HamptonHarmonics b/plugins/HamptonHarmonics new file mode 160000 index 0000000..e5cf81f --- /dev/null +++ b/plugins/HamptonHarmonics @@ -0,0 +1 @@ +Subproject commit e5cf81f1c356fdc98fd08584146cda8af7e16b1f diff --git a/plugins/Makefile b/plugins/Makefile index 6fab44c..5841a29 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -496,6 +496,14 @@ PLUGIN_FILES += $(wildcard GoodSheperd/src/*.cpp) PLUGIN_FILES += $(filter-out GrandeModular/src/plugin.cpp,$(wildcard GrandeModular/src/*.cpp)) +# -------------------------------------------------------------- +# Hampton Harmonics + +PLUGIN_FILES += $(wildcard HamptonHarmonics/src/*.cpp) + +# modules/types which are present in other plugins +HAMPTONHARMONICS_CUSTOM = Arp Progress + # -------------------------------------------------------------- # HetrickCV @@ -1290,6 +1298,13 @@ $(BUILD_DIR)/GrandeModular/%.cpp.o: GrandeModular/%.cpp -Wno-missing-braces \ -Wno-self-assign +$(BUILD_DIR)/HamptonHarmonics/%.cpp.o: HamptonHarmonics/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(HAMPTONHARMONICS_CUSTOM),$(call custom_module_names,$(m),HamptonHarmonics)) \ + -DpluginInstance=pluginInstance__HamptonHarmonics + $(BUILD_DIR)/HetrickCV/%.cpp.o: HetrickCV/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 67928a2..cd075ce 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -311,6 +311,13 @@ void saveGtgPluginDefault(const char*, int) {} // GrandeModular #include "GrandeModular/src/plugin.hpp" +// Hampton Harmonics +#define modelArp modelHamptonHarmonicsArp +#define modelProgress modelHamptonHarmonicsProgress +#include "HamptonHarmonics/src/plugin.hpp" +#undef modelProgress +#undef modelArp + // HetrickCV #define modelASR modelHetrickCVASR #define modelBlankPanel modelHetrickCVBlankPanel @@ -596,6 +603,7 @@ Plugin* pluginInstance__Fundamental; Plugin* pluginInstance__GlueTheGiant; Plugin* pluginInstance__GoodSheperd; Plugin* pluginInstance__GrandeModular; +Plugin* pluginInstance__HamptonHarmonics; Plugin* pluginInstance__HetrickCV; extern Plugin* pluginInstance__ImpromptuModular; Plugin* pluginInstance__ihtsyn; @@ -1510,6 +1518,23 @@ static void initStatic__GrandeModular() } } +static void initStatic__HamptonHarmonics() +{ + Plugin* const p = new Plugin; + pluginInstance__HamptonHarmonics = p; + + const StaticPluginLoader spl(p, "HamptonHarmonics"); + if (spl.ok()) + { +#define modelArp modelHamptonHarmonicsArp +#define modelProgress modelHamptonHarmonicsProgress + p->addModel(modelArp); + p->addModel(modelProgress); +#undef modelProgress +#undef modelArp + } +} + static void initStatic__HetrickCV() { Plugin* const p = new Plugin; @@ -2086,6 +2111,7 @@ void initStaticPlugins() initStatic__GlueTheGiant(); initStatic__GoodSheperd(); initStatic__GrandeModular(); + initStatic__HamptonHarmonics(); initStatic__HetrickCV(); initStatic__ImpromptuModular(); initStatic__ihtsyn();