From e130af03ecda1e66bf4deae15c32d965e71cc103 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Mon, 11 Jul 2011 19:03:54 +0100 Subject: [PATCH] Introjucer refactoring, moving more functionality from the ProjectExporters and into the ProjectTypes. Slightly altered the structure of nested groups that is generated, and tweaked the demo projects to reflect this. Couple of minor fixes to symbol exporting and CoreAudioFormat. --- Builds/MacOSX/Juce.xcodeproj/project.pbxproj | 10 +- Builds/VisualStudio2005/Juce.vcproj | 1820 +++++----- Builds/VisualStudio2008/Juce.vcproj | 1820 +++++----- Builds/VisualStudio2008_DLL/Juce.vcproj | 1820 +++++----- Builds/VisualStudio2010/Juce.vcxproj | 4 +- Builds/VisualStudio2010/Juce.vcxproj.filters | 1743 +++++---- Builds/iOS/Juce.xcodeproj/project.pbxproj | 10 +- Juce.jucer | 3130 ++++++++--------- .../The Introjucer.xcodeproj/project.pbxproj | 56 +- .../Source/Application/jucer_CommonHeaders.h | 5 - .../Source/Project/jucer_Project.cpp | 2 + .../Introjucer/Source/Project/jucer_Project.h | 1 + .../Project/jucer_ProjectExport_Android.h | 5 +- .../Source/Project/jucer_ProjectExport_MSVC.h | 136 +- .../Source/Project/jucer_ProjectExport_Make.h | 14 +- .../Project/jucer_ProjectExport_XCode.h | 249 +- .../Source/Project/jucer_ProjectExporter.cpp | 11 +- .../Source/Project/jucer_ProjectExporter.h | 29 +- .../Source/Project/jucer_ProjectSaver.h | 16 +- .../Source/Project/jucer_ProjectType.cpp | 196 +- .../Source/Project/jucer_ProjectType.h | 6 +- .../Juce Demo.xcodeproj/project.pbxproj | 50 +- .../Builds/VisualStudio2005/Juce Demo.vcproj | 172 +- .../Builds/VisualStudio2008/Juce Demo.vcproj | 172 +- .../Juce Demo.vcxproj.filters | 85 +- .../iOS/Juce Demo.xcodeproj/project.pbxproj | 42 +- extras/JuceDemo/Juce Demo.jucer | 146 +- .../Amalgamator.xcodeproj/project.pbxproj | 50 +- .../VisualStudio2005/Amalgamator.vcproj | 4 +- .../VisualStudio2008/Amalgamator.vcproj | 4 +- .../Plugin Host.xcodeproj/project.pbxproj | 66 +- .../VisualStudio2005/Plugin Host.vcproj | 20 +- .../VisualStudio2008/Plugin Host.vcproj | 20 +- extras/audio plugin host/Plugin Host.jucer | 38 +- .../audio plugins/demo/Builds/Linux/Makefile | 12 +- .../JuceDemoPlugin.xcodeproj/project.pbxproj | 124 +- .../VisualStudio2005/JuceDemoPlugin.vcproj | 16 +- .../VisualStudio2008/JuceDemoPlugin.vcproj | 16 +- .../audio plugins/demo/JuceDemoPlugin.jucer | 18 +- .../BinaryBuilder.xcodeproj/project.pbxproj | 50 +- .../VisualStudio2005/BinaryBuilder.vcproj | 4 +- .../VisualStudio2008/BinaryBuilder.vcproj | 4 +- .../HelloWorld.xcodeproj/project.pbxproj | 48 +- .../iOS/HelloWorld.xcodeproj/project.pbxproj | 40 +- juce_amalgamated.cpp | 54 +- juce_amalgamated.h | 4 +- .../juce_CoreAudioFormat.cpp | 50 +- .../RTAS/juce_RTAS_DigiCode3.cpp | 32 +- .../plugin_client/RTAS/juce_RTAS_Wrapper.cpp | 1 + .../plugin_client/VST/juce_VST_Wrapper.cpp | 2 +- .../formats/juce_VSTPluginFormat.cpp | 2 +- src/audio/processors/juce_AudioPlayHead.h | 2 +- src/core/juce_StandardHeader.h | 2 +- src/events/juce_Timer.cpp | 2 +- 54 files changed, 6248 insertions(+), 6187 deletions(-) diff --git a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj index c585b7f7bc..1a13dbaecb 100644 --- a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj @@ -1973,7 +1973,7 @@ ADE5F12AA5AD969E2C7002B3, 75700D13513346310CEAC30D, AAC585C4648559DD713F28FE ); name = utilities; sourceTree = ""; }; - 9AA3D660772E3D4C64EC7859 = { isa = PBXGroup; children = ( + 992526B83B6AA618A4FAECEB = { isa = PBXGroup; children = ( D443FD24B52106986FC8A531, F2B0E44A08E127FD31184241, 1CC2889DB696E12FC34E3F50, @@ -1989,13 +1989,13 @@ 723AC5B999F1EC8F4A101AAF, 281D6856FAC3B07634AD1C32, 2FD5C998952BE08F8ED3F262, - 01778F26212AECCBF2452804 ); name = Source; sourceTree = ""; }; + 01778F26212AECCBF2452804 ); name = Juce; sourceTree = ""; }; 1076A9F8D71BFFF9E9975FB6 = { isa = PBXGroup; children = ( ); name = Resources; sourceTree = ""; }; 23256FCDBD84A2E259E40908 = { isa = PBXGroup; children = ( ); name = Frameworks; sourceTree = ""; }; 3E3A3D491CB40D2943E95E64 = { isa = PBXGroup; children = ( 389351359BA78C682E1931A6 ); name = Products; sourceTree = ""; }; - 992526B83B6AA618A4FAECEB = { isa = PBXGroup; children = ( - 9AA3D660772E3D4C64EC7859, + 25F381A264FFB3735F124DCC = { isa = PBXGroup; children = ( + 992526B83B6AA618A4FAECEB, 1076A9F8D71BFFF9E9975FB6, 23256FCDBD84A2E259E40908, 3E3A3D491CB40D2943E95E64 ); name = Source; sourceTree = ""; }; @@ -2436,7 +2436,7 @@ 55EDB4D9B702B469DB4655C3 ); runOnlyForDeploymentPostprocessing = 0; }; 01555BA382FAED280FF5F58A = { isa = PBXNativeTarget; buildConfigurationList = D14EC3F0DC5861E37D35E15A; buildPhases = ( 8914D147048B9EE245989ACB ); buildRules = ( ); dependencies = ( ); name = Juce; productName = Juce; productReference = 389351359BA78C682E1931A6; productType = "com.apple.product-type.library.static"; }; - FCFFEDFC83101B196BFA2AE2 = { isa = PBXProject; buildConfigurationList = 3A1CB6B5ECF4A79CDE35CC66; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 992526B83B6AA618A4FAECEB; projectDirPath = ""; projectRoot = ""; targets = ( 01555BA382FAED280FF5F58A ); }; + FCFFEDFC83101B196BFA2AE2 = { isa = PBXProject; buildConfigurationList = 3A1CB6B5ECF4A79CDE35CC66; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 25F381A264FFB3735F124DCC; projectDirPath = ""; projectRoot = ""; targets = ( 01555BA382FAED280FF5F58A ); }; }; rootObject = FCFFEDFC83101B196BFA2AE2; } diff --git a/Builds/VisualStudio2005/Juce.vcproj b/Builds/VisualStudio2005/Juce.vcproj index 093a0083bd..7323f7b832 100644 --- a/Builds/VisualStudio2005/Juce.vcproj +++ b/Builds/VisualStudio2005/Juce.vcproj @@ -26,7 +26,7 @@ BufferSecurityCheck="" DebugInformationFormat="3" AdditionalIncludeDirectories="" - PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;_LIB;JUCER_VS2005_78A5003=1" + PreprocessorDefinitions="_LIB;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2005_78A5003=1" RuntimeLibrary="1" RuntimeTypeInfo="true" UsePrecompiledHeader="0" @@ -69,7 +69,7 @@ InlineFunctionExpansion="1" StringPooling="true" AdditionalIncludeDirectories="" - PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_LIB;JUCER_VS2005_78A5003=1" + PreprocessorDefinitions="_LIB;WIN32;_WINDOWS;NDEBUG;JUCER_VS2005_78A5003=1" RuntimeLibrary="0" RuntimeTypeInfo="true" UsePrecompiledHeader="0" @@ -99,941 +99,939 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Builds/VisualStudio2008/Juce.vcproj b/Builds/VisualStudio2008/Juce.vcproj index 3ee6a8e757..e076a2ac73 100644 --- a/Builds/VisualStudio2008/Juce.vcproj +++ b/Builds/VisualStudio2008/Juce.vcproj @@ -26,7 +26,7 @@ BufferSecurityCheck="" DebugInformationFormat="3" AdditionalIncludeDirectories="" - PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;_LIB;JUCER_VS2008_78A5006=1" + PreprocessorDefinitions="_LIB;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2008_78A5006=1" RuntimeLibrary="1" RuntimeTypeInfo="true" UsePrecompiledHeader="0" @@ -69,7 +69,7 @@ InlineFunctionExpansion="1" StringPooling="true" AdditionalIncludeDirectories="" - PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_LIB;JUCER_VS2008_78A5006=1" + PreprocessorDefinitions="_LIB;WIN32;_WINDOWS;NDEBUG;JUCER_VS2008_78A5006=1" RuntimeLibrary="0" RuntimeTypeInfo="true" UsePrecompiledHeader="0" @@ -99,941 +99,939 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Builds/VisualStudio2008_DLL/Juce.vcproj b/Builds/VisualStudio2008_DLL/Juce.vcproj index 6e8deec1e7..a83b98eb80 100644 --- a/Builds/VisualStudio2008_DLL/Juce.vcproj +++ b/Builds/VisualStudio2008_DLL/Juce.vcproj @@ -26,7 +26,7 @@ BufferSecurityCheck="" DebugInformationFormat="3" AdditionalIncludeDirectories="" - PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;_LIB;JUCE_DLL_BUILD=1;JUCE_DLL=1;JUCER_VS2008_9A63150B=1" + PreprocessorDefinitions="_LIB;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_DLL_BUILD=1;JUCE_DLL=1;JUCER_VS2008_9A63150B=1" RuntimeLibrary="1" RuntimeTypeInfo="true" UsePrecompiledHeader="0" @@ -70,7 +70,7 @@ InlineFunctionExpansion="1" StringPooling="true" AdditionalIncludeDirectories="" - PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_LIB;JUCE_DLL_BUILD=1;JUCE_DLL=1;JUCER_VS2008_9A63150B=1" + PreprocessorDefinitions="_LIB;WIN32;_WINDOWS;NDEBUG;JUCE_DLL_BUILD=1;JUCE_DLL=1;JUCER_VS2008_9A63150B=1" RuntimeLibrary="0" RuntimeTypeInfo="true" UsePrecompiledHeader="0" @@ -101,941 +101,939 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Builds/VisualStudio2010/Juce.vcxproj b/Builds/VisualStudio2010/Juce.vcxproj index 089c28c60b..75be023df0 100644 --- a/Builds/VisualStudio2010/Juce.vcxproj +++ b/Builds/VisualStudio2010/Juce.vcxproj @@ -54,7 +54,7 @@ Disabled EditAndContinue %(AdditionalIncludeDirectories) - WIN32;_WINDOWS;DEBUG;_DEBUG;_LIB;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) + _LIB;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) MultiThreadedDebug true @@ -92,7 +92,7 @@ MaxSpeed %(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_LIB;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) + _LIB;WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) MultiThreaded true diff --git a/Builds/VisualStudio2010/Juce.vcxproj.filters b/Builds/VisualStudio2010/Juce.vcxproj.filters index 09630c9a87..3ad7766b85 100644 --- a/Builds/VisualStudio2010/Juce.vcxproj.filters +++ b/Builds/VisualStudio2010/Juce.vcxproj.filters @@ -5,2445 +5,2442 @@ {4EBB1AA0-C8C1-3A6E-4EEF-16D94A800C1D} - - {B3957F8E-6663-9185-1136-725FC483F754} + + {E82B03B5-6C8B-32F8-FAB4-137DDBF9B03B} - - {76ED2629-A92C-0B92-503A-087604454893} + + {CAC35CEF-05A2-0670-EC21-954802764D60} - - {0D4D0FFE-D16E-58DC-8BD2-B98A19E3D3E5} + + {17E38334-C120-7A48-FC92-3B30391D55FA} - - {198C8EED-D309-F1DE-6B4E-C351CC50812F} + + {7C06CCB7-976D-79CF-57E4-FCE804DF4E19} - - {21B05F4A-D58A-C45D-09BA-8A736B3D67C3} + + {0B983ACE-956D-6A24-F8C8-CE5BB260747E} - - {78A04D1F-179A-65F9-AF83-CC9C07828139} + + {886F5D81-78E1-42D2-7966-8746D242F6A6} - - {22AEF7CD-EF75-F3B4-8C08-F1FE5A087932} + + {7EB89E3D-DEFC-BD00-47DB-6EFE2D2EBA94} - - {5B74C3D9-7807-74F3-0944-5242688166CE} + + {3C5ABC64-AB1E-2A0D-A185-828FFD5B5668} - - {DA71553F-FCAE-CECC-0D46-9A010F7AF17A} + + {CB2E433E-1BE3-ABE4-5184-808BFB05F3DA} - - {CA2E8133-D32B-A881-6D70-4BF648FABCEF} + + {3EA06C97-CA9B-017F-F658-B6AFE39B1F5F} - - {2DB52D03-DD6A-56FA-C937-A40902E3C777} + + {2B37EA38-AE04-A748-30AA-CB4C6CB18570} - - {CC363BEC-07A5-1CB8-E516-B38ECD43E7EB} + + {116E44B0-2193-064C-D252-3CA9C69E72B4} - - {181ADBA8-0144-1095-D7D7-8AB24D1A5FE8} + + {0F3CA87D-CB24-BF9D-4A8B-47E079B2DF7C} - - {980BA9E8-021A-42BA-80B7-C32853610065} + + {B8CE82F1-B084-4B70-AB1D-3D0F56ECC8D1} - - {854CE4D8-6F1C-BF91-CF6D-F0055CE3FD79} + + {CCD85E1C-AAD0-AE3D-B543-2DD1401AC274} - - {A0FD2518-2705-57EF-1770-7C9BB5396CC7} + + {16408406-C36B-3D15-02A0-1A95C9BA465C} - - {8D895E8F-029F-B8EA-E30D-6DE6D776C4B8} + + {02356100-882F-2B5A-04F2-4692C2D43816} - - {4FAABF21-2D54-2382-DBE2-34AC36E64382} + + {C853ECCB-F0E9-FFF3-55DB-419E2B20B837} - - {9379B582-DCC2-F948-F1DE-A0D450B0DBEF} + + {7E0F3FCA-F70B-CADA-CF05-86754F3109E7} - - {1C014FAC-29EE-15DA-644F-6C5DC4AECE62} + + {54AC0A55-CC5C-6219-AB36-B5C26B885E20} - - {E290BC33-5CD3-5DCF-DA4E-C16839648601} + + {CC9556B2-2BC2-96E0-32C4-F3A69670C658} - - {C1DD5A90-9EF3-E7A3-51D2-4F764B95DF4E} + + {4363D749-999F-79AB-8824-5D6C2C6D4548} - - {F87ADC73-12F9-6920-443B-408155CE0BA6} + + {77B59E1F-0AAA-45EC-DEDF-5833BFD6ABB2} - - {28FF351A-88A5-954B-43EB-1786A20796C4} + + {71E7F95D-5D93-6A52-3B04-3079DE9B7520} - - {E7BF31BD-CF43-6336-3393-A91CEB523BD4} + + {64DE4A8F-F3A6-60D4-ABCE-EB9D0645D899} - - {6D87BD0C-C8BC-F4A1-9370-44D21B630459} + + {C88D4A21-79EB-12CE-AE91-861542871292} - - {7130B08B-624D-1D77-EAC7-04C96F798B1C} + + {3D424C6E-60D9-F5D7-57A3-12E338CF5854} - - {7637E9FA-EF6E-D1AD-948C-D2FC50F34B1B} + + {0BBC3B03-2BD1-0BE2-48DE-42B6003D20C9} - - {C26D9DA0-B2D0-FF8F-2CEC-72157E40911B} + + {E8CDBA7B-355C-DDCD-2933-BE4FB964F2B6} - - {CD7E4A5D-B44F-D468-7A29-E9812E562684} + + {E32AB6D4-DAAE-5D7D-1B1D-43D79A874FC8} - - {91615EAF-82B1-CE71-C546-B107666DC73C} + + {6F3422BC-1140-5902-4BE8-83E7693136AC} - - {B0D9CCC8-4718-BF06-EA13-DA2333E77AEE} + + {1FB1BF2B-A73D-FC59-6CEE-219A5A9D57DF} - - {34D7048B-783F-B48F-2D42-7F22515A2741} + + {3858B8C1-6873-0627-2387-678CC788EA96} - - {6A81EDB6-D54A-343C-8BB0-CCE4DAA4823F} + + {9EF0AA5A-8B7F-E8BD-5EEC-5452C255D342} - - {40D34D66-1607-CAC3-2F76-226E0C328620} + + {7DAEDC2C-B323-896A-3273-4C4108461BB0} - - {FBDC681F-229A-7BDD-B1B3-10BE5A7F9A9B} + + {210D20DC-B260-4F3D-A08A-2FC4DEAFD9BD} - - {3451EF52-8398-5DB1-9C74-EFD21B8ED2EF} + + {B5741E32-133D-F56B-DC82-F47AF8B0D27D} - - {ABF2F706-BD6B-F226-E0AC-76D0FC7ADB5A} + + {B4A49E1D-E5A4-A7B8-0749-252EFC318BDE} - - {6FC7F6EC-55E2-32DF-72F0-FFD044AA8C3C} + + {1DF00D90-FA2E-A2AF-AED9-379D050629F3} - - {E0962947-51B5-F42D-204C-AFC22B38AD94} + + {4BA22EF4-EF5A-8FA7-2A4F-2EA55A126598} - - {8E523C69-A1A0-BDA3-9B80-FA1278E0C007} + + {37CE3166-A559-E350-DFC9-A963810B59A6} - - {6AA8AEDB-B5A6-26A6-50AC-4EEF5B60D7EF} + + {97F2C641-6AEA-7FA9-193B-C8F36EE0DD0F} - - {256CA617-3048-F818-38CA-AF50C584E234} + + {E94A000A-7F89-9C6C-C393-1A9B18E0C716} - - {08423EB8-E26E-3600-7177-8E3CD4BBF639} + + {5141F842-AA21-CDC9-1EA1-22266EBD7807} - - {FC05C369-DC75-D434-ED29-1ECF5A8ED49F} + + {89F198B9-60A8-D24F-5204-2CD67851BCF3} - - {E6E900B2-D5B4-7AE6-2AAB-A1E88B530DFE} + + {490D1803-CF9F-8D56-E16A-D15EEDB8C3E9} - - {92FD5E6C-144F-9B2E-F659-6D01129A62FC} + + {939AB894-8A98-5465-332C-88B3EE3FAFC1} - - {64622FE4-B44B-D474-B7E9-6CCAB470D0AE} + + {D6FF810F-61FA-739C-D430-3A9DD573F077} - - {C2308939-D584-9814-C8E8-EFA033FFC652} + + {4399B64E-2D91-A936-C261-CB4AF3F4ADFA} - - {61F03A35-213F-52B3-6C8B-3C71CDEFBE96} + + {1C375704-29AD-E915-5C03-96A9DF473A21} - - {A9DDD283-8C5F-BBFD-E0C3-1ACD2FF8EB74} + + {E48884B1-132F-96C5-EF93-AB47FE750C9B} - - {A5F8397A-22E0-232C-6BDB-9A112412C424} + + {F1BA3931-F495-119F-BE20-A6117A1CD41A} - - {BAD6B5EE-236C-8A52-235E-F92C1F98F8F7} + + {EBCA4826-20A6-A600-3179-3208DCEE7F9A} - - {37D4DBD5-448B-3915-AF1D-06AE76B6156C} + + {BC072C4D-20F2-393F-A199-BA12EADC660F} - - {B08B93CD-344E-92C9-88DF-BE1A2F8E2BD1} + + {8967A721-6CC3-0F4D-4300-6566C7A2AD58} - - {CFBC5FA1-5A68-B012-A852-1D798CD2CBDF} + + {23C18B4F-06EA-FC28-9229-7AF1ACA6F6EA} - - {31BF14BA-F3B3-9EAE-8D43-0972CA67D1CF} + + {00FDA359-9F94-7E24-9C9E-5E78860054FC} - - {56CD7BE1-9B0B-A873-6126-8F47C2268CD3} + + {AED1A02A-B39D-B69B-FD23-861C4E50621B} - - {63A5A988-2E40-A16D-FB1D-337F27BAF97A} - - - {69764D4B-36D6-B011-D88D-71CE947588EE} + + {EA223401-284E-5F2F-FACB-4944AF280662} - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\devices + Juce\audio\devices - Juce\Source\audio\devices + Juce\audio\devices - Juce\Source\audio\devices + Juce\audio\devices - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\plugin_client\AU + Juce\audio\plugin_client\AU - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\VST + Juce\audio\plugin_client\VST - Juce\Source\audio\plugin_client\VST + Juce\audio\plugin_client\VST - Juce\Source\audio\plugin_client\Standalone + Juce\audio\plugin_client\Standalone - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\synthesisers + Juce\audio\synthesisers - Juce\Source\audio\synthesisers + Juce\audio\synthesisers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\lookandfeel + Juce\gui\components\lookandfeel - Juce\Source\gui\components\lookandfeel + Juce\gui\components\lookandfeel - Juce\Source\gui\components\menus + Juce\gui\components\menus - Juce\Source\gui\components\menus + Juce\gui\components\menus - Juce\Source\gui\components\menus + Juce\gui\components\menus - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\effects + Juce\gui\graphics\effects - Juce\Source\gui\graphics\effects + Juce\gui\graphics\effects - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\imaging\image_file_formats + Juce\gui\graphics\imaging\image_file_formats - Juce\Source\gui\graphics\imaging\image_file_formats + Juce\gui\graphics\imaging\image_file_formats - Juce\Source\gui\graphics\imaging\image_file_formats + Juce\gui\graphics\imaging\image_file_formats - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\network + Juce\io\network - Juce\Source\io\network + Juce\io\network - Juce\Source\io\network + Juce\io\network - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\maths + Juce\maths - Juce\Source\maths + Juce\maths - Juce\Source\maths + Juce\maths - Juce\Source\memory + Juce\memory - Juce\Source\native\common + Juce\native\common - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\application + Juce\application - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_file_formats + Juce\audio\audio_file_formats - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\audio_sources + Juce\audio\audio_sources - Juce\Source\audio\devices + Juce\audio\devices - Juce\Source\audio\devices + Juce\audio\devices - Juce\Source\audio\devices + Juce\audio\devices - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\dsp + Juce\audio\dsp - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\midi + Juce\audio\midi - Juce\Source\audio\plugin_client\RTAS + Juce\audio\plugin_client\RTAS - Juce\Source\audio\plugin_client\Standalone + Juce\audio\plugin_client\Standalone - Juce\Source\audio\plugin_client + Juce\audio\plugin_client - Juce\Source\audio\plugin_client + Juce\audio\plugin_client - Juce\Source\audio\plugin_client + Juce\audio\plugin_client - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host\formats + Juce\audio\plugin_host\formats - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\plugin_host + Juce\audio\plugin_host - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\processors + Juce\audio\processors - Juce\Source\audio\synthesisers + Juce\audio\synthesisers - Juce\Source\audio\synthesisers + Juce\audio\synthesisers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\containers + Juce\containers - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\core + Juce\core - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\cryptography + Juce\cryptography - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\events + Juce\events - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components + Juce\gui\components - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\buttons + Juce\gui\components\buttons - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\code_editor + Juce\gui\components\code_editor - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\controls + Juce\gui\components\controls - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\filebrowser + Juce\gui\components\filebrowser - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\keyboard + Juce\gui\components\keyboard - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\layout + Juce\gui\components\layout - Juce\Source\gui\components\lookandfeel + Juce\gui\components\lookandfeel - Juce\Source\gui\components\lookandfeel + Juce\gui\components\lookandfeel - Juce\Source\gui\components\menus + Juce\gui\components\menus - Juce\Source\gui\components\menus + Juce\gui\components\menus - Juce\Source\gui\components\menus + Juce\gui\components\menus - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\mouse + Juce\gui\components\mouse - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\positioning + Juce\gui\components\positioning - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\properties + Juce\gui\components\properties - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\special + Juce\gui\components\special - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\components\windows + Juce\gui\components\windows - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\colour + Juce\gui\graphics\colour - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\contexts + Juce\gui\graphics\contexts - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\drawables + Juce\gui\graphics\drawables - Juce\Source\gui\graphics\effects + Juce\gui\graphics\effects - Juce\Source\gui\graphics\effects + Juce\gui\graphics\effects - Juce\Source\gui\graphics\effects + Juce\gui\graphics\effects - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\fonts + Juce\gui\graphics\fonts - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\geometry + Juce\gui\graphics\geometry - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\gui\graphics\imaging + Juce\gui\graphics\imaging - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\files + Juce\io\files - Juce\Source\io\network + Juce\io\network - Juce\Source\io\network + Juce\io\network - Juce\Source\io\network + Juce\io\network - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\io\streams + Juce\io\streams - Juce\Source\maths + Juce\maths - Juce\Source\maths + Juce\maths - Juce\Source\maths + Juce\maths - Juce\Source\maths + Juce\maths - Juce\Source\maths + Juce\maths - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\memory + Juce\memory - Juce\Source\native\common + Juce\native\common - Juce\Source\native\common + Juce\native\common - Juce\Source\native\linux + Juce\native\linux - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\mac + Juce\native\mac - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\windows + Juce\native\windows - Juce\Source\native\android + Juce\native\android - Juce\Source\native\android + Juce\native\android - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\text + Juce\text - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\threads + Juce\threads - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source\utilities + Juce\utilities - Juce\Source + Juce - Juce\Source + Juce diff --git a/Builds/iOS/Juce.xcodeproj/project.pbxproj b/Builds/iOS/Juce.xcodeproj/project.pbxproj index 661c6d2fb3..c07c94a9f0 100644 --- a/Builds/iOS/Juce.xcodeproj/project.pbxproj +++ b/Builds/iOS/Juce.xcodeproj/project.pbxproj @@ -1973,7 +1973,7 @@ ADE5F12AA5AD969E2C7002B3, 75700D13513346310CEAC30D, AAC585C4648559DD713F28FE ); name = utilities; sourceTree = ""; }; - 9AA3D660772E3D4C64EC7859 = { isa = PBXGroup; children = ( + 992526B83B6AA618A4FAECEB = { isa = PBXGroup; children = ( D443FD24B52106986FC8A531, F2B0E44A08E127FD31184241, 1CC2889DB696E12FC34E3F50, @@ -1989,13 +1989,13 @@ 723AC5B999F1EC8F4A101AAF, 281D6856FAC3B07634AD1C32, 2FD5C998952BE08F8ED3F262, - 01778F26212AECCBF2452804 ); name = Source; sourceTree = ""; }; + 01778F26212AECCBF2452804 ); name = Juce; sourceTree = ""; }; 1076A9F8D71BFFF9E9975FB6 = { isa = PBXGroup; children = ( ); name = Resources; sourceTree = ""; }; 23256FCDBD84A2E259E40908 = { isa = PBXGroup; children = ( ); name = Frameworks; sourceTree = ""; }; 3E3A3D491CB40D2943E95E64 = { isa = PBXGroup; children = ( 389351359BA78C682E1931A6 ); name = Products; sourceTree = ""; }; - 992526B83B6AA618A4FAECEB = { isa = PBXGroup; children = ( - 9AA3D660772E3D4C64EC7859, + 25F381A264FFB3735F124DCC = { isa = PBXGroup; children = ( + 992526B83B6AA618A4FAECEB, 1076A9F8D71BFFF9E9975FB6, 23256FCDBD84A2E259E40908, 3E3A3D491CB40D2943E95E64 ); name = Source; sourceTree = ""; }; @@ -2440,7 +2440,7 @@ 55EDB4D9B702B469DB4655C3 ); runOnlyForDeploymentPostprocessing = 0; }; 01555BA382FAED280FF5F58A = { isa = PBXNativeTarget; buildConfigurationList = D14EC3F0DC5861E37D35E15A; buildPhases = ( 8914D147048B9EE245989ACB ); buildRules = ( ); dependencies = ( ); name = Juce; productName = Juce; productReference = 389351359BA78C682E1931A6; productType = "com.apple.product-type.library.static"; }; - FCFFEDFC83101B196BFA2AE2 = { isa = PBXProject; buildConfigurationList = 3A1CB6B5ECF4A79CDE35CC66; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 992526B83B6AA618A4FAECEB; projectDirPath = ""; projectRoot = ""; targets = ( 01555BA382FAED280FF5F58A ); }; + FCFFEDFC83101B196BFA2AE2 = { isa = PBXProject; buildConfigurationList = 3A1CB6B5ECF4A79CDE35CC66; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 25F381A264FFB3735F124DCC; projectDirPath = ""; projectRoot = ""; targets = ( 01555BA382FAED280FF5F58A ); }; }; rootObject = FCFFEDFC83101B196BFA2AE2; } diff --git a/Juce.jucer b/Juce.jucer index 916dd54785..368cfaa2ff 100644 --- a/Juce.jucer +++ b/Juce.jucer @@ -36,1598 +36,1596 @@ osxSDK="default" osxCompatibility="default" binaryPath="./bin"/> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - + + + - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + files; - findAllFilesToCompile (getMainGroup(), files); - for (int i = 0; i < generatedGroups.size(); ++i) - findAllFilesToCompile (generatedGroups.getReference(i), files); + for (int i = 0; i < groups.size(); ++i) + findAllFilesToCompile (groups.getReference(i), files); MemoryOutputStream mo; writeAndroidMk (mo, files); diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h index 19eb10b547..982ce9d769 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h @@ -27,7 +27,7 @@ #define __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ #include "jucer_ProjectExporter.h" - +#include "jucer_ProjectSaver.h" //============================================================================== class MSVCProjectExporterBase : public ProjectExporter @@ -102,21 +102,9 @@ protected: .toWindowsStyle(); } - String getTargetBinarySuffix() const - { - if (projectType.isLibrary()) - return ".lib"; - else if (isRTAS()) - return ".dpm"; - else if (projectType.isAudioPlugin() || projectType.isBrowserPlugin()) - return ".dll"; - - return ".exe"; - } - String getPreprocessorDefs (const Project::BuildConfiguration& config, const String& joinString) const { - StringPairArray defines; + StringPairArray defines (msvcExtraPreprocessorDefs); defines.set ("WIN32", ""); defines.set ("_WINDOWS", ""); @@ -130,19 +118,6 @@ protected: defines.set ("NDEBUG", ""); } - if (projectType.isCommandLineApp()) - defines.set ("_CONSOLE", ""); - - if (projectType.isLibrary()) - defines.set ("_LIB", ""); - - if (isRTAS()) - { - RelativePath rtasFolder (getRTASFolder().toString(), RelativePath::unknown); - defines.set ("JucePlugin_WinBag_path", CodeHelpers::addEscapeChars (rtasFolder.getChildFile ("WinBag") - .toWindowsStyle().quoted())); - } - defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); StringArray result; @@ -176,7 +151,7 @@ protected: if (targetBinary.isNotEmpty()) return targetBinary; - return config.getTargetBinaryName().toString() + getTargetBinarySuffix(); + return config.getTargetBinaryName().toString() + msvcTargetSuffix; } static String createConfigName (const Project::BuildConfiguration& config) @@ -400,11 +375,20 @@ public: if (hasIcon) { - generatedGroups.getReference(0).addFile (iconFile, -1); - generatedGroups.getReference(0).addFile (rcFile, -1); + for (int i = 0; i < groups.size(); ++i) + { + Project::Item& group = groups.getReference(i); - generatedGroups.getReference(0).findItemForFile (iconFile).getShouldAddToResourceValue() = false; - generatedGroups.getReference(0).findItemForFile (rcFile).getShouldAddToResourceValue() = false; + if (group.getID() == ProjectSaver::getGeneratedGroupID()) + { + group.addFile (iconFile, -1); + group.addFile (rcFile, -1); + + group.findItemForFile (iconFile).getShouldAddToResourceValue() = false; + group.findItemForFile (rcFile).getShouldAddToResourceValue() = false; + break; + } + } } { @@ -522,11 +506,9 @@ protected: void createFiles (XmlElement& files) { - addFiles (getMainGroup(), files, false); - - for (int i = 0; i < generatedGroups.size(); ++i) - if (generatedGroups.getReference(i).getNumChildren() > 0) - addFiles (generatedGroups.getReference(i), files, false); + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + addFiles (groups.getReference(i), files, false); } //============================================================================== @@ -547,8 +529,7 @@ protected: xml.setAttribute ("Name", createConfigName (config)); xml.setAttribute ("OutputDirectory", FileHelpers::windowsStylePath (binariesPath)); xml.setAttribute ("IntermediateDirectory", FileHelpers::windowsStylePath (intermediatesPath)); - xml.setAttribute ("ConfigurationType", (projectType.isAudioPlugin() || projectType.isBrowserPlugin() || isLibraryDLL()) - ? "2" : (projectType.isLibrary() ? "4" : "1")); + xml.setAttribute ("ConfigurationType", (msvcIsDLL || isLibraryDLL()) ? "2" : (projectType.isLibrary() ? "4" : "1")); xml.setAttribute ("UseOfMFC", "0"); xml.setAttribute ("ATLMinimizesCRunTimeLibraryUsage", "false"); xml.setAttribute ("CharacterSet", "2"); @@ -560,13 +541,11 @@ protected: XmlElement* customBuild = createToolElement (xml, "VCCustomBuildTool"); - if (isRTAS()) - { - RelativePath rsrFile (getJucePathFromTargetFolder().getChildFile (JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinResources.rsr")); + if (msvcPostBuildCommand.isNotEmpty()) + customBuild->setAttribute ("CommandLine", msvcPostBuildCommand); - customBuild->setAttribute ("CommandLine", "copy /Y \"" + rsrFile.toWindowsStyle() + "\" \"$(TargetPath)\".rsr"); - customBuild->setAttribute ("Outputs", "\"$(TargetPath)\".rsr"); - } + if (msvcPostBuildOutputs.isNotEmpty()) + customBuild->setAttribute ("Outputs", msvcPostBuildOutputs); createToolElement (xml, "VCXMLDataGeneratorTool"); createToolElement (xml, "VCWebServiceProxyGeneratorTool"); @@ -601,8 +580,8 @@ protected: compiler->setAttribute ("AdditionalIncludeDirectories", replacePreprocessorTokens (config, getHeaderSearchPaths (config).joinIntoString (";"))); compiler->setAttribute ("PreprocessorDefinitions", getPreprocessorDefs (config, ";")); - compiler->setAttribute ("RuntimeLibrary", isRTAS() ? (isDebug ? 3 : 2) // MT DLL - : (isDebug ? 1 : 0)); // MT static + compiler->setAttribute ("RuntimeLibrary", msvcNeedsDLLRuntimeLib ? (isDebug ? 3 : 2) // MT DLL + : (isDebug ? 1 : 0)); // MT static compiler->setAttribute ("RuntimeTypeInfo", "true"); compiler->setAttribute ("UsePrecompiledHeader", "0"); compiler->setAttribute ("PrecompiledHeaderFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pch")); @@ -641,7 +620,7 @@ protected: linker->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); linker->setAttribute ("GenerateDebugInformation", isDebug ? "true" : "false"); linker->setAttribute ("ProgramDatabaseFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); - linker->setAttribute ("SubSystem", projectType.isCommandLineApp() ? "1" : "2"); + linker->setAttribute ("SubSystem", msvcIsWindowsSubsystem ? "2" : "1"); if (! isDebug) { @@ -652,16 +631,16 @@ protected: linker->setAttribute ("TargetMachine", "1"); // (64-bit build = 5) + if (msvcDelayLoadedDLLs.isNotEmpty()) + linker->setAttribute ("DelayLoadDLLs", msvcDelayLoadedDLLs); + + if (msvcModuleDefinitionFile.isNotEmpty()) + linker->setAttribute ("ModuleDefinitionFile", msvcModuleDefinitionFile); + String extraLinkerOptions (getExtraLinkerFlags().toString()); - if (isRTAS()) - { - extraLinkerOptions += " /FORCE:multiple"; - linker->setAttribute ("DelayLoadDLLs", "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll"); - linker->setAttribute ("ModuleDefinitionFile", getJucePathFromTargetFolder() - .getChildFile (JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinExports.def") - .toWindowsStyle()); - } + if (msvcExtraLinkerOptions.isNotEmpty()) + extraLinkerOptions << ' ' << msvcExtraLinkerOptions; if (extraLinkerOptions.isNotEmpty()) linker->setAttribute ("AdditionalOptions", replacePreprocessorTokens (config, extraLinkerOptions).trim()); @@ -818,10 +797,9 @@ private: { const String defaultConfigName (createConfigName (configs.getReference(0))); - const bool isDLL = projectType.isAudioPlugin() || projectType.isBrowserPlugin(); String targetType, targetCode; - if (isDLL) { targetType = "\"Win32 (x86) Dynamic-Link Library\""; targetCode = "0x0102"; } + if (msvcIsDLL) { targetType = "\"Win32 (x86) Dynamic-Link Library\""; targetCode = "0x0102"; } else if (projectType.isLibrary()) { targetType = "\"Win32 (x86) Static Library\""; targetCode = "0x0104"; } else if (projectType.isCommandLineApp()) { targetType = "\"Win32 (x86) Console Application\""; targetCode = "0x0103"; } else { targetType = "\"Win32 (x86) Application\""; targetCode = "0x0101"; } @@ -919,8 +897,8 @@ private: << "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib " << (isDebug ? " /debug" : "") << " /nologo /machine:I386 /out:\"" << targetBinary << "\" " - << (isDLL ? "/dll" : (projectType.isCommandLineApp() ? "/subsystem:console " - : "/subsystem:windows ")) + << (msvcIsDLL ? "/dll" : (msvcIsWindowsSubsystem ? "/subsystem:windows " + : "/subsystem:console ")) << replacePreprocessorTokens (config, getExtraLinkerFlags().toString()).trim() << newLine; } } @@ -929,11 +907,9 @@ private: << "# Begin Target" << newLine << targetList; - writeFiles (out, getMainGroup()); - - for (int i = 0; i < generatedGroups.size(); ++i) - if (generatedGroups.getReference(i).getNumChildren() > 0) - writeFiles (out, generatedGroups.getReference(i)); + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + writeFiles (out, groups.getReference(i)); out << "# End Target" << newLine << "# End Project" << newLine; @@ -1227,8 +1203,8 @@ protected: includePaths.add ("%(AdditionalIncludeDirectories)"); cl->createNewChildElement ("AdditionalIncludeDirectories")->addTextElement (includePaths.joinIntoString (";")); cl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (getPreprocessorDefs (config, ";") + ";%(PreprocessorDefinitions)"); - cl->createNewChildElement ("RuntimeLibrary")->addTextElement (isRTAS() ? (isDebug ? "MultiThreadedDLLDebug" : "MultiThreadedDLL") - : (isDebug ? "MultiThreadedDebug" : "MultiThreaded")); + cl->createNewChildElement ("RuntimeLibrary")->addTextElement (msvcNeedsDLLRuntimeLib ? (isDebug ? "MultiThreadedDLLDebug" : "MultiThreadedDLL") + : (isDebug ? "MultiThreadedDebug" : "MultiThreaded")); cl->createNewChildElement ("RuntimeTypeInfo")->addTextElement ("true"); cl->createNewChildElement ("PrecompiledHeader"); cl->createNewChildElement ("AssemblerListingLocation")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); @@ -1256,7 +1232,7 @@ protected: : "%(IgnoreSpecificDefaultLibraries)"); link->createNewChildElement ("GenerateDebugInformation")->addTextElement (isDebug ? "true" : "false"); link->createNewChildElement ("ProgramDatabaseFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); - link->createNewChildElement ("SubSystem")->addTextElement (projectType.isCommandLineApp() ? "Console" : "Windows"); + link->createNewChildElement ("SubSystem")->addTextElement (msvcIsWindowsSubsystem ? "Windows" : "Console"); link->createNewChildElement ("TargetMachine")->addTextElement ("MachineX86"); if (! isDebug) @@ -1282,11 +1258,9 @@ protected: XmlElement* cppFiles = projectXml.createNewChildElement ("ItemGroup"); XmlElement* headerFiles = projectXml.createNewChildElement ("ItemGroup"); - addFilesToCompile (getMainGroup(), *cppFiles, *headerFiles, false); - - for (int i = 0; i < generatedGroups.size(); ++i) - if (generatedGroups.getReference(i).getNumChildren() > 0) - addFilesToCompile (generatedGroups.getReference(i), *cppFiles, *headerFiles, false); + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + addFilesToCompile (groups.getReference(i), *cppFiles, *headerFiles, false); } if (hasIcon) @@ -1318,7 +1292,7 @@ protected: String getProjectType() const { if (projectType.isGUIApplication() || projectType.isCommandLineApp()) return "Application"; - else if (projectType.isAudioPlugin() || projectType.isBrowserPlugin()) return "DynamicLibrary"; + else if (msvcIsDLL) return "DynamicLibrary"; else if (projectType.isLibrary()) return "StaticLibrary"; jassertfalse; @@ -1433,15 +1407,13 @@ protected: filterXml.setAttribute ("ToolsVersion", "4.0"); filterXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); - XmlElement* groups = filterXml.createNewChildElement ("ItemGroup"); - XmlElement* cpps = filterXml.createNewChildElement ("ItemGroup"); - XmlElement* headers = filterXml.createNewChildElement ("ItemGroup"); - - addFilesToFilter (getMainGroup(), projectName, *cpps, *headers, *groups); + XmlElement* groupsXml = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* cpps = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* headers = filterXml.createNewChildElement ("ItemGroup"); - for (int i = 0; i < generatedGroups.size(); ++i) - if (generatedGroups.getReference(i).getNumChildren() > 0) - addFilesToFilter (generatedGroups.getReference(i), project.getJuceCodeGroupName(), *cpps, *headers, *groups); + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + addFilesToFilter (groups.getReference(i), groups.getReference(i).getName().toString(), *cpps, *headers, *groupsXml); if (iconFile.exists()) { diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h index 9f8958f428..029807ec97 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h @@ -87,10 +87,8 @@ public: void create() { Array files; - findAllFilesToCompile (getMainGroup(), files); - - for (int i = 0; i < generatedGroups.size(); ++i) - findAllFilesToCompile (generatedGroups.getReference(i), files); + for (int i = 0; i < groups.size(); ++i) + findAllFilesToCompile (groups.getReference(i), files); MemoryOutputStream mo; writeMakefile (mo, files); @@ -157,7 +155,7 @@ private: { out << " LDFLAGS += -L$(BINDIR) -L$(LIBDIR)"; - if (projectType.isAudioPlugin()) + if (makefileIsDLL) out << " -shared"; { @@ -207,7 +205,7 @@ private: if (config.isDebug().getValue()) out << " -g -ggdb"; - if (projectType.isAudioPlugin()) + if (makefileIsDLL) out << " -fPIC"; out << " -O" << config.getGCCOptimisationFlag() << newLine; @@ -226,8 +224,8 @@ private: if (projectType.isLibrary()) targetName = getLibbedFilename (targetName); - else if (isVST()) - targetName = targetName.upToLastOccurrenceOf (".", false, false) + ".so"; + else + targetName = targetName.upToLastOccurrenceOf (".", false, false) + makefileTargetSuffix; out << " TARGET := " << escapeSpaces (targetName) << newLine; diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h index be3b951ce9..e0ad926e94 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h @@ -147,7 +147,7 @@ public: } private: - OwnedArray pbxBuildFiles, pbxFileReferences, groups, misc, projectConfigs, targetConfigs; + OwnedArray pbxBuildFiles, pbxFileReferences, pbxGroups, misc, projectConfigs, targetConfigs; StringArray buildPhaseIDs, resourceIDs, sourceIDs, frameworkIDs; StringArray frameworkFileIDs, rezFileIDs, resourceFileRefs; File infoPlistFile, iconFile; @@ -164,25 +164,13 @@ private: File getProjectBundle() const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (".xcodeproj"); } - bool hasPList() const { return ! (projectType.isLibrary() || projectType.isCommandLineApp()); } - String getAudioPluginBundleExtension() const { return "component"; } - //============================================================================== void createObjects() { - if (! projectType.isLibrary()) - addFrameworks(); - - const String productName (configs.getReference(0).getTargetBinaryName().toString()); - - if (projectType.isGUIApplication()) addBuildProduct ("wrapper.application", productName + ".app"); - else if (projectType.isCommandLineApp()) addBuildProduct ("compiled.mach-o.executable", productName); - else if (projectType.isLibrary()) addBuildProduct ("archive.ar", getLibbedFilename (productName)); - else if (projectType.isAudioPlugin()) addBuildProduct ("wrapper.cfbundle", productName + "." + getAudioPluginBundleExtension()); - else if (projectType.isBrowserPlugin()) addBuildProduct ("wrapper.cfbundle", productName + ".plugin"); - else jassert (productName.isEmpty()); + addFrameworks(); + addMainBuildProduct(); - if (hasPList()) + if (xcodeCreatePList) { RelativePath plistPath (infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder); addFileReference (plistPath.toUnixStyle()); @@ -197,7 +185,35 @@ private: resourceFileRefs.add (createID (iconPath)); } - addProjectItem (getMainGroup()); + { + StringArray topLevelGroupIDs; + + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + topLevelGroupIDs.add (addProjectItem (groups.getReference(i))); + + { // Add 'resources' group + String resourcesGroupID (createID ("__resources")); + addGroup (resourcesGroupID, "Resources", resourceFileRefs); + topLevelGroupIDs.add (resourcesGroupID); + } + + { // Add 'frameworks' group + String frameworksGroupID (createID ("__frameworks")); + addGroup (frameworksGroupID, "Frameworks", frameworkFileIDs); + topLevelGroupIDs.add (frameworksGroupID); + } + + { // Add 'products' group + String productsGroupID (createID ("__products")); + StringArray products; + products.add (createID ("__productFileID")); + addGroup (productsGroupID, "Products", products); + topLevelGroupIDs.add (productsGroupID); + } + + addGroup (createID ("__mainsourcegroup"), "Source", topLevelGroupIDs); + } for (int i = 0; i < configs.size(); ++i) { @@ -221,8 +237,7 @@ private: if (! projectType.isLibrary()) addBuildPhase ("PBXFrameworksBuildPhase", frameworkIDs); - if (projectType.isAudioPlugin()) - addPluginShellScriptPhase(); + addShellScriptPhase(); addTargetObject(); addProjectObject(); @@ -333,7 +348,7 @@ private: void writeInfoPlistFile() { - if (! hasPList()) + if (! xcodeCreatePList) return; XmlElement plist ("plist"); @@ -346,18 +361,8 @@ private: addPlistDictionaryKey (dict, "CFBundleIconFile", iconFile.exists() ? iconFile.getFileName() : String::empty); addPlistDictionaryKey (dict, "CFBundleIdentifier", project.getBundleIdentifier().toString()); addPlistDictionaryKey (dict, "CFBundleName", projectName); - - if (projectType.isAudioPlugin()) - { - addPlistDictionaryKey (dict, "CFBundlePackageType", "TDMw"); - addPlistDictionaryKey (dict, "CFBundleSignature", "PTul"); - } - else - { - addPlistDictionaryKey (dict, "CFBundlePackageType", "APPL"); - addPlistDictionaryKey (dict, "CFBundleSignature", "????"); - } - + addPlistDictionaryKey (dict, "CFBundlePackageType", xcodePackageType); + addPlistDictionaryKey (dict, "CFBundleSignature", xcodeBundleSignature); addPlistDictionaryKey (dict, "CFBundleShortVersionString", project.getVersion().toString()); addPlistDictionaryKey (dict, "CFBundleVersion", project.getVersion().toString()); @@ -408,7 +413,7 @@ private: return searchPaths; } - void getLinkerFlagsForStaticLibrary (const RelativePath& library, StringArray& flags, StringArray& librarySearchPaths) + static void getLinkerFlagsForStaticLibrary (const RelativePath& library, StringArray& flags, StringArray& librarySearchPaths) { jassert (library.getFileNameWithoutExtension().substring (0, 3) == "lib"); @@ -423,18 +428,14 @@ private: void getLinkerFlags (const Project::BuildConfiguration& config, StringArray& flags, StringArray& librarySearchPaths) { - if (projectType.isAudioPlugin()) - { + if (xcodeIsBundle) flags.add ("-bundle"); - if (isRTAS() && getRTASFolder().toString().isNotEmpty()) - { - getLinkerFlagsForStaticLibrary (RelativePath (getRTASFolder().toString(), RelativePath::buildTargetFolder) - .getChildFile (config.isDebug().getValue() ? "MacBag/Libs/Debug/libPluginLibrary.a" - : "MacBag/Libs/Release/libPluginLibrary.a"), - flags, librarySearchPaths); - } - } + const Array& extraLibs = config.isDebug().getValue() ? xcodeExtraLibrariesDebug + : xcodeExtraLibrariesRelease; + + for (int i = 0; i < extraLibs.size(); ++i) + getLinkerFlagsForStaticLibrary (extraLibs.getReference(i), flags, librarySearchPaths); if (project.getJuceLinkageMode() == Project::useLinkedJuce) { @@ -480,7 +481,7 @@ private: s.add ("ZERO_LINK = NO"); - if (! isRTAS()) // (dwarf seems to be incompatible with the RTAS libs) + if (xcodeCanUseDwarf) s.add ("DEBUG_INFORMATION_FORMAT = \"dwarf\""); s.add ("PRODUCT_NAME = \"" + config.getTargetBinaryName().toString() + "\""); @@ -506,26 +507,20 @@ private: if (extraFlags.isNotEmpty()) s.add ("OTHER_CPLUSPLUSFLAGS = " + extraFlags); - if (projectType.isGUIApplication()) - { - s.add ("INSTALL_PATH = \"$(HOME)/Applications\""); - } - else if (projectType.isAudioPlugin()) + if (xcodeProductInstallPath.isNotEmpty()) + s.add ("INSTALL_PATH = \"" + xcodeProductInstallPath + "\""); + + if (xcodeIsBundle) { s.add ("LIBRARY_STYLE = Bundle"); - s.add ("INSTALL_PATH = \"$(HOME)/Library/Audio/Plug-Ins/Components/\""); - s.add ("WRAPPER_EXTENSION = " + getAudioPluginBundleExtension()); + s.add ("WRAPPER_EXTENSION = " + xcodeBundleExtension.substring (1)); s.add ("GENERATE_PKGINFO_FILE = YES"); - s.add ("OTHER_REZFLAGS = \"-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64" - " -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" - " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\"\""); - } - else if (projectType.isBrowserPlugin()) - { - s.add ("LIBRARY_STYLE = Bundle"); - s.add ("INSTALL_PATH = \"/Library/Internet Plug-Ins/\""); } - else if (projectType.isLibrary()) + + if (xcodeOtherRezFlags.isNotEmpty()) + s.add ("OTHER_REZFLAGS = \"" + xcodeOtherRezFlags + "\""); + + if (projectType.isLibrary()) { if (config.getTargetBinaryRelativePath().toString().isNotEmpty()) { @@ -539,13 +534,6 @@ private: s.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\""); s.add ("DEPLOYMENT_LOCATION = YES"); } - else if (projectType.isCommandLineApp()) - { - } - else - { - jassertfalse; - } if (! iPhone) { @@ -639,24 +627,19 @@ private: void addFrameworks() { - StringArray s; - - if (iPhone) - { - s.addTokens ("UIKit Foundation CoreGraphics CoreText AudioToolbox QuartzCore OpenGLES", false); - } - else + if (! projectType.isLibrary()) { - s.addTokens ("Cocoa Carbon IOKit CoreAudio CoreMIDI WebKit DiscRecording OpenGL QuartzCore QTKit QuickTime AudioToolbox", false); + StringArray s (xcodeFrameworks); - if (isAU()) - s.addTokens ("AudioUnit CoreAudioKit AudioToolbox", false); - else if (project.getConfigFlag ("JUCE_PLUGINHOST_AU").toString() == Project::configFlagEnabled) - s.addTokens ("AudioUnit CoreAudioKit", false); - } + s.addTokens (iPhone ? "UIKit Foundation CoreGraphics CoreText AudioToolbox QuartzCore OpenGLES" + : "Cocoa Carbon IOKit CoreAudio CoreMIDI WebKit DiscRecording OpenGL QuartzCore QTKit QuickTime AudioToolbox", false); + + s.removeDuplicates (true); + s.sort (true); - for (int i = 0; i < s.size(); ++i) - addFramework (s[i]); + for (int i = 0; i < s.size(); ++i) + addFramework (s[i]); + } } //============================================================================== @@ -671,7 +654,7 @@ private: Array objects; objects.addArray (pbxBuildFiles); objects.addArray (pbxFileReferences); - objects.addArray (groups); + objects.addArray (pbxGroups); objects.addArray (targetConfigs); objects.addArray (projectConfigs); objects.addArray (misc); @@ -850,47 +833,31 @@ private: v->setProperty ("children", "(" + indentList (childIDs, ",") + " )", 0); v->setProperty (Ids::name, groupName, 0); v->setProperty ("sourceTree", "", 0); - groups.add (v); + pbxGroups.add (v); } String addGroup (const Project::Item& item, StringArray& childIDs) { - String groupName (item.getName().toString()); - - if (item.isMainGroup()) - { - groupName = "Source"; - - for (int i = 0; i < generatedGroups.size(); ++i) - if (generatedGroups.getReference(i).getNumChildren() > 0) - childIDs.add (addProjectItem (generatedGroups.getReference(i))); - - { // Add 'resources' group - String resourcesGroupID (createID ("__resources")); - addGroup (resourcesGroupID, "Resources", resourceFileRefs); - childIDs.add (resourcesGroupID); - } - - { // Add 'frameworks' group - String frameworksGroupID (createID ("__frameworks")); - addGroup (frameworksGroupID, "Frameworks", frameworkFileIDs); - childIDs.add (frameworksGroupID); - } - - { // Add 'products' group - String productsGroupID (createID ("__products")); - StringArray products; - products.add (createID ("__productFileID")); - addGroup (productsGroupID, "Products", products); - childIDs.add (productsGroupID); - } - } - + const String groupName (item.getName().toString()); const String groupID (getIDForGroup (item)); addGroup (groupID, groupName, childIDs); return groupID; } + void addMainBuildProduct() + { + jassert (xcodeFileType.isNotEmpty()); + jassert (xcodeBundleExtension.isEmpty() || xcodeBundleExtension.startsWithChar('.')); + String productName (configs.getReference(0).getTargetBinaryName().toString()); + + if (xcodeFileType == "archive.ar") + productName = getLibbedFilename (productName); + else + productName += xcodeBundleExtension; + + addBuildProduct (xcodeFileType, productName); + } + void addBuildProduct (const String& fileType, const String& binaryName) { ValueTree* v = new ValueTree (createID ("__productFileID")); @@ -954,7 +921,7 @@ private: void addTargetObject() { - ValueTree* v = new ValueTree (createID ("__target")); + ValueTree* const v = new ValueTree (createID ("__target")); v->setProperty ("isa", "PBXNativeTarget", 0); v->setProperty ("buildConfigurationList", createID ("__configList"), 0); v->setProperty ("buildPhases", "(" + indentList (buildPhaseIDs, ",") + " )", 0); @@ -964,55 +931,41 @@ private: v->setProperty ("productName", projectName, 0); v->setProperty ("productReference", createID ("__productFileID"), 0); - if (projectType.isGUIApplication()) - { - v->setProperty ("productInstallPath", "$(HOME)/Applications", 0); - v->setProperty ("productType", "com.apple.product-type.application", 0); - } - else if (projectType.isCommandLineApp()) - { - v->setProperty ("productInstallPath", "/usr/bin", 0); - v->setProperty ("productType", "com.apple.product-type.tool", 0); - } - else if (projectType.isAudioPlugin() || projectType.isBrowserPlugin()) - { - v->setProperty ("productInstallPath", "$(HOME)/Library/Audio/Plug-Ins/Components/", 0); - v->setProperty ("productType", "com.apple.product-type.bundle", 0); - } - else if (projectType.isLibrary()) - { - v->setProperty ("productType", "com.apple.product-type.library.static", 0); - } - else - jassertfalse; //xxx + if (xcodeProductInstallPath.isNotEmpty()) + v->setProperty ("productInstallPath", xcodeProductInstallPath, 0); + + jassert (xcodeProductType.isNotEmpty()); + v->setProperty ("productType", xcodeProductType, 0); misc.add (v); } void addProjectObject() { - ValueTree* v = new ValueTree (createID ("__root")); + ValueTree* const v = new ValueTree (createID ("__root")); v->setProperty ("isa", "PBXProject", 0); v->setProperty ("buildConfigurationList", createID ("__projList"), 0); v->setProperty ("compatibilityVersion", "Xcode 3.1", 0); v->setProperty ("hasScannedForEncodings", (int) 0, 0); - v->setProperty ("mainGroup", getIDForGroup (getMainGroup()), 0); + v->setProperty ("mainGroup", createID ("__mainsourcegroup"), 0); v->setProperty ("projectDirPath", "\"\"", 0); v->setProperty ("projectRoot", "\"\"", 0); v->setProperty ("targets", "( " + createID ("__target") + " )", 0); misc.add (v); } - void addPluginShellScriptPhase() + void addShellScriptPhase() { - ValueTree* v = addBuildPhase ("PBXShellScriptBuildPhase", StringArray()); - v->setProperty (Ids::name, "Copy to the different plugin folders", 0); - v->setProperty ("shellPath", "/bin/sh", 0); - v->setProperty ("shellScript", String::fromUTF8 (BinaryData::AudioPluginXCodeScript_txt, BinaryData::AudioPluginXCodeScript_txtSize) - .replace ("\\", "\\\\") - .replace ("\"", "\\\"") - .replace ("\r\n", "\\n") - .replace ("\n", "\\n"), 0); + if (xcodeShellScript.isNotEmpty()) + { + ValueTree* const v = addBuildPhase ("PBXShellScriptBuildPhase", StringArray()); + v->setProperty (Ids::name, xcodeShellScriptTitle, 0); + v->setProperty ("shellPath", "/bin/sh", 0); + v->setProperty ("shellScript", xcodeShellScript.replace ("\\", "\\\\") + .replace ("\"", "\\\"") + .replace ("\r\n", "\\n") + .replace ("\n", "\\n"), 0); + } } //============================================================================== diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp b/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp index 207de95808..ac33b1391d 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp @@ -117,7 +117,14 @@ ProjectExporter* ProjectExporter::createPlatformDefaultExporter (Project& projec //============================================================================== ProjectExporter::ProjectExporter (Project& project_, const ValueTree& settings_) - : project (project_), + : xcodeIsBundle (false), + xcodeCreatePList (false), + xcodeCanUseDwarf (true), + makefileIsDLL (false), + msvcIsDLL (false), + msvcIsWindowsSubsystem (true), + msvcNeedsDLLRuntimeLib (false), + project (project_), projectType (project_.getProjectType()), projectName (project_.getProjectName().toString()), projectFolder (project_.getFile().getParentDirectory()), @@ -125,6 +132,8 @@ ProjectExporter::ProjectExporter (Project& project_, const ValueTree& settings_) { for (int i = 0; i < jmax (1, project.getNumConfigurations()); ++i) configs.add (project.getConfiguration (i)); + + groups.add (project.getMainGroup().createCopy()); } ProjectExporter::~ProjectExporter() diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExporter.h b/extras/Introjucer/Source/Project/jucer_ProjectExporter.h index 34c3fd8bb2..51a6c696bd 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectExporter.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectExporter.h @@ -79,10 +79,6 @@ public: Value getRTASFolder() const { return getSetting (Ids::rtasFolder); } Value getAUFolder() const { return getSetting (Ids::auFolder); } - bool isVST() const { return (bool) project.getProjectType().isAudioPlugin() && (bool) project.shouldBuildVST().getValue(); } - bool isRTAS() const { return (bool) project.getProjectType().isAudioPlugin() && (bool) project.shouldBuildRTAS().getValue(); } - bool isAU() const { return (bool) project.getProjectType().isAudioPlugin() && (bool) project.shouldBuildAU().getValue(); } - Value getExtraCompilerFlags() const { return getSetting (Ids::extraCompilerFlags); } Value getExtraLinkerFlags() const { return getSetting (Ids::extraLinkerFlags); } @@ -121,14 +117,33 @@ public: String message; }; - Project::Item getMainGroup() { return project.getMainGroup(); } - RelativePath getJucePathFromTargetFolder() const; RelativePath getJucePathFromProjectFolder() const; - Array generatedGroups; + //============================================================================== + Array groups; OwnedArray libraryModules; + //============================================================================== + String xcodePackageType, xcodeBundleSignature, xcodeBundleExtension; + String xcodeProductType, xcodeProductInstallPath, xcodeFileType; + String xcodeShellScript, xcodeShellScriptTitle, xcodeOtherRezFlags; + bool xcodeIsBundle, xcodeCreatePList, xcodeCanUseDwarf; + StringArray xcodeFrameworks; + Array xcodeExtraLibrariesDebug, xcodeExtraLibrariesRelease; + + //============================================================================== + String makefileTargetSuffix; + bool makefileIsDLL; + + //============================================================================== + String msvcTargetSuffix; + StringPairArray msvcExtraPreprocessorDefs; + bool msvcIsDLL, msvcIsWindowsSubsystem, msvcNeedsDLLRuntimeLib; + String msvcExtraLinkerOptions, msvcDelayLoadedDLLs, msvcModuleDefinitionFile; + String msvcPostBuildCommand, msvcPostBuildOutputs; + + //============================================================================== void createLibraryModules(); protected: diff --git a/extras/Introjucer/Source/Project/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project/jucer_ProjectSaver.h index f9f1dcbd06..2aab34e0cb 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectSaver.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectSaver.h @@ -37,7 +37,7 @@ public: : project (project_), projectFile (projectFile_), generatedFilesGroup (Project::Item::createGroup (project, project.getJuceCodeGroupName())) { - generatedFilesGroup.setID ("__jucelibfiles"); + generatedFilesGroup.setID (getGeneratedGroupID()); } Project& getProject() noexcept { return project; } @@ -95,6 +95,8 @@ public: << newLine; } + static const char* getGeneratedGroupID() noexcept { return "__jucelibfiles"; } + private: Project& project; const File projectFile; @@ -312,17 +314,15 @@ private: if (exporter->getTargetFolder().createDirectory()) { + project.getProjectType().prepareExporter (*exporter); + // start with a copy of the basic files, as each exporter may modify it. const ValueTree generatedGroupCopy (generatedFilesGroup.getNode().createCopy()); - int j; - for (j = 0; j < exporter->libraryModules.size(); ++j) - exporter->libraryModules.getUnchecked(j)->createFiles (*exporter, *this); - - exporter->generatedGroups.add (generatedFilesGroup); + for (int j = 0; j < exporter->libraryModules.size(); ++j) + exporter->libraryModules.getUnchecked(j)->prepareExporter (*exporter, *this); - for (j = 0; j < exporter->libraryModules.size(); ++j) - exporter->libraryModules.getUnchecked(j)->addExtraCodeGroups (*exporter, exporter->generatedGroups); + exporter->groups.add (generatedFilesGroup); try { diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp index 3e2b171d02..76b10317a2 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp @@ -152,7 +152,7 @@ public: } } - void createFiles (const ProjectExporter& exporter, ProjectSaver& projectSaver) const + void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const { const Project& project = exporter.getProject(); @@ -195,10 +195,9 @@ public: project.getGeneratedCodeFolder().getChildFile (sourceWrapper).deleteFile(); } } - } - void addExtraCodeGroups (const ProjectExporter& exporter, Array& groups) const - { + if (project.isConfigFlagEnabled ("JUCE_PLUGINHOST_AU")) + exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); } void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const @@ -213,7 +212,7 @@ public: createVSTPathEditor (exporter, props); } - void getConfigFlags (Project& project, OwnedArray& flags) + void getConfigFlags (Project& project, OwnedArray& flags) const { if (project.getJuceLinkageMode() == Project::notLinkedToJuce) return; @@ -327,23 +326,28 @@ private: } }; +//============================================================================== +#define JUCE_PLUGINS_ROOT "src/audio/plugin_client/" +#define JUCE_PLUGINS_PATH_VST JUCE_PLUGINS_ROOT "VST/" +#define JUCE_PLUGINS_PATH_RTAS JUCE_PLUGINS_ROOT "RTAS/" +#define JUCE_PLUGINS_PATH_AU JUCE_PLUGINS_ROOT "AU/" + //============================================================================== class VSTLibraryModule : public LibraryModule { public: VSTLibraryModule() {} - void createFiles (const ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - writePluginCharacteristicsFile (projectSaver); - } - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) { } - void addExtraCodeGroups (const ProjectExporter& exporter, Array& groups) const + void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const { + writePluginCharacteristicsFile (projectSaver); + + exporter.makefileTargetSuffix = ".so"; + Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), "Juce VST Wrapper")); group.setID ("__jucevstfiles"); @@ -355,7 +359,7 @@ public: for (const char** f = (exporter.isXcode() ? osxFiles : winFiles); *f != 0; ++f) group.addRelativeFile (exporter.getJucePathFromProjectFolder().getChildFile (*f), -1, true); - groups.add (group); + exporter.groups.add (group); } void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const @@ -376,7 +380,7 @@ public: createVSTPathEditor (exporter, props); } - void getConfigFlags (Project& project, OwnedArray& flags) + void getConfigFlags (Project& project, OwnedArray& flags) const { } }; @@ -387,17 +391,39 @@ class RTASLibraryModule : public LibraryModule public: RTASLibraryModule() {} - void createFiles (const ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - writePluginCharacteristicsFile (projectSaver); - } - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) { } - void addExtraCodeGroups (const ProjectExporter& exporter, Array& groups) const + void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const { + exporter.xcodeCanUseDwarf = false; + + exporter.msvcTargetSuffix = ".dpm"; + exporter.msvcNeedsDLLRuntimeLib = true; + + RelativePath rtasFolder (exporter.getRTASFolder().toString(), RelativePath::projectFolder); + exporter.msvcExtraPreprocessorDefs.set ("JucePlugin_WinBag_path", CodeHelpers::addEscapeChars (rtasFolder.getChildFile ("WinBag") + .toWindowsStyle().quoted())); + + exporter.msvcExtraLinkerOptions = "/FORCE:multiple"; + exporter.msvcDelayLoadedDLLs = "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll"; + exporter.msvcModuleDefinitionFile = exporter.getJucePathFromTargetFolder() + .getChildFile (JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinExports.def") + .toWindowsStyle(); + + exporter.msvcPostBuildOutputs = "\"$(TargetPath)\".rsr"; + exporter.msvcPostBuildCommand = "copy /Y \"" + exporter.getJucePathFromTargetFolder() + .getChildFile (JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinResources.rsr") + .toWindowsStyle() + + "\" \"$(TargetPath)\".rsr"; + + + exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); + exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); + + writePluginCharacteristicsFile (projectSaver); + if (exporter.isXcode() || exporter.isVisualStudio()) { Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), "Juce RTAS Wrapper")); @@ -422,15 +448,16 @@ public: { const RelativePath file (exporter.getJucePathFromProjectFolder().getChildFile (*f)); group.addRelativeFile (file, -1, file.hasFileExtension ("cpp;mm;r")); + group.getChild (group.getNumChildren() - 1).getShouldInhibitWarningsValue() = true; } - groups.add (group); + exporter.groups.add (group); } } void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const { - RelativePath sdkFolder (exporter.getRTASFolder().toString(), RelativePath::projectFolder); + RelativePath rtasFolder (exporter.getRTASFolder().toString(), RelativePath::projectFolder); if (exporter.isVisualStudio()) { @@ -465,7 +492,7 @@ public: "xplat/AVX/avx2/avx2sdk/inc" }; for (int i = 0; i < numElementsInArray (p); ++i) - paths.add (exporter.rebaseFromProjectFolderToBuildTarget (sdkFolder.getChildFile (p[i])).toWindowsStyle()); + paths.add (exporter.rebaseFromProjectFolderToBuildTarget (rtasFolder.getChildFile (p[i])).toWindowsStyle()); } else if (exporter.isXcode()) { @@ -502,7 +529,7 @@ public: "xplat/AVX/avx2/avx2sdk/utils" }; for (int i = 0; i < numElementsInArray (p); ++i) - paths.add (exporter.rebaseFromProjectFolderToBuildTarget (sdkFolder.getChildFile (p[i])).toUnixStyle()); + paths.add (exporter.rebaseFromProjectFolderToBuildTarget (rtasFolder.getChildFile (p[i])).toUnixStyle()); } } @@ -515,7 +542,7 @@ public: } } - void getConfigFlags (Project& project, OwnedArray& flags) + void getConfigFlags (Project& project, OwnedArray& flags) const { } }; @@ -526,19 +553,18 @@ class AULibraryModule : public LibraryModule public: AULibraryModule() {} - void createFiles (const ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - writePluginCharacteristicsFile (projectSaver); - } - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) { } - void addExtraCodeGroups (const ProjectExporter& exporter, Array& groups) const + void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const { + writePluginCharacteristicsFile (projectSaver); + if (exporter.isXcode()) { + exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); + Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), "Juce AU Wrapper")); group.setID ("__juceaufiles"); @@ -616,7 +642,7 @@ public: } } - groups.add (group); + exporter.groups.add (group); } } @@ -633,7 +659,7 @@ public: { } - void getConfigFlags (Project& project, OwnedArray& flags) + void getConfigFlags (Project& project, OwnedArray& flags) const { } }; @@ -670,6 +696,10 @@ const ProjectType* ProjectType::findType (const String& typeCode) return nullptr; } +void ProjectType::prepareExporter (ProjectExporter& exporter) const +{ +} + void ProjectType::createRequiredModules (Project& project, OwnedArray& modules) const { modules.add (new JuceLibraryModule()); @@ -684,6 +714,20 @@ public: static const char* getTypeName() noexcept { return "guiapp"; } bool isGUIApplication() const { return true; } + void prepareExporter (ProjectExporter& exporter) const + { + exporter.xcodePackageType = "APPL"; + exporter.xcodeBundleSignature = "????"; + exporter.xcodeCreatePList = true; + exporter.xcodeFileType = "wrapper.application"; + exporter.xcodeBundleExtension = ".app"; + exporter.xcodeProductType = "com.apple.product-type.application"; + exporter.xcodeProductInstallPath = "$(HOME)/Applications"; + + exporter.msvcIsWindowsSubsystem = true; + exporter.msvcTargetSuffix = ".exe"; + } + void createRequiredModules (Project& project, OwnedArray& modules) const { ProjectType::createRequiredModules (project, modules); @@ -699,6 +743,19 @@ public: static const char* getTypeName() noexcept { return "consoleapp"; } bool isCommandLineApp() const { return true; } + void prepareExporter (ProjectExporter& exporter) const + { + exporter.xcodeCreatePList = false; + exporter.xcodeFileType = "compiled.mach-o.executable"; + exporter.xcodeBundleExtension = String::empty; + exporter.xcodeProductType = "com.apple.product-type.tool"; + exporter.xcodeProductInstallPath = "/usr/bin"; + + exporter.msvcIsWindowsSubsystem = false; + exporter.msvcTargetSuffix = ".exe"; + exporter.msvcExtraPreprocessorDefs.set ("_CONSOLE", ""); + } + void createRequiredModules (Project& project, OwnedArray& modules) const { ProjectType::createRequiredModules (project, modules); @@ -714,6 +771,19 @@ public: static const char* getTypeName() noexcept { return "library"; } bool isLibrary() const { return true; } + void prepareExporter (ProjectExporter& exporter) const + { + exporter.xcodeCreatePList = false; + exporter.xcodeFileType = "archive.ar"; + exporter.xcodeProductType = "com.apple.product-type.library.static"; + exporter.xcodeProductInstallPath = String::empty; + + exporter.makefileTargetSuffix = ".so"; + + exporter.msvcTargetSuffix = ".lib"; + exporter.msvcExtraPreprocessorDefs.set ("_LIB", ""); + } + void createRequiredModules (Project& project, OwnedArray& modules) const { ProjectType::createRequiredModules (project, modules); @@ -729,6 +799,30 @@ public: static const char* getTypeName() noexcept { return "audioplug"; } bool isAudioPlugin() const { return true; } + void prepareExporter (ProjectExporter& exporter) const + { + exporter.xcodeIsBundle = true; + exporter.xcodeCreatePList = true; + exporter.xcodePackageType = "TDMw"; + exporter.xcodeBundleSignature = "PTul"; + exporter.xcodeFileType = "wrapper.cfbundle"; + exporter.xcodeBundleExtension = ".component"; + exporter.xcodeProductType = "com.apple.product-type.bundle"; + exporter.xcodeProductInstallPath = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + + exporter.xcodeShellScriptTitle = "Copy to the different plugin folders"; + exporter.xcodeShellScript = String::fromUTF8 (BinaryData::AudioPluginXCodeScript_txt, BinaryData::AudioPluginXCodeScript_txtSize); + + exporter.xcodeOtherRezFlags = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64" + " -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" + " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\""; + + exporter.msvcTargetSuffix = ".dll"; + exporter.msvcIsDLL = true; + + exporter.makefileIsDLL = true; + } + void createRequiredModules (Project& project, OwnedArray& modules) const { ProjectType::createRequiredModules (project, modules); @@ -745,10 +839,40 @@ public: }; //============================================================================== -static ProjectType_GUIApp guiType; -static ProjectType_ConsoleApp consoleType; -static ProjectType_Library staticLibType; -static ProjectType_AudioPlugin audioPluginType; +class ProjectType_BrowserPlugin : public ProjectType +{ +public: + ProjectType_BrowserPlugin() : ProjectType (getTypeName(), "Browser Plug-in") {} + + static const char* getTypeName() noexcept { return "browserplug"; } + bool isBrowserPlugin() const { return true; } + + void prepareExporter (ProjectExporter& exporter) const + { + exporter.xcodeIsBundle = true; + exporter.xcodeCreatePList = true; + exporter.xcodeFileType = "wrapper.cfbundle"; + exporter.xcodeBundleExtension = ".plugin"; + exporter.xcodeProductType = "com.apple.product-type.bundle"; + exporter.xcodeProductInstallPath = "$(HOME)/Library/Internet Plug-Ins//"; + + exporter.msvcTargetSuffix = ".dll"; + exporter.msvcIsDLL = true; + + exporter.makefileIsDLL = true; + } + + void createRequiredModules (Project& project, OwnedArray& modules) const + { + ProjectType::createRequiredModules (project, modules); + } +}; + +//============================================================================== +static ProjectType_GUIApp guiType; +static ProjectType_ConsoleApp consoleType; +static ProjectType_Library libraryType; +static ProjectType_AudioPlugin audioPluginType; //============================================================================== const char* ProjectType::getGUIAppTypeName() { return ProjectType_GUIApp::getTypeName(); } diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.h b/extras/Introjucer/Source/Project/jucer_ProjectType.h index 4f67eaf2fc..228aa4ee74 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.h @@ -38,12 +38,11 @@ public: LibraryModule(); virtual ~LibraryModule() {} - virtual void addExtraCodeGroups (const ProjectExporter& exporter, Array& groups) const = 0; - virtual void createFiles (const ProjectExporter& exporter, ProjectSaver& projectSaver) const = 0; + virtual void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const = 0; virtual void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) = 0; virtual void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const = 0; virtual void createPropertyEditors (const ProjectExporter& exporter, Array & props) const = 0; - virtual void getConfigFlags (Project& project, OwnedArray& flags) = 0; + virtual void getConfigFlags (Project& project, OwnedArray& flags) const = 0; }; @@ -72,6 +71,7 @@ public: static const char* getConsoleAppTypeName(); static const char* getAudioPluginTypeName(); + virtual void prepareExporter (ProjectExporter& exporter) const; virtual void createRequiredModules (Project& project, OwnedArray& modules) const; protected: diff --git a/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj b/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj index f5a53c20e1..19b4118261 100644 --- a/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj @@ -6,18 +6,18 @@ objectVersion = 45; objects = { - 92A7143821252FB13891CC53 = { isa = PBXBuildFile; fileRef = 2B37CDCFCBC0AC0AEAA9A479; }; + 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; DEDBEF9AC48F8AD1502B6DC2 = { isa = PBXBuildFile; fileRef = 6A7D4DC561F2DD95ABD76F0D; }; - 29F75103FFB220F2E10CF9A9 = { isa = PBXBuildFile; fileRef = 3CE85049C3E91E38E71FF149; }; + 92A7143821252FB13891CC53 = { isa = PBXBuildFile; fileRef = 2B37CDCFCBC0AC0AEAA9A479; }; 687BFA1946EAD55C5C39907C = { isa = PBXBuildFile; fileRef = DA3360514D221A36446DC6DE; }; ED283D0ABEC2EC312E40C6B4 = { isa = PBXBuildFile; fileRef = 010E9F48D32EA5C5451D8086; }; - 0CFE603DE523940AF3352227 = { isa = PBXBuildFile; fileRef = 9BE978B2BDA9B7DA3BE403B4; }; 420A9C88B711F5E4997FAAD0 = { isa = PBXBuildFile; fileRef = CB7CDD93EE1469B969AF844E; }; + 29F75103FFB220F2E10CF9A9 = { isa = PBXBuildFile; fileRef = 3CE85049C3E91E38E71FF149; }; C1437C4A64EB72D2A86729D3 = { isa = PBXBuildFile; fileRef = 85E860BFDA9D53EF77C08873; }; - F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; B9911F3AC6CADFB47D1EA8D7 = { isa = PBXBuildFile; fileRef = 4D3E0D18D24F78B6BDE0E5DA; }; + F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; 452052BBDBAF17DCC06EF521 = { isa = PBXBuildFile; fileRef = E0C3359BB4B5260CEB917D46; }; - 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; + 0CFE603DE523940AF3352227 = { isa = PBXBuildFile; fileRef = 9BE978B2BDA9B7DA3BE403B4; }; C0A3C433D146C7E1FFCADFB2 = { isa = PBXBuildFile; fileRef = 4ADECB09FD213B2E910EA229; }; 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; @@ -46,18 +46,18 @@ 2E98B1DEA8B7FC20ACCD2E6D = { isa = PBXBuildFile; fileRef = F42C91375F3314CA6EE65697; }; 3A2EC17F8472C338D6A26278 = { isa = PBXBuildFile; fileRef = 4D526A336B2E97ED42CADAD7; }; 36B5D100604D9A300187B773 = { isa = PBXBuildFile; fileRef = 8679333E781A0A0116AE5D26; }; - 2B37CDCFCBC0AC0AEAA9A479 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 6A7D4DC561F2DD95ABD76F0D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - 3CE85049C3E91E38E71FF149 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 2B37CDCFCBC0AC0AEAA9A479 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; DA3360514D221A36446DC6DE = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; 010E9F48D32EA5C5451D8086 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; - 9BE978B2BDA9B7DA3BE403B4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; CB7CDD93EE1469B969AF844E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 3CE85049C3E91E38E71FF149 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; 85E860BFDA9D53EF77C08873 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 4D3E0D18D24F78B6BDE0E5DA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; + 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; E0C3359BB4B5260CEB917D46 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; - 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 9BE978B2BDA9B7DA3BE403B4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; 4ADECB09FD213B2E910EA229 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; @@ -141,13 +141,13 @@ 013E12213AD7B4BEB28A31BE, 3369CDF7AFD79D6F3B3744B1, C7327AD5191A22C1FBD4F5F9 ); name = "Binary Data"; sourceTree = ""; }; - A10CCE1B2A215D5AE12386E3 = { isa = PBXGroup; children = ( + D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( 885A20D277AD743C21C822B5, 42291DB48BF81754D90FE200, 49138F5652E637AA67CD4B70, 18BDC68F9701862603871A7A, 1045A435754FDEACC6D7259C, - 7B2518B268DCBBF7B74F2B1D ); name = Source; sourceTree = ""; }; + 7B2518B268DCBBF7B74F2B1D ); name = "Juce Demo"; sourceTree = ""; }; 4C2E644EAC72C263D09C74BB = { isa = PBXGroup; children = ( EE37A0ECE471A928C6170F9B, E6EF5CE04768BA5B10050D51, @@ -161,22 +161,22 @@ 1A9DEA62F6A3CD1FB5CF105B, 4ADECB09FD213B2E910EA229 ); name = Resources; sourceTree = ""; }; 244B9AF7D858999910FD243E = { isa = PBXGroup; children = ( - 2B37CDCFCBC0AC0AEAA9A479, + 7B6D428682221857EAEA1C7D, 6A7D4DC561F2DD95ABD76F0D, - 3CE85049C3E91E38E71FF149, + 2B37CDCFCBC0AC0AEAA9A479, DA3360514D221A36446DC6DE, 010E9F48D32EA5C5451D8086, - 9BE978B2BDA9B7DA3BE403B4, CB7CDD93EE1469B969AF844E, + 3CE85049C3E91E38E71FF149, 85E860BFDA9D53EF77C08873, - 4A96850C150C1C6D87A0D21A, 4D3E0D18D24F78B6BDE0E5DA, + 4A96850C150C1C6D87A0D21A, E0C3359BB4B5260CEB917D46, - 7B6D428682221857EAEA1C7D ); name = Frameworks; sourceTree = ""; }; + 9BE978B2BDA9B7DA3BE403B4 ); name = Frameworks; sourceTree = ""; }; 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = ""; }; - D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( - A10CCE1B2A215D5AE12386E3, + 1609BCDD8EC2BA2A162B68F3 = { isa = PBXGroup; children = ( + D6A4B94A747BFCF299B17932, 4C2E644EAC72C263D09C74BB, 019CD423F1EFF7A1A0A079DD, 244B9AF7D858999910FD243E, @@ -282,23 +282,23 @@ 3A2EC17F8472C338D6A26278, 36B5D100604D9A300187B773 ); runOnlyForDeploymentPostprocessing = 0; }; 2E5F3CCB074AC0B18683A4F3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 92A7143821252FB13891CC53, + 36AEC0EAE7AB9D061AD9EFEF, DEDBEF9AC48F8AD1502B6DC2, - 29F75103FFB220F2E10CF9A9, + 92A7143821252FB13891CC53, 687BFA1946EAD55C5C39907C, ED283D0ABEC2EC312E40C6B4, - 0CFE603DE523940AF3352227, 420A9C88B711F5E4997FAAD0, + 29F75103FFB220F2E10CF9A9, C1437C4A64EB72D2A86729D3, - F1BAE9DCD179C8784FF28F8D, B9911F3AC6CADFB47D1EA8D7, + F1BAE9DCD179C8784FF28F8D, 452052BBDBAF17DCC06EF521, - 36AEC0EAE7AB9D061AD9EFEF ); runOnlyForDeploymentPostprocessing = 0; }; + 0CFE603DE523940AF3352227 ); runOnlyForDeploymentPostprocessing = 0; }; F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( AE930F136F638C3C939F7146, 7A3A0C722E5F96990CA1B5F2, 2E5F3CCB074AC0B18683A4F3 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 39B98C60B57B831FE5215CDD; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = D6A4B94A747BFCF299B17932; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; + FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 1609BCDD8EC2BA2A162B68F3; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; }; rootObject = FD051827ADE403C022034508; } diff --git a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj index df55e46633..dce0f77a99 100644 --- a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj +++ b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj @@ -128,93 +128,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj index a14e21f360..3838035562 100644 --- a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj +++ b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj @@ -128,93 +128,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters index efe2e30d8e..27e96ed573 100644 --- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters +++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters @@ -5,14 +5,11 @@ {D3C1BE7C-161D-78D2-AA4A-AE5B28A49DC5} - - {D4BFDBA1-04DA-1AF7-BEDF-7A5C63D00D65} + + {0F706C6E-4C56-28CC-6E17-621CE5C94904} - - {383A10E9-7C30-CC23-0554-D95AC593AAFC} - - - {6E0A4587-C5D5-BB9D-A788-42A182380C69} + + {2AA5AF01-B73D-17DA-570C-25BCC6A2DE34} {F7048EA6-F4B2-F31B-E402-E05D678A1111} @@ -20,88 +17,88 @@ - Juce Demo\Source + Juce Demo - Juce Demo\Source + Juce Demo - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Binary Data + Juce Demo\Binary Data - Juce Demo\Source\Binary Data + Juce Demo\Binary Data - Juce Demo\Source\Binary Data + Juce Demo\Binary Data - Juce Demo\Source\Binary Data + Juce Demo\Binary Data - Juce Demo\Source\Binary Data + Juce Demo\Binary Data - Juce Demo\Source\Binary Data + Juce Demo\Binary Data Juce Library Code @@ -121,31 +118,31 @@ - Juce Demo\Source + Juce Demo - Juce Demo\Source + Juce Demo - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos - Juce Demo\Source\Demos + Juce Demo\Demos Juce Library Code diff --git a/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj b/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj index c443e93978..6c93b035fc 100644 --- a/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj @@ -6,13 +6,13 @@ objectVersion = 45; objects = { - 1DF18F6B9CCFF7BD07C36AC2 = { isa = PBXBuildFile; fileRef = CE3A43E4FB4D61350C000764; }; - 3BE296F09A47C0ECE4D91CF5 = { isa = PBXBuildFile; fileRef = 90E63FC1333F952D526FF194; }; + 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; 7938A4501BDD574C4121B988 = { isa = PBXBuildFile; fileRef = 0D376A9686DFA1EAF983841C; }; 8223C2805B1A9ECA27926EB5 = { isa = PBXBuildFile; fileRef = 1CFED196602026EF91937A0E; }; - 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; - F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; + 3BE296F09A47C0ECE4D91CF5 = { isa = PBXBuildFile; fileRef = 90E63FC1333F952D526FF194; }; 268F2BF480CF9844E2F2B974 = { isa = PBXBuildFile; fileRef = B72353F9624D99DB6F93E400; }; + F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; + 1DF18F6B9CCFF7BD07C36AC2 = { isa = PBXBuildFile; fileRef = CE3A43E4FB4D61350C000764; }; C0A3C433D146C7E1FFCADFB2 = { isa = PBXBuildFile; fileRef = 4ADECB09FD213B2E910EA229; }; 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; @@ -41,13 +41,13 @@ 2E98B1DEA8B7FC20ACCD2E6D = { isa = PBXBuildFile; fileRef = F42C91375F3314CA6EE65697; }; 3A2EC17F8472C338D6A26278 = { isa = PBXBuildFile; fileRef = 4D526A336B2E97ED42CADAD7; }; 36B5D100604D9A300187B773 = { isa = PBXBuildFile; fileRef = 8679333E781A0A0116AE5D26; }; - CE3A43E4FB4D61350C000764 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 90E63FC1333F952D526FF194 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 0D376A9686DFA1EAF983841C = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 1CFED196602026EF91937A0E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; - 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 90E63FC1333F952D526FF194 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; B72353F9624D99DB6F93E400 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + CE3A43E4FB4D61350C000764 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; 4ADECB09FD213B2E910EA229 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; @@ -131,13 +131,13 @@ 013E12213AD7B4BEB28A31BE, 3369CDF7AFD79D6F3B3744B1, C7327AD5191A22C1FBD4F5F9 ); name = "Binary Data"; sourceTree = ""; }; - A10CCE1B2A215D5AE12386E3 = { isa = PBXGroup; children = ( + D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( 885A20D277AD743C21C822B5, 42291DB48BF81754D90FE200, 49138F5652E637AA67CD4B70, 18BDC68F9701862603871A7A, 1045A435754FDEACC6D7259C, - 7B2518B268DCBBF7B74F2B1D ); name = Source; sourceTree = ""; }; + 7B2518B268DCBBF7B74F2B1D ); name = "Juce Demo"; sourceTree = ""; }; 4C2E644EAC72C263D09C74BB = { isa = PBXGroup; children = ( EE37A0ECE471A928C6170F9B, E6EF5CE04768BA5B10050D51, @@ -151,17 +151,17 @@ 1A9DEA62F6A3CD1FB5CF105B, 4ADECB09FD213B2E910EA229 ); name = Resources; sourceTree = ""; }; 244B9AF7D858999910FD243E = { isa = PBXGroup; children = ( - CE3A43E4FB4D61350C000764, - 90E63FC1333F952D526FF194, + 7B6D428682221857EAEA1C7D, 0D376A9686DFA1EAF983841C, 1CFED196602026EF91937A0E, - 7B6D428682221857EAEA1C7D, + 90E63FC1333F952D526FF194, + B72353F9624D99DB6F93E400, 4A96850C150C1C6D87A0D21A, - B72353F9624D99DB6F93E400 ); name = Frameworks; sourceTree = ""; }; + CE3A43E4FB4D61350C000764 ); name = Frameworks; sourceTree = ""; }; 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = ""; }; - D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( - A10CCE1B2A215D5AE12386E3, + 1609BCDD8EC2BA2A162B68F3 = { isa = PBXGroup; children = ( + D6A4B94A747BFCF299B17932, 4C2E644EAC72C263D09C74BB, 019CD423F1EFF7A1A0A079DD, 244B9AF7D858999910FD243E, @@ -270,18 +270,18 @@ 3A2EC17F8472C338D6A26278, 36B5D100604D9A300187B773 ); runOnlyForDeploymentPostprocessing = 0; }; 2E5F3CCB074AC0B18683A4F3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1DF18F6B9CCFF7BD07C36AC2, - 3BE296F09A47C0ECE4D91CF5, + 36AEC0EAE7AB9D061AD9EFEF, 7938A4501BDD574C4121B988, 8223C2805B1A9ECA27926EB5, - 36AEC0EAE7AB9D061AD9EFEF, + 3BE296F09A47C0ECE4D91CF5, + 268F2BF480CF9844E2F2B974, F1BAE9DCD179C8784FF28F8D, - 268F2BF480CF9844E2F2B974 ); runOnlyForDeploymentPostprocessing = 0; }; + 1DF18F6B9CCFF7BD07C36AC2 ); runOnlyForDeploymentPostprocessing = 0; }; F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( AE930F136F638C3C939F7146, 7A3A0C722E5F96990CA1B5F2, 2E5F3CCB074AC0B18683A4F3 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 39B98C60B57B831FE5215CDD; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = D6A4B94A747BFCF299B17932; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; + FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 1609BCDD8EC2BA2A162B68F3; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; }; rootObject = FD051827ADE403C022034508; } diff --git a/extras/JuceDemo/Juce Demo.jucer b/extras/JuceDemo/Juce Demo.jucer index 129b915b8e..7338693643 100644 --- a/extras/JuceDemo/Juce Demo.jucer +++ b/extras/JuceDemo/Juce Demo.jucer @@ -34,80 +34,78 @@ osxArchitecture="32BitUniversal"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + diff --git a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj index 1c090fa1f8..1ade74cb95 100644 --- a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj +++ b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj @@ -128,17 +128,15 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/extras/audio plugin host/Plugin Host.jucer b/extras/audio plugin host/Plugin Host.jucer index 2536a3c072..6866a0b8a8 100644 --- a/extras/audio plugin host/Plugin Host.jucer +++ b/extras/audio plugin host/Plugin Host.jucer @@ -27,26 +27,24 @@ osxSDK="default" osxCompatibility="10.5 SDK" osxArchitecture="32BitUniversal"/> - - - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + + @@ -144,9 +145,6 @@ - - - diff --git a/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj index d6d7c5887c..f380cd40dc 100644 --- a/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj +++ b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj @@ -128,12 +128,13 @@ - - - - - - + + + + + + + @@ -144,9 +145,6 @@ - - - diff --git a/extras/audio plugins/demo/JuceDemoPlugin.jucer b/extras/audio plugins/demo/JuceDemoPlugin.jucer index d22020447c..4a982d0ab5 100644 --- a/extras/audio plugins/demo/JuceDemoPlugin.jucer +++ b/extras/audio plugins/demo/JuceDemoPlugin.jucer @@ -25,16 +25,14 @@ osxSDK="default" osxCompatibility="default"/> - - - - - - + + + + (audioDataBlock.getData()); - - for (int j = numChannels; --j >= 0;) + while (numSamples > 0) { - bufferList->mBuffers[j].mNumberChannels = 1; - bufferList->mBuffers[j].mDataByteSize = numBytes; - bufferList->mBuffers[j].mData = data; - data += numSamples; - } + const int numThisTime = jmin (8192, numSamples); + const int numBytes = numThisTime * sizeof (float); - UInt32 numFramesToRead = numSamples; - status = ExtAudioFileRead (audioFileRef, &numFramesToRead, bufferList); - if (status != noErr) - return false; + audioDataBlock.ensureSize (numBytes * numChannels, false); + float* data = static_cast (audioDataBlock.getData()); - for (int i = numDestChannels; --i >= 0;) - { - if (destSamples[i] != nullptr) + for (int j = numChannels; --j >= 0;) { - if (i < numChannels) - memcpy (destSamples[i] + startOffsetInDestBuffer, bufferList->mBuffers[i].mData, numBytes); - else - zeromem (destSamples[i] + startOffsetInDestBuffer, numBytes); + bufferList->mBuffers[j].mNumberChannels = 1; + bufferList->mBuffers[j].mDataByteSize = numBytes; + bufferList->mBuffers[j].mData = data; + data += numThisTime; } + + UInt32 numFramesToRead = numThisTime; + status = ExtAudioFileRead (audioFileRef, &numFramesToRead, bufferList); + if (status != noErr) + return false; + + for (int i = numDestChannels; --i >= 0;) + { + if (destSamples[i] != nullptr) + { + if (i < numChannels) + memcpy (destSamples[i] + startOffsetInDestBuffer, bufferList->mBuffers[i].mData, numBytes); + else + zeromem (destSamples[i] + startOffsetInDestBuffer, numBytes); + } + } + + startOffsetInDestBuffer += numThisTime; + numSamples -= numThisTime; } return true; diff --git a/juce_amalgamated.h b/juce_amalgamated.h index 7b2e794354..dcf9d056c7 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 54 -#define JUCE_BUILDNUMBER 22 +#define JUCE_BUILDNUMBER 23 /** Current Juce version number. @@ -42749,7 +42749,7 @@ public: /** This structure is filled-in by the AudioPlayHead::getCurrentPosition() method. */ - struct CurrentPositionInfo + struct JUCE_API CurrentPositionInfo { /** The tempo in BPM */ double bpm; diff --git a/src/audio/audio_file_formats/juce_CoreAudioFormat.cpp b/src/audio/audio_file_formats/juce_CoreAudioFormat.cpp index ff43999ff9..0ff09d3286 100644 --- a/src/audio/audio_file_formats/juce_CoreAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_CoreAudioFormat.cpp @@ -155,32 +155,40 @@ public: if (status != noErr) return false; - const int numBytes = numSamples * sizeof (float); - audioDataBlock.ensureSize (numBytes * numChannels, false); - float* data = static_cast (audioDataBlock.getData()); - - for (int j = numChannels; --j >= 0;) + while (numSamples > 0) { - bufferList->mBuffers[j].mNumberChannels = 1; - bufferList->mBuffers[j].mDataByteSize = numBytes; - bufferList->mBuffers[j].mData = data; - data += numSamples; - } + const int numThisTime = jmin (8192, numSamples); + const int numBytes = numThisTime * sizeof (float); - UInt32 numFramesToRead = numSamples; - status = ExtAudioFileRead (audioFileRef, &numFramesToRead, bufferList); - if (status != noErr) - return false; + audioDataBlock.ensureSize (numBytes * numChannels, false); + float* data = static_cast (audioDataBlock.getData()); - for (int i = numDestChannels; --i >= 0;) - { - if (destSamples[i] != nullptr) + for (int j = numChannels; --j >= 0;) + { + bufferList->mBuffers[j].mNumberChannels = 1; + bufferList->mBuffers[j].mDataByteSize = numBytes; + bufferList->mBuffers[j].mData = data; + data += numThisTime; + } + + UInt32 numFramesToRead = numThisTime; + status = ExtAudioFileRead (audioFileRef, &numFramesToRead, bufferList); + if (status != noErr) + return false; + + for (int i = numDestChannels; --i >= 0;) { - if (i < numChannels) - memcpy (destSamples[i] + startOffsetInDestBuffer, bufferList->mBuffers[i].mData, numBytes); - else - zeromem (destSamples[i] + startOffsetInDestBuffer, numBytes); + if (destSamples[i] != nullptr) + { + if (i < numChannels) + memcpy (destSamples[i] + startOffsetInDestBuffer, bufferList->mBuffers[i].mData, numBytes); + else + zeromem (destSamples[i] + startOffsetInDestBuffer, numBytes); + } } + + startOffsetInDestBuffer += numThisTime; + numSamples -= numThisTime; } return true; diff --git a/src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp b/src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp index b76e38997d..5886691c61 100644 --- a/src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp +++ b/src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp @@ -51,22 +51,22 @@ #if JucePlugin_Build_VST - #define DllMain DllMainRTAS - #include - #undef DllMain - - extern BOOL WINAPI DllMainVST (HINSTANCE instance, DWORD dwReason, LPVOID); - - // This overloaded DllMain can work as either an RTAS or a VST.. - extern "C" BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved) - { - if (GetModuleHandle (_T("DAE.DLL")) != 0) - return DllMainRTAS (hInstance, ul_reason_for_call, lpReserved); - else - return DllMainVST (hInstance, ul_reason_for_call, lpReserved); - } + #define DllMain DllMainRTAS + #include + #undef DllMain + + extern BOOL WINAPI DllMainVST (HINSTANCE instance, DWORD dwReason, LPVOID); + + // This overloaded DllMain can work as either an RTAS or a VST.. + extern "C" BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved) + { + if (GetModuleHandleA ("DAE.DLL") != 0) + return DllMainRTAS (hInstance, ul_reason_for_call, lpReserved); + else + return DllMainVST (hInstance, ul_reason_for_call, lpReserved); + } #else - #include + #include #endif #include @@ -80,8 +80,6 @@ #else #if _MSC_VER - // (defining these stubs just makes it easier to quickly turn off the RTAS build without removing - // the exports table from your project settings) short __stdcall NewPlugIn (void*) { return 0; } short __stdcall _PI_GetRoutineDescriptor (long, void*) { return 0; } #endif diff --git a/src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp b/src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp index 48d8657a94..de7d87f475 100644 --- a/src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp +++ b/src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp @@ -85,6 +85,7 @@ //============================================================================== #ifdef _MSC_VER #pragma pack (push, 8) + #pragma warning (disable: 4263 4264) #endif #include "../juce_PluginHeaders.h" diff --git a/src/audio/plugin_client/VST/juce_VST_Wrapper.cpp b/src/audio/plugin_client/VST/juce_VST_Wrapper.cpp index ba27dc65f1..bfc7a27b08 100644 --- a/src/audio/plugin_client/VST/juce_VST_Wrapper.cpp +++ b/src/audio/plugin_client/VST/juce_VST_Wrapper.cpp @@ -147,7 +147,7 @@ static bool recursionCheck = false; static JUCE_NAMESPACE::uint32 lastMasterIdleCall = 0; BEGIN_JUCE_NAMESPACE - extern void juce_callAnyTimersSynchronously(); + extern void JUCE_API juce_callAnyTimersSynchronously(); #if JUCE_MAC extern void initialiseMac(); diff --git a/src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp b/src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp index bf3c97dc55..99f14ed515 100644 --- a/src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp +++ b/src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp @@ -122,7 +122,7 @@ BEGIN_JUCE_NAMESPACE static void _clearfp() {} #endif -extern void juce_callAnyTimersSynchronously(); +extern void JUCE_API juce_callAnyTimersSynchronously(); //============================================================================== diff --git a/src/audio/processors/juce_AudioPlayHead.h b/src/audio/processors/juce_AudioPlayHead.h index b9623763b6..cb1e562dfe 100644 --- a/src/audio/processors/juce_AudioPlayHead.h +++ b/src/audio/processors/juce_AudioPlayHead.h @@ -62,7 +62,7 @@ public: //============================================================================== /** This structure is filled-in by the AudioPlayHead::getCurrentPosition() method. */ - struct CurrentPositionInfo + struct JUCE_API CurrentPositionInfo { /** The tempo in BPM */ double bpm; diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h index 34797abb02..1f02b5e507 100644 --- a/src/core/juce_StandardHeader.h +++ b/src/core/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 54 -#define JUCE_BUILDNUMBER 22 +#define JUCE_BUILDNUMBER 23 /** Current Juce version number. diff --git a/src/events/juce_Timer.cpp b/src/events/juce_Timer.cpp index 968261a03d..5e0e6bfae9 100644 --- a/src/events/juce_Timer.cpp +++ b/src/events/juce_Timer.cpp @@ -319,7 +319,7 @@ private: InternalTimerThread* InternalTimerThread::instance = nullptr; InternalTimerThread::LockType InternalTimerThread::lock; -void juce_callAnyTimersSynchronously() +void JUCE_API juce_callAnyTimersSynchronously() { InternalTimerThread::callAnyTimersSynchronously(); }