1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

Move files without UI dependencies to juce_audio_processors_headless

This commit is contained in:
reuk 2025-08-15 15:40:51 +01:00
parent 1f5d09d3fc
commit 407cc5b004
No known key found for this signature in database
73 changed files with 115 additions and 80 deletions

View file

@ -529,6 +529,19 @@ function(juce_add_module module_path)
endif() endif()
endif() endif()
if(${module_name} STREQUAL "juce_audio_processors_headless")
add_library(juce_ara_headers INTERFACE)
target_include_directories(juce_ara_headers INTERFACE
"$<$<TARGET_EXISTS:juce_ara_sdk>:$<TARGET_PROPERTY:juce_ara_sdk,INTERFACE_INCLUDE_DIRECTORIES>>")
target_link_libraries(juce_audio_processors_headless INTERFACE juce_ara_headers)
if(JUCE_ARG_ALIAS_NAMESPACE)
add_library(${JUCE_ARG_ALIAS_NAMESPACE}::juce_ara_headers ALIAS juce_ara_headers)
endif()
endif()
if(${module_name} STREQUAL "juce_audio_processors") if(${module_name} STREQUAL "juce_audio_processors")
add_library(juce_vst3_headers INTERFACE) add_library(juce_vst3_headers INTERFACE)
@ -553,17 +566,9 @@ function(juce_add_module module_path)
"${lv2_base_path}/lilv/src") "${lv2_base_path}/lilv/src")
target_link_libraries(juce_audio_processors INTERFACE juce_lilv_headers) target_link_libraries(juce_audio_processors INTERFACE juce_lilv_headers)
add_library(juce_ara_headers INTERFACE)
target_include_directories(juce_ara_headers INTERFACE
"$<$<TARGET_EXISTS:juce_ara_sdk>:$<TARGET_PROPERTY:juce_ara_sdk,INTERFACE_INCLUDE_DIRECTORIES>>")
target_link_libraries(juce_audio_processors INTERFACE juce_ara_headers)
if(JUCE_ARG_ALIAS_NAMESPACE) if(JUCE_ARG_ALIAS_NAMESPACE)
add_library(${JUCE_ARG_ALIAS_NAMESPACE}::juce_vst3_headers ALIAS juce_vst3_headers) add_library(${JUCE_ARG_ALIAS_NAMESPACE}::juce_vst3_headers ALIAS juce_vst3_headers)
add_library(${JUCE_ARG_ALIAS_NAMESPACE}::juce_lilv_headers ALIAS juce_lilv_headers) add_library(${JUCE_ARG_ALIAS_NAMESPACE}::juce_lilv_headers ALIAS juce_lilv_headers)
add_library(${JUCE_ARG_ALIAS_NAMESPACE}::juce_ara_headers ALIAS juce_ara_headers)
endif() endif()
endif() endif()

View file

@ -78,7 +78,7 @@
#include "codecs/juce_LAMEEncoderAudioFormat.cpp" #include "codecs/juce_LAMEEncoderAudioFormat.cpp"
#if JucePlugin_Enable_ARA #if JucePlugin_Enable_ARA
#include "juce_audio_processors/utilities/ARA/juce_ARADocumentControllerCommon.cpp" #include <juce_audio_processors_headless/utilities/ARA/juce_ARADocumentControllerCommon.h>
#include "format/juce_ARAAudioReaders.cpp" #include "format/juce_ARAAudioReaders.cpp"
#endif #endif

View file

@ -116,7 +116,7 @@ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
#endif #endif
#include <juce_audio_processors/format_types/juce_VST3Utilities.h> #include <juce_audio_processors/format_types/juce_VST3Utilities.h>
#include <juce_audio_processors/utilities/juce_VST3Interface.h> #include <juce_audio_processors_headless/utilities/juce_VST3Interface.h>
#include <juce_audio_plugin_client/juce_audio_plugin_client.h> #include <juce_audio_plugin_client/juce_audio_plugin_client.h>
#include "juce_VST3ModuleInfo.h" #include "juce_VST3ModuleInfo.h"

View file

@ -41,7 +41,7 @@
#include <juce_audio_plugin_client/detail/juce_PluginUtilities.h> #include <juce_audio_plugin_client/detail/juce_PluginUtilities.h>
#include <juce_gui_basics/native/juce_WindowsHooks_windows.h> #include <juce_gui_basics/native/juce_WindowsHooks_windows.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4127 4512 4996 5272) JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4127 4512 4996 5272)
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations", JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations",

View file

@ -73,12 +73,12 @@ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
#include <juce_audio_basics/native/juce_CoreAudioLayouts_mac.h> #include <juce_audio_basics/native/juce_CoreAudioLayouts_mac.h>
#include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h> #include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h>
#include <juce_audio_basics/native/juce_AudioWorkgroup_mac.h> #include <juce_audio_basics/native/juce_AudioWorkgroup_mac.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
#include <juce_audio_processors/format_types/juce_AU_Shared.h> #include <juce_audio_processors/format_types/juce_AU_Shared.h>
#include <juce_gui_basics/detail/juce_ComponentPeerHelpers.h> #include <juce_gui_basics/detail/juce_ComponentPeerHelpers.h>
#if JucePlugin_Enable_ARA #if JucePlugin_Enable_ARA
#include <juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.h> #include <juce_audio_processors_headless/utilities/ARA/juce_AudioProcessor_ARAExtensions.h>
#include <ARA_API/ARAAudioUnit.h> #include <ARA_API/ARAAudioUnit.h>
#if ARA_SUPPORT_VERSION_1 #if ARA_SUPPORT_VERSION_1
#error "Unsupported ARA version - only ARA version 2 and onward are supported by the current JUCE ARA implementation" #error "Unsupported ARA version - only ARA version 2 and onward are supported by the current JUCE ARA implementation"

View file

@ -54,7 +54,7 @@
#include <juce_audio_basics/native/juce_CoreAudioLayouts_mac.h> #include <juce_audio_basics/native/juce_CoreAudioLayouts_mac.h>
#include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h> #include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h>
#include <juce_audio_basics/native/juce_AudioWorkgroup_mac.h> #include <juce_audio_basics/native/juce_AudioWorkgroup_mac.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
#include <juce_audio_processors/format_types/juce_AU_Shared.h> #include <juce_audio_processors/format_types/juce_AU_Shared.h>
#define JUCE_VIEWCONTROLLER_OBJC_NAME(x) JUCE_JOIN_MACRO (x, FactoryAUv3) #define JUCE_VIEWCONTROLLER_OBJC_NAME(x) JUCE_JOIN_MACRO (x, FactoryAUv3)

View file

@ -51,8 +51,8 @@
#include <juce_audio_plugin_client/detail/juce_PluginUtilities.h> #include <juce_audio_plugin_client/detail/juce_PluginUtilities.h>
#include <juce_audio_plugin_client/detail/juce_LinuxMessageThread.h> #include <juce_audio_plugin_client/detail/juce_LinuxMessageThread.h>
#include <juce_audio_processors/utilities/juce_FlagCache.h> #include <juce_audio_processors_headless/utilities/juce_FlagCache.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
#include "JuceLV2Defines.h" #include "JuceLV2Defines.h"
#include <juce_audio_processors/format_types/juce_LV2Common.h> #include <juce_audio_processors/format_types/juce_LV2Common.h>

View file

@ -37,7 +37,7 @@
#if JucePlugin_Build_Unity #if JucePlugin_Build_Unity
#include <juce_audio_plugin_client/detail/juce_PluginUtilities.h> #include <juce_audio_plugin_client/detail/juce_PluginUtilities.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
#if JUCE_WINDOWS #if JUCE_WINDOWS
#include <juce_audio_plugin_client/detail/juce_IncludeSystemHeaders.h> #include <juce_audio_plugin_client/detail/juce_IncludeSystemHeaders.h>

View file

@ -118,7 +118,7 @@ using namespace juce;
#include <juce_audio_plugin_client/detail/juce_LinuxMessageThread.h> #include <juce_audio_plugin_client/detail/juce_LinuxMessageThread.h>
#include <juce_audio_plugin_client/detail/juce_VSTWindowUtilities.h> #include <juce_audio_plugin_client/detail/juce_VSTWindowUtilities.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
#include <juce_audio_processors/format_types/juce_VSTCommon.h> #include <juce_audio_processors/format_types/juce_VSTCommon.h>
#ifdef JUCE_MSVC #ifdef JUCE_MSVC

View file

@ -61,8 +61,8 @@ JUCE_BEGIN_NO_SANITIZE ("vptr")
#include <juce_gui_basics/native/juce_WindowsHooks_windows.h> #include <juce_gui_basics/native/juce_WindowsHooks_windows.h>
//============================================================================== //==============================================================================
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp> #include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
#include <juce_audio_processors/utilities/juce_FlagCache.h> #include <juce_audio_processors_headless/utilities/juce_FlagCache.h>
#include <juce_audio_processors/format_types/juce_VST3Utilities.h> #include <juce_audio_processors/format_types/juce_VST3Utilities.h>
#include <juce_audio_processors/format_types/juce_VST3Common.h> #include <juce_audio_processors/format_types/juce_VST3Common.h>
#include <juce_audio_plugin_client/VST3/juce_VST3ModuleInfo.h> #include <juce_audio_plugin_client/VST3/juce_VST3ModuleInfo.h>

View file

@ -34,8 +34,6 @@
#if (JUCE_PLUGINHOST_ARA && (JUCE_PLUGINHOST_VST3 || JUCE_PLUGINHOST_AU) && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX)) #if (JUCE_PLUGINHOST_ARA && (JUCE_PLUGINHOST_VST3 || JUCE_PLUGINHOST_AU) && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX))
#include "juce_ARAHosting.h"
#include <ARA_Library/Dispatch/ARAHostDispatch.cpp> #include <ARA_Library/Dispatch/ARAHostDispatch.cpp>
namespace juce namespace juce

View file

@ -51,7 +51,8 @@
#include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h> #include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h>
#include <juce_audio_basics/native/juce_CoreAudioLayouts_mac.h> #include <juce_audio_basics/native/juce_CoreAudioLayouts_mac.h>
#include "juce_AU_Shared.h" #include <juce_audio_processors/format_types/juce_AU_Shared.h>
#include <juce_audio_processors_headless/format_types/juce_ARACommonInternal.h>
namespace juce namespace juce
{ {

View file

@ -34,6 +34,8 @@
#pragma once #pragma once
#include <juce_audio_processors_headless/utilities/juce_FlagCache.h>
/** @cond */ /** @cond */
namespace juce namespace juce
{ {

View file

@ -37,7 +37,7 @@
#include "juce_VST3Headers.h" #include "juce_VST3Headers.h"
#include "juce_VST3Utilities.h" #include "juce_VST3Utilities.h"
#include "juce_VST3Common.h" #include "juce_VST3Common.h"
#include "juce_ARACommon.h" #include <juce_audio_processors_headless/format_types/juce_ARACommon.h>
namespace juce namespace juce
{ {

View file

@ -180,19 +180,9 @@ private:
} // namespace juce } // namespace juce
#include "utilities/juce_FlagCache.h"
#include "format/juce_AudioPluginFormat.cpp"
#include "format/juce_AudioPluginFormatManager.cpp" #include "format/juce_AudioPluginFormatManager.cpp"
#include "format_types/juce_LegacyAudioParameter.cpp"
#include "processors/juce_AudioProcessorParameter.cpp"
#include "processors/juce_AudioProcessor.cpp"
#include "processors/juce_AudioProcessorListener.cpp"
#include "processors/juce_AudioPluginInstance.cpp"
#include "processors/juce_AudioProcessorEditor.cpp" #include "processors/juce_AudioProcessorEditor.cpp"
#include "processors/juce_AudioProcessorGraph.cpp"
#include "processors/juce_GenericAudioProcessorEditor.cpp" #include "processors/juce_GenericAudioProcessorEditor.cpp"
#include "processors/juce_PluginDescription.cpp"
#include "format_types/juce_ARACommon.cpp"
#include "format_types/juce_LADSPAPluginFormat.cpp" #include "format_types/juce_LADSPAPluginFormat.cpp"
#include "format_types/juce_VSTPluginFormat.cpp" #include "format_types/juce_VSTPluginFormat.cpp"
#include "format_types/juce_VST3PluginFormat.cpp" #include "format_types/juce_VST3PluginFormat.cpp"
@ -201,20 +191,9 @@ private:
#include "scanning/juce_KnownPluginList.cpp" #include "scanning/juce_KnownPluginList.cpp"
#include "scanning/juce_PluginDirectoryScanner.cpp" #include "scanning/juce_PluginDirectoryScanner.cpp"
#include "scanning/juce_PluginListComponent.cpp" #include "scanning/juce_PluginListComponent.cpp"
#include "processors/juce_AudioProcessorParameterGroup.cpp"
#include "utilities/juce_AudioProcessorParameterWithID.cpp"
#include "utilities/juce_RangedAudioParameter.cpp"
#include "utilities/juce_AudioParameterFloat.cpp"
#include "utilities/juce_AudioParameterInt.cpp"
#include "utilities/juce_AudioParameterBool.cpp"
#include "utilities/juce_AudioParameterChoice.cpp"
#include "utilities/juce_ParameterAttachments.cpp" #include "utilities/juce_ParameterAttachments.cpp"
#include "utilities/juce_AudioProcessorValueTreeState.cpp" #include "utilities/juce_AudioProcessorValueTreeState.cpp"
#include "utilities/juce_PluginHostType.cpp" #include "utilities/juce_PluginHostType.cpp"
#include "utilities/juce_AAXClientExtensions.cpp"
#include "utilities/juce_VST2ClientExtensions.cpp"
#include "utilities/juce_VST3ClientExtensions.cpp"
#include "utilities/ARA/juce_ARA_utils.cpp"
#include "format_types/juce_LV2PluginFormat.cpp" #include "format_types/juce_LV2PluginFormat.cpp"

View file

@ -137,24 +137,9 @@
#endif #endif
//============================================================================== //==============================================================================
#include "utilities/juce_AAXClientExtensions.h"
#include "utilities/juce_VST2ClientExtensions.h"
#include "utilities/juce_VST3Interface.h"
#include "utilities/juce_VST3ClientExtensions.h"
#include "format_types/juce_ARACommon.h"
#include "utilities/juce_ExtensionsVisitor.h"
#include "processors/juce_AudioProcessorParameter.h"
#include "processors/juce_HostedAudioProcessorParameter.h"
#include "processors/juce_AudioProcessorEditorHostContext.h" #include "processors/juce_AudioProcessorEditorHostContext.h"
#include "processors/juce_AudioProcessorEditor.h" #include "processors/juce_AudioProcessorEditor.h"
#include "processors/juce_AudioProcessorListener.h"
#include "processors/juce_AudioProcessorParameterGroup.h"
#include "processors/juce_AudioProcessor.h"
#include "processors/juce_PluginDescription.h"
#include "processors/juce_AudioPluginInstance.h"
#include "processors/juce_AudioProcessorGraph.h"
#include "processors/juce_GenericAudioProcessorEditor.h" #include "processors/juce_GenericAudioProcessorEditor.h"
#include "format/juce_AudioPluginFormat.h"
#include "format/juce_AudioPluginFormatManager.h" #include "format/juce_AudioPluginFormatManager.h"
#include "scanning/juce_KnownPluginList.h" #include "scanning/juce_KnownPluginList.h"
#include "format_types/juce_AudioUnitPluginFormat.h" #include "format_types/juce_AudioUnitPluginFormat.h"
@ -166,17 +151,9 @@
#include "format_types/juce_ARAHosting.h" #include "format_types/juce_ARAHosting.h"
#include "scanning/juce_PluginDirectoryScanner.h" #include "scanning/juce_PluginDirectoryScanner.h"
#include "scanning/juce_PluginListComponent.h" #include "scanning/juce_PluginListComponent.h"
#include "utilities/juce_AudioProcessorParameterWithID.h"
#include "utilities/juce_RangedAudioParameter.h"
#include "utilities/juce_AudioParameterFloat.h"
#include "utilities/juce_AudioParameterInt.h"
#include "utilities/juce_AudioParameterBool.h"
#include "utilities/juce_AudioParameterChoice.h"
#include "utilities/juce_ParameterAttachments.h" #include "utilities/juce_ParameterAttachments.h"
#include "utilities/juce_AudioProcessorValueTreeState.h" #include "utilities/juce_AudioProcessorValueTreeState.h"
#include "utilities/juce_PluginHostType.h" #include "utilities/juce_PluginHostType.h"
#include "utilities/ARA/juce_ARADebug.h"
#include "utilities/ARA/juce_ARA_utils.h"
//============================================================================== //==============================================================================
// These declarations are here to avoid missing-prototype warnings in user code. // These declarations are here to avoid missing-prototype warnings in user code.

View file

@ -32,6 +32,8 @@
============================================================================== ==============================================================================
*/ */
#include <juce_audio_processors_headless/format_types/juce_LegacyAudioParameter.h>
namespace juce namespace juce
{ {

View file

@ -32,15 +32,19 @@
============================================================================== ==============================================================================
*/ */
#pragma once
#if (JUCE_PLUGINHOST_ARA && (JUCE_PLUGINHOST_VST3 || JUCE_PLUGINHOST_AU) && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX)) #if (JUCE_PLUGINHOST_ARA && (JUCE_PLUGINHOST_VST3 || JUCE_PLUGINHOST_AU) && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX))
#include <ARA_API/ARAInterface.h>
namespace juce namespace juce
{ {
static void dummyARAInterfaceAssert (ARA::ARAAssertCategory, const void*, const char*) static inline void dummyARAInterfaceAssert (ARA::ARAAssertCategory, const void*, const char*)
{} {}
static ARA::ARAInterfaceConfiguration createInterfaceConfig (const ARA::ARAFactory* araFactory) static inline ARA::ARAInterfaceConfiguration createInterfaceConfig (const ARA::ARAFactory* araFactory)
{ {
static auto* assertFunction = &dummyARAInterfaceAssert; static auto* assertFunction = &dummyARAInterfaceAssert;
@ -68,8 +72,8 @@ static ARA::ARAInterfaceConfiguration createInterfaceConfig (const ARA::ARAFacto
On both platforms the onDelete function is used to release resources that ensure that the module On both platforms the onDelete function is used to release resources that ensure that the module
providing the ARAFactory* remains loaded. providing the ARAFactory* remains loaded.
*/ */
static std::shared_ptr<const ARA::ARAFactory> getOrCreateARAFactory (const ARA::ARAFactory* ptr, static inline std::shared_ptr<const ARA::ARAFactory> getOrCreateARAFactory (const ARA::ARAFactory* ptr,
std::function<void()> onDelete) std::function<void()> onDelete)
{ {
JUCE_ASSERT_MESSAGE_THREAD JUCE_ASSERT_MESSAGE_THREAD

View file

@ -32,6 +32,8 @@
============================================================================== ==============================================================================
*/ */
#pragma once
namespace juce namespace juce
{ {

View file

@ -42,3 +42,22 @@
#endif #endif
#include "juce_audio_processors_headless.h" #include "juce_audio_processors_headless.h"
#include <juce_audio_processors_headless/processors/juce_AudioProcessorListener.cpp>
#include <juce_audio_processors_headless/utilities/juce_AAXClientExtensions.cpp>
#include <juce_audio_processors_headless/utilities/juce_VST2ClientExtensions.cpp>
#include <juce_audio_processors_headless/utilities/juce_VST3ClientExtensions.cpp>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorParameter.cpp>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorParameterGroup.cpp>
#include <juce_audio_processors_headless/processors/juce_AudioProcessor.cpp>
#include <juce_audio_processors_headless/processors/juce_PluginDescription.cpp>
#include <juce_audio_processors_headless/processors/juce_AudioPluginInstance.cpp>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorGraph.cpp>
#include <juce_audio_processors_headless/format/juce_AudioPluginFormat.cpp>
#include <juce_audio_processors_headless/utilities/juce_AudioProcessorParameterWithID.cpp>
#include <juce_audio_processors_headless/utilities/juce_RangedAudioParameter.cpp>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterFloat.cpp>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterInt.cpp>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterBool.cpp>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterChoice.cpp>
#include <juce_audio_processors_headless/utilities/ARA/juce_ARA_utils.cpp>

View file

@ -65,3 +65,27 @@
#include <juce_audio_basics/juce_audio_basics.h> #include <juce_audio_basics/juce_audio_basics.h>
#include <juce_graphics/juce_graphics.h> #include <juce_graphics/juce_graphics.h>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorListener.h>
#include <juce_audio_processors_headless/utilities/juce_AAXClientExtensions.h>
#include <juce_audio_processors_headless/utilities/juce_VST2ClientExtensions.h>
#include <juce_audio_processors_headless/utilities/juce_VST3Interface.h>
#include <juce_audio_processors_headless/utilities/juce_VST3ClientExtensions.h>
#include <juce_audio_processors_headless/format_types/juce_ARACommon.h>
#include <juce_audio_processors_headless/utilities/juce_ExtensionsVisitor.h>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorParameter.h>
#include <juce_audio_processors_headless/processors/juce_HostedAudioProcessorParameter.h>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorParameterGroup.h>
#include <juce_audio_processors_headless/processors/juce_AudioProcessor.h>
#include <juce_audio_processors_headless/processors/juce_PluginDescription.h>
#include <juce_audio_processors_headless/processors/juce_AudioPluginInstance.h>
#include <juce_audio_processors_headless/processors/juce_AudioProcessorGraph.h>
#include <juce_audio_processors_headless/format/juce_AudioPluginFormat.h>
#include <juce_audio_processors_headless/utilities/juce_AudioProcessorParameterWithID.h>
#include <juce_audio_processors_headless/utilities/juce_RangedAudioParameter.h>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterFloat.h>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterInt.h>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterBool.h>
#include <juce_audio_processors_headless/utilities/juce_AudioParameterChoice.h>
#include <juce_audio_processors_headless/utilities/ARA/juce_ARADebug.h>
#include <juce_audio_processors_headless/utilities/ARA/juce_ARA_utils.h>

View file

@ -35,7 +35,7 @@
#include <juce_core/system/juce_CompilerWarnings.h> #include <juce_core/system/juce_CompilerWarnings.h>
#include <juce_core/system/juce_TargetPlatform.h> #include <juce_core/system/juce_TargetPlatform.h>
#include "utilities/ARA/juce_ARADebug.h" #include <juce_audio_processors_headless/utilities/ARA/juce_ARADebug.h>
/* Having WIN32_LEAN_AND_MEAN defined at the point of including ARADebug.c will produce warnings. /* Having WIN32_LEAN_AND_MEAN defined at the point of including ARADebug.c will produce warnings.

View file

@ -883,6 +883,9 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang
//============================================================================== //==============================================================================
void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept
{ {
// Don't free UI objects from non-UI threads!
JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
const ScopedLock sl (activeEditorLock); const ScopedLock sl (activeEditorLock);
if (activeEditor == editor) if (activeEditor == editor)
@ -891,25 +894,32 @@ void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noe
AudioProcessorEditor* AudioProcessor::getActiveEditor() const noexcept AudioProcessorEditor* AudioProcessor::getActiveEditor() const noexcept
{ {
// Don't query UI objects from non-UI threads!
JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
const ScopedLock sl (activeEditorLock); const ScopedLock sl (activeEditorLock);
return activeEditor; return activeEditor;
} }
AudioProcessorEditor* AudioProcessor::createEditorIfNeeded() AudioProcessorEditor* AudioProcessor::createEditorIfNeeded()
{ {
// Don't create UI objects from non-UI threads!
JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
const ScopedLock sl (activeEditorLock); const ScopedLock sl (activeEditorLock);
if (activeEditor != nullptr) if (activeEditor != nullptr)
return activeEditor; {
// There's already an active editor! Before calling createEditorIfNeeded(),
// you should check whether there's already an editor using getActiveEditor().
jassertfalse;
return nullptr;
}
auto* ed = createEditor(); auto* ed = createEditor();
if (ed != nullptr) if (ed != nullptr)
{
// you must give your editor comp a size before returning it..
jassert (ed->getWidth() > 0 && ed->getHeight() > 0);
activeEditor = ed; activeEditor = ed;
}
// You must make your hasEditor() method return a consistent result! // You must make your hasEditor() method return a consistent result!
jassert (hasEditor() == (ed != nullptr)); jassert (hasEditor() == (ed != nullptr));

View file

@ -35,6 +35,8 @@
namespace juce namespace juce
{ {
class AudioProcessorEditor;
//============================================================================== //==============================================================================
/** /**
Base class for audio processing classes or plugins. Base class for audio processing classes or plugins.
@ -1030,6 +1032,10 @@ public:
Note that you should only call this method from the message thread as the active Note that you should only call this method from the message thread as the active
editor may be deleted by the message thread, causing a dangling pointer. editor may be deleted by the message thread, causing a dangling pointer.
The returned pointer is *non-owning*! If you're planning to store this pointer,
it's a good idea to immediately wrap this in a Component::SafePointer or similar
so that you don't try to use the editor after the owner destroys it.
*/ */
AudioProcessorEditor* getActiveEditor() const noexcept; AudioProcessorEditor* getActiveEditor() const noexcept;
@ -1596,7 +1602,7 @@ private:
//============================================================================== //==============================================================================
Array<AudioProcessorListener*> listeners; Array<AudioProcessorListener*> listeners;
Component::SafePointer<AudioProcessorEditor> activeEditor; AudioProcessorEditor* activeEditor = nullptr;
double currentSampleRate = 0; double currentSampleRate = 0;
int blockSize = 0, latencySamples = 0; int blockSize = 0, latencySamples = 0;
bool suspended = false; bool suspended = false;

View file

@ -35,6 +35,8 @@
namespace juce namespace juce
{ {
class AudioProcessor;
//============================================================================== //==============================================================================
/** /**
Base class for listeners that want to know about changes to an AudioProcessor. Base class for listeners that want to know about changes to an AudioProcessor.

View file

@ -32,6 +32,8 @@
============================================================================== ==============================================================================
*/ */
#pragma once
namespace juce namespace juce
{ {

View file

@ -55,7 +55,7 @@ JUCE_API void JUCE_CALLTYPE handleARAAssertion (const char* file, const int line
#endif #endif
#if JucePlugin_Enable_ARA #if JucePlugin_Enable_ARA
#include "juce_ARADocumentControllerCommon.cpp" #include "juce_ARADocumentControllerCommon.h"
#include "juce_ARADocumentController.cpp" #include "juce_ARADocumentController.cpp"
#include "juce_ARAModelObjects.cpp" #include "juce_ARAModelObjects.cpp"
#include "juce_ARAPlugInInstanceRoles.cpp" #include "juce_ARAPlugInInstanceRoles.cpp"

View file

@ -32,6 +32,8 @@
============================================================================== ==============================================================================
*/ */
#pragma once
/** @cond */ /** @cond */
namespace juce namespace juce
{ {