diff --git a/include/audacity/ModuleInterface.h b/include/audacity/ModuleInterface.h index fd95811f1..cd66790f4 100644 --- a/include/audacity/ModuleInterface.h +++ b/include/audacity/ModuleInterface.h @@ -76,6 +76,11 @@ public: // Called just prior to deletion to allow releasing any resources. virtual void Terminate() = 0; + // A symbol identifying the family of plugin provided by this module; + // if it is not empty, then the family as a whole can be enabled or + // disabled by the user in Preferences + virtual EffectFamilySymbol GetOptionalFamilySymbol() = 0; + // "Paths" returned by FindPluginPaths() and passed back to // DiscoverPluginsAtPath() have module-specific meaning. // They are not necessarily file system paths to existent files that diff --git a/src/commands/LoadCommands.cpp b/src/commands/LoadCommands.cpp index 5edcc8ab8..ad5491bcb 100644 --- a/src/commands/LoadCommands.cpp +++ b/src/commands/LoadCommands.cpp @@ -224,6 +224,12 @@ void BuiltinCommandsModule::Terminate() return; } +EffectFamilySymbol BuiltinCommandsModule::GetOptionalFamilySymbol() +{ + // Commands are not enabled and disabled in EffectsPrefs + return {}; +} + const FileExtensions &BuiltinCommandsModule::GetFileExtensions() { static FileExtensions empty; diff --git a/src/commands/LoadCommands.h b/src/commands/LoadCommands.h index 7a3811d76..c4192b55a 100644 --- a/src/commands/LoadCommands.h +++ b/src/commands/LoadCommands.h @@ -39,6 +39,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override { return {}; } diff --git a/src/effects/LoadEffects.cpp b/src/effects/LoadEffects.cpp index ea162d120..f7d4deac2 100644 --- a/src/effects/LoadEffects.cpp +++ b/src/effects/LoadEffects.cpp @@ -290,6 +290,13 @@ void BuiltinEffectsModule::Terminate() return; } +EffectFamilySymbol BuiltinEffectsModule::GetOptionalFamilySymbol() +{ + // Returns empty, because there should not be an option in Preferences to + // disable the built-in effects. + return {}; +} + const FileExtensions &BuiltinEffectsModule::GetFileExtensions() { static FileExtensions empty; diff --git a/src/effects/LoadEffects.h b/src/effects/LoadEffects.h index a1cf30d25..fe8b89f3f 100644 --- a/src/effects/LoadEffects.h +++ b/src/effects/LoadEffects.h @@ -38,6 +38,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override { return {}; } diff --git a/src/effects/VST/VSTEffect.cpp b/src/effects/VST/VSTEffect.cpp index cce5ff4e1..23b915230 100644 --- a/src/effects/VST/VSTEffect.cpp +++ b/src/effects/VST/VSTEffect.cpp @@ -366,6 +366,15 @@ void VSTEffectsModule::Terminate() return; } +EffectFamilySymbol VSTEffectsModule::GetOptionalFamilySymbol() +{ +#if USE_VST + return VSTPLUGINTYPE; +#else + return {}; +#endif +} + const FileExtensions &VSTEffectsModule::GetFileExtensions() { static FileExtensions result{{ _T("vst") }}; diff --git a/src/effects/VST/VSTEffect.h b/src/effects/VST/VSTEffect.h index 27c088aa4..1ecf26859 100644 --- a/src/effects/VST/VSTEffect.h +++ b/src/effects/VST/VSTEffect.h @@ -417,6 +417,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override; diff --git a/src/effects/audiounits/AudioUnitEffect.cpp b/src/effects/audiounits/AudioUnitEffect.cpp index 576ff9407..d7daa8d3b 100644 --- a/src/effects/audiounits/AudioUnitEffect.cpp +++ b/src/effects/audiounits/AudioUnitEffect.cpp @@ -153,6 +153,15 @@ void AudioUnitEffectsModule::Terminate() return; } +EffectFamilySymbol AudioUnitEffectsModule::GetOptionalFamilySymbol() +{ +#if USE_AUDIO_UNITS + return AUDIOUNITEFFECTS_FAMILY; +#else + return {}; +#endif +} + bool AudioUnitEffectsModule::AutoRegisterPlugins(PluginManagerInterface & pm) { // Nothing to be done here diff --git a/src/effects/audiounits/AudioUnitEffect.h b/src/effects/audiounits/AudioUnitEffect.h index 137bba299..2fc996395 100644 --- a/src/effects/audiounits/AudioUnitEffect.h +++ b/src/effects/audiounits/AudioUnitEffect.h @@ -241,6 +241,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override { return {}; } diff --git a/src/effects/ladspa/LadspaEffect.cpp b/src/effects/ladspa/LadspaEffect.cpp index db9837a48..b4492fd71 100644 --- a/src/effects/ladspa/LadspaEffect.cpp +++ b/src/effects/ladspa/LadspaEffect.cpp @@ -162,6 +162,15 @@ void LadspaEffectsModule::Terminate() return; } +EffectFamilySymbol LadspaEffectsModule::GetOptionalFamilySymbol() +{ +#if USE_LADSPA + return LADSPAEFFECTS_FAMILY; +#else + return {}; +#endif +} + const FileExtensions &LadspaEffectsModule::GetFileExtensions() { static FileExtensions result{{ diff --git a/src/effects/ladspa/LadspaEffect.h b/src/effects/ladspa/LadspaEffect.h index bf328242a..6ffb6eac1 100644 --- a/src/effects/ladspa/LadspaEffect.h +++ b/src/effects/ladspa/LadspaEffect.h @@ -222,6 +222,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override; diff --git a/src/effects/lv2/LoadLV2.cpp b/src/effects/lv2/LoadLV2.cpp index 6fcaef762..46f7676a9 100644 --- a/src/effects/lv2/LoadLV2.cpp +++ b/src/effects/lv2/LoadLV2.cpp @@ -207,6 +207,15 @@ void LV2EffectsModule::Terminate() return; } +EffectFamilySymbol LV2EffectsModule::GetOptionalFamilySymbol() +{ +#if USE_LV2 + return LV2EFFECTS_FAMILY; +#else + return {}; +#endif +} + const FileExtensions &LV2EffectsModule::GetFileExtensions() { static FileExtensions empty; diff --git a/src/effects/lv2/LoadLV2.h b/src/effects/lv2/LoadLV2.h index 8f07e06d4..72983a425 100644 --- a/src/effects/lv2/LoadLV2.h +++ b/src/effects/lv2/LoadLV2.h @@ -85,6 +85,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override { return {}; } diff --git a/src/effects/nyquist/LoadNyquist.cpp b/src/effects/nyquist/LoadNyquist.cpp index 96909a2ab..9f94dd5f3 100644 --- a/src/effects/nyquist/LoadNyquist.cpp +++ b/src/effects/nyquist/LoadNyquist.cpp @@ -154,6 +154,15 @@ void NyquistEffectsModule::Terminate() return; } +EffectFamilySymbol NyquistEffectsModule::GetOptionalFamilySymbol() +{ +#if USE_NYQUIST + return NYQUISTEFFECTS_FAMILY; +#else + return {}; +#endif +} + const FileExtensions &NyquistEffectsModule::GetFileExtensions() { static FileExtensions result{{ _T("ny") }}; diff --git a/src/effects/nyquist/LoadNyquist.h b/src/effects/nyquist/LoadNyquist.h index f11b0ec7c..b9800db26 100644 --- a/src/effects/nyquist/LoadNyquist.h +++ b/src/effects/nyquist/LoadNyquist.h @@ -36,6 +36,8 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; + const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override; diff --git a/src/effects/vamp/LoadVamp.cpp b/src/effects/vamp/LoadVamp.cpp index 219168f94..2ae86f582 100644 --- a/src/effects/vamp/LoadVamp.cpp +++ b/src/effects/vamp/LoadVamp.cpp @@ -111,6 +111,15 @@ void VampEffectsModule::Terminate() return; } +EffectFamilySymbol VampEffectsModule::GetOptionalFamilySymbol() +{ +#if USE_VAMP + return VAMPEFFECTS_FAMILY; +#else + return {}; +#endif +} + const FileExtensions &VampEffectsModule::GetFileExtensions() { static FileExtensions empty; diff --git a/src/effects/vamp/LoadVamp.h b/src/effects/vamp/LoadVamp.h index 23a18cc29..9b24d53f1 100644 --- a/src/effects/vamp/LoadVamp.h +++ b/src/effects/vamp/LoadVamp.h @@ -44,6 +44,7 @@ public: bool Initialize() override; void Terminate() override; + EffectFamilySymbol GetOptionalFamilySymbol() override; const FileExtensions &GetFileExtensions() override; FilePath InstallPath() override { return {}; }