diff --git a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp index 2e6614bc53..000a069979 100644 --- a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp @@ -1870,8 +1870,16 @@ namespace AAXClasses const int numInputBuses = plugin->getBusCount (true); const int numOutputBuses = plugin->getBusCount (false); - descriptor.AddName (JucePlugin_Desc); - descriptor.AddName (JucePlugin_Name); + auto pluginNames = plugin->getAlternateDisplayNames(); + + pluginNames.insert (0, JucePlugin_Desc); + pluginNames.insert (0, JucePlugin_Name); + + pluginNames.removeDuplicates (false); + + for (auto name : pluginNames) + descriptor.AddName (name.toRawUTF8()); + descriptor.AddCategory (JucePlugin_AAXCategory); const int numMeters = addAAXMeters (*plugin, descriptor); diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp index 3fd2e3404f..726c770327 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp @@ -87,6 +87,9 @@ AudioProcessor::~AudioProcessor() #endif } +//============================================================================== +StringArray AudioProcessor::getAlternateDisplayNames() const { return StringArray (getName()); } + //============================================================================== bool AudioProcessor::addBus (bool isInput) { diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h index 3b637d5b83..3aea53ae7a 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h @@ -96,6 +96,15 @@ public: /** Returns the name of this processor. */ virtual const String getName() const = 0; + /** Returns a list of alternative names to use for this processor. + + Some hosts truncate the name of your AudioProcessor when there isn't enough + space in the GUI to show the full name. Overriding this method, allows the host + to choose an alternative name (such as an abbreviation) to better fit the + available space. + */ + virtual StringArray getAlternateDisplayNames() const; + //============================================================================== /** Called before playback starts, to let the filter prepare itself.