diff --git a/include/audacity/EffectInterface.h b/include/audacity/EffectInterface.h index 8a9134e0e..e31ec6ffa 100755 --- a/include/audacity/EffectInterface.h +++ b/include/audacity/EffectInterface.h @@ -64,8 +64,11 @@ public: virtual ~EffectIdentInterface() {}; virtual EffectType GetType() = 0; - // Returns a string for internal uses only that may persist in config files: + + // This string persists in configuration files + // So config compatibility will break if it is changed across Audacity versions virtual wxString GetFamilyId() = 0; + // Returns a user-visible string: virtual wxString GetFamilyName() = 0; diff --git a/include/audacity/IdentInterface.h b/include/audacity/IdentInterface.h index 10feb3bef..2032327f8 100644 --- a/include/audacity/IdentInterface.h +++ b/include/audacity/IdentInterface.h @@ -51,11 +51,15 @@ public: // These should return an untranslated value virtual wxString GetPath() = 0; + // This string persists in configuration files + // So config compatibility will break if it is changed across Audacity versions virtual wxString GetSymbol() = 0; // These should return an untranslated value whose translation // will be determined at runtime (if available) virtual wxString GetName() = 0; + // This string persists in configuration files + // So config compatibility will break if it is changed across Audacity versions virtual wxString GetVendor() = 0; virtual wxString GetVersion() = 0; diff --git a/src/PluginManager.cpp b/src/PluginManager.cpp index 1537b1622..4499d915c 100644 --- a/src/PluginManager.cpp +++ b/src/PluginManager.cpp @@ -2616,6 +2616,8 @@ PluginID PluginManager::GetID(ImporterInterface *importer) importer->GetPath()); } +// This string persists in configuration files +// So config compatibility will break if it is changed across Audacity versions wxString PluginManager::GetPluginTypeString(PluginType type) { wxString str; @@ -2888,6 +2890,11 @@ bool PluginManager::SetConfig(const wxString & key, const double & value) /* Return value is a key for lookup in a config file */ wxString PluginManager::SettingsPath(const PluginID & ID, bool shared) { + // All the strings reported by PluginDescriptor and used in this function + // persist in the plugin settings configuration file, so they should not + // be changed across Audacity versions, or else compatibility of the + // configuration files will break. + if (mPlugins.find(ID) == mPlugins.end()) { return wxEmptyString; diff --git a/src/PluginManager.h b/src/PluginManager.h index 276a81465..458b939d2 100644 --- a/src/PluginManager.h +++ b/src/PluginManager.h @@ -91,6 +91,8 @@ public: // Internal string only, no translated counterpart! // (Use Effect::GetFamilyName instead) + // This string persists in configuration files + // So config compatibility will break if it is changed across Audacity versions wxString GetEffectFamilyId() const; EffectType GetEffectType() const; @@ -237,6 +239,8 @@ public: static PluginID GetID(EffectIdentInterface *effect); static PluginID GetID(ImporterInterface *importer); + // This string persists in configuration files + // So config compatibility will break if it is changed across Audacity versions static wxString GetPluginTypeString(PluginType type); int GetPluginCount(PluginType type); diff --git a/src/effects/Effect.h b/src/effects/Effect.h index ed940dae1..bf484da84 100644 --- a/src/effects/Effect.h +++ b/src/effects/Effect.h @@ -78,7 +78,11 @@ class AUDACITY_DLL_API Effect /* not final */ : public wxEvtHandler, // IdentInterface implementation wxString GetPath() override; + + // This string persists in configuration files + // So config compatibility will break if it is changed across Audacity versions wxString GetSymbol() override; + wxString GetName() override; wxString GetVendor() override; wxString GetVersion() override;