Browse Source

AudioPluginHost: Only auto-scale VST plug-in windows

tags/2021-05-28
ed 4 years ago
parent
commit
8500f40b95
3 changed files with 17 additions and 11 deletions
  1. +10
    -4
      extras/AudioPluginHost/Source/HostStartup.cpp
  2. +6
    -6
      extras/AudioPluginHost/Source/Plugins/PluginGraph.cpp
  3. +1
    -1
      extras/AudioPluginHost/Source/UI/MainHostWindow.h

+ 10
- 4
extras/AudioPluginHost/Source/HostStartup.cpp View File

@@ -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;


+ 6
- 6
extras/AudioPluginHost/Source/Plugins/PluginGraph.cpp View File

@@ -29,10 +29,10 @@
#include "InternalPlugins.h"
#include "../UI/GraphEditorPanel.h"
static std::unique_ptr<ScopedDPIAwarenessDisabler> makeDPIAwarenessDisablerForPlugin (StringRef identifier)
static std::unique_ptr<ScopedDPIAwarenessDisabler> makeDPIAwarenessDisablerForPlugin (const PluginDescription& desc)
{
return shouldAutoScalePlugin (identifier) ? std::make_unique<ScopedDPIAwarenessDisabler>()
: nullptr;
return shouldAutoScalePlugin (desc) ? std::make_unique<ScopedDPIAwarenessDisabler>()
: nullptr;
}
//==============================================================================
@@ -81,7 +81,7 @@ AudioProcessorGraph::Node::Ptr PluginGraph::getNodeForName (const String& name)
void PluginGraph::addPlugin (const PluginDescription& desc, Point<double> pos)
{
std::shared_ptr<ScopedDPIAwarenessDisabler> dpiDisabler = makeDPIAwarenessDisablerForPlugin (desc.fileOrIdentifier);
std::shared_ptr<ScopedDPIAwarenessDisabler> 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);
};


+ 1
- 1
extras/AudioPluginHost/Source/UI/MainHostWindow.h View File

@@ -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&);
//==============================================================================


Loading…
Cancel
Save