diff --git a/.gitmodules b/.gitmodules index bd508120..8e336310 100644 --- a/.gitmodules +++ b/.gitmodules @@ -266,3 +266,6 @@ [submodule "plugins/Venom"] path = plugins/Venom url = https://github.com/DaveBenham/VenomModules +[submodule "plugins/Moffenzeef"] + path = plugins/Moffenzeef + url = https://github.com/moffenzeefmodular/VCVrack-submission.git diff --git a/README.md b/README.md index f5b832e3..b1a93ab9 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ At the moment the following 3rd-party modules are provided: - [MindMeld](https://github.com/MarcBoule/MindMeldModular) - [ML Modules](https://github.com/martin-lueders/ML_modules) - [Mockba Modular](https://github.com/MockbaTheBorg/MockbaModular) +- [Moffenzeef](https://github.com/moffenzeefmodular/Moffenzeef-VCV) - [Mog](https://github.com/JustMog/Mog-VCV) - [mscHack](https://github.com/mschack/VCV-Rack-Plugins) - [MSM](https://github.com/netboy3/MSM-vcvrack-plugin) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 1a024a28..4ed2b58c 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -66,6 +66,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | MindMeld | GPL-3.0-or-later | | | ML Modules | BSD-3-Clause | | | Mockba Modular | MIT | | +| Moffenzeef | GPL-3.0-or-later | | | Mog | CC0-1.0 | | | mscHack | BSD-3-Clause | | | MSM | MIT | Repo's [LICENSE-dist.md](https://github.com/netboy3/MSM-vcvrack-plugin/issues/10) includes wrong information | @@ -225,6 +226,7 @@ Below is a list of artwork licenses from plugins | ML_modules/DejaVuSansMono.ttf | Bitstream-Vera | | | ML_modules/Segment7Standard.ttf | OFL-1.1-RFN | | | MockbaModular/* | MIT | No artwork specific license provided | +| Moffenzeef/* | GPL-3.0-or-later | No artwork specific license provided | | Mog/* | CC0-1.0 | | | Mog/components/* | CC-BY-NC-4.0 | | | Mog/Exo2-BoldItalic.ttf | OFL-1.1-RFN | | diff --git a/plugins/Makefile b/plugins/Makefile index 2f00fa34..272c113a 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -911,6 +911,12 @@ MINIPLUGIN_FILES += MockbaModular/src/Pannah.cpp MINIPLUGIN_FILES += MockbaModular/src/ReVoltah.cpp MINIPLUGIN_FILES += MockbaModular/src/Shapah.cpp +# -------------------------------------------------------------- +# Moffenzeef + +PLUGIN_FILES += $(filter-out Moffenzeef/src/plugin.cpp ,$(wildcard Moffenzeef/src/*.cpp)) +PLUGIN_FILES += $(wildcard Moffenzeef/src/*.c) + # -------------------------------------------------------------- # Mog @@ -2637,6 +2643,19 @@ $(BUILD_DIR)/MockbaModular/%.cpp.o: MockbaModular/%.cpp $(foreach m,$(MOCKBAMODULAR_CUSTOM),$(call custom_module_names,$(m),MockbaModular)) \ -DpluginInstance=pluginInstance__MockbaModular +$(BUILD_DIR)/Moffenzeef/%.c.o: Moffenzeef/%.c + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@ \ + $(foreach m,$(MOFFENZEEF_CUSTOM),$(call custom_module_names,$(m),Moffenzeef)) + +$(BUILD_DIR)/Moffenzeef/%.cpp.o: Moffenzeef/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ \ + $(foreach m,$(MOFFENZEEF_CUSTOM),$(call custom_module_names,$(m),Moffenzeef)) \ + -DpluginInstance=pluginInstance__Moffenzeef + $(BUILD_DIR)/Mog/%.cpp.o: Mog/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/Moffenzeef b/plugins/Moffenzeef new file mode 160000 index 00000000..fe8a1684 --- /dev/null +++ b/plugins/Moffenzeef @@ -0,0 +1 @@ +Subproject commit fe8a1684173195c74521e83b8d047f7e7e635837 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 647dd6c7..4e3fd368 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -726,6 +726,9 @@ extern Model* modelArpeggiator; #undef loadBack std::string loadBack(int) { return "res/Empty_gray.svg"; } +// Moffenzeef +#include "Moffenzeef/src/plugin.hpp" + // Mog #include "Mog/src/plugin.hpp" @@ -1009,6 +1012,7 @@ Plugin* pluginInstance__Meander; extern Plugin* pluginInstance__MindMeld; Plugin* pluginInstance__ML; Plugin* pluginInstance__MockbaModular; +Plugin* pluginInstance__Moffenzeef; Plugin* pluginInstance__Mog; extern Plugin* pluginInstance__mscHack; Plugin* pluginInstance__MSM; @@ -2896,6 +2900,43 @@ static void initStatic__MockbaModular() } } +static void initStatic__Moffenzeef() +{ + Plugin* const p = new Plugin; + pluginInstance__Moffenzeef = p; + + const StaticPluginLoader spl(p, "Moffenzeef"); + if (spl.ok()) + { + p->addModel(modelBadIdea9); + p->addModel(modelBadIdea1800); + p->addModel(modelBobcat); + p->addModel(modelBusMult); + p->addModel(modelCount); + p->addModel(modelDeviant); + p->addModel(modelDialUp); + p->addModel(modelGMO); + p->addModel(modelKriket); + p->addModel(modelMito); + p->addModel(modelMoffenmix); + p->addModel(modelMongrel); + p->addModel(modelMuskrat); + p->addModel(modelSimplify); + p->addModel(model_2hpBlank); + p->addModel(model_14hpBlank); + p->addModel(modelSwarm); + p->addModel(modelINTENSIFIES); + p->addModel(modelTheRunner); + p->addModel(modelStargazer); + p->addModel(modelKleztizer); + p->addModel(modelTantz); + p->addModel(modelQuadDeviant); + p->addModel(modelTehom); + p->addModel(modelDitDit); + p->addModel(modelParticles); + } +} + static void initStatic__Mog() { Plugin* const p = new Plugin; @@ -3769,6 +3810,7 @@ void initStaticPlugins() initStatic__MindMeld(); initStatic__ML(); initStatic__MockbaModular(); + initStatic__Moffenzeef(); initStatic__Mog(); initStatic__mscHack(); initStatic__MSM(); diff --git a/src/custom/glfw.cpp b/src/custom/glfw.cpp index f069ac2c..5f405d71 100644 --- a/src/custom/glfw.cpp +++ b/src/custom/glfw.cpp @@ -90,6 +90,11 @@ GLFWAPI GLFWcursor* glfwCreateStandardCursor(const int shape) } } +GLFWAPI void glfwGetCursorPos(GLFWwindow* handle, double* xpos, double* ypos) +{ + // stub for now, only used for the Mouse Tracker functionality in Moffenzeep/Particles +} + GLFWAPI void glfwSetCursor(GLFWwindow*, GLFWcursor* const cursor) { CardinalPluginContext* const context = static_cast(APP);