diff --git a/.gitmodules b/.gitmodules index 0c21bd04..031eac9e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -257,3 +257,6 @@ [submodule "plugins/rcm-modules"] path = plugins/rcm-modules url = https://github.com/Rcomian/rcm-modules.git +[submodule "plugins/admiral"] + path = plugins/admiral + url = https://github.com/wapiflapi/admiral.git diff --git a/README.md b/README.md index 58788007..3de00ba0 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ At the moment the following 3rd-party modules are provided: - [21kHz](https://github.com/netboy3/21kHz-rack-plugins) - [8Mode](https://github.com/8Mode/8Mode-VCV_Modules) - [Aaron Static](https://github.com/aaronstatic/AaronStatic_modules) +- [Admiral](https://github.com/wapiflapi/admiral) - [alef's bits](https://github.com/alefnull/alefsbits) - [AlgoritmArte](https://github.com/algoritmarte/AlgoritmarteVCVPlugin) - [Amalgamated Harmonics](https://github.com/jhoar/AmalgamatedHarmonics) diff --git a/docs/DIFFERENCES.md b/docs/DIFFERENCES.md index ef31a084..adbc4b85 100644 --- a/docs/DIFFERENCES.md +++ b/docs/DIFFERENCES.md @@ -46,6 +46,7 @@ Bellow follows a list of features comparing the official plugin to Cardinal. Additionally, Cardinal contains the following built-in modules not present in the official plugin or standalone: + * Admiral (never updated to v2) * Aria Salvatrice modules (except Arcane related modules, due to their online requirement) * Arable Instruments and Parable Instruments (never updated to v2) * Mog (never updated to v2) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 745b9d29..7e171186 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -16,6 +16,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | 21kHz | MIT | | | 8Mode | BSD-3-Clause | | | Aaron Static | MIT | | +| admiral | MIT | | | alef's bits | GPL-3.0-or-later | | | AlgoritmArte | GPL-3.0-or-later | | | Amalgamated Harmonics | BSD-3-Clause | | diff --git a/plugins/Makefile b/plugins/Makefile index d9122817..3064c779 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -346,6 +346,11 @@ PLUGIN_FILES += $(wildcard AaronStatic/src/*.cpp) # modules/types which are present in other plugins AARONSTATIC_CUSTOM = RefreshCounter +# -------------------------------------------------------------- +# Admiral + +PLUGIN_FILES += $(filter-out admiral/src/plugin.cpp,$(wildcard admiral/src/*.cpp)) + # -------------------------------------------------------------- # AmalgamatedHarmonics @@ -2129,6 +2134,13 @@ $(BUILD_DIR)/AaronStatic/%.cpp.o: AaronStatic/%.cpp -DpluginInstance=pluginInstance__AaronStatic \ -Dinit=init__AaronStatic +$(BUILD_DIR)/admiral/%.cpp.o: admiral/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(ADMIRAL_CUSTOM),$(call custom_module_names,$(m),admiral)) \ + -DpluginInstance=pluginInstance__admiral + $(BUILD_DIR)/alefsbits/%.cpp.o: alefsbits/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/admiral b/plugins/admiral new file mode 160000 index 00000000..2885b72e --- /dev/null +++ b/plugins/admiral @@ -0,0 +1 @@ +Subproject commit 2885b72e1e82b1103eb2cb4db2a226c57c9e5f40 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 1edd5763..a0dc2b5c 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -27,6 +27,15 @@ // Aaron Static #include "AaronStatic/src/plugin.hpp" +// Admiral +/* NOTE too much noise in original include, do this a different way +// #include "admiral/src/plugin.hpp" +*/ +extern Model* modelWatches; +extern Model* modelShifts; +extern Model* modelTables; +extern Model* modelDivisions; + // Alef's Bits #define modelSteps modelalefsbitsSteps #define modelLogic modelalefsbitsLogic @@ -907,6 +916,7 @@ Plugin* pluginInstance__Fundamental; Plugin* pluginInstance__21kHz; Plugin* pluginInstance__8Mode; extern Plugin* pluginInstance__AaronStatic; +Plugin* pluginInstance__admiral; Plugin* pluginInstance__alefsbits; Plugin* pluginInstance__Algoritmarte; Plugin* pluginInstance__AmalgamatedHarmonics; @@ -1245,6 +1255,21 @@ static void initStatic__AaronStatic() } } +static void initStatic__admiral() +{ + Plugin* const p = new Plugin; + pluginInstance__admiral = p; + + const StaticPluginLoader spl(p, "admiral"); + if (spl.ok()) + { + p->addModel(modelWatches); + p->addModel(modelShifts); + p->addModel(modelTables); + p->addModel(modelDivisions); + } +} + static void initStatic__alefsbits() { Plugin* const p = new Plugin; @@ -3474,6 +3499,7 @@ void initStaticPlugins() initStatic__21kHz(); initStatic__8Mode(); initStatic__AaronStatic(); + initStatic__admiral(); initStatic__alefsbits(); initStatic__Algoritmarte(); initStatic__AmalgamatedHarmonics();