From 8500f40b953374cc1a7415d9dd7ddd16f0b66896 Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 5 Mar 2021 18:01:45 +0000 Subject: [PATCH] AudioPluginHost: Only auto-scale VST plug-in windows --- extras/AudioPluginHost/Source/HostStartup.cpp | 14 ++++++++++---- .../AudioPluginHost/Source/Plugins/PluginGraph.cpp | 12 ++++++------ extras/AudioPluginHost/Source/UI/MainHostWindow.h | 2 +- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/extras/AudioPluginHost/Source/HostStartup.cpp b/extras/AudioPluginHost/Source/HostStartup.cpp index 07a9a19daf..77428db4da 100644 --- a/extras/AudioPluginHost/Source/HostStartup.cpp +++ b/extras/AudioPluginHost/Source/HostStartup.cpp @@ -223,12 +223,18 @@ void setAutoScaleValueForPlugin (const String& identifier, AutoScale s) getAppProperties().getUserSettings()->setValue ("autoScalePlugins", plugins.joinIntoString ("\n")); } -bool shouldAutoScalePlugin (const String& identifier) +static bool isAutoScaleAvailableForPlugin (const PluginDescription& description) { - if (! autoScaleOptionAvailable) + return autoScaleOptionAvailable + && description.pluginFormatName.containsIgnoreCase ("VST"); +} + +bool shouldAutoScalePlugin (const PluginDescription& description) +{ + if (! isAutoScaleAvailableForPlugin (description)) return false; - const auto scaleValue = getAutoScaleValueForPlugin (identifier); + const auto scaleValue = getAutoScaleValueForPlugin (description.fileOrIdentifier); return (scaleValue == AutoScale::scaled || (scaleValue == AutoScale::useDefault @@ -243,7 +249,7 @@ void addPluginAutoScaleOptionsSubMenu (AudioPluginInstance* pluginInstance, auto description = pluginInstance->getPluginDescription(); - if (! description.pluginFormatName.contains ("VST")) + if (! isAutoScaleAvailableForPlugin (description)) return; auto identifier = description.fileOrIdentifier; diff --git a/extras/AudioPluginHost/Source/Plugins/PluginGraph.cpp b/extras/AudioPluginHost/Source/Plugins/PluginGraph.cpp index 127405419c..7fe29f1bf3 100644 --- a/extras/AudioPluginHost/Source/Plugins/PluginGraph.cpp +++ b/extras/AudioPluginHost/Source/Plugins/PluginGraph.cpp @@ -29,10 +29,10 @@ #include "InternalPlugins.h" #include "../UI/GraphEditorPanel.h" -static std::unique_ptr makeDPIAwarenessDisablerForPlugin (StringRef identifier) +static std::unique_ptr makeDPIAwarenessDisablerForPlugin (const PluginDescription& desc) { - return shouldAutoScalePlugin (identifier) ? std::make_unique() - : nullptr; + return shouldAutoScalePlugin (desc) ? std::make_unique() + : nullptr; } //============================================================================== @@ -81,7 +81,7 @@ AudioProcessorGraph::Node::Ptr PluginGraph::getNodeForName (const String& name) void PluginGraph::addPlugin (const PluginDescription& desc, Point pos) { - std::shared_ptr dpiDisabler = makeDPIAwarenessDisablerForPlugin (desc.fileOrIdentifier); + std::shared_ptr dpiDisabler = makeDPIAwarenessDisablerForPlugin (desc); formatManager.createPluginInstanceAsync (desc, graph.getSampleRate(), @@ -164,7 +164,7 @@ PluginWindow* PluginGraph::getOrCreateWindowFor (AudioProcessorGraph::Node* node return nullptr; } - auto localDpiDisabler = makeDPIAwarenessDisablerForPlugin (description.fileOrIdentifier); + auto localDpiDisabler = makeDPIAwarenessDisablerForPlugin (description); return activePluginWindows.add (new PluginWindow (node, type, activePluginWindows)); } } @@ -383,7 +383,7 @@ void PluginGraph::createNodeFromXml (const XmlElement& xml) { String errorMessage; - auto localDpiDisabler = makeDPIAwarenessDisablerForPlugin (pd.fileOrIdentifier); + auto localDpiDisabler = makeDPIAwarenessDisablerForPlugin (pd); return formatManager.createPluginInstance (pd, graph.getSampleRate(), graph.getBlockSize(), errorMessage); }; diff --git a/extras/AudioPluginHost/Source/UI/MainHostWindow.h b/extras/AudioPluginHost/Source/UI/MainHostWindow.h index 9cebce02c3..1a43449831 100644 --- a/extras/AudioPluginHost/Source/UI/MainHostWindow.h +++ b/extras/AudioPluginHost/Source/UI/MainHostWindow.h @@ -68,7 +68,7 @@ constexpr bool autoScaleOptionAvailable = AutoScale getAutoScaleValueForPlugin (const String&); void setAutoScaleValueForPlugin (const String&, AutoScale); -bool shouldAutoScalePlugin (const String&); +bool shouldAutoScalePlugin (const PluginDescription&); void addPluginAutoScaleOptionsSubMenu (AudioPluginInstance*, PopupMenu&); //==============================================================================