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 2076fa2675..8502d0fb69 100644 --- a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp @@ -2483,7 +2483,7 @@ namespace AAXClasses static void getPlugInDescription (AAX_IEffectDescriptor& descriptor, [[maybe_unused]] const AAX_IFeatureInfo* featureInfo) { - std::unique_ptr plugin (createPluginFilterOfType (AudioProcessor::wrapperType_AAX)); + auto plugin = createPluginFilterOfType (AudioProcessor::wrapperType_AAX); auto numInputBuses = plugin->getBusCount (true); auto numOutputBuses = plugin->getBusCount (false); diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index f994a32ac1..beced27952 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -92,7 +92,7 @@ struct AudioProcessorHolder if (initialiseGUI) initialiseJuce_GUI(); - juceFilter.reset (createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnit)); + juceFilter = createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnit); // audio units do not have a notion of enabled or un-enabled buses juceFilter->enableAllBuses(); diff --git a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm index cf7a4b8408..7c29740045 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm @@ -79,7 +79,7 @@ using namespace juce; struct AudioProcessorHolder : public ReferenceCountedObject { AudioProcessorHolder() = default; - explicit AudioProcessorHolder (AudioProcessor* p) : processor (p) {} + explicit AudioProcessorHolder (std::unique_ptr p) : processor (std::move (p)) {} AudioProcessor& operator*() noexcept { return *processor; } AudioProcessor* operator->() noexcept { return processor.get(); } AudioProcessor* get() noexcept { return processor.get(); } @@ -1746,9 +1746,9 @@ public: { JUCE_ASSERT_MESSAGE_THREAD - if (AudioProcessor* p = createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnitv3)) + if (auto p = createPluginFilterOfType (AudioProcessor::wrapperType_AudioUnitv3)) { - processorHolder = new AudioProcessorHolder (p); + processorHolder = new AudioProcessorHolder (std::move (p)); auto& processor = getAudioProcessor(); if (processor.hasEditor()) diff --git a/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp b/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp index 1e80aab3a3..198555c554 100644 --- a/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp +++ b/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp @@ -721,7 +721,7 @@ public: static std::unique_ptr createProcessorInstance() { - auto result = rawToUniquePtr (createPluginFilterOfType (AudioProcessor::wrapperType_LV2)); + auto result = createPluginFilterOfType (AudioProcessor::wrapperType_LV2); #if defined (JucePlugin_PreferredChannelConfigurations) constexpr short channelConfigurations[][2] { JucePlugin_PreferredChannelConfigurations }; diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h index e7bfc75857..6a96c9beba 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h @@ -124,7 +124,7 @@ public: //============================================================================== virtual void createPlugin() { - processor.reset (createPluginFilterOfType (AudioProcessor::wrapperType_Standalone)); + processor = createPluginFilterOfType (AudioProcessor::wrapperType_Standalone); processor->disableNonMainBuses(); processor->setRateAndBufferSizeDetails (44100, 512); diff --git a/modules/juce_audio_plugin_client/Unity/juce_Unity_Wrapper.cpp b/modules/juce_audio_plugin_client/Unity/juce_Unity_Wrapper.cpp index 8609e57df5..e2cc0f692f 100644 --- a/modules/juce_audio_plugin_client/Unity/juce_Unity_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/Unity/juce_Unity_Wrapper.cpp @@ -292,7 +292,7 @@ class AudioProcessorUnityWrapper public: AudioProcessorUnityWrapper (bool isTemporary) { - pluginInstance.reset (createPluginFilterOfType (AudioProcessor::wrapperType_Unity)); + pluginInstance = createPluginFilterOfType (AudioProcessor::wrapperType_Unity); if (! isTemporary && pluginInstance->hasEditor()) { diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp index 334b1ca782..da79dcc63f 100644 --- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp @@ -2420,7 +2420,7 @@ class JuceVST3Component : public Vst::IComponent, { public: JuceVST3Component (Vst::IHostApplication* h) - : pluginInstance (createPluginFilterOfType (AudioProcessor::wrapperType_VST3)), + : pluginInstance (createPluginFilterOfType (AudioProcessor::wrapperType_VST3).release()), host (h) { inParameterChangedCallback = false; diff --git a/modules/juce_audio_plugin_client/utility/juce_CreatePluginFilter.h b/modules/juce_audio_plugin_client/utility/juce_CreatePluginFilter.h index 90b8b70231..50dfd51fa5 100644 --- a/modules/juce_audio_plugin_client/utility/juce_CreatePluginFilter.h +++ b/modules/juce_audio_plugin_client/utility/juce_CreatePluginFilter.h @@ -28,18 +28,18 @@ namespace juce { -inline AudioProcessor* JUCE_API JUCE_CALLTYPE createPluginFilterOfType (AudioProcessor::WrapperType type) +inline std::unique_ptr createPluginFilterOfType (AudioProcessor::WrapperType type) { PluginHostType::jucePlugInClientCurrentWrapperType = type; AudioProcessor::setTypeOfNextNewPlugin (type); - AudioProcessor* const pluginInstance = ::createPluginFilter(); + auto pluginInstance = rawToUniquePtr (::createPluginFilter()); AudioProcessor::setTypeOfNextNewPlugin (AudioProcessor::wrapperType_Undefined); // your createPluginFilter() method must return an object! jassert (pluginInstance != nullptr && pluginInstance->wrapperType == type); #if JucePlugin_Enable_ARA - jassert (dynamic_cast (pluginInstance) != nullptr); + jassert (dynamic_cast (pluginInstance.get()) != nullptr); #endif return pluginInstance;