diff --git a/.gitmodules b/.gitmodules index 1c2a632..0f8b9da 100644 --- a/.gitmodules +++ b/.gitmodules @@ -233,6 +233,10 @@ [submodule "plugins/DHE-Modules"] path = plugins/DHE-Modules url = https://github.com/dhemery/DHE-Modules.git +[submodule "plugins/Computerscare"] + path = plugins/Computerscare + url = https://github.com/freddyz/computerscare-vcv-modules.git + branch = v2.0.4 [submodule "plugins/CVfunk"] path = plugins/CVfunk - url = https://github.com/codygeary/CVfunk-Modules.git + url = https://github.com/codygeary/CVfunk-Modules.git \ No newline at end of file diff --git a/README.md b/README.md index 811634c..3692f53 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ At the moment the following 3rd-party modules are provided: - [Catro/Modulo](https://github.com/catronomix/catro-modulo) - [cf](https://github.com/cfoulc/cf) - [ChowDSP](https://github.com/jatinchowdhury18/ChowDSP-VCV) +- [Computerscare](https://github.com/freddyz/computerscare-vcv-modules) - [CVfunk](https://github.com/codygeary/CVfunk-Modules) - [dBiz](https://github.com/dBiz/dBiz) - [DHE Modules](https://github.com/dhemery/DHE-Modules) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 29192c0..ba7ea2a 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 | Catro/Modulo | BSD-3-Clause | | | cf | BSD-3-Clause | | | ChowDSP | GPL-3.0-or-later | | +| Computerscare | BSD-3-Clause | | | CVfunk | MIT | | | dBiz | GPL-3.0-or-later | | | DHE-Modules | MIT | | @@ -158,6 +159,9 @@ Below is a list of artwork licenses from plugins | cf/VT323-Regular.ttf | OFL-1.1-no-RFN | | | ChowDSP/* | GPL-3.0-or-later | Same license as source code | | ChowDSP/fonts/RobotoCondensed-*.ttf | Apache-2.0 | | +| Computerscare/* | BSD-3-Clause | No artwork specific license provided | +| Computerscare/Oswald-Regular.ttf | OFL-1.1 | | +| Computerscare/Segment7Standard.ttf | OFL-1.1-RFN | | | CVfunk/* | MIT | Same license as source code | | dBiz/* | CC-BY-NC-ND-4.0 | | | dBiz/DejaVuSansMono.ttf | Bitstream-Vera | | diff --git a/plugins/Computerscare b/plugins/Computerscare new file mode 160000 index 0000000..d460bd2 --- /dev/null +++ b/plugins/Computerscare @@ -0,0 +1 @@ +Subproject commit d460bd226ab7b132fc4dfe14c5f359d7bbf007b7 diff --git a/plugins/Makefile b/plugins/Makefile index 78d1611..f8d6116 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -645,6 +645,14 @@ PLUGIN_FILES += $(filter-out cf/src/plugin.cpp,$(wildcard cf/src/*.cpp)) # modules/types which are present in other plugins CF_CUSTOM = $(DRWAV) +# -------------------------------------------------------------- +# Computerscare + +PLUGIN_FILES += $(filter-out Computerscare/src/Computerscare.cpp Computerscare/src/test.cpp,$(wildcard Computerscare/src/*.cpp)) + +# modules/types which are present in other plugins +COMPUTERSCARE_CUSTOM = Quantizer PanelBorder + # -------------------------------------------------------------- # CVfunk @@ -2207,6 +2215,13 @@ $(BUILD_DIR)/cf/src/%.cpp.o: cf/src/%.cpp -DpluginInstance=pluginInstance__cf \ -Wno-misleading-indentation +$(BUILD_DIR)/Computerscare/src/%.cpp.o: Computerscare/src/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(COMPUTERSCARE_CUSTOM),$(call custom_module_names,$(m),Computerscare)) \ + -DpluginInstance=pluginInstance__Computerscare + $(BUILD_DIR)/CVfunk/src/%.cpp.o: CVfunk/src/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 3ab90db..4c8e50e 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -311,6 +311,9 @@ extern Model* modelTestVCF; #include "ChowDSP/src/plugin.cpp" #undef init +// Computerscare +#include "Computerscare/src/Computerscare.hpp" + // dBiz #define DarkDefaultItem dBizDarkDefaultItem #define OrangeLight dBizOrangeLight @@ -866,6 +869,7 @@ Plugin* pluginInstance__BogaudioModules; Plugin* pluginInstance__CatroModulo; Plugin* pluginInstance__cf; Plugin* pluginInstance__ChowDSP; +Plugin* pluginInstance__Computerscare; Plugin* pluginInstance__CVfunk; Plugin* pluginInstance__dBiz; Plugin* pluginInstance__DHE; @@ -1833,6 +1837,34 @@ static void initStatic__ChowDSP() } } +static void initStatic__Computerscare() +{ + Plugin* const p = new Plugin; + pluginInstance__Computerscare = p; + + const StaticPluginLoader spl(p, "Computerscare"); + if (spl.ok()) + { + p->addModel(modelComputerscarePatchSequencer); + p->addModel(modelComputerscareDebug); + p->addModel(modelComputerscareLaundrySoup); + p->addModel(modelComputerscareILoveCookies); + p->addModel(modelComputerscareOhPeas); + p->addModel(modelComputerscareHorseADoodleDoo); + p->addModel(modelComputerscareKnolyPobs); + p->addModel(modelComputerscareBolyPuttons); + p->addModel(modelComputerscareRolyPouter); + p->addModel(modelComputerscareSolyPequencer); + p->addModel(modelComputerscareTolyPools); + p->addModel(modelComputerscareMolyPatrix); + p->addModel(modelComputerscareGolyPenerator); + p->addModel(modelComputerscareFolyPace); + p->addModel(modelComputerscareStolyFickPigure); + p->addModel(modelComputerscareBlank); + p->addModel(modelComputerscareBlankExpander); + } +} + static void initStatic__CVfunk() { Plugin* const p = new Plugin; @@ -3252,6 +3284,7 @@ void initStaticPlugins() initStatic__CatroModulo(); initStatic__cf(); initStatic__ChowDSP(); + initStatic__Computerscare(); initStatic__CVfunk(); initStatic__dBiz(); initStatic__DHE(); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 6551dfb..293726c 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -62,6 +62,7 @@ enum DarkMode { kModeAudibleInstruments, kModeBidoo, kModeCf, + kModeComputerscare, kModeDHE, kModeDrumKit, kModeESeries, @@ -214,6 +215,29 @@ static const struct { { kModeCf, "/cf/res/SUB.svg", {}, -1 }, { kModeCf, "/cf/res/trSEQ.svg", {}, -1 }, { kModeCf, "/cf/res/VARIABLE.svg", {}, -1 }, + // BSD-3 Clause + { kModeComputerscare, "/Computerscare/res/computerscare-clk-text.svg", {}, -1}, + { kModeComputerscare, "/Computerscare/res/vertical-x-1.svg", {}, -1}, + { kModeComputerscare, "/Computerscare/res/vertical-x-2.svg", {}, -1}, + { kModeComputerscare, "/Computerscare/res/vertical-x-3.svg", {}, -1}, + { kModeComputerscare, "/Computerscare/res/computerscare-logo-normal.svg", {}, -1}, + { kModeComputerscare, "/Computerscare/res/computerscare-logo-sad.svg", {}, -1}, + { kModeComputerscare, "/Computerscare/res/ComputerscareDebugPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareOhPeasPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareFolyPacePanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareKnolyPobsPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareTolyPoolsPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareMolyPatrixPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareRolyPouterPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareBolyPuttonsPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareCustomBlankPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareLaundrySoupPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareILoveCookiesPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareGolyPeneratorPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareSolyPequencerPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscarePatchSequencerPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareHorseADoodleDooPanel.svg", {}, -1 }, + { kModeComputerscare, "/Computerscare/res/ComputerscareCustomBlankExpanderPanel.svg", {}, -1 }, // MIT { kModeDHE, "/DHE-Modules/svg/blossom.svg", {}, -1 }, { kModeDHE, "/DHE-Modules/svg/booster-stage.svg", {}, -1 }, @@ -664,6 +688,15 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai } } break; + // Special case for Computerscare + case kModeComputerscare: + switch (paint.color) + { + // Just make vertical-x-* visible + case 0xffa6c924: + return false; + } + break; // Special case for DHE, mark things darker instead of inverting case kModeDHE: paint.color = darkerColor(paint.color);