@@ -101,8 +101,6 @@ namespace juce | |||
const int32_t juceChunkType = 'juce'; | |||
const int maxAAXChannels = 8; | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_AAX); | |||
//============================================================================== | |||
struct AAXClasses | |||
{ | |||
@@ -563,7 +561,7 @@ struct AAXClasses | |||
static AAX_CEffectParameters* AAX_CALLBACK Create() | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_AAX); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AAX; | |||
return new JuceAAX_Processor(); | |||
} | |||
@@ -1549,7 +1547,7 @@ struct AAXClasses | |||
static void getPlugInDescription (AAX_IEffectDescriptor& descriptor) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_AAX); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AAX; | |||
ScopedPointer<AudioProcessor> plugin = createPluginFilterOfType (AudioProcessor::wrapperType_AAX); | |||
PluginBusUtilities busUtils (*plugin, false, maxAAXChannels); | |||
@@ -80,8 +80,6 @@ | |||
#include "juce_AU_Shared.h" | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_AudioUnit); | |||
//============================================================================== | |||
static Array<void*> activePlugins, activeUIs; | |||
@@ -2090,7 +2088,7 @@ private: | |||
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj); \ | |||
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj) \ | |||
{ \ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_AudioUnit); \ | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AudioUnit; \ | |||
return ComponentEntryPoint<Class>::Dispatch (params, obj); \ | |||
} | |||
@@ -2104,7 +2102,7 @@ private: | |||
extern "C" __attribute__((visibility("default"))) void* Name ## Factory (const AudioComponentDescription* desc); \ | |||
extern "C" __attribute__((visibility("default"))) void* Name ## Factory (const AudioComponentDescription* desc) \ | |||
{ \ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_AudioUnit); \ | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AudioUnit; \ | |||
return FACTORY_BASE_CLASS<Class>::Factory (desc); \ | |||
} | |||
@@ -72,8 +72,6 @@ | |||
#pragma clang diagnostic push | |||
#pragma clang diagnostic ignored "-Wnullability-completeness" | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_AudioUnitv3); | |||
// TODO: ask Timur: use SFINAE to automatically generate this for all NSObjects | |||
template <> struct ContainerDeletePolicy<AUAudioUnitBusArray> { static void destroy (NSObject* o) { [o release]; } }; | |||
template <> struct ContainerDeletePolicy<AUParameterTree> { static void destroy (NSObject* o) { [o release]; } }; | |||
@@ -1183,7 +1181,7 @@ const double JuceAudioUnitv3::kDefaultSampleRate = 44100.0; | |||
JuceAudioUnitv3Base* JuceAudioUnitv3Base::create (AUAudioUnit* audioUnit, AudioComponentDescription descr, AudioComponentInstantiationOptions options, NSError** error) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_AudioUnitv3); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AudioUnitv3; | |||
return new JuceAudioUnitv3 (audioUnit, descr, options, error); | |||
} | |||
@@ -1197,7 +1195,7 @@ public: | |||
{ | |||
jassert (MessageManager::getInstance()->isThisTheMessageThread()); | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_AudioUnitv3); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_AudioUnitv3; | |||
initialiseJuce_GUI(); | |||
} | |||
@@ -105,8 +105,6 @@ | |||
#include "../utility/juce_IncludeModuleHeaders.h" | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_RTAS); | |||
#ifdef _MSC_VER | |||
#pragma pack (pop) | |||
@@ -958,7 +956,7 @@ private: | |||
#if JUCE_WINDOWS | |||
Process::setCurrentModuleInstanceHandle (gThisModule); | |||
#endif | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_RTAS); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_RTAS; | |||
initialiseJuce_GUI(); | |||
return new JucePlugInProcess(); | |||
@@ -35,8 +35,6 @@ | |||
#include <juce_gui_extra/juce_gui_extra.h> | |||
#include <juce_audio_utils/juce_audio_utils.h> | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_Standalone); | |||
// You can set this flag in your build if you need to specify a different | |||
// standalone JUCEApplication class for your app to use. If you don't | |||
// set it then by default we'll just create a simple one as below. | |||
@@ -55,7 +53,7 @@ class StandaloneFilterApp : public JUCEApplication | |||
public: | |||
StandaloneFilterApp() | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_Standalone); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_Standalone; | |||
} | |||
const String getApplicationName() override { return JucePlugin_Name; } | |||
@@ -111,8 +111,6 @@ | |||
class JuceVSTWrapper; | |||
static bool recursionCheck = false; | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_VST); | |||
namespace juce | |||
{ | |||
#if JUCE_MAC | |||
@@ -1994,7 +1992,7 @@ namespace | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster); | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST; | |||
#if JUCE_MAC | |||
initialiseMacVST(); | |||
@@ -2006,7 +2004,7 @@ namespace | |||
JUCE_EXPORTED_FUNCTION AEffect* main_macho (audioMasterCallback audioMaster); | |||
JUCE_EXPORTED_FUNCTION AEffect* main_macho (audioMasterCallback audioMaster) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST; | |||
#if JUCE_MAC | |||
initialiseMacVST(); | |||
@@ -2022,7 +2020,7 @@ namespace | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster); | |||
JUCE_EXPORTED_FUNCTION AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST; | |||
SharedMessageThread::getInstance(); | |||
return pluginEntryPoint (audioMaster); | |||
@@ -2031,7 +2029,7 @@ namespace | |||
JUCE_EXPORTED_FUNCTION AEffect* main_plugin (audioMasterCallback audioMaster) asm ("main"); | |||
JUCE_EXPORTED_FUNCTION AEffect* main_plugin (audioMasterCallback audioMaster) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST; | |||
return VSTPluginMain (audioMaster); | |||
} | |||
@@ -2046,7 +2044,7 @@ namespace | |||
extern "C" __declspec (dllexport) AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST; | |||
return pluginEntryPoint (audioMaster); | |||
} | |||
@@ -2054,7 +2052,7 @@ namespace | |||
#ifndef JUCE_64BIT // (can't compile this on win64, but it's not needed anyway with VST2.4) | |||
extern "C" __declspec (dllexport) int main (audioMasterCallback audioMaster) | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST; | |||
return (int) pluginEntryPoint (audioMaster); | |||
} | |||
@@ -63,8 +63,6 @@ | |||
#endif | |||
#endif | |||
JUCE_DEFINE_WRAPPER_TYPE (wrapperType_VST3); | |||
namespace juce | |||
{ | |||
@@ -2410,7 +2408,7 @@ private: | |||
// The VST3 plugin entry point. | |||
JUCE_EXPORTED_FUNCTION IPluginFactory* PLUGIN_API GetPluginFactory() | |||
{ | |||
JUCE_DECLARE_WRAPPER_TYPE (wrapperType_VST3); | |||
PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_VST3; | |||
#if JUCE_WINDOWS | |||
// Cunning trick to force this function to be exported. Life's too short to | |||
@@ -22,18 +22,6 @@ | |||
============================================================================== | |||
*/ | |||
#ifndef DOXYGEN | |||
// @internal | |||
extern JUCE_API int* jucePlugInClientCurrentWrapperType; | |||
// this is ugly hack is needed by juce_getExecutableFile to have a wrapper | |||
// dependent symbol | |||
#define JUCE_DEFINE_WRAPPER_TYPE(x) JUCE_API int jucePlugInClientCurrentWrapperType_ ## x = static_cast<int> (AudioProcessor::x); | |||
#define JUCE_DECLARE_WRAPPER_TYPE(x) jucePlugInClientCurrentWrapperType = &jucePlugInClientCurrentWrapperType_ ## x; | |||
#endif | |||
//============================================================================== | |||
class PluginHostType | |||
{ | |||
@@ -190,15 +178,15 @@ public: | |||
@see AudioProcessor::wrapperType | |||
*/ | |||
static AudioProcessor::WrapperType getPluginLoadedAs() noexcept | |||
{ | |||
if (jucePlugInClientCurrentWrapperType != nullptr) | |||
return static_cast<AudioProcessor::WrapperType> (*jucePlugInClientCurrentWrapperType); | |||
return AudioProcessor::wrapperType_Undefined; | |||
} | |||
static AudioProcessor::WrapperType getPluginLoadedAs() noexcept { return jucePlugInClientCurrentWrapperType; } | |||
//============================================================================== | |||
#ifndef DOXYGEN | |||
// @internal | |||
static AudioProcessor::WrapperType jucePlugInClientCurrentWrapperType; | |||
#endif | |||
private: | |||
static HostType getHostType() | |||
{ | |||
@@ -32,7 +32,7 @@ | |||
namespace juce | |||
{ | |||
int* jucePlugInClientCurrentWrapperType = nullptr; | |||
AudioProcessor::WrapperType PluginHostType::jucePlugInClientCurrentWrapperType = AudioProcessor::wrapperType_Undefined; | |||
} | |||
#if _MSC_VER || JUCE_MINGW | |||
@@ -26,10 +26,6 @@ | |||
============================================================================== | |||
*/ | |||
#ifdef JUCE_MODULE_AVAILABLE_juce_audio_plugin_client | |||
extern int* jucePlugInClientCurrentWrapperType; | |||
#endif | |||
CriticalSection::CriticalSection() noexcept | |||
{ | |||
pthread_mutexattr_t atts; | |||
@@ -634,12 +630,7 @@ File juce_getExecutableFile() | |||
{ | |||
Dl_info exeInfo; | |||
#ifdef JUCE_MODULE_AVAILABLE_juce_audio_plugin_client | |||
void* localSymbol = jucePlugInClientCurrentWrapperType != nullptr ? (void*) jucePlugInClientCurrentWrapperType | |||
: (void*) juce_getExecutableFile; | |||
#else | |||
void* localSymbol = (void*) juce_getExecutableFile; | |||
#endif | |||
dladdr (localSymbol, &exeInfo); | |||
return CharPointer_UTF8 (exeInfo.dli_fname); | |||
} | |||