#include "global_pre.hpp" #include "plugin.hpp" #include "Core/Core.hpp" #include "app.hpp" #include "asset.hpp" #include "util/request.hpp" #include "osdialog.h" #include #include #include #ifdef YAC_POSIX #include #include #include #include // for MAXPATHLEN #include #include #else #include "util/dirent_win32/dirent.h" #endif // YAC_POSIX #include #include #include "global.hpp" #include "global_ui.hpp" #ifndef USE_VST2 #define ZIP_STATIC #include #endif // USE_VST2 #include #if ARCH_WIN #include #include #define mkdir(_dir, _perms) _mkdir(_dir) #else #include #endif namespace rack { extern Plugin *pluginGetPlugin (std::string pluginSlug); #ifdef USE_VST2 #ifndef RACK_PLUGIN #ifndef SKIP_STATIC_MODULES extern "C" { extern void init_plugin_21kHz (rack::Plugin *p); extern void init_plugin_AmalgamatedHarmonics (rack::Plugin *p); extern void init_plugin_Alikins (rack::Plugin *p); extern void init_plugin_alto777_LFSR (rack::Plugin *p); extern void init_plugin_arjo_modules (rack::Plugin *p); extern void init_plugin_AS (rack::Plugin *p); extern void init_plugin_AudibleInstruments (rack::Plugin *p); extern void init_plugin_Autodafe (rack::Plugin *p); extern void init_plugin_BaconMusic (rack::Plugin *p); extern void init_plugin_Bark (rack::Plugin *p); extern void init_plugin_Befaco (rack::Plugin *p); extern void init_plugin_Bidoo (rack::Plugin *p); extern void init_plugin_Bogaudio (rack::Plugin *p); // extern void init_plugin_bsp (rack::Plugin *p); // contains GPLv3 code from Ob-Xd (Obxd_VCF) // extern void init_plugin_BOKONTEPByteBeatMachine (rack::Plugin *p); // unstable extern void init_plugin_CastleRocktronics (rack::Plugin *p); extern void init_plugin_cf (rack::Plugin *p); extern void init_plugin_com_soundchasing_stochasm (rack::Plugin *p); extern void init_plugin_computerscare (rack::Plugin *p); //extern void init_plugin_dBiz (rack::Plugin *p); // now a DLL (13Jul2018) extern void init_plugin_DHE_Modules (rack::Plugin *p); extern void init_plugin_DrumKit (rack::Plugin *p); extern void init_plugin_Edge (rack::Plugin *p); extern void init_plugin_EH_modules (rack::Plugin *p); extern void init_plugin_ErraticInstruments (rack::Plugin *p); extern void init_plugin_ESeries (rack::Plugin *p); extern void init_plugin_FrankBussFormula (rack::Plugin *p); extern void init_plugin_FrozenWasteland (rack::Plugin *p); extern void init_plugin_Fundamental (rack::Plugin *p); extern void init_plugin_Geodesics (rack::Plugin *p); extern void init_plugin_Gratrix (rack::Plugin *p); extern void init_plugin_HetrickCV (rack::Plugin *p); extern void init_plugin_huaba (rack::Plugin *p); extern void init_plugin_ImpromptuModular (rack::Plugin *p); extern void init_plugin_JE (rack::Plugin *p); extern void init_plugin_JW_Modules (rack::Plugin *p); extern void init_plugin_Koralfx (rack::Plugin *p); extern void init_plugin_LabSeven (rack::Plugin *p); extern void init_plugin_LindenbergResearch (rack::Plugin *p); extern void init_plugin_LOGinstruments (rack::Plugin *p); extern void init_plugin_mental (rack::Plugin *p); extern void init_plugin_MicMusic (rack::Plugin *p); extern void init_plugin_ML_modules (rack::Plugin *p); extern void init_plugin_moDllz (rack::Plugin *p); extern void init_plugin_modular80 (rack::Plugin *p); extern void init_plugin_mscHack (rack::Plugin *p); extern void init_plugin_mtsch_plugins (rack::Plugin *p); extern void init_plugin_NauModular (rack::Plugin *p); extern void init_plugin_Nohmad (rack::Plugin *p); extern void init_plugin_noobhour (rack::Plugin *p); extern void init_plugin_Ohmer (rack::Plugin *p); // extern void init_plugin_ParableInstruments (rack::Plugin *p); // alternative "Clouds" module (crashes) extern void init_plugin_PG_Instruments (rack::Plugin *p); extern void init_plugin_PvC (rack::Plugin *p); extern void init_plugin_QuantalAudio (rack::Plugin *p); extern void init_plugin_Qwelk (rack::Plugin *p); extern void init_plugin_rcm (rack::Plugin *p); extern void init_plugin_RJModules (rack::Plugin *p); extern void init_plugin_SerialRacker (rack::Plugin *p); extern void init_plugin_Skylights (rack::Plugin *p); extern void init_plugin_SonusModular (rack::Plugin *p); extern void init_plugin_Southpole (rack::Plugin *p); extern void init_plugin_Southpole_parasites (rack::Plugin *p); extern void init_plugin_squinkylabs_plug1 (rack::Plugin *p); extern void init_plugin_SubmarineFree (rack::Plugin *p); extern void init_plugin_SynthKit (rack::Plugin *p); extern void init_plugin_Template (rack::Plugin *p); extern void init_plugin_TheXOR (rack::Plugin *p); extern void init_plugin_trowaSoft (rack::Plugin *p); extern void init_plugin_unless_modules (rack::Plugin *p); extern void init_plugin_Valley (rack::Plugin *p); // extern void init_plugin_VultModules (rack::Plugin *p); } static void vst2_load_static_rack_plugin(const char *_name, InitCallback _initCallback) { std::string path = assetStaticPlugin(_name); // Construct and initialize Plugin instance Plugin *plugin = new Plugin(); plugin->path = path; plugin->handle = NULL; _initCallback(plugin); #if 0 // Reject plugin if slug already exists Plugin *oldPlugin = pluginGetPlugin(plugin->slug); if (oldPlugin) { warn("Plugin \"%s\" is already loaded, not attempting to load it again", plugin->slug.c_str()); // TODO // Fix memory leak with `plugin` here return false; } #endif // Add plugin to list global->plugin.gPlugins.push_back(plugin); info("vcvrack: Loaded static plugin %s %s", plugin->slug.c_str(), plugin->version.c_str()); } #endif // SKIP_STATIC_MODULES void vst2_load_static_rack_plugins(void) { #ifndef SKIP_STATIC_MODULES printf("[dbg] vst2_load_static_rack_plugins: ENTER\n"); #if 1 vst2_load_static_rack_plugin("21kHz", &init_plugin_21kHz); vst2_load_static_rack_plugin("AmalgamatedHarmonics", &init_plugin_AmalgamatedHarmonics); vst2_load_static_rack_plugin("Alikins", &init_plugin_Alikins); vst2_load_static_rack_plugin("alto777_LFSR", &init_plugin_alto777_LFSR); vst2_load_static_rack_plugin("arjo_modules", &init_plugin_arjo_modules); vst2_load_static_rack_plugin("AS", &init_plugin_AS); vst2_load_static_rack_plugin("AudibleInstruments", &init_plugin_AudibleInstruments); vst2_load_static_rack_plugin("Autodafe", &init_plugin_Autodafe); vst2_load_static_rack_plugin("BaconMusic", &init_plugin_BaconMusic); vst2_load_static_rack_plugin("Bark", &init_plugin_Bark); vst2_load_static_rack_plugin("Befaco", &init_plugin_Befaco); vst2_load_static_rack_plugin("Bidoo", &init_plugin_Bidoo); vst2_load_static_rack_plugin("Bogaudio", &init_plugin_Bogaudio); // vst2_load_static_rack_plugin("bsp", &init_plugin_bsp); // contains GPLv3 code from Ob-Xd (Obxd_VCF) // vst2_load_static_rack_plugin("BOKONTEPByteBeatMachine", &init_plugin_BOKONTEPByteBeatMachine); vst2_load_static_rack_plugin("CastleRocktronics", &init_plugin_CastleRocktronics); vst2_load_static_rack_plugin("cf", &init_plugin_cf); vst2_load_static_rack_plugin("com_soundchasing_stochasm", &init_plugin_com_soundchasing_stochasm); vst2_load_static_rack_plugin("computerscare", &init_plugin_computerscare); // vst2_load_static_rack_plugin("dBiz", &init_plugin_dBiz); // now a DLL (13Jul2018) vst2_load_static_rack_plugin("DHE-Modules", &init_plugin_DHE_Modules); vst2_load_static_rack_plugin("DrumKit", &init_plugin_DrumKit); vst2_load_static_rack_plugin("Edge", &init_plugin_Edge); vst2_load_static_rack_plugin("EH_modules", &init_plugin_EH_modules); vst2_load_static_rack_plugin("ErraticInstruments", &init_plugin_ErraticInstruments); vst2_load_static_rack_plugin("ESeries", &init_plugin_ESeries); vst2_load_static_rack_plugin("FrankBussFormula", &init_plugin_FrankBussFormula); vst2_load_static_rack_plugin("FrozenWasteland", &init_plugin_FrozenWasteland); vst2_load_static_rack_plugin("Fundamental", &init_plugin_Fundamental); vst2_load_static_rack_plugin("Geodesics", &init_plugin_Geodesics); vst2_load_static_rack_plugin("Gratrix", &init_plugin_Gratrix); vst2_load_static_rack_plugin("HetrickCV", &init_plugin_HetrickCV); vst2_load_static_rack_plugin("huaba", &init_plugin_huaba); vst2_load_static_rack_plugin("ImpromptuModular", &init_plugin_ImpromptuModular); vst2_load_static_rack_plugin("JE", &init_plugin_JE); vst2_load_static_rack_plugin("JW_Modules", &init_plugin_JW_Modules); vst2_load_static_rack_plugin("Koralfx-Modules", &init_plugin_Koralfx); vst2_load_static_rack_plugin("LabSeven", &init_plugin_LabSeven); vst2_load_static_rack_plugin("LindenbergResearch", &init_plugin_LindenbergResearch); vst2_load_static_rack_plugin("LOGinstruments", &init_plugin_LOGinstruments); vst2_load_static_rack_plugin("mental", &init_plugin_mental); vst2_load_static_rack_plugin("MicMusic", &init_plugin_MicMusic); vst2_load_static_rack_plugin("ML_modules", &init_plugin_ML_modules); vst2_load_static_rack_plugin("moDllz", &init_plugin_moDllz); vst2_load_static_rack_plugin("modular80", &init_plugin_modular80); vst2_load_static_rack_plugin("mscHack", &init_plugin_mscHack); vst2_load_static_rack_plugin("mtsch_plugins", &init_plugin_mtsch_plugins); vst2_load_static_rack_plugin("NauModular", &init_plugin_NauModular); vst2_load_static_rack_plugin("Nohmad", &init_plugin_Nohmad); vst2_load_static_rack_plugin("noobhour", &init_plugin_noobhour); vst2_load_static_rack_plugin("Ohmer", &init_plugin_Ohmer); // vst2_load_static_rack_plugin("ParableInstruments", &init_plugin_ParableInstruments); vst2_load_static_rack_plugin("PG_Instruments", &init_plugin_PG_Instruments); vst2_load_static_rack_plugin("PvC", &init_plugin_PvC); vst2_load_static_rack_plugin("QuantalAudio", &init_plugin_QuantalAudio); vst2_load_static_rack_plugin("Qwelk", &init_plugin_Qwelk); vst2_load_static_rack_plugin("rcm", &init_plugin_rcm); vst2_load_static_rack_plugin("RJModules", &init_plugin_RJModules); vst2_load_static_rack_plugin("SerialRacker", &init_plugin_SerialRacker); vst2_load_static_rack_plugin("Skylights", &init_plugin_Skylights); vst2_load_static_rack_plugin("SonusModular", &init_plugin_SonusModular); vst2_load_static_rack_plugin("Southpole", &init_plugin_Southpole); vst2_load_static_rack_plugin("Southpole_parasites", &init_plugin_Southpole_parasites); vst2_load_static_rack_plugin("squinkylabs-plug1", &init_plugin_squinkylabs_plug1); vst2_load_static_rack_plugin("SubmarineFree", &init_plugin_SubmarineFree); vst2_load_static_rack_plugin("SynthKit", &init_plugin_SynthKit); vst2_load_static_rack_plugin("Template", &init_plugin_Template); vst2_load_static_rack_plugin("TheXOR", &init_plugin_TheXOR); vst2_load_static_rack_plugin("trowaSoft", &init_plugin_trowaSoft); vst2_load_static_rack_plugin("unless_modules", &init_plugin_unless_modules); vst2_load_static_rack_plugin("Valley", &init_plugin_Valley); // vst2_load_static_rack_plugin("VultModules", &init_plugin_VultModules); #else vst2_load_static_rack_plugin("Template", &init_plugin_Template); #endif printf("[dbg] vst2_load_static_rack_plugins: LEAVE\n"); #endif // SKIP_STATIC_MODULES } #endif // RACK_PLUGIN #endif // USE_VST2 }