| @@ -166,3 +166,6 @@ | |||||
| [submodule "plugins/kocmoc"] | [submodule "plugins/kocmoc"] | ||||
| path = plugins/kocmoc | path = plugins/kocmoc | ||||
| url = https://github.com/janne808/kocmoc-rack-modules.git | url = https://github.com/janne808/kocmoc-rack-modules.git | ||||
| [submodule "plugins/PathSet"] | |||||
| path = plugins/PathSet | |||||
| url = https://github.com/patheros/PathSetModules.git | |||||
| @@ -142,6 +142,7 @@ At the moment the following 3rd-party modules are provided: | |||||
| - Mog | - Mog | ||||
| - mscHack | - mscHack | ||||
| - Orbits | - Orbits | ||||
| - Path Set | |||||
| - Prism | - Prism | ||||
| - rackwindows | - rackwindows | ||||
| - repelzen | - repelzen | ||||
| @@ -53,6 +53,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||||
| | Mog | CC0-1.0 | | | | Mog | CC0-1.0 | | | ||||
| | mscHack | BSD-3-Clause | | | | mscHack | BSD-3-Clause | | | ||||
| | Orbits | GPL-3.0-or-later | | | | Orbits | GPL-3.0-or-later | | | ||||
| | Path Set | GPL-3.0-or-later | | | |||||
| | Prism | BSD-3-Clause | | | | Prism | BSD-3-Clause | | | ||||
| | Rackwindows | MIT | | | | Rackwindows | MIT | | | ||||
| | repelzen | GPL-3.0-or-later | | | | repelzen | GPL-3.0-or-later | | | ||||
| @@ -156,6 +157,7 @@ Below is a list of artwork licenses from plugins | |||||
| | mscHack/* | BSD-3-Clause | No artwork specific license provided, see [mschack#108](https://github.com/mschack/VCV-Rack-Plugins/issues/108) | | | mscHack/* | BSD-3-Clause | No artwork specific license provided, see [mschack#108](https://github.com/mschack/VCV-Rack-Plugins/issues/108) | | ||||
| | Orbits/* | CC-BY-NC-ND-4.0 | | | | Orbits/* | CC-BY-NC-ND-4.0 | | | ||||
| | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | ||||
| | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | | |||||
| | Prism/* | CC-BY-SA-4.0 | | | | Prism/* | CC-BY-SA-4.0 | | | ||||
| | Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | | | | Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | | | ||||
| | Rackwindows/* | MIT | [Same license as source code](https://github.com/n0jo/rackwindows/issues/15) | | | Rackwindows/* | MIT | [Same license as source code](https://github.com/n0jo/rackwindows/issues/15) | | ||||
| @@ -666,6 +666,11 @@ MSCHACK_CUSTOM_PER_FILE = MAIN_SYNC_CLOCK FILTER_STRUCT FILTER_PARAM_STRUCT OSC_ | |||||
| PLUGIN_FILES += $(wildcard Orbits/src/*.cpp) | PLUGIN_FILES += $(wildcard Orbits/src/*.cpp) | ||||
| # -------------------------------------------------------------- | |||||
| # Path Set | |||||
| PLUGIN_FILES += $(wildcard PathSet/src/*.cpp) | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Prism | # Prism | ||||
| @@ -1524,6 +1529,13 @@ $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp | |||||
| $(foreach m,$(ORBITS_CUSTOM),$(call custom_module_names,$(m),Orbits)) \ | $(foreach m,$(ORBITS_CUSTOM),$(call custom_module_names,$(m),Orbits)) \ | ||||
| -DpluginInstance=pluginInstance__Orbits | -DpluginInstance=pluginInstance__Orbits | ||||
| $(BUILD_DIR)/PathSet/%.cpp.o: PathSet/%.cpp | |||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||||
| @echo "Compiling $<" | |||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||||
| $(foreach m,$(PATHSET_CUSTOM),$(call custom_module_names,$(m),PathSet)) \ | |||||
| -DpluginInstance=pluginInstance__PathSet | |||||
| $(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp | $(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp | ||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit d03e8b486deba4740bc7f15ae95a08d823a7d00a | |||||
| @@ -562,6 +562,9 @@ extern Model* modelMaude_221; | |||||
| // Orbits | // Orbits | ||||
| #include "Orbits/src/plugin.hpp" | #include "Orbits/src/plugin.hpp" | ||||
| // Path Set | |||||
| # include "PathSet/src/plugin.hpp" | |||||
| // Prism | // Prism | ||||
| # include "Prism/src/plugin.hpp" | # include "Prism/src/plugin.hpp" | ||||
| @@ -678,6 +681,7 @@ Plugin* pluginInstance__MockbaModular; | |||||
| Plugin* pluginInstance__Mog; | Plugin* pluginInstance__Mog; | ||||
| extern Plugin* pluginInstance__mscHack; | extern Plugin* pluginInstance__mscHack; | ||||
| Plugin* pluginInstance__Orbits; | Plugin* pluginInstance__Orbits; | ||||
| Plugin* pluginInstance__PathSet; | |||||
| Plugin* pluginInstance__Prism; | Plugin* pluginInstance__Prism; | ||||
| Plugin* pluginInstance__rackwindows; | Plugin* pluginInstance__rackwindows; | ||||
| Plugin* pluginInstance__repelzen; | Plugin* pluginInstance__repelzen; | ||||
| @@ -2068,6 +2072,20 @@ static void initStatic__Orbits() | |||||
| } | } | ||||
| } | } | ||||
| static void initStatic__PathSet() | |||||
| { | |||||
| Plugin* const p = new Plugin; | |||||
| pluginInstance__PathSet = p; | |||||
| const StaticPluginLoader spl(p, "PathSet"); | |||||
| if (spl.ok()) | |||||
| { | |||||
| p->addModel(modelShiftyMod); | |||||
| p->addModel(modelIceTray); | |||||
| p->addModel(modelAstroVibe); | |||||
| } | |||||
| } | |||||
| static void initStatic__Prism() | static void initStatic__Prism() | ||||
| { | { | ||||
| Plugin* const p = new Plugin; | Plugin* const p = new Plugin; | ||||
| @@ -2317,6 +2335,7 @@ void initStaticPlugins() | |||||
| initStatic__Mog(); | initStatic__Mog(); | ||||
| initStatic__mscHack(); | initStatic__mscHack(); | ||||
| initStatic__Orbits(); | initStatic__Orbits(); | ||||
| initStatic__PathSet(); | |||||
| initStatic__Prism(); | initStatic__Prism(); | ||||
| initStatic__rackwindows(); | initStatic__rackwindows(); | ||||
| initStatic__repelzen(); | initStatic__repelzen(); | ||||
| @@ -252,6 +252,10 @@ static const struct { | |||||
| { "/kocmoc/res/SKF.svg", {}, -1 }, | { "/kocmoc/res/SKF.svg", {}, -1 }, | ||||
| { "/kocmoc/res/SVF.svg", {}, -1 }, | { "/kocmoc/res/SVF.svg", {}, -1 }, | ||||
| { "/kocmoc/res/TRG.svg", {}, -1 }, | { "/kocmoc/res/TRG.svg", {}, -1 }, | ||||
| // GPL-3.0-or-later | |||||
| { "/PathSet/res/AstroVibe.svg", {}, -1 }, | |||||
| { "/PathSet/res/IceTray.svg", {}, -1 }, | |||||
| { "/PathSet/res/ShiftyMod.svg", {}, -1 }, | |||||
| }; | }; | ||||
| static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | ||||
| @@ -338,6 +342,43 @@ static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInve | |||||
| } | } | ||||
| } | } | ||||
| // Special case for Path Set colors | |||||
| if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0) | |||||
| { | |||||
| switch (paint.color) | |||||
| { | |||||
| // do nothing | |||||
| case 0xffdf7a1a: | |||||
| case 0xffe3b080: | |||||
| case 0xffe941e2: | |||||
| case 0xffef73ea: | |||||
| case 0xfff49ff0: | |||||
| case 0xff698efb: | |||||
| case 0xff787878: | |||||
| case 0xfff5c99f: | |||||
| case 0xffde944f: | |||||
| case 0xffe1a265: | |||||
| case 0xffe5cbb3: | |||||
| case 0xffe6d2c0: | |||||
| case 0xffffffff: | |||||
| return false; | |||||
| // set other colors | |||||
| case 0xffe4cbb3: | |||||
| paint.color = 0xffe3b080; | |||||
| return false; | |||||
| case 0xfff8dcc2: | |||||
| paint.color = 0xffde944f; | |||||
| return false; | |||||
| case 0xffe5d9cd: | |||||
| paint.color = 0xfff8dcc2; | |||||
| return false; | |||||
| // should be just the logo, but also changes the output outlines | |||||
| case 0xff000000: | |||||
| paint.color = 0xffffffff; | |||||
| return true; | |||||
| } | |||||
| } | |||||
| switch (paint.color) | switch (paint.color) | ||||
| { | { | ||||
| // scopes or other special things (do nothing) | // scopes or other special things (do nothing) | ||||