@@ -30,6 +30,7 @@ | |||
namespace | |||
{ | |||
Value shouldBuildVST (Project& project) { return project.getProjectValue ("buildVST"); } | |||
Value shouldBuildVST3 (Project& project) { return project.getProjectValue ("buildVST3"); } | |||
Value shouldBuildAU (Project& project) { return project.getProjectValue ("buildAU"); } | |||
Value shouldBuildRTAS (Project& project) { return project.getProjectValue ("buildRTAS"); } | |||
Value shouldBuildAAX (Project& project) { return project.getProjectValue ("buildAAX"); } | |||
@@ -120,6 +121,7 @@ namespace | |||
StringPairArray flags; | |||
//flags.set ("JUCE_MODAL_LOOPS_PERMITTED", "0"); | |||
flags.set ("JucePlugin_Build_VST", valueToBool (shouldBuildVST (project))); | |||
flags.set ("JucePlugin_Build_VST3", valueToBool (shouldBuildVST3 (project))); | |||
flags.set ("JucePlugin_Build_AU", valueToBool (shouldBuildAU (project))); | |||
flags.set ("JucePlugin_Build_RTAS", valueToBool (shouldBuildRTAS (project))); | |||
flags.set ("JucePlugin_Build_AAX", valueToBool (shouldBuildAAX (project))); | |||
@@ -201,41 +203,47 @@ namespace | |||
//============================================================================== | |||
namespace VSTHelpers | |||
{ | |||
static Value getVSTFolder (ProjectExporter& exporter) { return exporter.getSetting (Ids::vstFolder); } | |||
static Value getVSTFolder (ProjectExporter& exporter, bool isVST3) | |||
{ | |||
return exporter.getSetting (isVST3 ? Ids::vst3Folder | |||
: Ids::vstFolder); | |||
} | |||
static void addVSTFolderToPath (ProjectExporter& exporter, StringArray& searchPaths) | |||
static void addVSTFolderToPath (ProjectExporter& exporter, bool isVST3) | |||
{ | |||
const String vstFolder (getVSTFolder (exporter).toString()); | |||
const String vstFolder (getVSTFolder (exporter, isVST3).toString()); | |||
if (vstFolder.isNotEmpty()) | |||
{ | |||
RelativePath path (exporter.rebaseFromProjectFolderToBuildTarget (RelativePath (vstFolder, RelativePath::projectFolder))); | |||
if (exporter.isVisualStudio()) | |||
searchPaths.add (path.toWindowsStyle()); | |||
exporter.extraSearchPaths.add (path.toWindowsStyle()); | |||
else if (exporter.isLinux() || exporter.isXcode()) | |||
searchPaths.insert (0, path.toUnixStyle()); | |||
exporter.extraSearchPaths.insert (0, path.toUnixStyle()); | |||
} | |||
} | |||
static void createVSTPathEditor (ProjectExporter& exporter, PropertyListBuilder& props) | |||
static void createVSTPathEditor (ProjectExporter& exporter, PropertyListBuilder& props, bool isVST3) | |||
{ | |||
props.add (new TextPropertyComponent (getVSTFolder (exporter), "VST Folder", 1024, false), | |||
"If you're building a VST, this must be the folder containing the VST SDK. This should be an absolute path."); | |||
const String vstFormat (isVST3 ? "VST3" : "VST"); | |||
props.add (new TextPropertyComponent (getVSTFolder (exporter, isVST3), vstFormat + " Folder", 1024, false), | |||
"If you're building a " + vstFormat + ", this must be the folder containing the " + vstFormat + " SDK. This should be an absolute path."); | |||
} | |||
static void fixMissingVSTValues (ProjectExporter& exporter) | |||
static void fixMissingVSTValues (ProjectExporter& exporter, bool isVST3) | |||
{ | |||
if (getVSTFolder(exporter).toString().isEmpty()) | |||
getVSTFolder(exporter) = (exporter.isWindows() ? "c:\\SDKs\\vstsdk2.4" | |||
: "~/SDKs/vstsdk2.4"); | |||
if (getVSTFolder (exporter, isVST3).toString().isEmpty()) | |||
getVSTFolder (exporter, isVST3) = exporter.isWindows() ? (isVST3 ? "c:\\SDKs\\VST3 SDK" : "c:\\SDKs\\vstsdk2.4") | |||
: (isVST3 ? "~/SDKs/VST3 SDK" : "~/SDKs/vstsdk2.4"); | |||
fixMissingXcodePostBuildScript (exporter); | |||
} | |||
static inline void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) | |||
static inline void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver, bool isVST3) | |||
{ | |||
fixMissingVSTValues (exporter); | |||
fixMissingVSTValues (exporter, isVST3); | |||
writePluginCharacteristicsFile (projectSaver); | |||
exporter.makefileTargetSuffix = ".so"; | |||
@@ -246,7 +254,7 @@ namespace VSTHelpers | |||
RelativePath juceWrapperFolder (exporter.getProject().getGeneratedCodeFolder(), | |||
exporter.getTargetFolder(), RelativePath::buildTargetFolder); | |||
addVSTFolderToPath (exporter, exporter.extraSearchPaths); | |||
addVSTFolderToPath (exporter, isVST3); | |||
if (exporter.isWindows()) | |||
exporter.extraSearchPaths.add (juceWrapperFolder.toWindowsStyle()); | |||
@@ -254,10 +262,10 @@ namespace VSTHelpers | |||
exporter.extraSearchPaths.add (juceWrapperFolder.toUnixStyle()); | |||
} | |||
static inline void createPropertyEditors (ProjectExporter& exporter, PropertyListBuilder& props) | |||
static inline void createPropertyEditors (ProjectExporter& exporter, PropertyListBuilder& props, bool isVST3) | |||
{ | |||
fixMissingVSTValues (exporter); | |||
createVSTPathEditor (exporter, props); | |||
fixMissingVSTValues (exporter, isVST3); | |||
createVSTPathEditor (exporter, props, isVST3); | |||
} | |||
} | |||
@@ -230,6 +230,7 @@ LibraryModule::LibraryModule (const ModuleDescription& d) | |||
bool LibraryModule::isAUPluginHost (const Project& project) const { return getID() == "juce_audio_processors" && project.isConfigFlagEnabled ("JUCE_PLUGINHOST_AU"); } | |||
bool LibraryModule::isVSTPluginHost (const Project& project) const { return getID() == "juce_audio_processors" && project.isConfigFlagEnabled ("JUCE_PLUGINHOST_VST"); } | |||
bool LibraryModule::isVST3PluginHost (const Project& project) const { return getID() == "juce_audio_processors" && project.isConfigFlagEnabled ("JUCE_PLUGINHOST_VST3"); } | |||
File LibraryModule::getModuleHeaderFile (const File& folder) const | |||
{ | |||
@@ -348,8 +349,8 @@ void LibraryModule::prepareExporter (ProjectExporter& exporter, ProjectSaver& pr | |||
addBrowsableCode (exporter, projectSaver, compiled, moduleInfo.getFolder()); | |||
} | |||
if (isVSTPluginHost (project)) | |||
VSTHelpers::addVSTFolderToPath (exporter, exporter.extraSearchPaths); | |||
if (isVSTPluginHost (project)) VSTHelpers::addVSTFolderToPath (exporter, false); | |||
if (isVST3PluginHost (project)) VSTHelpers::addVSTFolderToPath (exporter, true); | |||
if (exporter.isXcode()) | |||
{ | |||
@@ -378,7 +379,8 @@ void LibraryModule::prepareExporter (ProjectExporter& exporter, ProjectSaver& pr | |||
if (moduleInfo.isPluginClient()) | |||
{ | |||
if (shouldBuildVST (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver); | |||
if (shouldBuildVST (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver, false); | |||
if (shouldBuildVST3 (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver, true); | |||
if (shouldBuildAU (project).getValue()) AUHelpers::prepareExporter (exporter, projectSaver); | |||
if (shouldBuildAAX (project).getValue()) AAXHelpers::prepareExporter (exporter, projectSaver); | |||
if (shouldBuildRTAS (project).getValue()) RTASHelpers::prepareExporter (exporter, projectSaver); | |||
@@ -389,11 +391,16 @@ void LibraryModule::createPropertyEditors (ProjectExporter& exporter, PropertyLi | |||
{ | |||
if (isVSTPluginHost (exporter.getProject()) | |||
&& ! (moduleInfo.isPluginClient() && shouldBuildVST (exporter.getProject()).getValue())) | |||
VSTHelpers::createVSTPathEditor (exporter, props); | |||
VSTHelpers::createVSTPathEditor (exporter, props, false); | |||
if (isVST3PluginHost (exporter.getProject()) | |||
&& ! (moduleInfo.isPluginClient() && shouldBuildVST3 (exporter.getProject()).getValue())) | |||
VSTHelpers::createVSTPathEditor (exporter, props, true); | |||
if (moduleInfo.isPluginClient()) | |||
{ | |||
if (shouldBuildVST (exporter.getProject()).getValue()) VSTHelpers::createPropertyEditors (exporter, props); | |||
if (shouldBuildVST (exporter.getProject()).getValue()) VSTHelpers::createPropertyEditors (exporter, props, false); | |||
if (shouldBuildVST3 (exporter.getProject()).getValue()) VSTHelpers::createPropertyEditors (exporter, props, true); | |||
if (shouldBuildRTAS (exporter.getProject()).getValue()) RTASHelpers::createPropertyEditors (exporter, props); | |||
if (shouldBuildAAX (exporter.getProject()).getValue()) AAXHelpers::createPropertyEditors (exporter, props); | |||
} | |||
@@ -112,6 +112,7 @@ private: | |||
bool isAUPluginHost (const Project&) const; | |||
bool isVSTPluginHost (const Project&) const; | |||
bool isVST3PluginHost (const Project&) const; | |||
}; | |||
//============================================================================== | |||
@@ -50,6 +50,7 @@ namespace Ids | |||
DECLARE_ID (targetFolder); | |||
DECLARE_ID (intermediatesPath); | |||
DECLARE_ID (vstFolder); | |||
DECLARE_ID (vst3Folder); | |||
DECLARE_ID (rtasFolder); | |||
DECLARE_ID (auFolder); | |||
DECLARE_ID (flags); | |||
@@ -97,6 +97,7 @@ | |||
06F651E38334660DCFCD6D2D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
0703B6BD13EE29BD0422263D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; | |||
070440AAAFFBE88D39492FC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
070E3EFE91BE8407EE1EBD8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
070F39D84506BCDF7C5CBA26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
071FC447F1DEE261E6D442B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; | |||
073544D5D22C9975CC308E48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
@@ -913,6 +914,7 @@ | |||
F5A1D2AFCFA4E5563C3D494D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
F5A261506BD95F58790AD021 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
F6546500AA3A49A3BB76F825 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
F6AE333028FC864D4653A7B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
F6CA6BC81FCC918A9BA798CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
F74005802C3B92DB086A069A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; | |||
F7454AD16EE05969CCF5FD7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode2.cpp"; path = "../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
@@ -1159,6 +1161,8 @@ | |||
A9B46A5FF98D7B9DF8598C12, | |||
C19323831CE86566D60C725E, | |||
9A6686BC6FC38F6D1917D7C7, | |||
F6AE333028FC864D4653A7B5, | |||
070E3EFE91BE8407EE1EBD8C, | |||
A9C466FBA4FCF6484BCF86A2, | |||
6501BB1AAFD5B3DC4A783F85, | |||
CC04A3CE3003C0A0AB35A7AF ); name = "format_types"; sourceTree = "<group>"; }; | |||
@@ -975,6 +975,17 @@ | |||
</FileConfiguration> | |||
</File> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.cpp"> | |||
<FileConfiguration Name="Debug|Win32" | |||
ExcludedFromBuild="true"> | |||
<Tool Name="VCCLCompilerTool"/> | |||
</FileConfiguration> | |||
<FileConfiguration Name="Release|Win32" | |||
ExcludedFromBuild="true"> | |||
<Tool Name="VCCLCompilerTool"/> | |||
</FileConfiguration> | |||
</File> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTMidiEventList.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTPluginFormat.cpp"> | |||
<FileConfiguration Name="Debug|Win32" | |||
@@ -975,6 +975,17 @@ | |||
</FileConfiguration> | |||
</File> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.cpp"> | |||
<FileConfiguration Name="Debug|Win32" | |||
ExcludedFromBuild="true"> | |||
<Tool Name="VCCLCompilerTool"/> | |||
</FileConfiguration> | |||
<FileConfiguration Name="Release|Win32" | |||
ExcludedFromBuild="true"> | |||
<Tool Name="VCCLCompilerTool"/> | |||
</FileConfiguration> | |||
</File> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTMidiEventList.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTPluginFormat.cpp"> | |||
<FileConfiguration Name="Debug|Win32" | |||
@@ -100,6 +100,10 @@ | |||
#define JUCE_PLUGINHOST_VST 0 | |||
#endif | |||
#ifndef JUCE_PLUGINHOST_VST3 | |||
//#define JUCE_PLUGINHOST_VST3 | |||
#endif | |||
#ifndef JUCE_PLUGINHOST_AU | |||
#define JUCE_PLUGINHOST_AU 0 | |||
#endif | |||
@@ -171,6 +175,9 @@ | |||
#ifndef JucePlugin_Build_VST | |||
#define JucePlugin_Build_VST 1 | |||
#endif | |||
#ifndef JucePlugin_Build_VST3 | |||
#define JucePlugin_Build_VST3 0 | |||
#endif | |||
#ifndef JucePlugin_Build_AU | |||
#define JucePlugin_Build_AU 1 | |||
#endif | |||
@@ -628,6 +628,7 @@ | |||
ABB92009051C3CDBA14CDA24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
AC3115EF08961FE738E897E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; | |||
ACC266EC4CC8CCD368FA9E7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
ACE3FF969AC408A50E9A6A4C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
ACEFDEF38DAB391EA33B0266 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
AD3B0EEC6220F38CC01E03A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; | |||
AD84F6A526784CB531FB2455 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
@@ -644,6 +645,7 @@ | |||
B1068476E683AADD3CD8AD55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; | |||
B13108F6CE0124C355234332 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; | |||
B1C6B9E4B9FDC17AA298E541 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = GraphEditorPanel.cpp; path = ../../Source/GraphEditorPanel.cpp; sourceTree = "SOURCE_ROOT"; }; | |||
B1CA1F3AE7555C4FB4CE52D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
B1D5ED2A628748002723A9B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; | |||
B275A29B2147F6A8ADF16084 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; | |||
B27CEFF5B55B38F2BEB141D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; | |||
@@ -751,7 +753,6 @@ | |||
CF0F1D933CE2A89A9D05FF38 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; | |||
CF27DFD59466D38E34428405 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; | |||
CF299925A6A365E288DC206E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D06DA3FA113EAB0CCF8D7A64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D0A714338F6B7A47BA1F8F45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D104AE78E68E1C382F5F1A81 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
D313CF37B25D7FD313C4F336 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; | |||
@@ -768,8 +769,8 @@ | |||
D7433453EBB3700D2805FF42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D795067D4EFB5A34BC383250 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D79E29A54AE62E03A533F436 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D7C1255A555A016BA0D98228 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D7D1FFD98DABD765479240E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D8101C0D25DF708FB2E446E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D8A3F086596562E081EB0F39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D8B7DCDFD32613B13AC54008 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D8C28108DE7AD0208D790606 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
@@ -792,8 +793,9 @@ | |||
CAEA69EBB9B2A4C60A991E80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
CBE270C197A66B22EEE54D9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
CF67033CFC21C0060B538042 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D06DA3FA113EAB0CCF8D7A64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D52F4E0C637B4685217CBEB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D7C1255A555A016BA0D98228 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; | |||
D8101C0D25DF708FB2E446E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
D9207F324519739FC25FFBDE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; | |||
DA918320EF4057DF54FF8909 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; | |||
DAF7C72A4348C33364BB654C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; | |||
@@ -1100,6 +1102,8 @@ | |||
397E6AC0BA27761D41FF7E5B, | |||
C2F0321856C5812A685B349D, | |||
0CF846BB5ABA7ACA6ED15DAF, | |||
ACE3FF969AC408A50E9A6A4C, | |||
B1CA1F3AE7555C4FB4CE52D2, | |||
10EE0138720A51EBAD46FFCC, | |||
A53F1F6AAA9F18823C239E6C, | |||
C270737E2B85C6D98E145525 ); name = "format_types"; sourceTree = "<group>"; }; | |||
@@ -2001,7 +2005,7 @@ | |||
D1C4804CD275CB57A5C89A2D, | |||
D85C0D11EE4F6C73B9EB5BCD ); name = Source; sourceTree = "<group>"; }; | |||
92E529F622AC4282800634D3 = { isa = XCBuildConfiguration; buildSettings = { | |||
HEADER_SEARCH_PATHS = ("~/SDKs/vstsdk2.4", ../../JuceLibraryCode, ../../../../modules, "$(inherited)"); | |||
HEADER_SEARCH_PATHS = ("\"~/SDKs/VST3 SDK\"", "~/SDKs/vstsdk2.4", ../../JuceLibraryCode, ../../../../modules, "$(inherited)"); | |||
GCC_OPTIMIZATION_LEVEL = 0; | |||
INFOPLIST_FILE = Info.plist; | |||
INSTALL_PATH = "$(HOME)/Applications"; | |||
@@ -2021,7 +2025,7 @@ | |||
"JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Debug; }; | |||
20F59BC9E9ACBDF56007CE03 = { isa = XCBuildConfiguration; buildSettings = { | |||
ARCHS = "$(ARCHS_STANDARD_32_BIT)"; | |||
HEADER_SEARCH_PATHS = ("~/SDKs/vstsdk2.4", ../../JuceLibraryCode, ../../../../modules, "$(inherited)"); | |||
HEADER_SEARCH_PATHS = ("\"~/SDKs/VST3 SDK\"", "~/SDKs/vstsdk2.4", ../../JuceLibraryCode, ../../../../modules, "$(inherited)"); | |||
GCC_OPTIMIZATION_LEVEL = s; | |||
INFOPLIST_FILE = Info.plist; | |||
INSTALL_PATH = "$(HOME)/Applications"; | |||
@@ -53,7 +53,7 @@ | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;c:\SDKs\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;c:\SDKs\vstsdk2.4;c:\SDKs\VST3 SDK;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> | |||
<RuntimeTypeInfo>true</RuntimeTypeInfo> | |||
@@ -94,7 +94,7 @@ | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>MinSpace</Optimization> | |||
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;c:\SDKs\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;c:\SDKs\vstsdk2.4;c:\SDKs\VST3 SDK;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> | |||
<RuntimeTypeInfo>true</RuntimeTypeInfo> | |||
@@ -333,6 +333,9 @@ | |||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.cpp"> | |||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||
</ClCompile> | |||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.cpp"> | |||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||
</ClCompile> | |||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTPluginFormat.cpp"> | |||
<ExcludedFromBuild>true</ExcludedFromBuild> | |||
</ClCompile> | |||
@@ -1296,6 +1299,7 @@ | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format\juce_AudioPluginFormatManager.h"/> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_AudioUnitPluginFormat.h"/> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.h"/> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.h"/> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTMidiEventList.h"/> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTPluginFormat.h"/> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\scanning\juce_KnownPluginList.h"/> | |||
@@ -526,6 +526,9 @@ | |||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.cpp"> | |||
<Filter>Juce Modules\juce_audio_processors\format_types</Filter> | |||
</ClCompile> | |||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.cpp"> | |||
<Filter>Juce Modules\juce_audio_processors\format_types</Filter> | |||
</ClCompile> | |||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTPluginFormat.cpp"> | |||
<Filter>Juce Modules\juce_audio_processors\format_types</Filter> | |||
</ClCompile> | |||
@@ -1725,6 +1728,9 @@ | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.h"> | |||
<Filter>Juce Modules\juce_audio_processors\format_types</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.h"> | |||
<Filter>Juce Modules\juce_audio_processors\format_types</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTMidiEventList.h"> | |||
<Filter>Juce Modules\juce_audio_processors\format_types</Filter> | |||
</ClInclude> | |||
@@ -102,6 +102,10 @@ | |||
#define JUCE_PLUGINHOST_VST 1 | |||
#endif | |||
#ifndef JUCE_PLUGINHOST_VST3 | |||
#define JUCE_PLUGINHOST_VST3 1 | |||
#endif | |||
#ifndef JUCE_PLUGINHOST_AU | |||
#define JUCE_PLUGINHOST_AU 1 | |||
#endif | |||
@@ -14,7 +14,7 @@ | |||
includeBinaryInAppConfig="1"> | |||
<EXPORTFORMATS> | |||
<XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | |||
objCExtraSuffix="M73TRi"> | |||
objCExtraSuffix="M73TRi" vst3Folder="~/SDKs/VST3 SDK"> | |||
<CONFIGURATIONS> | |||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Plugin Host" | |||
osxSDK="default" osxCompatibility="default" osxArchitecture="default"/> | |||
@@ -38,7 +38,8 @@ | |||
<MODULEPATH id="juce_audio_basics" path="../../modules"/> | |||
</MODULEPATHS> | |||
</XCODE_MAC> | |||
<VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4"> | |||
<VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4" | |||
vst3Folder="c:\SDKs\VST3 SDK"> | |||
<CONFIGURATIONS> | |||
<CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit" | |||
isDebug="1" optimisation="1" targetName="Plugin Host"/> | |||
@@ -110,7 +111,8 @@ | |||
<JUCEOPTIONS JUCE_WASAPI="enabled" JUCE_DIRECTSOUND="enabled" JUCE_ALSA="enabled" | |||
JUCE_QUICKTIME="disabled" JUCE_USE_FLAC="disabled" JUCE_USE_OGGVORBIS="disabled" | |||
JUCE_USE_CDBURNER="disabled" JUCE_USE_CDREADER="disabled" JUCE_USE_CAMERA="disabled" | |||
JUCE_PLUGINHOST_VST="enabled" JUCE_PLUGINHOST_AU="enabled" JUCE_WEB_BROWSER="disabled"/> | |||
JUCE_PLUGINHOST_VST="enabled" JUCE_PLUGINHOST_AU="enabled" JUCE_WEB_BROWSER="disabled" | |||
JUCE_PLUGINHOST_VST3="enabled"/> | |||
<MODULES> | |||
<MODULE id="juce_audio_basics" showAllCode="1"/> | |||
<MODULE id="juce_audio_devices" showAllCode="1"/> | |||
@@ -908,6 +908,17 @@ | |||
</FileConfiguration> | |||
</File> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_LADSPAPluginFormat.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.cpp"> | |||
<FileConfiguration Name="Debug|Win32" | |||
ExcludedFromBuild="true"> | |||
<Tool Name="VCCLCompilerTool"/> | |||
</FileConfiguration> | |||
<FileConfiguration Name="Release|Win32" | |||
ExcludedFromBuild="true"> | |||
<Tool Name="VCCLCompilerTool"/> | |||
</FileConfiguration> | |||
</File> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VST3PluginFormat.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTMidiEventList.h"/> | |||
<File RelativePath="..\..\..\..\modules\juce_audio_processors\format_types\juce_VSTPluginFormat.cpp"> | |||
<FileConfiguration Name="Debug|Win32" | |||
@@ -102,6 +102,10 @@ | |||
//#define JUCE_PLUGINHOST_VST | |||
#endif | |||
#ifndef JUCE_PLUGINHOST_VST3 | |||
//#define JUCE_PLUGINHOST_VST3 | |||
#endif | |||
#ifndef JUCE_PLUGINHOST_AU | |||
//#define JUCE_PLUGINHOST_AU | |||
#endif | |||
@@ -36,6 +36,10 @@ void AudioPluginFormatManager::addDefaultFormats() | |||
jassert (dynamic_cast <VSTPluginFormat*> (formats[i]) == nullptr); | |||
#endif | |||
#if JUCE_PLUGINHOST_VST3 | |||
jassert (dynamic_cast <VST3PluginFormat*> (formats[i]) == nullptr); | |||
#endif | |||
#if JUCE_PLUGINHOST_AU && JUCE_MAC | |||
jassert (dynamic_cast <AudioUnitPluginFormat*> (formats[i]) == nullptr); | |||
#endif | |||
@@ -54,6 +58,10 @@ void AudioPluginFormatManager::addDefaultFormats() | |||
formats.add (new VSTPluginFormat()); | |||
#endif | |||
#if JUCE_PLUGINHOST_VST3 | |||
formats.add (new VST3PluginFormat()); | |||
#endif | |||
#if JUCE_PLUGINHOST_LADSPA && JUCE_LINUX | |||
formats.add (new LADSPAPluginFormat()); | |||
#endif | |||
@@ -0,0 +1,72 @@ | |||
/* | |||
============================================================================== | |||
This file is part of the JUCE library. | |||
Copyright (c) 2013 - Raw Material Software Ltd. | |||
Permission is granted to use this software under the terms of either: | |||
a) the GPL v2 (or any later version) | |||
b) the Affero GPL v3 | |||
Details of these licenses can be found at: www.gnu.org/licenses | |||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||
A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------ | |||
To release a closed-source product which uses JUCE, commercial licenses are | |||
available: visit www.juce.com for more information. | |||
============================================================================== | |||
*/ | |||
#ifndef JUCE_VST3PLUGINFORMAT_H_INCLUDED | |||
#define JUCE_VST3PLUGINFORMAT_H_INCLUDED | |||
#if JUCE_PLUGINHOST_VST3 | |||
/** | |||
Implements a plugin format for VST3s. | |||
*/ | |||
class JUCE_API VST3PluginFormat : public AudioPluginFormat | |||
{ | |||
public: | |||
/** Constructor */ | |||
VST3PluginFormat(); | |||
/** Destructor */ | |||
~VST3PluginFormat(); | |||
//============================================================================== | |||
/** @internal */ | |||
String getName() const override { return "VST3"; } | |||
/** @internal */ | |||
void findAllTypesForFile (OwnedArray<PluginDescription>& results, const String& fileOrIdentifier) override; | |||
/** @internal */ | |||
AudioPluginInstance* createInstanceFromDescription (const PluginDescription& description, double, int) override; | |||
/** @internal */ | |||
bool fileMightContainThisPluginType (const String& fileOrIdentifier) override; | |||
/** @internal */ | |||
String getNameOfPluginFromIdentifier (const String& fileOrIdentifier) override; | |||
/** @internal */ | |||
bool pluginNeedsRescanning (const PluginDescription& description) override; | |||
/** @internal */ | |||
StringArray searchPathsForPlugins (const FileSearchPath& searchPath, bool recursive) override; | |||
/** @internal */ | |||
bool doesPluginStillExist (const PluginDescription& description) override; | |||
/** @internal */ | |||
FileSearchPath getDefaultLocationsToSearch() override; | |||
/** @internal */ | |||
bool canScanForPlugins() const override { return true; } | |||
private: | |||
//============================================================================== | |||
void recursiveFileSearch (StringArray&, const File&, bool recursive); | |||
//============================================================================== | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VST3PluginFormat) | |||
}; | |||
#endif //JUCE_PLUGINHOST_VST3 | |||
#endif //JUCE_VST3PLUGINFORMAT_H_INCLUDED |
@@ -71,6 +71,10 @@ static inline bool arrayContainsPlugin (const OwnedArray<PluginDescription>& lis | |||
return false; | |||
} | |||
#if JUCE_CLANG | |||
#pragma clang diagnostic ignored "-Wdeprecated-declarations" | |||
#endif | |||
#include "format/juce_AudioPluginFormat.cpp" | |||
#include "format/juce_AudioPluginFormatManager.cpp" | |||
#include "processors/juce_AudioProcessor.cpp" | |||
@@ -80,6 +84,7 @@ static inline bool arrayContainsPlugin (const OwnedArray<PluginDescription>& lis | |||
#include "processors/juce_PluginDescription.cpp" | |||
#include "format_types/juce_LADSPAPluginFormat.cpp" | |||
#include "format_types/juce_VSTPluginFormat.cpp" | |||
#include "format_types/juce_VST3PluginFormat.cpp" | |||
#include "format_types/juce_AudioUnitPluginFormat.mm" | |||
#include "scanning/juce_KnownPluginList.cpp" | |||
#include "scanning/juce_PluginDirectoryScanner.cpp" | |||
@@ -34,22 +34,32 @@ | |||
Enables the VST audio plugin hosting classes. This requires the Steinberg VST SDK to be | |||
installed on your machine. | |||
@see VSTPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU | |||
@see VSTPluginFormat, VST3PluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_AU, JUCE_PLUGINHOST_VST3 | |||
*/ | |||
#ifndef JUCE_PLUGINHOST_VST | |||
#define JUCE_PLUGINHOST_VST 0 | |||
#endif | |||
/** Config: JUCE_PLUGINHOST_VST3 | |||
Enables the VST3 audio plugin hosting classes. This requires the Steinberg VST3 SDK to be | |||
installed on your machine. | |||
@see VSTPluginFormat, VVST3PluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_AU | |||
*/ | |||
#ifndef JUCE_PLUGINHOST_VST3 | |||
#define JUCE_PLUGINHOST_VST3 0 | |||
#endif | |||
/** Config: JUCE_PLUGINHOST_AU | |||
Enables the AudioUnit plugin hosting classes. This is Mac-only, of course. | |||
@see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST | |||
@see AudioUnitPluginFormat, AudioPluginFormat, AudioPluginFormatManager, JUCE_PLUGINHOST_VST, JUCE_PLUGINHOST_VST3 | |||
*/ | |||
#ifndef JUCE_PLUGINHOST_AU | |||
#define JUCE_PLUGINHOST_AU 0 | |||
#endif | |||
#if ! (JUCE_PLUGINHOST_AU || JUCE_PLUGINHOST_VST) | |||
#if ! (JUCE_PLUGINHOST_AU || JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) | |||
// #error "You need to set either the JUCE_PLUGINHOST_AU anr/or JUCE_PLUGINHOST_VST flags if you're using this module!" | |||
#endif | |||
@@ -78,6 +88,7 @@ class AudioProcessor; | |||
#include "format_types/juce_LADSPAPluginFormat.h" | |||
#include "format_types/juce_VSTMidiEventList.h" | |||
#include "format_types/juce_VSTPluginFormat.h" | |||
#include "format_types/juce_VST3PluginFormat.h" | |||
#include "scanning/juce_PluginDirectoryScanner.h" | |||
#include "scanning/juce_PluginListComponent.h" | |||