1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

AAX: Allow runtime custom search paths for a page table file

This commit is contained in:
Anthony Nicholls 2023-06-05 15:22:54 +01:00
parent f16a430f08
commit 61b27097b7
42 changed files with 656 additions and 258 deletions

View file

@ -785,6 +785,8 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_processors/utilities/ARA/juce_ARAPlugInInstanceRoles.h"
"../../../../../modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.cpp"
"../../../../../modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_AAXClientExtensions.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_AAXClientExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"
"../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.cpp"
@ -807,9 +809,9 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_audio_processors/utilities/juce_PluginHostType.h"
"../../../../../modules/juce_audio_processors/utilities/juce_RangedAudioParameter.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_RangedAudioParameter.h"
"../../../../../modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_VST3ClientExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_VSTCallbackHandler.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_VSTCallbackHandler.h"
"../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"
"../../../../../modules/juce_audio_processors/juce_audio_processors.mm"
"../../../../../modules/juce_audio_processors/juce_audio_processors_ara.cpp"
@ -2844,6 +2846,8 @@ set_source_files_properties(
"../../../../../modules/juce_audio_processors/utilities/ARA/juce_ARAPlugInInstanceRoles.h"
"../../../../../modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.cpp"
"../../../../../modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_AAXClientExtensions.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_AAXClientExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"
"../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.cpp"
@ -2866,9 +2870,9 @@ set_source_files_properties(
"../../../../../modules/juce_audio_processors/utilities/juce_PluginHostType.h"
"../../../../../modules/juce_audio_processors/utilities/juce_RangedAudioParameter.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_RangedAudioParameter.h"
"../../../../../modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_VST3ClientExtensions.h"
"../../../../../modules/juce_audio_processors/utilities/juce_VSTCallbackHandler.cpp"
"../../../../../modules/juce_audio_processors/utilities/juce_VSTCallbackHandler.h"
"../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"
"../../../../../modules/juce_audio_processors/juce_audio_processors.mm"
"../../../../../modules/juce_audio_processors/juce_audio_processors_ara.cpp"

View file

@ -992,6 +992,9 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1022,7 +1025,7 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.cpp">
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.cpp">
@ -3204,6 +3207,7 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_ARAModelObjects.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_ARAPlugInInstanceRoles.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterChoice.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterFloat.h"/>
@ -3216,8 +3220,8 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_ParameterAttachments.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_PluginHostType.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_utils\audio_cd\juce_AudioCDBurner.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_utils\audio_cd\juce_AudioCDReader.h"/>

View file

@ -1588,6 +1588,9 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities\ARA</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
@ -1618,7 +1621,7 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.cpp">
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.cpp">
@ -4836,6 +4839,9 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities\ARA</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
@ -4872,10 +4878,10 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h">
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.h">
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.h">

View file

@ -992,6 +992,9 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1022,7 +1025,7 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.cpp">
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.cpp">
@ -3204,6 +3207,7 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_ARAModelObjects.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_ARAPlugInInstanceRoles.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterChoice.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterFloat.h"/>
@ -3216,8 +3220,8 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_ParameterAttachments.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_PluginHostType.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_utils\audio_cd\juce_AudioCDBurner.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_utils\audio_cd\juce_AudioCDReader.h"/>

View file

@ -1588,6 +1588,9 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities\ARA</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
@ -1618,7 +1621,7 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.cpp">
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.cpp">
@ -4836,6 +4839,9 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities\ARA</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
@ -4872,10 +4878,10 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h">
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.h">
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.h">

View file

@ -992,6 +992,9 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -1022,7 +1025,7 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.cpp">
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.cpp">
@ -3204,6 +3207,7 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_ARAModelObjects.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_ARAPlugInInstanceRoles.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterChoice.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterFloat.h"/>
@ -3216,8 +3220,8 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_ParameterAttachments.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_PluginHostType.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_utils\audio_cd\juce_AudioCDBurner.h"/>
<ClInclude Include="..\..\..\..\modules\juce_audio_utils\audio_cd\juce_AudioCDReader.h"/>

View file

@ -1588,6 +1588,9 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities\ARA</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
@ -1618,7 +1621,7 @@
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.cpp">
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.cpp">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.cpp">
@ -4836,6 +4839,9 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\ARA\juce_AudioProcessor_ARAExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities\ARA</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AAXClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_AudioParameterBool.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
@ -4872,10 +4878,10 @@
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_RangedAudioParameter.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h">
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST2ClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VSTCallbackHandler.h">
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\utilities\juce_VST3ClientExtensions.h">
<Filter>JUCE Modules\juce_audio_processors\utilities</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\juce_audio_processors.h">

View file

@ -104,6 +104,8 @@ struct EmbeddedViewListener
virtual Steinberg::TPtrInt handledEmbeddedUIMessage (int msg,
Steinberg::TPtrInt parm2,
Steinberg::TPtrInt parm3) = 0;
virtual void setGlobalBypassFunction (void (*) (int)) = 0;
};
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnon-virtual-dtor")
@ -144,6 +146,85 @@ private:
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
class VST2Extensions : public VSTCallbackHandler
{
public:
explicit VST2Extensions (EmbeddedViewListener& l)
: listener (l) {}
pointer_sized_int handleVstPluginCanDo (int32, pointer_sized_int, void* ptr, float) override
{
if (auto* str = static_cast<const char*> (ptr))
{
if (strcmp (str, "hasCockosEmbeddedUI") == 0)
return 0xbeef0000;
if (strcmp (str, "hasCockosExtensions") == 0)
return 0xbeef0000;
}
return 0;
}
pointer_sized_int handleVstManufacturerSpecific (int32 index,
pointer_sized_int value,
void* ptr,
float opt) override
{
// The docstring at the top of reaper_plugin_fx_embed.h specifies
// that the index will always be effEditDraw, which is now deprecated.
if (index != __effEditDrawDeprecated)
return 0;
return (pointer_sized_int) listener.handledEmbeddedUIMessage ((int) opt,
(Steinberg::TPtrInt) value,
(Steinberg::TPtrInt) ptr);
}
void handleVstHostCallbackAvailable (std::function<VstHostCallbackType>&& hostcb) override
{
char functionName[] = "BypassFxAllTracks";
listener.setGlobalBypassFunction (reinterpret_cast<void (*) (int)> (hostcb ((int32_t) 0xdeadbeef, (int32_t) 0xdeadf00d, 0, functionName, 0.0)));
}
private:
EmbeddedViewListener& listener;
};
class VST3Extensions : public VST3ClientExtensions
{
public:
explicit VST3Extensions (EmbeddedViewListener& l)
: listener (l) {}
int32_t queryIEditController (const Steinberg::TUID tuid, void** obj) override
{
if (embeddedUi.queryInterface (tuid, obj) == Steinberg::kResultOk)
return Steinberg::kResultOk;
*obj = nullptr;
return Steinberg::kNoInterface;
}
void setIHostApplication (Steinberg::FUnknown* ptr) override
{
if (ptr == nullptr)
return;
void* objPtr = nullptr;
if (ptr->queryInterface (reaper::IReaperHostApplication::iid, &objPtr) == Steinberg::kResultOk)
{
if (void* fnPtr = static_cast<reaper::IReaperHostApplication*> (objPtr)->getReaperApi ("BypassFxAllTracks"))
listener.setGlobalBypassFunction (reinterpret_cast<void (*) (int)> (fnPtr));
}
}
private:
EmbeddedViewListener& listener;
EmbeddedUI embeddedUi { listener };
};
//==============================================================================
class Editor : public AudioProcessorEditor
{
@ -182,8 +263,6 @@ private:
//==============================================================================
class ReaperEmbeddedViewDemo : public AudioProcessor,
public VSTCallbackHandler,
public VST3ClientExtensions,
private EmbeddedViewListener,
private Timer
{
@ -236,63 +315,8 @@ public:
false).readFloat());
}
int32_t queryIEditController (const Steinberg::TUID tuid, void** obj) override
{
if (embeddedUi.queryInterface (tuid, obj) == Steinberg::kResultOk)
return Steinberg::kResultOk;
*obj = nullptr;
return Steinberg::kNoInterface;
}
void setIHostApplication (Steinberg::FUnknown* ptr) override
{
if (ptr == nullptr)
return;
void* objPtr = nullptr;
if (ptr->queryInterface (reaper::IReaperHostApplication::iid, &objPtr) == Steinberg::kResultOk)
{
if (void* fnPtr = static_cast<reaper::IReaperHostApplication*> (objPtr)->getReaperApi ("BypassFxAllTracks"))
globalBypassFn = reinterpret_cast<void (*) (int)> (fnPtr);
}
}
pointer_sized_int handleVstPluginCanDo (int32, pointer_sized_int, void* ptr, float) override
{
if (auto* str = static_cast<const char*> (ptr))
{
if (strcmp (str, "hasCockosEmbeddedUI") == 0)
return 0xbeef0000;
if (strcmp (str, "hasCockosExtensions") == 0)
return 0xbeef0000;
}
return 0;
}
pointer_sized_int handleVstManufacturerSpecific (int32 index,
pointer_sized_int value,
void* ptr,
float opt) override
{
// The docstring at the top of reaper_plugin_fx_embed.h specifies
// that the index will always be effEditDraw, which is now deprecated.
if (index != __effEditDrawDeprecated)
return 0;
return (pointer_sized_int) handledEmbeddedUIMessage ((int) opt,
(Steinberg::TPtrInt) value,
(Steinberg::TPtrInt) ptr);
}
void handleVstHostCallbackAvailable (std::function<VstHostCallbackType>&& hostcb) override
{
char functionName[] = "BypassFxAllTracks";
globalBypassFn = reinterpret_cast<void (*) (int)> (hostcb ((int32_t) 0xdeadbeef, (int32_t) 0xdeadf00d, 0, functionName, 0.0));
}
VST2ClientExtensions* getVST2ClientExtensions() override { return &vst2Extensions; }
VST3ClientExtensions* getVST3ClientExtensions() override { return &vst3Extensions; }
private:
template <typename Float>
@ -414,10 +438,14 @@ private:
return 0;
}
void setGlobalBypassFunction (void (*fn) (int)) override { globalBypassFn = fn; }
AudioParameterFloat* gain = nullptr;
void (*globalBypassFn) (int) = nullptr;
EmbeddedUI embeddedUi { *this };
std::atomic<float> storedLevel { 0.0f };
float levelToDraw = 0.0f;
VST2Extensions vst2Extensions { *this };
VST3Extensions vst3Extensions { *this };
};