diff --git a/examples/AnimationAppExample/Builds/MacOSX/AnimationAppExample.xcodeproj/project.pbxproj b/examples/AnimationAppExample/Builds/MacOSX/AnimationAppExample.xcodeproj/project.pbxproj
index 4bbbb5cf17..7500b06dbc 100644
--- a/examples/AnimationAppExample/Builds/MacOSX/AnimationAppExample.xcodeproj/project.pbxproj
+++ b/examples/AnimationAppExample/Builds/MacOSX/AnimationAppExample.xcodeproj/project.pbxproj
@@ -2095,6 +2095,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AnimationAppExample;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
F361F998F590FCC72F2DE949 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2116,10 +2117,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AnimationAppExample;
SDKROOT_ppc = macosx10.5; }; name = Release; };
8FB477F7B77D68FD93DC1D16 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/AnimationAppExample/Builds/MacOSX/Info.plist b/examples/AnimationAppExample/Builds/MacOSX/Info.plist
index eea2cfe322..634843891b 100644
--- a/examples/AnimationAppExample/Builds/MacOSX/Info.plist
+++ b/examples/AnimationAppExample/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.AnimationAppExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
AnimationAppExample
CFBundlePackageType
diff --git a/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj b/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj
index 5e2af45074..0bf3b67873 100644
--- a/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj
+++ b/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj
@@ -2089,7 +2089,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AnimationAppExample; }; name = Debug; };
F361F998F590FCC72F2DE949 = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -2110,11 +2111,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AnimationAppExample; }; name = Release; };
8FB477F7B77D68FD93DC1D16 = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/AnimationAppExample/Builds/iOS/Info.plist b/examples/AnimationAppExample/Builds/iOS/Info.plist
index bb8a3979d6..e63ab9c4de 100644
--- a/examples/AnimationAppExample/Builds/iOS/Info.plist
+++ b/examples/AnimationAppExample/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.AnimationAppExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
AnimationAppExample
CFBundlePackageType
diff --git a/examples/AudioAppExample/Builds/MacOSX/AudioAppExample.xcodeproj/project.pbxproj b/examples/AudioAppExample/Builds/MacOSX/AudioAppExample.xcodeproj/project.pbxproj
index 4468a48a19..30eb0488a2 100644
--- a/examples/AudioAppExample/Builds/MacOSX/AudioAppExample.xcodeproj/project.pbxproj
+++ b/examples/AudioAppExample/Builds/MacOSX/AudioAppExample.xcodeproj/project.pbxproj
@@ -2152,6 +2152,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AudioAppExample;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
EA0243E56EC3EAF286B53CA6 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2173,10 +2174,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AudioAppExample;
SDKROOT_ppc = macosx10.5; }; name = Release; };
2DDD1A3A56EAB02179D1CFB6 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/AudioAppExample/Builds/MacOSX/Info.plist b/examples/AudioAppExample/Builds/MacOSX/Info.plist
index 555d84feff..1f9e3c96bb 100644
--- a/examples/AudioAppExample/Builds/MacOSX/Info.plist
+++ b/examples/AudioAppExample/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.AudioAppExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
AudioAppExample
CFBundlePackageType
diff --git a/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj b/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj
index 793db87fa8..7167eaf276 100644
--- a/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj
+++ b/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj
@@ -2149,7 +2149,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AudioAppExample; }; name = Debug; };
EA0243E56EC3EAF286B53CA6 = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -2170,11 +2171,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.AudioAppExample; }; name = Release; };
2DDD1A3A56EAB02179D1CFB6 = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/AudioAppExample/Builds/iOS/Info.plist b/examples/AudioAppExample/Builds/iOS/Info.plist
index 995e2c085f..fef888429b 100644
--- a/examples/AudioAppExample/Builds/iOS/Info.plist
+++ b/examples/AudioAppExample/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.AudioAppExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
AudioAppExample
CFBundlePackageType
diff --git a/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj b/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj
index 55495206af..fc0ffd6bb1 100644
--- a/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj
+++ b/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj
@@ -2072,6 +2072,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.juce.BouncingBallWavetableDemo;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
C174BFF0D90EA0E2954123B8 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2093,10 +2094,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.juce.BouncingBallWavetableDemo;
SDKROOT_ppc = macosx10.5; }; name = Release; };
3965D37E5D75C70C5C9C527B = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info.plist b/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info.plist
index 3c44a6e1db..e214a3f73b 100644
--- a/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info.plist
+++ b/examples/BouncingBallWavetableDemo/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.juce.BouncingBallWavetableDemo
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
BouncingBallWavetableDemo
CFBundlePackageType
diff --git a/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj b/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj
index d759d2fd9b..abdfd3359c 100644
--- a/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj
+++ b/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj
@@ -1494,6 +1494,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.ComponentTutorialExample;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
C9043032C653136865D0361A = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -1515,10 +1516,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.ComponentTutorialExample;
SDKROOT_ppc = macosx10.5; }; name = Release; };
5D049546B6C238AD8CC74EDE = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/ComponentTutorialExample/Builds/MacOSX/Info.plist b/examples/ComponentTutorialExample/Builds/MacOSX/Info.plist
index 181a2387d9..503e918d79 100644
--- a/examples/ComponentTutorialExample/Builds/MacOSX/Info.plist
+++ b/examples/ComponentTutorialExample/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.ComponentTutorialExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
ComponentTutorialExample
CFBundlePackageType
diff --git a/examples/Demo/Builds/MacOSX/Info.plist b/examples/Demo/Builds/MacOSX/Info.plist
index 3d311e8a08..8287285fe4 100644
--- a/examples/Demo/Builds/MacOSX/Info.plist
+++ b/examples/Demo/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
Icon.icns
CFBundleIdentifier
- com.yourcompany.JuceDemo
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
JuceDemo
CFBundlePackageType
diff --git a/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj b/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj
index d6d6e9ecd4..4760169c77 100644
--- a/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj
+++ b/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj
@@ -2330,6 +2330,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.10;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.JuceDemo;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
80E4DBEBE0CE7D218C89F78C = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2354,10 +2355,12 @@
MACOSX_DEPLOYMENT_TARGET = 10.6;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.JuceDemo;
SDKROOT_ppc = macosx10.5; }; name = Release; };
A16C0416417EF9DF7B09973F = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/Demo/Builds/iOS/Info.plist b/examples/Demo/Builds/iOS/Info.plist
index b6f4a27306..5c76b55c39 100644
--- a/examples/Demo/Builds/iOS/Info.plist
+++ b/examples/Demo/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.JuceDemo
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
JuceDemo
CFBundlePackageType
diff --git a/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj b/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj
index b67a6adb2a..07d095d2c4 100644
--- a/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj
+++ b/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj
@@ -2325,7 +2325,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.JuceDemo; }; name = Debug; };
80E4DBEBE0CE7D218C89F78C = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -2347,11 +2348,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.JuceDemo; }; name = Release; };
A16C0416417EF9DF7B09973F = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj b/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
index f3cc46e073..2bcf06c2c3 100644
--- a/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
+++ b/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
@@ -1490,6 +1490,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.jucehelloworld;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
339C95D5B2E96DD37B176D75 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -1511,10 +1512,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.jucehelloworld;
SDKROOT_ppc = macosx10.5; }; name = Release; };
F6DA01300C80F2338FCBD24A = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/HelloWorld/Builds/MacOSX/Info.plist b/examples/HelloWorld/Builds/MacOSX/Info.plist
index e0b2355ab1..4923295c96 100644
--- a/examples/HelloWorld/Builds/MacOSX/Info.plist
+++ b/examples/HelloWorld/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.roli.jucehelloworld
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
HelloWorld
CFBundlePackageType
diff --git a/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj b/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
index 7e77362446..228d5ae0f6 100644
--- a/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
+++ b/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
@@ -1490,7 +1490,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.jucehelloworld; }; name = Debug; };
339C95D5B2E96DD37B176D75 = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -1511,11 +1512,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.jucehelloworld; }; name = Release; };
F6DA01300C80F2338FCBD24A = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/HelloWorld/Builds/iOS/Info.plist b/examples/HelloWorld/Builds/iOS/Info.plist
index abba5d3a89..ef012dcbfd 100644
--- a/examples/HelloWorld/Builds/iOS/Info.plist
+++ b/examples/HelloWorld/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.roli.jucehelloworld
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
HelloWorld
CFBundlePackageType
diff --git a/examples/MPETest/Builds/MacOSX/Info.plist b/examples/MPETest/Builds/MacOSX/Info.plist
index 3df7ded90f..ac9ec80963 100644
--- a/examples/MPETest/Builds/MacOSX/Info.plist
+++ b/examples/MPETest/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.MPETest
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
MPETest
CFBundlePackageType
diff --git a/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj b/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj
index 738a3450e4..53fedf4f56 100644
--- a/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj
+++ b/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj
@@ -187,6 +187,7 @@
2AAAEBE53A14BA001544D40D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; };
2B6313BEE19952B09B892F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; };
2B700EED388A0D5BCD27119C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; };
+ 2B8110812EDB60E35F64ECC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; };
2BC851F3F90C739945A358E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
2BF9277EE9D23E6756DDEAAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
2C8137E945F72BA9105D65C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; };
@@ -844,6 +845,7 @@
DC40896B34539B4CDFD98A83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; };
DC8568B8091FCF34F5F2B264 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; };
DCC6CD0D96DF5D56628DC513 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
+ DD27A9D5B621B219B88F1B4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; };
DD5088088E2F96F2A90F846C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
DD814F83C89F94E61871C009 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; };
DDD9956A34EECD84627E4D23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1161,6 +1163,8 @@
6572780DEF7C396030F7E88F,
BA74CBA07F7E462B824D155B, ); name = "juce_audio_formats"; sourceTree = ""; };
B141FE8425056D7A1111F49C = {isa = PBXGroup; children = (
+ DD27A9D5B621B219B88F1B4E,
+ 2B8110812EDB60E35F64ECC2,
DEE0007C38531B281E20A2A3,
51FB54FB93F826E8B4207DAA,
8B4618262B4BB0A436C51B6C,
@@ -2158,6 +2162,7 @@
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET = 10.10;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.MPETest;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
8A3A5202D74C4ED05D01A48C = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2180,10 +2185,12 @@
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET = 10.10;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.MPETest;
SDKROOT_ppc = macosx10.5; }; name = Release; };
FEF5C4C4E770A72077867343 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj
index 713009648d..cbec674099 100644
--- a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj
+++ b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj
@@ -337,6 +337,9 @@
true
+
+ true
+
true
@@ -1383,6 +1386,7 @@
+
diff --git a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters
index b96580396d..e7ce17a285 100644
--- a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters
+++ b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters
@@ -535,6 +535,9 @@
Juce Modules\juce_audio_formats\sampler
+
+ Juce Modules\juce_audio_processors\processors
+
Juce Modules\juce_audio_processors\processors
@@ -1830,6 +1833,9 @@
Juce Modules\juce_audio_formats
+
+ Juce Modules\juce_audio_processors\processors
+
Juce Modules\juce_audio_processors\processors
diff --git a/examples/MPETest/MPETest.jucer b/examples/MPETest/MPETest.jucer
index 602e49451d..cfc7570894 100644
--- a/examples/MPETest/MPETest.jucer
+++ b/examples/MPETest/MPETest.jucer
@@ -2,7 +2,7 @@
+ jucerVersion="4.1.0">
diff --git a/examples/MidiTest/Builds/MacOSX/Info.plist b/examples/MidiTest/Builds/MacOSX/Info.plist
index 01a2ceaf16..3525a67635 100644
--- a/examples/MidiTest/Builds/MacOSX/Info.plist
+++ b/examples/MidiTest/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.MidiTest
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
MidiTest
CFBundlePackageType
diff --git a/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj b/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj
index 5d70d1f624..6ed8ac60ce 100644
--- a/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj
+++ b/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj
@@ -1998,6 +1998,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.9;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-std=c++14 -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.MidiTest;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
882C0061E66EA99B23B90D15 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2021,10 +2022,12 @@
MACOSX_DEPLOYMENT_TARGET = 10.9;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-std=c++14 -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.MidiTest;
SDKROOT_ppc = macosx10.5; }; name = Release; };
E12A8778C1F50489C01F266F = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/MidiTest/Builds/iOS/Info.plist b/examples/MidiTest/Builds/iOS/Info.plist
index a39fd57110..1f6e26120e 100644
--- a/examples/MidiTest/Builds/iOS/Info.plist
+++ b/examples/MidiTest/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.MidiTest
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
MidiTest
CFBundlePackageType
diff --git a/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj b/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj
index 0d1994b47e..390d92de2d 100644
--- a/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj
+++ b/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj
@@ -1999,7 +1999,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.MidiTest; }; name = Debug; };
882C0061E66EA99B23B90D15 = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -2020,11 +2021,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.MidiTest; }; name = Release; };
E12A8778C1F50489C01F266F = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OSCMonitor/Builds/MacOSX/Info.plist b/examples/OSCMonitor/Builds/MacOSX/Info.plist
index 0ab116697f..1a7dffb802 100644
--- a/examples/OSCMonitor/Builds/MacOSX/Info.plist
+++ b/examples/OSCMonitor/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.rawmaterialsoftware.OSCMonitor
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OSCMonitor
CFBundlePackageType
diff --git a/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj b/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj
index 22b7eefa1d..6bbe112323 100644
--- a/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj
+++ b/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj
@@ -2139,6 +2139,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.rawmaterialsoftware.OSCMonitor;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
80316F7B5D906280809F977A = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2160,10 +2161,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.rawmaterialsoftware.OSCMonitor;
SDKROOT_ppc = macosx10.5; }; name = Release; };
A73601CA8085AB937DA91A68 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OSCReceiver/Builds/MacOSX/Info.plist b/examples/OSCReceiver/Builds/MacOSX/Info.plist
index 10761f8f35..6166ad7c4e 100644
--- a/examples/OSCReceiver/Builds/MacOSX/Info.plist
+++ b/examples/OSCReceiver/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.OSCReceiver
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OSCReceiver
CFBundlePackageType
diff --git a/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj b/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj
index 5530b198ba..d4b36adb5e 100644
--- a/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj
+++ b/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj
@@ -1567,6 +1567,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCReceiver;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
BC27690A38327AE29CC81DE0 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -1588,10 +1589,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCReceiver;
SDKROOT_ppc = macosx10.5; }; name = Release; };
AEC2629A4CDDB6132D9118A8 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OSCReceiver/Builds/iOS/Info.plist b/examples/OSCReceiver/Builds/iOS/Info.plist
index a26399203e..1ca42d2410 100644
--- a/examples/OSCReceiver/Builds/iOS/Info.plist
+++ b/examples/OSCReceiver/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.OSCReceiver
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OSCReceiver
CFBundlePackageType
diff --git a/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj b/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj
index 000197228c..b46d43fc76 100644
--- a/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj
+++ b/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj
@@ -1567,7 +1567,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCReceiver; }; name = Debug; };
BC27690A38327AE29CC81DE0 = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -1588,11 +1589,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCReceiver; }; name = Release; };
AEC2629A4CDDB6132D9118A8 = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OSCSender/Builds/MacOSX/Info.plist b/examples/OSCSender/Builds/MacOSX/Info.plist
index bc9278ab8b..717a5d72f0 100644
--- a/examples/OSCSender/Builds/MacOSX/Info.plist
+++ b/examples/OSCSender/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.OSCSender
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OSCSender
CFBundlePackageType
diff --git a/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj b/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj
index bd2d098c5c..8cd5fd5892 100644
--- a/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj
+++ b/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj
@@ -1410,6 +1410,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCSender;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
7FD72A877FE3166C5C80C732 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -1431,10 +1432,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCSender;
SDKROOT_ppc = macosx10.5; }; name = Release; };
37EE6DAA0F0B202D10D0995B = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OSCSender/Builds/iOS/Info.plist b/examples/OSCSender/Builds/iOS/Info.plist
index b43c4a99b3..72fd9828a4 100644
--- a/examples/OSCSender/Builds/iOS/Info.plist
+++ b/examples/OSCSender/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.OSCSender
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OSCSender
CFBundlePackageType
diff --git a/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj b/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj
index 5e41dde03e..f0a2f22550 100644
--- a/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj
+++ b/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj
@@ -1413,7 +1413,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCSender; }; name = Debug; };
7FD72A877FE3166C5C80C732 = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -1434,11 +1435,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OSCSender; }; name = Release; };
37EE6DAA0F0B202D10D0995B = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OpenGLAppExample/Builds/MacOSX/Info.plist b/examples/OpenGLAppExample/Builds/MacOSX/Info.plist
index fa92825336..7dd557e9c1 100644
--- a/examples/OpenGLAppExample/Builds/MacOSX/Info.plist
+++ b/examples/OpenGLAppExample/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.OpenGLAppExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OpenGLAppExample
CFBundlePackageType
diff --git a/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj b/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj
index d9ef9bd06d..02e1e0e33b 100644
--- a/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj
+++ b/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj
@@ -2114,6 +2114,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OpenGLAppExample;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
D10126CC8CE60E150025A42D = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2135,10 +2136,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OpenGLAppExample;
SDKROOT_ppc = macosx10.5; }; name = Release; };
3132BF724B47EEFACACC0FF2 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/OpenGLAppExample/Builds/iOS/Info.plist b/examples/OpenGLAppExample/Builds/iOS/Info.plist
index 84ebf00a90..6eda77e030 100644
--- a/examples/OpenGLAppExample/Builds/iOS/Info.plist
+++ b/examples/OpenGLAppExample/Builds/iOS/Info.plist
@@ -10,7 +10,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIdentifier
- com.yourcompany.OpenGLAppExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
OpenGLAppExample
CFBundlePackageType
diff --git a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj
index 898205f3bc..b2072e3c9d 100644
--- a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj
+++ b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj
@@ -2108,7 +2108,8 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OpenGLAppExample; }; name = Debug; };
D10126CC8CE60E150025A42D = {isa = XCBuildConfiguration; buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -2129,11 +2130,13 @@
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)");
INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; };
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.OpenGLAppExample; }; name = Release; };
3132BF724B47EEFACACC0FF2 = {isa = XCBuildConfiguration; buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PluckedStringsDemo/Builds/MacOSX/Info.plist b/examples/PluckedStringsDemo/Builds/MacOSX/Info.plist
index 3ce29df43c..5ff1e10687 100644
--- a/examples/PluckedStringsDemo/Builds/MacOSX/Info.plist
+++ b/examples/PluckedStringsDemo/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.timurdoumler.PluckedStringsDemo
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
PluckedStringsDemo
CFBundlePackageType
diff --git a/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj b/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj
index 81127b92f3..0a679a201e 100644
--- a/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj
+++ b/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj
@@ -1997,6 +1997,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.timurdoumler.PluckedStringsDemo;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
DA71A54BE35C4C5D852DF72C = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2018,10 +2019,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.timurdoumler.PluckedStringsDemo;
SDKROOT_ppc = macosx10.5; }; name = Release; };
501C3AFCB1DADC94A49F25E8 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PlugInSamples/Arpeggiator/Arpeggiator.jucer b/examples/PlugInSamples/Arpeggiator/Arpeggiator.jucer
index a5a52eae6a..6c22134072 100644
--- a/examples/PlugInSamples/Arpeggiator/Arpeggiator.jucer
+++ b/examples/PlugInSamples/Arpeggiator/Arpeggiator.jucer
@@ -9,7 +9,7 @@
pluginIsMidiEffectPlugin="1" pluginSilenceInIsSilenceOut="0"
pluginEditorRequiresKeys="0" pluginAUExportPrefix="ArpeggiatorAU"
pluginRTASCategory="" aaxIdentifier="com.ROLI.Arpeggiator" pluginAAXCategory="AAX_EPlugInCategory_Effect"
- jucerVersion="4.0.2" companyName="ROLI Ltd." companyWebsite="www.juce.com"
+ jucerVersion="4.1.0" companyName="ROLI Ltd." companyWebsite="www.juce.com"
companyEmail="info@juce.com">
diff --git a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj
index 50f8e41629..325a9b41e0 100644
--- a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj
+++ b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj
@@ -90,6 +90,7 @@
0496E5839A51835BB5FF93DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; };
049C0B2A50B12541BBD44A87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; };
049E1ED618DB7447529B850E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 04B2FA3730FEC50AE2B1C817 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; };
055518CF86E540F102797639 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; };
056162DB2F31CDEC1A6C891D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; };
05AB083553352BD26D6D3C4A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
@@ -164,6 +165,7 @@
1A5846EF48A60CC73F45D13D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; };
1A7B44D364B75EA89393C950 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; };
1AA75C2ACEBBC88A9690CA64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; };
+ 1AC1AD1897BA6CDA479EECF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
1AEDC787DD547DD40727B3AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; };
1AFE6520DA03E9EEEBD6635C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; };
1B52A6301832DDDC24CF78EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; };
@@ -207,6 +209,7 @@
2B00D9E27D910E13DE0C221A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; };
2B27A10CE5AE76648A90D11B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; };
2B44B90F3CEDD45A731586AD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
+ 2C5EC74F7F59FB4D2EDBF48A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; };
2C88000D1FD0FF38CE9A45DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_RTAS_MacUtilities.mm"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = "SOURCE_ROOT"; };
2C96D1EF867911A0E68FFBFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; };
2CCEDD6E4D5033AC85568494 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; };
@@ -264,6 +267,7 @@
3A8ACE496CEEF5A87A114AB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; };
3AD79BA42B077E0A5F529E32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUMIDIBase.cpp"; sourceTree = "SOURCE_ROOT"; };
3BE81A29DE9DE7360D59EC46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; };
+ 3BEDADA1310ADC048CDA2C5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; };
3BEF840C88D9862A0FC85942 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; };
3C0D2625AD214352B7082954 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; };
3CAD7C934D530D6DF84726FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; };
@@ -336,6 +340,8 @@
4CF3468DF587D5FA67CC0E11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; };
4D3E4D2991E77F61EE7FB496 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; };
4D67E97CC213CBD5BD61C7B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 4D683F6CB06A1BFA3B7D0619 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; };
+ 4D78DF92155C219D09D7A455 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
4D9DA654C2620E32726086FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; };
4E117F7C74DCEB70A1F377E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUBuffer.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUBuffer.cpp"; sourceTree = "SOURCE_ROOT"; };
4E4473B8662EBAD8C7093702 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
@@ -352,7 +358,6 @@
50B47B9204E11F21F6E274A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; };
50E68A1E94741689526D5436 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; };
50F39057CB7BDC9068D7F3E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; };
- 51280CE644EA693D81E76BAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
51547A302427E2E592F46B03 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; };
519C6A0464E86A77B4982AD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; };
51DECB09AB2D7EE7288014B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -401,9 +406,11 @@
5CF362F3F89B2CA00EF86107 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; };
5D772B2770B73BDA1AF8B815 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; };
5DA8F03F5C8C1191011DF4C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
+ 5DB5A30479144B1BDC7EFB2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; };
5DC3F807B9FD5319F2A3651A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; };
5DDC06B78943DE8EE8019F93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; };
5E13D21827E76C6ACCFA7358 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; };
+ 5E6F9C107ED44AD3A6C38F25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; };
5E7F940669620DB0130FCD3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; };
5EBABFCFC48AAC97FFCBCFD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; };
5F6D44158DFFDE893C0193EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; };
@@ -414,7 +421,9 @@
60CE82CA92524672F37A0772 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; };
60D827697FC6A9DC7EB2A1D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; };
6116E21BC29C08EE4E5393F4 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; };
+ 6140A9EFC120C19C900E9997 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; };
61480007134774205D35BE86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 6156454DCC08491EA30C909B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; };
616A14F72BE19655866F9808 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; };
61E35FDB62BAAE1F600E2BA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
6231453F80A55511B2CE63D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
@@ -477,6 +486,7 @@
6F303012AB28C3A1D73D1C61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
6F87A51C59914514F8A9B72D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; };
6FCC51A0993766D53206A13B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; };
+ 6FE8AB8B32ECC447077F85C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; };
709A020234578C644C580BFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; };
70ABCE8D77A662C690A1E6DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; };
714198502CEF48F7A9F0A216 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -520,6 +530,7 @@
7BA04B314DBAC47B8FB1AD34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
7BC8E6DF436B44F55237F9A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; };
7BD5243B77DAE17EA12970BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 7C93F0E35AFAFF12CAEEC002 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; };
7CB80BCAB334950839BBD09A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
7D0DD829369F7DD455B6704E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; };
7D1DC285EF285E3BC3FEA88A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; };
@@ -631,6 +642,7 @@
9A89826CEDEB0B05A1B603DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
9AD0AD199A93E9FBDEA73DD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; };
9ADD1D5D091D77E36ED23DC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; };
+ 9B5E1CC8F419EA87FFCA25EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; };
9C24A5EC057F1DF3D288143C = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
9C74B05A3528A964F98678E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; };
9C890D8E5BCD45EEE3D4F472 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; };
@@ -691,6 +703,7 @@
ABE7925A8A2E061D0ADBC89B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; };
AC48FAE2DA3B12A483E7255A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; };
AC4B7D8324C27A8976F0CF33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
+ AC800D28406E1EB42D6F8011 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; };
AC840D910B076A8D6E11D0E3 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
ACB2BB311E0E549224D8D48E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; };
ACF3900CAC422A821B49724B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -715,6 +728,7 @@
B129B4C893F395FFB6626EC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; };
B2315CF4C3757346D888D3DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; };
B27E127E31026271E71896A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; };
+ B3CC9DC75DBF4166649F4903 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; };
B3D81C8539CC39AD8D7BDA60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
B3E22594AF1C50B96CB53BA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; };
B3E60DC1BE9F0B5000434DB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; };
@@ -825,6 +839,7 @@
CC55CC9502C19A5AFE161657 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; };
CD30A091E8BB28D380EA0BB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; };
CDF60F2C42393AB69C766ACF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; };
+ CE5A38CECF65EEEB3BEB576A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; };
CE627A7B66D84A3A3EA03042 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; };
CE9208896DC1AB22AE2C0C71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; };
CEDC97D5A9E596C1D85EDE53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -862,6 +877,7 @@
D799C7F000EC4D33C2DABADB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; };
D7B5624DFFC5F0D465324ABD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTreeSynchroniser.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h"; sourceTree = "SOURCE_ROOT"; };
D8581F2EDC5AF67078C87F04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; };
+ D862D05ADC5B51155A7E92CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; };
D8CA7F4025AE3A715CD4F242 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; };
D8DAAFAF2D5E846E675E7FAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; };
D8F61BA5399E97BE1B28FB14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUInputElement.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUInputElement.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -892,6 +908,7 @@
E146A36475C5861BFC2DAC7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
E19EED16694ACA3701319473 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; };
E21B47053F279BEB6E77ABBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; };
+ E3037BC34D7BF2461BDE7406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; };
E312397066509747DF0AA5EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
E3272E71920EC2E2951EA51D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; };
E32EC58E8FFABD6AA3236B7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -927,6 +944,7 @@
E9D514DF14180AAC8013083A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; };
EA0497ADC2D82C3B7062F22D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; };
EAAA5DE166254FF08BBF56C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3_Wrapper.cpp"; path = "../../../../../modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; };
+ EB14AB8617A8CA2AA16A14A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; };
EB1836E7A020E27A7531DD9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; };
EB3651084188F428EE0EC55D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; };
EB47EFA97F37130CBFA3BBBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; };
@@ -936,6 +954,7 @@
EC31A0D1FC5868D414573AE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
ED6E81A945B28362BD3031F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
EDBCB0EA94E2EFAFD754B922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; };
+ EDC2FD69DA8E9734C6E8EC30 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; };
EE01B0F4B428C5A225912CB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; };
EE294A9E140300FF4776FAD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
EE39BF0D5B60F251A414EAC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; };
@@ -971,17 +990,19 @@
F57574FC47D7AF891F3295C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
F65C6FEA297DBD53427E4038 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
F6D10531F4650FBEB0D33D26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; };
+ F6E7047A4B14DF67FC06B116 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; };
F7089FFFA18BCBE67D5C9E3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; };
F7CFD58445F29C592E1CA3D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
F7F3649AF02F4C3C751B6F19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; };
+ F81654393A6815CD487BEEEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
F87343C6F5ADDD9DB66521FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; };
F8EC2EB5F339D51BD491E8E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
F97C03E9DF14C226EF400C73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
+ F994AC2474618A75DD677972 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; };
FAC1B0E5511BBD94A50A2E49 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
A1F5A8172293896A1789B630 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Arpeggiator.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
+ F3ACB6DE3915DDD06925799D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; };
F5B6DC6A96EF0A5FE46C3DA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
- F6E7047A4B14DF67FC06B116 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; };
- F81654393A6815CD487BEEEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
F9D08064C86CE530C8246E8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
F9E9EF28BCBA5A190B324137 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; };
FA644A83DBB0DDE419A33EC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1016,7 +1037,17 @@
0A01B8D1B8BB92ECAA5DB753,
BD57F71D127F56050D4D002D,
C6B89A6B45688392BD97DC94, ); name = buffers; sourceTree = ""; };
- C376BB9DEA9AC1C48037B349 = {isa = PBXGroup; children = (
+ 0B09A0C8B3CBBE56F9A7B2D0 = {isa = PBXGroup; children = (
+ 39BE88EF0E3BD6B4AB68F2B9,
+ D67D2A6E5C3F59CD621EA248,
+ A919CA5B7254BB3FF60A5DE7,
+ 3DD0FD0BC2F231862DB27C0E,
+ 86E4C9BAFD35A57EC10F979A,
+ 89C5AA5B6E8CF94B1B170BC1,
+ 466A9F12236DE37BACE09B42,
+ 9B5E1CC8F419EA87FFCA25EA,
+ E6FCC7E47574DFBEF222A74B, ); name = effects; sourceTree = ""; };
+ 0C53451405C707E80D5E3524 = {isa = PBXGroup; children = (
F0A17AE5EBBD91BD44AC2DDC,
2567995CCEFF466EE733B17E,
A33608197D3926F693D04540,
@@ -1026,17 +1057,29 @@
E7449A06AE5C5783B9C1A0B3,
2006597B2FDE720C44D3A4FA,
B082837B13A368148C64EB87,
- C84B393BB56ECED0D2F26577, ); name = midi; sourceTree = ""; };
- 3D5BF1B8248EB63C2C66C7B8 = {isa = PBXGroup; children = (
- 39BE88EF0E3BD6B4AB68F2B9,
- D67D2A6E5C3F59CD621EA248,
- A919CA5B7254BB3FF60A5DE7,
- 3DD0FD0BC2F231862DB27C0E,
- 86E4C9BAFD35A57EC10F979A,
- 89C5AA5B6E8CF94B1B170BC1,
- 466A9F12236DE37BACE09B42,
- E6FCC7E47574DFBEF222A74B, ); name = effects; sourceTree = ""; };
- 9D736E9C739DD85D088DAE4C = {isa = PBXGroup; children = (
+ C84B393BB56ECED0D2F26577,
+ B3CC9DC75DBF4166649F4903,
+ 5E6F9C107ED44AD3A6C38F25, ); name = midi; sourceTree = ""; };
+ F35A50D2D034136B6D91E2B2 = {isa = PBXGroup; children = (
+ 6140A9EFC120C19C900E9997,
+ 4D683F6CB06A1BFA3B7D0619,
+ E3037BC34D7BF2461BDE7406,
+ EDC2FD69DA8E9734C6E8EC30,
+ 5DB5A30479144B1BDC7EFB2E,
+ 3BEDADA1310ADC048CDA2C5F,
+ F3ACB6DE3915DDD06925799D,
+ CE5A38CECF65EEEB3BEB576A,
+ F994AC2474618A75DD677972,
+ EB14AB8617A8CA2AA16A14A3,
+ D862D05ADC5B51155A7E92CF,
+ 2C5EC74F7F59FB4D2EDBF48A,
+ 6156454DCC08491EA30C909B,
+ AC800D28406E1EB42D6F8011,
+ 04B2FA3730FEC50AE2B1C817,
+ 6FE8AB8B32ECC447077F85C9,
+ 4D78DF92155C219D09D7A455,
+ 7C93F0E35AFAFF12CAEEC002, ); name = mpe; sourceTree = ""; };
+ 6F72B2B6AAA728BF3FE71551 = {isa = PBXGroup; children = (
5971D2F5F06AE6D9ED210336,
F65C6FEA297DBD53427E4038,
298F381E5973B357D56BCC0B,
@@ -1053,15 +1096,16 @@
4E4473B8662EBAD8C7093702,
731D74A0304C74EEB840EBEE,
6231453F80A55511B2CE63D3, ); name = sources; sourceTree = ""; };
- 07B8D2EF44928306F9390667 = {isa = PBXGroup; children = (
+ 7F3E0419F9C0DBCF92B84C6D = {isa = PBXGroup; children = (
B8C6E4497BD264030302F083,
008905A65B6DD3A48DF09AA2, ); name = synthesisers; sourceTree = ""; };
EDCB4DA5D2A8138374D81A81 = {isa = PBXGroup; children = (
40FE43300C92687E35D35021,
- C376BB9DEA9AC1C48037B349,
- 3D5BF1B8248EB63C2C66C7B8,
- 9D736E9C739DD85D088DAE4C,
- 07B8D2EF44928306F9390667,
+ 0B09A0C8B3CBBE56F9A7B2D0,
+ 0C53451405C707E80D5E3524,
+ F35A50D2D034136B6D91E2B2,
+ 6F72B2B6AAA728BF3FE71551,
+ 7F3E0419F9C0DBCF92B84C6D,
6B6BC26837948329DC9F76AB,
1AEDC787DD547DD40727B3AD, ); name = "juce_audio_basics"; sourceTree = ""; };
B5571584010E7737E68C42DC = {isa = PBXGroup; children = (
@@ -1314,6 +1358,7 @@
837D41054CF06F3C359E1C4C,
F14CDF0462EBEDEE9BA22F1F,
4220849FC5D24D5998470B27,
+ 1AC1AD1897BA6CDA479EECF8,
66B6E7D3C0DA58D3D789929C,
8B266FAFAC2B004FE0491E3F,
91714A462B09B119638753DE,
@@ -1555,8 +1600,7 @@
DAB01420B5EC8DF3067D57C8,
9A68EFB4F4ADD8E02B77D574,
2367FC583388A40FD177FAC7,
- CF460BB59AE1A3CB56C2CC97,
- 51280CE644EA693D81E76BAB, ); name = broadcasters; sourceTree = ""; };
+ CF460BB59AE1A3CB56C2CC97, ); name = broadcasters; sourceTree = ""; };
AC0F8CF82712912729A1787D = {isa = PBXGroup; children = (
FEBEF52CF458D9C80275863D,
4A43E2F65187E76BA7247DC8,
@@ -2204,6 +2248,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.Arpeggiator;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Debug; };
BE9E3EF2B9B86E30560190F3 = {isa = XCBuildConfiguration; buildSettings = {
@@ -2233,11 +2278,13 @@
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.Arpeggiator;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Release; };
A6E581C14CB7121F9770B6E8 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info.plist b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info.plist
index e7e97845c3..f9f29f16cb 100644
--- a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info.plist
+++ b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.ROLI.Arpeggiator
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
Arpeggiator
CFBundlePackageType
diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj
index 903aac0dbc..dcedb2c488 100644
--- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj
+++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj
@@ -144,6 +144,15 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -159,13 +168,34 @@
true
-
+
true
-
+
true
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
true
@@ -1282,16 +1312,27 @@
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -1415,6 +1456,7 @@
+
@@ -1520,7 +1562,6 @@
-
diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters
index 0e8c5e1ca7..299b727978 100644
--- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters
+++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters
@@ -17,11 +17,14 @@
{A33A1E1D-AC2C-6382-8681-48B0FC374C60}
+
+ {11A75801-B027-40BD-4993-023023ACCBF7}
+
{3FD908F5-98C8-9A61-FC03-0BAF8913CBB0}
-
- {11A75801-B027-40BD-4993-023023ACCBF7}
+
+ {8C868E51-156D-A916-047C-0D9EA1393675}
{EF2CAB40-0432-429B-C517-86ADF136BB8A}
@@ -331,6 +334,15 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -346,14 +358,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1596,6 +1629,24 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -1611,20 +1662,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1995,6 +2061,9 @@
Juce Modules\juce_core\containers
+
+ Juce Modules\juce_core\containers
+
Juce Modules\juce_core\containers
@@ -2310,9 +2379,6 @@
Juce Modules\juce_events\broadcasters
-
- Juce Modules\juce_events\broadcasters
-
Juce Modules\juce_events\interprocess
diff --git a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj
index 20f6ebaef2..092cf03d71 100644
--- a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj
+++ b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj
@@ -81,6 +81,7 @@
015E97C363F4CE0656327274 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; };
01947181134AC4100C1E9540 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
02325FB27988AABC15E9F7D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 027412328DE49125F841AE57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; };
02B9FBB01F321F92651F6281 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; };
03BE4C840DFCADC9DEACA964 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
0403E9194FBB5396D56C0D17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -98,6 +99,7 @@
067F87AAA6D0615FE189F604 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; };
06DE65F9C3237B91CA3E4626 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; };
072EC0BD45686F0D876AFC9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; };
+ 074AA27AF6DEA1DD843C42D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; };
077D5141707A5EB4513D7CC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; };
07AB0727D7D9D9DE22CFE455 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; };
0837E472178D483FA7AFEDFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; };
@@ -112,6 +114,7 @@
0C2D7C6FB347CEA06CC25E41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; };
0C46760C35F7C80B22188D08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; };
0CF532889CC441CDFB9DCDCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 0CFA4CB74568DE690B65D1AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; };
0D2A7858B11DFF41AE0F0D18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
0DD046EBFAD0AC88E36223BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; };
0DE3329E6C98F8DAB5196BB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; };
@@ -137,6 +140,7 @@
10ADBBF6AE37D363C7CC5E83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; };
10C1A45449AFEAAECD62FBD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; };
10FAC3FED378E83BBD80220A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; };
+ 1127E52190B4DC4D4133647E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; };
112A2BC97499C68DFFD78722 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; };
113D54BFCBF4E2FB929AF341 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; };
11506A5A3B9249D3BCAAC7D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -148,6 +152,7 @@
1237FC2746459E7FB10CD5A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; };
123A6B31D9C1BA8DA606D6FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
1251EFF2CF96BABFCB30EC84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; };
+ 125AEF47724D755852688941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; };
12759DCF0E74DF0087F10917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; };
12CACA7B3A7C79544B110B8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; };
12CF82623211831CCEAD1CED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -239,6 +244,7 @@
2B16BEE619F42394E6CFB6A8 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
2B186C698E4525FF67DC068E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
2B5BFA938F8B7DD4456242C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 2B67B13342F0A3F807DF2B2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; };
2B7C784CF333CA6BEEF5038A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode1.cpp"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = "SOURCE_ROOT"; };
2BC8F8214792631A55C86182 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IncludeModuleHeaders.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h"; sourceTree = "SOURCE_ROOT"; };
2C29E6A7967E9244FC3CDE85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; };
@@ -278,7 +284,9 @@
3593B89B8CDE59DDA5932F22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Whirlpool.cpp"; path = "../../../../../modules/juce_cryptography/hashing/juce_Whirlpool.cpp"; sourceTree = "SOURCE_ROOT"; };
35A2079EEF244246A032D04C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; };
35B4ED2CB96C0BB28AA63805 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; };
+ 35DA65C71E79224AAE6DC7B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; };
365037A479900D98EA46C78D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; };
+ 366835A7E194774D7333EC83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; };
3675E748AF7B4196C2DAD7BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; };
36848D600B96A3E233D7BE51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
36D7E127C3C67F84467259F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -310,7 +318,6 @@
3DF901DCC1FB9BE5E6889989 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
3E42BB9BCDFBE6496FFF1363 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; };
3E750A56336FE91FE4190D0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; };
- 3E9FE02DBB2F6B25D413A6D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
3EBEC98CB93144341E24A75A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; };
3F1B1BB001E0EF0215638018 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; };
3F2C73A503CF2A3EEB2FA37D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; };
@@ -336,6 +343,7 @@
45B7DA5829EC535A7358B483 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; };
45CF9FC46ECEB2B97446A51C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; };
464061B97667C9E017E05B99 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_audio_devices/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
+ 46D387910B077A3AA7CB9C92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; };
471D92ACB8B31557BCA3B255 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; };
476A4BF63FB8E65B39CDC05F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
4796877B2EEF190AC4208F86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -351,6 +359,7 @@
497FA1C5A1D9A978D8D1B163 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; };
49DC6529069B211DF4EF0C79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; };
4A5DB4C153D051E2F4C66052 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; };
+ 4A7AE43CB3279CA55F3CD658 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; };
4AF0140AA4611A48B70E8824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; };
4B126CA90C9CEBD9103B601E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; };
4B5F20CD00D4F941E076D7B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Whirlpool.h"; path = "../../../../../modules/juce_cryptography/hashing/juce_Whirlpool.h"; sourceTree = "SOURCE_ROOT"; };
@@ -361,6 +370,7 @@
4C1DDE053C0E6BAF542394F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; };
4C8443CA0D7DEE719DD49A6F = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_cryptography/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
4CF34417FEEB19B3F86F6BF4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 4D636682CC831D76D3BB7C7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; };
4D99940AA662A7F82431ADEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
4E2D55AD5C0799596BAD8A95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; };
4E3C9588F4DF6C1BEA4367CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -422,6 +432,7 @@
5BD40BA42D700476595054D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; };
5C205FD9971CD48899BBF5FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; };
5D4D4CA80024F87B12B5631C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 5D673258913CCC1B0DED9F51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; };
5D9B19FA05348ED861D60B2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; };
5DC42627E6F5518217529A9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; };
5DCD4BC5BC61EC41393FE43A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUDispatch.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUDispatch.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -598,6 +609,8 @@
8C6C84652D446F0FA1C71637 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
8C96B65675D85EE1DC3E075C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; };
8CD7B01A646341ACCBB0A732 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; };
+ 8CE9CC147B5ACCAFF12E599F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 8D495F90F56830865D5591A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; };
8D76E6F96920A62F49C247AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; };
8DCC32E9FE5D5A16E99A2DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; };
8DCFE006BA4A373E886F0C81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; };
@@ -619,6 +632,7 @@
92834AA91135F9049B69068A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; };
92EC9D7739D7B8886EC93C87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
939172D714BB97C1064800F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; };
+ 93D22E30CF61C961B6CE1733 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
9420B606457A7060C2F978B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; };
950E2B80BD70E212D87E31D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; };
9517F9EEE18C1038E1497FA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; };
@@ -629,6 +643,7 @@
95F5B0723C24598C877C8DAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
95FC2D683A0E0F41FAD02E8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; };
9740A9390ECA80CAA92382D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; };
+ 97B472DF9AD7A1AB538868F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; };
97E3D56E1E5016E8069EB3F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; };
981DA305340363E4119DC2F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; };
98B0BA1AE40B5C9896E10B5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -812,6 +827,7 @@
CB9221C8E22E7CD43BC03A69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; };
CC8A51BAA9DFE6BF2E35F72E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; };
CC9362142B6BAC4A72B9C872 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
+ CC99560FE6EBDC39D071BBC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; };
CD117363B0E312AAFD54FA9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; };
CE2E472DD3539C039CB07480 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
CE2EAFD2AE799027E2F90866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; };
@@ -895,6 +911,7 @@
E219774D186DF70D694D2768 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FakeMouseMoveGenerator.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_FakeMouseMoveGenerator.h"; sourceTree = "SOURCE_ROOT"; };
E221C545F4A08B1422CC6708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; };
E22A8C6006C3BD972035B132 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; };
+ E2C54EC051B9509356592AE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; };
E394CA84B664710B3771ACAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; };
E3958C99991C2CDD36DB609D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
E407EB81948286696C44549D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewControl.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewControl.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -936,7 +953,9 @@
ECDE37F9E82739051FB71056 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; };
ECF93FB75583FDA74259A503 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; };
ECFED4F63BCB9E823BE82505 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; };
+ ED5AAE97A896206C7243B3B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; };
ED921D42FF3C5D33AEFF5609 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
+ EDAB6EF5F96B6F95B5AF2669 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; };
EE29E33BC698ECA4ED4C44B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; };
EE2B71E866AFDA7C92D9CFAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; };
EE3D9D885DC024F73E7BA834 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CarbonEventHandler.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -948,8 +967,10 @@
EF967C07CC287C17EF57A3F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; };
EF9CFCD6A5BEAD685E992C75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; };
F02702BECFB98B36CED9D3F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
+ F06C83C04FC16618FBA9BFBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; };
F12E2F9633C0C10172C7EB29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUBase.cpp"; sourceTree = "SOURCE_ROOT"; };
F1475CE46C7D261D36DF7E62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; };
+ F19532C9A9B834EF732E2C52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
F1B4EC755365729CF9850E27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
F1C1D72B4B911227DF608946 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; };
F28941FBBB1C31040CDFEA67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; };
@@ -987,11 +1008,11 @@
F9B2244F5EFA1FFA722DA562 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; };
FA20C873EDCF671DD973E3F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; };
FA45F5639F77F80ED3580D13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
- FA4B060DCFA1FF9AA15C1FF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
FA8D7F0CB75953BD21B37929 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; };
- FA905D2AD00F1A5ED9D55D36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; };
FAD1FB98450C939FAB191F42 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
87149B629BF27D063AFF0BB9 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GainPlugIn.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
+ FA4B060DCFA1FF9AA15C1FF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
+ FA905D2AD00F1A5ED9D55D36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; };
FB543B91C7E0C32D35F9936B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; };
FB954DE9B8BEC80A9B7E33DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; };
FCB0A5982114DD8E9C3C48BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1016,7 +1037,17 @@
237733D1EA87B4C27665E50C,
1D0EE5EAD6884214BB2D262E,
21B97DA05679BB8EE0C91A65, ); name = buffers; sourceTree = ""; };
- CDB25F907D5B4AA44E5EE13B = {isa = PBXGroup; children = (
+ C9460E5A3D79B9B640DE09DF = {isa = PBXGroup; children = (
+ 00588853E1349AC4628FBE4E,
+ D12A713DA14521B90404F672,
+ 75F909BD93C1C29809827E08,
+ CA26DA522E4998DF00EC3927,
+ 4EDA6213BB262D96FEE0AA55,
+ 45B7DA5829EC535A7358B483,
+ 8A57DF9994DB00CF1232E8A3,
+ EDAB6EF5F96B6F95B5AF2669,
+ 11FD04163B441355109B6404, ); name = effects; sourceTree = ""; };
+ E8E600A3F6A8CC15DA4AB380 = {isa = PBXGroup; children = (
05214F029B4F78722B9642EF,
25E400988B2BFD763207E0EC,
3188471C61CFEC8036BE0FBC,
@@ -1026,17 +1057,29 @@
0022D310074F4B82ED8704D3,
5655B03A7E02DB37AFC641FD,
27A630A986DDEFB7182E59BA,
- E52C9CE6870145C1B27963B4, ); name = midi; sourceTree = ""; };
- 201F1D89F1C417151BA37926 = {isa = PBXGroup; children = (
- 00588853E1349AC4628FBE4E,
- D12A713DA14521B90404F672,
- 75F909BD93C1C29809827E08,
- CA26DA522E4998DF00EC3927,
- 4EDA6213BB262D96FEE0AA55,
- 45B7DA5829EC535A7358B483,
- 8A57DF9994DB00CF1232E8A3,
- 11FD04163B441355109B6404, ); name = effects; sourceTree = ""; };
- 553B171FBE5102953DE5E0D6 = {isa = PBXGroup; children = (
+ E52C9CE6870145C1B27963B4,
+ 2B67B13342F0A3F807DF2B2A,
+ 97B472DF9AD7A1AB538868F2, ); name = midi; sourceTree = ""; };
+ 4FC4DCB960A47FF99D235E40 = {isa = PBXGroup; children = (
+ 8CE9CC147B5ACCAFF12E599F,
+ ED5AAE97A896206C7243B3B3,
+ 027412328DE49125F841AE57,
+ 1127E52190B4DC4D4133647E,
+ 4A7AE43CB3279CA55F3CD658,
+ 8D495F90F56830865D5591A3,
+ 0CFA4CB74568DE690B65D1AE,
+ 366835A7E194774D7333EC83,
+ 125AEF47724D755852688941,
+ CC99560FE6EBDC39D071BBC5,
+ 4D636682CC831D76D3BB7C7B,
+ 46D387910B077A3AA7CB9C92,
+ 5D673258913CCC1B0DED9F51,
+ 35DA65C71E79224AAE6DC7B8,
+ F06C83C04FC16618FBA9BFBA,
+ E2C54EC051B9509356592AE1,
+ F19532C9A9B834EF732E2C52,
+ 074AA27AF6DEA1DD843C42D6, ); name = mpe; sourceTree = ""; };
+ 913FA6ECB5D8A89C282D9F25 = {isa = PBXGroup; children = (
DB230439C2B74460A935E0EA,
10927CA28A3C411F2F40490C,
F3BFC5ADFAD663890D658894,
@@ -1053,15 +1096,16 @@
F945ADAF44E9F3EF76FF78AD,
3396C7F7CD64F9A70357CEE9,
70A8196A5040003FBF7D67D6, ); name = sources; sourceTree = ""; };
- 42254536EA2D807E93C6C7A8 = {isa = PBXGroup; children = (
+ EDAF359D3673E30BB3E188DE = {isa = PBXGroup; children = (
9079597BEBFAC1474AE04618,
1EF7D8DB5497858765CDCCF8, ); name = synthesisers; sourceTree = ""; };
9F77553445814637D3E8C676 = {isa = PBXGroup; children = (
CCA17014988EBD48A5ED5DD6,
- CDB25F907D5B4AA44E5EE13B,
- 201F1D89F1C417151BA37926,
- 553B171FBE5102953DE5E0D6,
- 42254536EA2D807E93C6C7A8,
+ C9460E5A3D79B9B640DE09DF,
+ E8E600A3F6A8CC15DA4AB380,
+ 4FC4DCB960A47FF99D235E40,
+ 913FA6ECB5D8A89C282D9F25,
+ EDAF359D3673E30BB3E188DE,
4944D74AFDAD75D539AEB8D4,
5015777ECDDAC17D0C132F34, ); name = "juce_audio_basics"; sourceTree = ""; };
690D35B2436D4D22FB1ABF16 = {isa = PBXGroup; children = (
@@ -1314,6 +1358,7 @@
BE1897DD24C0D246E3A3CAFE,
6128AC2D8968E03358270E2C,
1A94132E3E360E82F17A6BC4,
+ 93D22E30CF61C961B6CE1733,
0DF6C35510888847D1E902F5,
CA8A03AA754B6D2E50407614,
5BC3CDD41499BB93EE4C240C,
@@ -1555,8 +1600,7 @@
D513D324C35DB0ABE2072669,
B27A9D33D351006D133C2A4F,
741EA80E2D8B179A8CC3C486,
- D5473FF02298634F76630131,
- 3E9FE02DBB2F6B25D413A6D7, ); name = broadcasters; sourceTree = ""; };
+ D5473FF02298634F76630131, ); name = broadcasters; sourceTree = ""; };
EB300AC888CF5699661F9982 = {isa = PBXGroup; children = (
2152D28F9FCD5E968AB74A6D,
6AF0F56FACEF5F8F62CABABD,
@@ -2203,6 +2247,7 @@
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.GainPlugIn;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Debug; };
A1C396C5187D6F9F4B486EDD = {isa = XCBuildConfiguration; buildSettings = {
@@ -2231,11 +2276,13 @@
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.GainPlugIn;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Release; };
12107CEF96782BFB9B82B7AC = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info.plist b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info.plist
index 1625f56102..107b93b782 100644
--- a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info.plist
+++ b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.ROLI.GainPlugIn
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
GainPlugIn
CFBundlePackageType
diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj
index d916b12c70..0e111abf55 100644
--- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj
+++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj
@@ -144,6 +144,15 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -159,13 +168,34 @@
true
-
+
true
-
+
true
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
true
@@ -1282,16 +1312,27 @@
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -1415,6 +1456,7 @@
+
@@ -1520,7 +1562,6 @@
-
diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters
index baeca9af66..5f64c35324 100644
--- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters
+++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters
@@ -17,11 +17,14 @@
{A33A1E1D-AC2C-6382-8681-48B0FC374C60}
+
+ {11A75801-B027-40BD-4993-023023ACCBF7}
+
{3FD908F5-98C8-9A61-FC03-0BAF8913CBB0}
-
- {11A75801-B027-40BD-4993-023023ACCBF7}
+
+ {8C868E51-156D-A916-047C-0D9EA1393675}
{EF2CAB40-0432-429B-C517-86ADF136BB8A}
@@ -331,6 +334,15 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -346,14 +358,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1596,6 +1629,24 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -1611,20 +1662,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1995,6 +2061,9 @@
Juce Modules\juce_core\containers
+
+ Juce Modules\juce_core\containers
+
Juce Modules\juce_core\containers
@@ -2310,9 +2379,6 @@
Juce Modules\juce_events\broadcasters
-
- Juce Modules\juce_events\broadcasters
-
Juce Modules\juce_events\interprocess
diff --git a/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer b/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer
index 7a5df57696..8aeb183a5c 100644
--- a/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer
+++ b/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer
@@ -8,7 +8,7 @@
pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0"
pluginSilenceInIsSilenceOut="1" pluginEditorRequiresKeys="0"
pluginAUExportPrefix="GainPlugInAU" pluginRTASCategory="" aaxIdentifier="com.ROLI.GainPlugIn"
- pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.0.2"
+ pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.1.0"
pluginIsMidiEffectPlugin="0">
diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info.plist b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info.plist
index dea72daa4c..e0c5ec1206 100644
--- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info.plist
+++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.ROLI.MultiOutSynth
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
MultiOutSynth
CFBundlePackageType
diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj
index a5166b677b..7e1098b8a1 100644
--- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj
+++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj
@@ -72,6 +72,7 @@
000AC5FF554793776E3AA4FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; };
002CC17409E195D13298FB0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; };
00AEE6823FC9C1A4913C7747 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; };
+ 0131FC9AFE713F21B922F009 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
014566D04367E8AC6C3E5494 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; };
017CCA9557BD06B5BDD9E3AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUScopeElement.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUScopeElement.cpp"; sourceTree = "SOURCE_ROOT"; };
020ADF783703D9BA9DCD3D7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -151,6 +152,8 @@
161F437161F652CD3D05E7DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
164E2C468EA1492CC75B1A67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
16F9C729308D7F52D194ECFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; };
+ 171E2A766009DC7F5766E7D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; };
+ 17561E7ABD87311B2693596E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; };
178435F0CA12608B22C45154 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; };
17883F1D2C9554BF9CCCDCBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; };
178944D8D270668280542984 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -171,6 +174,7 @@
195890E4E6C23E08A84D96CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; };
198DE0A56C502B27A9594FB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; };
19DBDBD739D1DA9E9DC333D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; };
+ 1A5DA527683597B26ED9C82F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; };
1B250B6B2BB1021C9171C253 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; };
1B468DBA17F78A4C46EFDB34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CheckSettingMacros.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h"; sourceTree = "SOURCE_ROOT"; };
1B61ACAEDE5042CAE76E5604 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; };
@@ -213,7 +217,6 @@
2613AA4577571B92CE39F6C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; };
2641826B6F48226186091387 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; };
26DB004476F7F4944A6A9AA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; };
- 27082116535CD9AE4EC30F38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
27170419E6F8EC6BD7C8BCA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; };
273D9E2E857E120E21A6288A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; };
2757B658C783233B21C07F8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -363,6 +366,7 @@
4AEC0F849EBE143B5B7ADDE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; };
4B4395FD0B981840C14E2344 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; };
4B46AE20905B34DFA0AF76C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; };
+ 4BC964E3D06331BCF6218D9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; };
4BFC336E5E422B4F7AC270F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; };
4BFC4BAE9302DCBFB1C464B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; };
4CE235E66B9E5E1A10B337E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; };
@@ -371,6 +375,7 @@
4D7B7390B8ADA5BCB2FC4D7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; };
4E1182D5F41EB84A74D6F261 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
4E42E6E91CA59435A4ECF5FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 4E4515C1E964BE8E471211A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; };
4E57D180512E7FD62B4FBA86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; };
4E9D35F434E31D2166A0DCB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; };
4EA4942EFEF5159987BA8048 = {isa = PBXFileReference; lastKnownFileType = file.ogg; name = singing.ogg; path = ../../Source/BinaryData/singing.ogg; sourceTree = "SOURCE_ROOT"; };
@@ -513,6 +518,7 @@
701887A3C3EE66EEF8EF0961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; };
706EA223A5859B5B1D9AE107 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; };
70BC3C87909EA4BAA5A23BFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 70C5C7441E1ABDD141697357 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; };
70D716A3A5CB882444F74D9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
716620BCB7F02A85EEC40C7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
71CA2D69B013364826D13ED5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; };
@@ -520,6 +526,7 @@
729F1EFFD61EE82D7AE1786A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
72B595E3E9871AE21AD1965F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; };
72BD50416C51413DCBD7D8DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_win32.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_win32.h"; sourceTree = "SOURCE_ROOT"; };
+ 73725E43E7F0A24F4EF85454 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; };
73CB12292CE60AB18538AF4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; };
74419B36F967A905E6420456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; };
749953F7CA095C042B1B4559 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -562,6 +569,7 @@
7F5AC5802C5F3456000B33E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; };
7F6829C8ACDB4BFDAFE28980 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; };
7FB910D43631077DB32A2110 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; };
+ 7FF0BA5F88A0A8B52C507D28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; };
80040993DA30B1F497A07EA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; };
800E8059F047CEB061C075A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; };
80625D96A668687AC550A820 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
@@ -577,6 +585,7 @@
83451E47EC6D450257F8BA55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; };
83523069062525815BFD036F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; };
836EAC1C5D126C6C8907E8C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AU_Wrapper.mm"; path = "../../../../../modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; };
+ 8374955FFBDFF30233E30708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; };
846285470BF62A799EDE2325 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; };
846AA1CDFADEBB73B72CE6C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
846B7257E942D68688EA379A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -584,6 +593,7 @@
84F75A3966D4F24241B3CCA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; };
85B2725C830D3AE0F1A47C2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; };
85C014F835B48411CB12B57E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 8684A652B0449DFDF4DAA4B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; };
86DEFDF770D2D154CEE92B63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; };
86FD2BEB554C25724A2AF813 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode1.cpp"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = "SOURCE_ROOT"; };
870B0A5554D4D10C714885E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -609,6 +619,7 @@
8AC10A34622E7BC408140CA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
8AED28A9FB0E39665E7815B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; };
8B06ADD5C4EE0C60F07616F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; };
+ 8B63CF0D72940D7FEE5CD031 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; };
8B8E7EDC3FDB461257EEB131 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
8B91222AA8F3B575C73C0CA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; };
8BC913A5669953BFE5A456F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FakeMouseMoveGenerator.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_FakeMouseMoveGenerator.h"; sourceTree = "SOURCE_ROOT"; };
@@ -617,6 +628,7 @@
8D3FA5C2C12EC7E60EAD2B2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; };
8D8D6C4E9A3B9D7ECA7A8B6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; };
8E7404BA40E1808B5ED7E648 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
+ 8EB72E0BBFF2C0E0BA3EDA96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
8F6829961A0F50B8265BD9CB = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; };
8F808F4330D4F791E62FC452 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; };
8F9997207C596AF8202322E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -696,6 +708,7 @@
A15FA1277122C51BBC59CA88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; };
A19D22E0A27BAE1FC50CE613 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; };
A1F225D69FED37DF00EA8785 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; };
+ A2747584601435BA6B3D5CDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; };
A32F1AA27CD6AB49CB228FCC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; };
A36AA1398C4541FE5C6AFB2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
A3891F76A362C09F73786739 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; };
@@ -703,6 +716,7 @@
A53147DCDEB082194C22B621 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; };
A531A8EF845CA83185289794 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; };
A54BD09649A116C594A3A5A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; };
+ A5517A628BE856C29017BA31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; };
A56E6BF5D58DAB115AB2C7F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; };
A5B89CA940B7EB19170AD83A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; };
A5C098E2A6A7ABB35F5B86DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; };
@@ -747,6 +761,7 @@
B16C314C068BA840D4C85E3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; };
B19D9B4BBB6FE2A7D87858F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; };
B1E2909AE12C3CDB53D73092 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; };
+ B1FEC640A51E3FA12BC20E0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; };
B224AC09365587D008350995 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; };
B2257ED7F84FF2ECDFFE46F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; };
B2DC593E5D8E5F920309CFFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -792,17 +807,20 @@
C08649E52B86DF11BFEA005C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; };
C0FEDD014D61F70AF5E487C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; };
C11EE4B9FC2D96C53F50BCDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; };
+ C13560671ADE38C728067652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; };
C17936056CB37CDC047FFDB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; };
C1B9FC52A734E68F31FCC26A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; };
C24225BBC1A782BEB1B1A631 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; };
C2800EE214F48F4A1A754A13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; };
C2EF85C94EA976606FFA4D9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; };
+ C30136753CC983A267920749 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
C31833453401D61E252001B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; };
C3D0A23DF844C5A6ADF37600 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; };
C3DD39031B0142481AEB5469 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
C4325E86FCBE01FC9E65C6FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
C44C58F5A4D9D8EEC658DDB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; };
C453837C3342293C205C2F83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; };
+ C49E420FD1E187FA65B8DD59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; };
C4B9D5E8565EEA36D3C53523 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
C543793FB12BB110AED9D59E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; };
C55BA71B6FDCD2E164586597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; };
@@ -813,58 +831,58 @@
C669B2C94347112865575479 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; };
C70AF24CE449413957076690 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; };
C7570B6C472BBE132D6EA308 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; };
+ C7620DBAD9E38AA49607E8A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; };
C78B08A40E0F71F8091C8F58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
C7A1DF50E15C11D93375BD53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
- C7FF15427F8871470BFA4820 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
C89360329ADE7BE3C58AB6ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; };
- C8FDFE252C3E17D4A02C256E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; };
- C9D607D1006DC507DED7889F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
- C9F38DEE0CD76DA4FF6BBDF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
CA5EBD7676B224123E102A1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; };
+ CA8CF02AC2665E599ECF7A7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; };
CAAE1D22DACE9CACB93B2129 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; };
CAF48DE29336FD7E6BA83365 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; };
+ CB841032A149EE040BB59594 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
CC9DCEC108739FBC8A377A22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; };
CCF97D006BD017722C74B6A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/MusicDeviceBase.cpp"; sourceTree = "SOURCE_ROOT"; };
CD02F270DE7AE1635A3E423E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; };
- CD111D36AD8E9D73CE9739F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; };
CD21B4F62CDF547C13D747C3 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_graphics/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
- CD26D70DEFE69EB620F09443 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
- CD4A4B5DF38D0F6C1B5CA961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
- CD4CB495D75A2ABAA66A2951 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
- CEEC9947F99D7F39C77DE79B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; };
- D06DCC799C2F8567B19C2B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; };
- D18DE409087FFFDCA4187D4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; };
- D21FC426C0106FDE24A94A5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; };
- D5445BE1A8D52195956FD045 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
- D5BD3DE485D0F4E7C3BB6A0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; };
- D719C3CB67E409229DF1DC12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
- DAC36A924C848D4620ACBBDB = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
- DC6ADA91CE5D30DDB24E5A7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; };
- DDE7DA42F3224AE87479C531 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; };
- DDEC9F2E4879D892EE4D5D14 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
- 4854B1D7DF32D117BB7E4D1F = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MultiOutSynth.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
- C30136753CC983A267920749 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
- CA8CF02AC2665E599ECF7A7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; };
- CB1789262FD3A919F45A7FD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; };
- CB841032A149EE040BB59594 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
- CC1F87E59205712A0B2B08D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginHostType.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_PluginHostType.h"; sourceTree = "SOURCE_ROOT"; };
CD2CEC703F63930859D26DBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
- CDB15D2B8437758B0F7434B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; };
CE1C954808FDA669FEEFDC2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; };
CEA5C634122F13B61BC06B2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
CF2A59FABE1AEC5251A7C9A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAAudioChannelLayout.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CAAudioChannelLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
+ D18DE409087FFFDCA4187D4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; };
+ D44AA51289630AADC5B6790C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
+ D5445BE1A8D52195956FD045 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
+ DAC36A924C848D4620ACBBDB = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
+ DC6ADA91CE5D30DDB24E5A7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; };
+ DDEC9F2E4879D892EE4D5D14 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
+ 4854B1D7DF32D117BB7E4D1F = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MultiOutSynth.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
+ C785485A7DC04A2134F4F2B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; };
+ C7FF15427F8871470BFA4820 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
+ C8FDFE252C3E17D4A02C256E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; };
+ C9D607D1006DC507DED7889F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
+ C9F38DEE0CD76DA4FF6BBDF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
+ CB1789262FD3A919F45A7FD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; };
+ CC1F87E59205712A0B2B08D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginHostType.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_PluginHostType.h"; sourceTree = "SOURCE_ROOT"; };
+ CD111D36AD8E9D73CE9739F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; };
+ CD26D70DEFE69EB620F09443 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
+ CD4A4B5DF38D0F6C1B5CA961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
+ CD4CB495D75A2ABAA66A2951 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
+ CDB15D2B8437758B0F7434B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; };
+ CEEC9947F99D7F39C77DE79B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; };
D01619CC43F88EC81883B673 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; };
+ D06DCC799C2F8567B19C2B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; };
+ D21FC426C0106FDE24A94A5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; };
D29D052F62D8B4DD5965D099 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; };
D3A6E1B603DE41421B936020 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; };
- D44AA51289630AADC5B6790C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
D494EAD9146C1223068494AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; };
D503329DCE178787E5B2D8C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
D50539AB3F3030B5B6EE1E27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; };
+ D5BD3DE485D0F4E7C3BB6A0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; };
D6257EA24F3F7E3AED2A21BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; };
D62F1F169DFB880C99CD8735 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
D65B12939D2497DB1D262101 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; };
D6889EB5ED8960BD2093A686 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; };
D6A2647F0D5451971FFC64F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
+ D719C3CB67E409229DF1DC12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
D75404BD545EF7897D43EB0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; };
D7BE613B990CEDB4030CBBC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; };
D7CEEB6BD07F4EC64B6AD329 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; };
@@ -879,12 +897,14 @@
DAD8860FF8B669EDFE4C1A25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; };
DBAED9DF8F8A34A575B53475 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; };
DBCB6A4B9FD47F186ED54DE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; };
+ DC3E923567B8D0A82632AE93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; };
DD125DF0B3BB2378B48A6434 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
DD4A6E358F46DEC4600AC71F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; };
DD610485E54DF8315DA4428A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; };
DD97A7CBBE42561E6480E3ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp"; sourceTree = "SOURCE_ROOT"; };
DDA1AFBAA2188CE903B2E54A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; };
DDA7BDCA776F0FF25A0FD157 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; };
+ DDE7DA42F3224AE87479C531 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; };
DEA56EFE4291A9CD5BC96ED0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
DEDF197765F5312D4BDDC0D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUDispatch.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUDispatch.cpp"; sourceTree = "SOURCE_ROOT"; };
DEEF4C84F0F68E23C3971AC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -993,6 +1013,7 @@
F9B90C281BF97ECE9FC82587 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; };
FA24EA3E5A920F30B57F1D33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; };
FAA929F0001987BCB1E8EB9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
+ FB38C824E91E1D9D9870EE2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; };
FB7613F3D8DDF20FB12F805E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FFT.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.h"; sourceTree = "SOURCE_ROOT"; };
FB99B04786E13E92B0A5DEA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; };
FBE21CA28CDA215648CD2F13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1023,7 +1044,17 @@
26DB004476F7F4944A6A9AA2,
DC6ADA91CE5D30DDB24E5A7A,
3BDA347B8ABAB8F412A8775D, ); name = buffers; sourceTree = ""; };
- 9325434184593753EEF34210 = {isa = PBXGroup; children = (
+ F0136AEC76EA647325BB9C33 = {isa = PBXGroup; children = (
+ BF3758CE73C625C6CDFCE49A,
+ 1F845F1E4C76D9B6EC0E2E03,
+ FB7613F3D8DDF20FB12F805E,
+ 9A30B40360613D3FE6E4977A,
+ 4D654FC603651F7BB9159FB0,
+ EC2CF7627F27AA2864A5D7C6,
+ 27BEC151D14FE6F4E1D39E15,
+ 73725E43E7F0A24F4EF85454,
+ D06DCC799C2F8567B19C2B0A, ); name = effects; sourceTree = ""; };
+ AAD90CACF4385535D67887E1 = {isa = PBXGroup; children = (
41488025FDE6C41BF92C67CF,
00AEE6823FC9C1A4913C7747,
568DEA42FC180015FAB05351,
@@ -1033,17 +1064,29 @@
12532B4A3337CC57DD67EE4A,
08215D928696F8C465CE8621,
F293FF5EFE9AF4B02F280BD0,
- 2D4F50A68C0E086A2C9FB6D5, ); name = midi; sourceTree = ""; };
- 98408C2DD7C2A1CA60C32BC2 = {isa = PBXGroup; children = (
- BF3758CE73C625C6CDFCE49A,
- 1F845F1E4C76D9B6EC0E2E03,
- FB7613F3D8DDF20FB12F805E,
- 9A30B40360613D3FE6E4977A,
- 4D654FC603651F7BB9159FB0,
- EC2CF7627F27AA2864A5D7C6,
- 27BEC151D14FE6F4E1D39E15,
- D06DCC799C2F8567B19C2B0A, ); name = effects; sourceTree = ""; };
- 69EC6229D13ECEF53FE1D262 = {isa = PBXGroup; children = (
+ 2D4F50A68C0E086A2C9FB6D5,
+ C7620DBAD9E38AA49607E8A4,
+ C49E420FD1E187FA65B8DD59, ); name = midi; sourceTree = ""; };
+ 1C3131DE5F94DA686A7D4151 = {isa = PBXGroup; children = (
+ 8684A652B0449DFDF4DAA4B4,
+ 171E2A766009DC7F5766E7D0,
+ 17561E7ABD87311B2693596E,
+ 8374955FFBDFF30233E30708,
+ 1A5DA527683597B26ED9C82F,
+ A5517A628BE856C29017BA31,
+ 4E4515C1E964BE8E471211A8,
+ 4BC964E3D06331BCF6218D9E,
+ DC3E923567B8D0A82632AE93,
+ B1FEC640A51E3FA12BC20E0A,
+ 70C5C7441E1ABDD141697357,
+ C13560671ADE38C728067652,
+ C785485A7DC04A2134F4F2B3,
+ FB38C824E91E1D9D9870EE2D,
+ A2747584601435BA6B3D5CDF,
+ 8B63CF0D72940D7FEE5CD031,
+ 0131FC9AFE713F21B922F009,
+ 7FF0BA5F88A0A8B52C507D28, ); name = mpe; sourceTree = ""; };
+ FCBDBAC0DA95D12540B21F69 = {isa = PBXGroup; children = (
98C80D3580F3F5DEEB2E4B54,
4585AD460114FC89A5E5AFC8,
41D277DB3A04C99DAC3F6970,
@@ -1060,15 +1103,16 @@
3B14066CC1A7CE3F697E6D91,
B6854E911F4EBFC8F05BE1A6,
672DBC02D6EDB3050B2289C2, ); name = sources; sourceTree = ""; };
- 78CD8C07D9DDB1BA08932038 = {isa = PBXGroup; children = (
+ B9F686C235EFD42C179F16A8 = {isa = PBXGroup; children = (
1D81EC260CD9B2486EB0C035,
80040993DA30B1F497A07EA3, ); name = synthesisers; sourceTree = ""; };
B857FA4BA21C5AD0321C7F32 = {isa = PBXGroup; children = (
97B6F387F15B93CF98B48290,
- 9325434184593753EEF34210,
- 98408C2DD7C2A1CA60C32BC2,
- 69EC6229D13ECEF53FE1D262,
- 78CD8C07D9DDB1BA08932038,
+ F0136AEC76EA647325BB9C33,
+ AAD90CACF4385535D67887E1,
+ 1C3131DE5F94DA686A7D4151,
+ FCBDBAC0DA95D12540B21F69,
+ B9F686C235EFD42C179F16A8,
61384A4EC446167E7F11985A,
C31833453401D61E252001B9, ); name = "juce_audio_basics"; sourceTree = ""; };
B1399783AB5A9A2B3D3911E8 = {isa = PBXGroup; children = (
@@ -1321,6 +1365,7 @@
F366732E3ADF596642F1639A,
59D43C502ABCFF34DFB72CA2,
BC88BB8A29FC65FD3EB84D76,
+ 8EB72E0BBFF2C0E0BA3EDA96,
CEEC9947F99D7F39C77DE79B,
59C20493E9BF8D89F9238BF1,
C24225BBC1A782BEB1B1A631,
@@ -1562,8 +1607,7 @@
C11EE4B9FC2D96C53F50BCDB,
D75404BD545EF7897D43EB0A,
F13ED53195C1AFEC88B36244,
- A3891F76A362C09F73786739,
- 27082116535CD9AE4EC30F38, ); name = broadcasters; sourceTree = ""; };
+ A3891F76A362C09F73786739, ); name = broadcasters; sourceTree = ""; };
1908BB0424610BC8396867C9 = {isa = PBXGroup; children = (
9EB89F75DEEB3562DBA2BBC3,
71F462A36BBF13093CDD8175,
@@ -2212,6 +2256,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.MultiOutSynth;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Debug; };
6E412255106D2A5FF632F0C5 = {isa = XCBuildConfiguration; buildSettings = {
@@ -2240,11 +2285,13 @@
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.MultiOutSynth;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Release; };
D56139B213D35348922DEF18 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj
index bd966ce6e3..3175037e1e 100644
--- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj
+++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj
@@ -144,6 +144,15 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -159,13 +168,34 @@
true
-
+
true
-
+
true
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
true
@@ -1283,16 +1313,27 @@
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -1416,6 +1457,7 @@
+
@@ -1521,7 +1563,6 @@
-
diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters
index 2a2e20619c..f7972679c0 100644
--- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters
+++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters
@@ -20,11 +20,14 @@
{A33A1E1D-AC2C-6382-8681-48B0FC374C60}
+
+ {11A75801-B027-40BD-4993-023023ACCBF7}
+
{3FD908F5-98C8-9A61-FC03-0BAF8913CBB0}
-
- {11A75801-B027-40BD-4993-023023ACCBF7}
+
+ {8C868E51-156D-A916-047C-0D9EA1393675}
{EF2CAB40-0432-429B-C517-86ADF136BB8A}
@@ -334,6 +337,15 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -349,14 +361,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1602,6 +1635,24 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -1617,20 +1668,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -2001,6 +2067,9 @@
Juce Modules\juce_core\containers
+
+ Juce Modules\juce_core\containers
+
Juce Modules\juce_core\containers
@@ -2316,9 +2385,6 @@
Juce Modules\juce_events\broadcasters
-
- Juce Modules\juce_events\broadcasters
-
Juce Modules\juce_events\interprocess
diff --git a/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer b/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer
index e49d845a4a..eadf342068 100644
--- a/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer
+++ b/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer
@@ -9,7 +9,7 @@
pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="0"
pluginAUExportPrefix="MultiOutSynthAU" pluginRTASCategory=""
aaxIdentifier="com.ROLI.MultiOutSynth" pluginAAXCategory="AAX_ePlugInCategory_SWGenerators"
- jucerVersion="4.0.2" companyName="ROLI Ltd." companyWebsite="www.roli.com"
+ jucerVersion="4.1.0" companyName="ROLI Ltd." companyWebsite="www.roli.com"
companyEmail="info@juce.com" pluginIsMidiEffectPlugin="0">
diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info.plist b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info.plist
index 1fc74ea01b..968dcb0a01 100644
--- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info.plist
+++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.roli.NoiseGate
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
NoiseGate
CFBundlePackageType
diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj
index 17d052a589..783aa5aff7 100644
--- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj
+++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj
@@ -73,6 +73,7 @@
00F9E4426F088AB1162FFFF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; };
010613C644BE3D59642B0236 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; };
011ECA3B0A50EBC19D534178 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
+ 016B625C850303B6DEFC8B06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; };
016F2A51F3064D1BEDE560D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; };
01A79D982F03174319959EF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; };
01D916B4FD36FBFBA0F6036B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -127,6 +128,7 @@
0E433B3D05C0F0DD6F98DD85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; };
0E6C9B964B771B2BCBCEBCD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; };
0FC1D51B60B952D25B74EBED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 1002C5D10559D446910ADEDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; };
1042E64811FFE832B224A59A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; };
10F6E110D54421324D7FF118 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; };
110A2791839AF0A8A3EAEF83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
@@ -210,6 +212,7 @@
25398FFE0D814EBFF1A51AAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; };
258861CF979A5C278D2900E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; };
259860F50BF88025C9451A37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; };
+ 262F949CA9D33E194281DF14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; };
266B77C47D17B1BF65EF6C64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
2692844292F9B2EF9C2A3B63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; };
26C683F1B50315F7D54F2B4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -238,6 +241,7 @@
2DBA2F48AF1591A3EB1B0C21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; };
2DD2731D86AFD89EA4C8BBB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; };
2DD29819AFA3A5F3E07BD965 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
+ 2DE7F5CB550369147A926A22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; };
2E1C905B950B22F3D62A7826 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; };
2E6372C0453C24714BAF52D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; };
2E7C45A3DE967DA2042E77D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -277,6 +281,7 @@
38FF7F334650E302FF70770D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
39330A1B1B7B8221577B5287 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
39B623717771E10C10DB4203 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; };
+ 3ADEE51FBB32B9E7CDD3A924 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; };
3B8EA21CAF31E3EBF86C72C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; };
3BA94AB680CAB0079326E155 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; };
3C3243F7C991EB9425F3AA42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -295,6 +300,7 @@
3ED2CBBCD8CD636730F6771F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; };
3EF69AC6D7A75BCF43A2FE91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; };
3FCF0AC87F15299AEE4E0085 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; };
+ 3FE30040DBAE8D28275C4533 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; };
401E5E8894DDB1D48D23A116 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; };
40D306B2EBC7C4D75A0F4D98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; };
40FB4762ABA47B642C71DC23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; };
@@ -324,6 +330,7 @@
47E718B88C4DBCAB24ECED6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; };
47E8924D97788E68FD007DFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; };
485418F6ADC8752DD9F99DCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; };
+ 488951B27D3508D6835C8BE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; };
4935AF0293FD72FCA1A20601 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; };
4948EE5199F5B112D3D5A956 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; };
49C5DE8EAAE4AEBAF7BA60A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
@@ -334,6 +341,7 @@
4BA8C030EBAD032677A603EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; };
4BACF3260C3D989D1134FD27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
4BD658660C6B6A5A67B93187 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 4C27DB310396A866B2917A15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; };
4C2CF6BC5BDC337F11F8E64B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; };
4C3FC93FCFD846D2CD7038F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; };
4C69398466F6DD914602C907 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; };
@@ -376,13 +384,14 @@
5594AF89F8EA68B7F0296F78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; };
55A0272BFAEAD9E1F3895068 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; };
55F359FA31D7FE4CA10AB533 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; };
- 55F6E36F65E1E0A89EAA9FBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
55FBB3ADE143ECCD6E154196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; };
5667737D7AFBE57506EA08F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; };
+ 569B70D86CB4966AFBAEB5BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; };
56F5CC34D255847725356493 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
571B0C346579CCD9F6F9A6D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; };
57298B969E81834AE86812D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; };
57DF22B9C166595A356364F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 57EB3B0C971107A667B0B9DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; };
580A589FD052C519B103607A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; };
58559FB6482E5AF25EFAD70C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; };
589790462BFA1ACD31F0042E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; };
@@ -572,6 +581,7 @@
8A1F5A87C3B2CCEA93585F83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; };
8A44C26ED69578525502B4A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
8ABC8FFA9062954E385544CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; };
+ 8ADC67E56AA14EC05BBF681A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
8B486E598F012F91FA7559C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; };
8B4F542918794989863D35ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; };
8CA9B7EE49BD83035EFE86E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; };
@@ -615,6 +625,7 @@
9602F721F59305974F6CD26D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; };
960619C8B62DDD99E5C7E973 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; };
96302BC71AF750DF0F00ED14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 9655EC304547418EE0F73AB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; };
971613FC789719C3F6D2E5B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; };
972767EADE58482A1C7BF65C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
97CE8E2B4E405E8C9199E2B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -623,6 +634,7 @@
9840126F3F4C38B60332CDDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
98AA1B3E2E60CBE1E9EFB73A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; };
99025567594494D7CF194D7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 999B9F4C3F6091ADBA9421E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; };
99CFD965842860C4248EFB4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
99DBD2D02979E38C288F1C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; };
9A0A19875BF42ABAEA7BE5A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -669,6 +681,7 @@
A2CF63640DAFC02E02EF0E7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; };
A35FA240D1B9B62278997E63 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
A43DCE541DAFF4006D5405D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; };
+ A4409A13BED13FDFBC5B4552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; };
A46F3CFCD04B5B97CC845A23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
A54A606A16B534B45C59CE8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
A57C11933D8DB9EC58479065 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -694,6 +707,7 @@
A96A725563AEF91D0FBFA691 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; };
A977A4055E854FA3E893B043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; };
A98DBC09FFE32743F0AC6C3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; };
+ A9C5A07DC31D544051025C80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
AA5E59C590D4B439AA60F87D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../../../../modules/juce_video/playback/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; };
AA9B31B85C75B0CA6DA24741 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; };
ABCF504D78AFDC9C1C0AE41A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; };
@@ -712,6 +726,7 @@
B0C0D96339D48277760418C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
B0E97BE292E3D682C05BA857 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; };
B12EE6AF06E03901F0F155E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; };
+ B16225EF7398EAE3D96ED4FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; };
B17CF6FB971C27506797A7ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; };
B1F80E8BADE2F82A20D517F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; };
B2329BE06F6CB7B939F2707C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -745,6 +760,7 @@
B9A21AE64CC4B86FC1F67061 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginUtilities.cpp"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp"; sourceTree = "SOURCE_ROOT"; };
BA9309916A0ECFD82AB55A06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; };
BB0C0C019EF35B3EEAFB165F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; };
+ BB1056A76B51437D49207330 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; };
BB1D32224A52A6C18E5B070F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; };
BB6BD1571D257BFABEA6EC35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; };
BB7C17AF74A27DB50E8995D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -757,8 +773,10 @@
BD79391479F73580810F52AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; };
BDA9DDCC46750F9BEC942F54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; };
BDF3BEDEBF9A3DC15D5D9CED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; };
+ BDF6569EACC07DC73258C685 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; };
BE60354576FEEF833B0D8F18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; };
BE959CAE23A6B132936F35D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; };
+ BEA30517C0F46A7F15548C27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; };
BF52836BE388BD649AE3568B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../../modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; };
BF7D8E074246E8D83D82C1F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
BFD1E323CFA0C31373F17005 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
@@ -786,6 +804,7 @@
C6133FECB081DAF238300AF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CarbonEventHandler.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CarbonEventHandler.cpp"; sourceTree = "SOURCE_ROOT"; };
C617096451F177459C4C667C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/MusicDeviceBase.cpp"; sourceTree = "SOURCE_ROOT"; };
C62AED30E688772F7AE78618 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; };
+ C6392B4465535F02C6C37BA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; };
C65373B23FC2A7F22E3FEC01 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; };
C6A9A10636624D5D1B63F6BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; };
C7112156016984DD3F77B39F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; };
@@ -807,6 +826,7 @@
CA6E05682098587BB2DF5FA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; };
CABF309B0893ACB234F3A8B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; };
CB208336B1C9C1D9AA906BB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; };
+ CB3093468EDB60AED639D308 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; };
CB425D61E072DED92F6CAC85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AU_Wrapper.mm"; path = "../../../../../modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; };
CB83B999879BF9C635AE0AB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; };
CB9FB800411BB27FAC82E799 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; };
@@ -936,6 +956,7 @@
EE004DC5369648F9F4F967B5 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
EE251D7EB5D3AE227EC1EFFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
EE4F068BCE9F99CE4CD2B12C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; };
+ EEBCF2E97ABC7735C5B1712D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; };
EEDF6AB8291D205CC8F76047 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; };
EEF0BC764D4CBA4BD1B4FBE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; };
EF4925BA88D2315DA25B7915 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -957,21 +978,21 @@
F35CA755BCEF635E1D3A905C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsHooks.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_WindowsHooks.h"; sourceTree = "SOURCE_ROOT"; };
F371D8637CA487256A3B629E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; };
F3D6E76B33CCF7C8C5E62659 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; };
+ F402880EDB009624652675FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
F420A1026C41E30B63C5174A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; };
F43B0BB64499285E4D2D65E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
F4C02954B36F8FCE5D4E647C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FakeMouseMoveGenerator.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_FakeMouseMoveGenerator.h"; sourceTree = "SOURCE_ROOT"; };
- F5EB0A8DFCB7CD91CF9CBE75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
- F600E3EF3432A72F10575130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; };
- F6657739D6FBDE57D542E4A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
- F785317A2BB8414F5D8E2813 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_WinUtilities.cpp"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = "SOURCE_ROOT"; };
- F89668D992EB657D805942EC = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
- 19590F837CF3298B056902F6 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NoiseGate.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
- F402880EDB009624652675FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
F4CD72A3B13818EEA379A6EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; };
F4E8427587734D0D2B94F4D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RTAS_DigiCode_Header.h"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = "SOURCE_ROOT"; };
F594549A67A6B48C0DBF104B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; };
+ F5EB0A8DFCB7CD91CF9CBE75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
+ F600E3EF3432A72F10575130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; };
+ F785317A2BB8414F5D8E2813 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_WinUtilities.cpp"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = "SOURCE_ROOT"; };
F7B9CA2B12E7F8FF917770B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; };
F80341FE453303ED1D9CE210 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; };
+ F89668D992EB657D805942EC = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
+ 19590F837CF3298B056902F6 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NoiseGate.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
+ F6657739D6FBDE57D542E4A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
F8354F540C7AD8D7D331AC8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; };
F838AA16DFECC7023BADF2FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; };
F8755BB22478DDE574F49550 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1016,7 +1037,17 @@
99DBD2D02979E38C288F1C7D,
D55687B3C041C9FD94D8415F,
C6A9A10636624D5D1B63F6BD, ); name = buffers; sourceTree = ""; };
- D3F76EB2B8A787AE60798E4D = {isa = PBXGroup; children = (
+ 00C01FDEA79F5F9D8EF03938 = {isa = PBXGroup; children = (
+ C932E76A63B20E88EF1F8B3D,
+ 750758ECC540B541C7566CC1,
+ D99988F1251B1C59A8EC0A05,
+ 96302BC71AF750DF0F00ED14,
+ 2E6372C0453C24714BAF52D8,
+ F600E3EF3432A72F10575130,
+ ED5D91E0310FF5CBC1962AF2,
+ 9655EC304547418EE0F73AB8,
+ 092D7A87A801CF8AC2C40E3C, ); name = effects; sourceTree = ""; };
+ 6C1EC996DA676B506C730968 = {isa = PBXGroup; children = (
4EDCF2BD923E25832D05916E,
0A360D5A0E729876A18A38A7,
E042774BE22A3A962D71C21A,
@@ -1026,17 +1057,29 @@
16C4246BF24221CDA0DFB56D,
29EC2A0E5AB98A6431A80C8F,
57DF22B9C166595A356364F7,
- E51E3C4D621A469C86F46BE2, ); name = midi; sourceTree = ""; };
- F5B423AD0462BF1A3A715C41 = {isa = PBXGroup; children = (
- C932E76A63B20E88EF1F8B3D,
- 750758ECC540B541C7566CC1,
- D99988F1251B1C59A8EC0A05,
- 96302BC71AF750DF0F00ED14,
- 2E6372C0453C24714BAF52D8,
- F600E3EF3432A72F10575130,
- ED5D91E0310FF5CBC1962AF2,
- 092D7A87A801CF8AC2C40E3C, ); name = effects; sourceTree = ""; };
- E022A667EB8B2AF6709A2D4D = {isa = PBXGroup; children = (
+ E51E3C4D621A469C86F46BE2,
+ 999B9F4C3F6091ADBA9421E0,
+ 569B70D86CB4966AFBAEB5BF, ); name = midi; sourceTree = ""; };
+ 1E4E1F71EAB813080B59CCB8 = {isa = PBXGroup; children = (
+ BB1056A76B51437D49207330,
+ A4409A13BED13FDFBC5B4552,
+ 57EB3B0C971107A667B0B9DB,
+ BDF6569EACC07DC73258C685,
+ 016B625C850303B6DEFC8B06,
+ B16225EF7398EAE3D96ED4FA,
+ 4C27DB310396A866B2917A15,
+ 3FE30040DBAE8D28275C4533,
+ C6392B4465535F02C6C37BA7,
+ 488951B27D3508D6835C8BE6,
+ BEA30517C0F46A7F15548C27,
+ 1002C5D10559D446910ADEDC,
+ CB3093468EDB60AED639D308,
+ 2DE7F5CB550369147A926A22,
+ 3ADEE51FBB32B9E7CDD3A924,
+ 262F949CA9D33E194281DF14,
+ 8ADC67E56AA14EC05BBF681A,
+ EEBCF2E97ABC7735C5B1712D, ); name = mpe; sourceTree = ""; };
+ 3430FD046BBEF538D33CF064 = {isa = PBXGroup; children = (
71C365057920A8B25AABBCFE,
07AFA071D97D3E0EECED0DB4,
B4A41AA6C0B39149FF262728,
@@ -1053,15 +1096,16 @@
84213C8680C3AAAF489747F0,
F43B0BB64499285E4D2D65E2,
F5EB0A8DFCB7CD91CF9CBE75, ); name = sources; sourceTree = ""; };
- 3466AD6E1186F6C7FF187BD7 = {isa = PBXGroup; children = (
+ 18FCF327CE9EF342E83C1DBF = {isa = PBXGroup; children = (
F337D7C65DC5090A9A47C63A,
EEDF6AB8291D205CC8F76047, ); name = synthesisers; sourceTree = ""; };
2ADC259A5923E47E240184C5 = {isa = PBXGroup; children = (
D664511DBB6FDB8F412BB11F,
- D3F76EB2B8A787AE60798E4D,
- F5B423AD0462BF1A3A715C41,
- E022A667EB8B2AF6709A2D4D,
- 3466AD6E1186F6C7FF187BD7,
+ 00C01FDEA79F5F9D8EF03938,
+ 6C1EC996DA676B506C730968,
+ 1E4E1F71EAB813080B59CCB8,
+ 3430FD046BBEF538D33CF064,
+ 18FCF327CE9EF342E83C1DBF,
113C2009363F968B7E80EDE0,
6E74706D73837239FE5FB6BC, ); name = "juce_audio_basics"; sourceTree = ""; };
A09A86760E8E59AC1319BDE8 = {isa = PBXGroup; children = (
@@ -1314,6 +1358,7 @@
1C7FF524BBD0810430CF06D2,
A79A2F454A734BF87399A9F5,
65E98340D35A2BE70D0534C4,
+ A9C5A07DC31D544051025C80,
EA8723E2A2C8F0DD058F9665,
9EB05C378008BD43BC552E33,
9DAB02E651736622947A4879,
@@ -1555,8 +1600,7 @@
6E774756F601F41E87ED8F4F,
EF6241E2090C80185095EB47,
3716F81408159E9307118FED,
- E5B3A88A39DCA9224EAE360D,
- 55F6E36F65E1E0A89EAA9FBF, ); name = broadcasters; sourceTree = ""; };
+ E5B3A88A39DCA9224EAE360D, ); name = broadcasters; sourceTree = ""; };
F970DE3D45574C2DFE7C9C16 = {isa = PBXGroup; children = (
3E224AA9A88BBA37C77D51F4,
2D41BDA9FB2BC252594B5943,
@@ -2204,6 +2248,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.NoiseGate;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Debug; };
18FA66B5CEF0833AA3B3E744 = {isa = XCBuildConfiguration; buildSettings = {
@@ -2233,11 +2278,13 @@
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.NoiseGate;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Release; };
5CD64870C7B8063A2BA5A23E = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj
index d8ce5d8dc5..9f61d6be8a 100644
--- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj
+++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj
@@ -144,6 +144,15 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -159,13 +168,34 @@
true
-
+
true
-
+
true
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
true
@@ -1282,16 +1312,27 @@
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -1415,6 +1456,7 @@
+
@@ -1520,7 +1562,6 @@
-
diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters
index 0673e74b84..30107b4051 100644
--- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters
+++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters
@@ -17,11 +17,14 @@
{A33A1E1D-AC2C-6382-8681-48B0FC374C60}
+
+ {11A75801-B027-40BD-4993-023023ACCBF7}
+
{3FD908F5-98C8-9A61-FC03-0BAF8913CBB0}
-
- {11A75801-B027-40BD-4993-023023ACCBF7}
+
+ {8C868E51-156D-A916-047C-0D9EA1393675}
{EF2CAB40-0432-429B-C517-86ADF136BB8A}
@@ -331,6 +334,15 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -346,14 +358,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1596,6 +1629,24 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -1611,20 +1662,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1995,6 +2061,9 @@
Juce Modules\juce_core\containers
+
+ Juce Modules\juce_core\containers
+
Juce Modules\juce_core\containers
@@ -2310,9 +2379,6 @@
Juce Modules\juce_events\broadcasters
-
- Juce Modules\juce_events\broadcasters
-
Juce Modules\juce_events\interprocess
diff --git a/examples/PlugInSamples/NoiseGate/NoiseGate.jucer b/examples/PlugInSamples/NoiseGate/NoiseGate.jucer
index 9112044a88..b92a7f97aa 100644
--- a/examples/PlugInSamples/NoiseGate/NoiseGate.jucer
+++ b/examples/PlugInSamples/NoiseGate/NoiseGate.jucer
@@ -8,7 +8,7 @@
pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0"
pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="0"
pluginAUExportPrefix="NoiseGateAU" pluginRTASCategory="" aaxIdentifier="com.roli.NoiseGate"
- pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.0.2"
+ pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.1.0"
pluginIsMidiEffectPlugin="0">
diff --git a/examples/PlugInSamples/Spatializer/Builds/MacOSX/Info.plist b/examples/PlugInSamples/Spatializer/Builds/MacOSX/Info.plist
index 38a063a3f8..a5c046d587 100644
--- a/examples/PlugInSamples/Spatializer/Builds/MacOSX/Info.plist
+++ b/examples/PlugInSamples/Spatializer/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.ROLI.Spatializer
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
Spatializer
CFBundlePackageType
diff --git a/examples/PlugInSamples/Spatializer/Builds/MacOSX/Spatializer.xcodeproj/project.pbxproj b/examples/PlugInSamples/Spatializer/Builds/MacOSX/Spatializer.xcodeproj/project.pbxproj
index e7ff82e7d5..7e74f9e4de 100644
--- a/examples/PlugInSamples/Spatializer/Builds/MacOSX/Spatializer.xcodeproj/project.pbxproj
+++ b/examples/PlugInSamples/Spatializer/Builds/MacOSX/Spatializer.xcodeproj/project.pbxproj
@@ -107,6 +107,7 @@
0A8B2220C48BD7CB942BAB91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
0ADBA967D2370E7BA1D06661 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; };
0B5830C30E7F66B1D8EC94B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; };
+ 0B5BB91249272FE9B9BC0F17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; };
0B73B44371ED84B19F74010A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; };
0B825A235F3D13D81779D9E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; };
0B96F006FA7607E81F6744E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -172,6 +173,7 @@
1BFC1888379E8FF6B97C203D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; };
1C56CEC7004907CDAEF38453 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; };
1C59F1266054422695078F5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 1C7C41F9071F263901C81AEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; };
1CD3ADA84EFE505B125C53EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; };
1CD79C7BD43D8E5C604FC549 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; };
1CD97935B3BB623495905D75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAStreamBasicDescription.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CAStreamBasicDescription.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -260,6 +262,7 @@
3123530BF26BBB6541C8E4CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; };
313AEFED513DB3A1BF77DF20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
31488FAE4A662270455AC440 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 3197326DC484EE8C3750C821 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; };
31B0F8740BD10F71EC92C1D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; };
31C7244A5A095901F00EA50C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; };
32CC45778B5B5B255163BB30 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -348,6 +351,7 @@
4912DAB71A00F319CEC30800 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; };
492E52D89CFE81648E26A04E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
49560E6574C4AE88AC441CD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FFT.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 498317E9BB9E7F31FD62395D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; };
499976DDD064E8609DC25FB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
4A0E4F72F10F2E1A29447852 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode3.cpp"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = "SOURCE_ROOT"; };
4A5B6B338D760FEFC9E0CDA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; };
@@ -439,6 +443,7 @@
60C42F6A1C4EA193B2A2EA21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; };
61BC566D2CC1725AA047CB37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
61F57A7F0E39860346776C15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; };
+ 6211F56B14F64E3A2718F89C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; };
62553F858BE2F01022E40DBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; };
63140BB55E2A4149F88F271B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; };
63A4659A907E6841D146EA10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; };
@@ -451,6 +456,7 @@
66453E1A858E5315D222B7C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; };
668CB865C79DC2E5C4D17DA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
66C02C4EE23BA0DC557F7EED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
+ 66FB97AC7D3E1EAC4CD2D5AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; };
67E788EA8675169E961971D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; };
6804F62B88CF8EB894112924 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; };
684F45CA8AAAAC8BEFF6655E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; };
@@ -458,6 +464,7 @@
68B3229C3595CC7DEA4BFD41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; };
68F5D2666A4ADF1B7D6303D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LAMEEncoderAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
69682A2B4E0D8680B5FD9D53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_RTAS_MacUtilities.mm"; path = "../../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = "SOURCE_ROOT"; };
+ 698FECF770157A24AB4ED83F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
6ACE99E32363B8469D2C0DEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; };
6AD814A64A738E506F6C9B87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; };
6B046BBB62F1AE7EFCF77089 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; };
@@ -465,6 +472,7 @@
6B7A8805A32635F5BC60F2CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; };
6BCE2D26E1FAA86CF3B571CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; };
6BF47CA2F93CB4FCC90A3D71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 6BF63343EA4E345632830712 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; };
6C724110311DA4C2937480AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; };
6CBC19F1CE3BF34C86B189DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; };
6DAF603EB249182F640AB557 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
@@ -476,6 +484,7 @@
6ECC11DD941E63A216AC0B31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; };
6EDB196FA30F763AD1900D95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; };
6FDD1DF441C30BF5264B6CDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; };
+ 6FE7A0BB1C9D112CDE6A84F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; };
701EE545B689C3F86C9E78D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; };
702A52528D88892A3ACF780A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; };
70F9EC9FDF958DD865C2C015 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
@@ -506,6 +515,7 @@
7A4FCAA0E19E8B7E2CFC2BB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; };
7AC401F2C2780638CAC25322 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; };
7AD7DF820AB93EC2AB08973A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 7B1256C61E6B76F96E4A8852 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
7B3FC13D5C0F841EBF79C873 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; };
7CB5E244CC0A6A4CFE4304B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; };
7D344CBB6183BCA4F69F3329 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -529,10 +539,12 @@
830C0583A57CA5FE6D628E22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; };
8319BAB2321FCE52C784A4F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; };
8363EFA15EA169FC4CCAD0F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IncludeModuleHeaders.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h"; sourceTree = "SOURCE_ROOT"; };
+ 83925D652855CACAA14B7093 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; };
839C9EA94D841EC15C280108 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
83EA0B86BCC5C162C6ADDB11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; };
842D6422B57E6CC8FB0CEC0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
84A59B0A80443BC13ED867BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 84C0DB13AD3F35352A8DF100 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; };
84C27DA5A28C1A76FCF3580A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
85B8A183C0C10960F111E77F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; };
86006627FC754EB3CF059AE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -609,6 +621,7 @@
99019D3440DF5B870C18F0E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; };
9953EAA12D1F39F0DD922B39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
99DB4E80193568FEC420D2A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 99EC446A69BB72FAF50FA6C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; };
9A007FE5FD17A0E8F48E4917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; };
9A0D506EC020CFEE145158C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; };
9A243FE62C349501DE3F729A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
@@ -660,6 +673,8 @@
A46F2605E137B171557D5395 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; };
A47917CC146AA54805F82AB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; };
A48059D01E60531827DD7FAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
+ A4DD1223308A4FD7396929EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; };
+ A54086C90ED6CE6ED0B293AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; };
A551A9BABB4C90802EF5713A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; };
A55AB25417DA10DEABBDFC5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; };
A57A1D7A8913813E66587168 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; };
@@ -667,13 +682,16 @@
A5D25208A0198B49C14DD787 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; };
A60EB7C30A52958740BBD8A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
A61DA1E7A6F5916189B4F5FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; };
+ A6228EE18834EBEACF2E1121 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; };
A67DAE994643AE469C387C94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; };
A67DBC9C0DB9563C0FF4E338 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; };
A6AA8CF8F36A821EE96BACA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
+ A780651C3A7A7F98BBA0D903 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; };
A7C9748EE56598F609E982A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; };
A7D679FF9A9936CDB8EAF086 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; };
A811529AA4A439A1D8166627 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; };
A8307F9EBD8BB3818B4B1804 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; };
+ A8953A2C324B30F467C7CFC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; };
A8B0C38201A38829E17CB12B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; };
A8D62577B5D84A05088CA181 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
A8D68A58B138B28DE511CE89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; };
@@ -732,6 +750,7 @@
B84E1CDD52AA17299F8595E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; };
B87E71BB6F23FBFE67C000A5 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
B89E4564B6A2ADB23E76C620 = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; };
+ B992EA2939ED6783AB6B49B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; };
B9BA17C9BDC859E6DB47AA48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; };
B9DFEAB3172A03D53D200448 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; };
BAA00673BBAEC6A75E8FB9F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; };
@@ -760,6 +779,7 @@
C1321891420F94B24EFCF1D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; };
C1A764A8AA96809DA7480779 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; };
C1E4C9B08DEAF7133674EA06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
+ C1FCBA3BEC2063936954873E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; };
C219000751AFBAB3C8D0C12F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; };
C259B7FD55379C05F8E95BC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; };
C2D35A1A189915C7EECF3FD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -792,7 +812,6 @@
C99FD0755B6E34F6BA337BCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; };
C9A835800B69F236CD11E6C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; };
CA1757AED1DF64D57CC61AEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; };
- CA4F396C2669DAD9D6E2B44B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
CACECB8BBE3943313B11D33B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
CAF94F50F42FE4E9D2171DA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; };
CB1E39CCD13E7FF55393871B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; };
@@ -850,6 +869,7 @@
D6437FE350A01B14C40BB7D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
D6530E94EE65E549E2E5C833 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
D6B5DE5D7B9E48032A90D86F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; };
+ D6CFD59C0314CE7DD7BD73EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; };
D71475B2A6D2B248338BA848 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; };
D74F6515EB15BEF077B7F430 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; };
D756ABE1B9380A8BD1F3A312 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; };
@@ -888,7 +908,6 @@
DD432701F0355EACC790C62A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
DDD0601C2C4FB41B275CC0C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; };
DDEB6505135C5A79CBD40BCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
- DE1799DEA7064C5F74F6E4A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; };
DE59ADAF175A2A639A070DE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; };
DE70C26194CCEEF541089ADC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
DEB8498A4BFA81F8A8F22E8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; };
@@ -909,7 +928,6 @@
E31A623D2CA5E8684EF2A6CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUOutputBase.cpp"; sourceTree = "SOURCE_ROOT"; };
E3662C34D42B7FCC8784B7B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
E40AA7239F354B6252F89544 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; };
- E419F2F8A34646775873D3F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; };
E481B969AB05E916781EC18C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; };
E512AA48EAE90CA546235ACD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; };
E581890C5859E4828C1BD76A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -923,14 +941,18 @@
E766339D94CC9B0C36E79B3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; };
E7B2A27C7ADD3F7541E861DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V1.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp"; sourceTree = "SOURCE_ROOT"; };
E7B4133FF82803E818F6991E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; };
- E7DE8032BF3EE6E3EFBC4558 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; };
E7F5A0B8E920452DF903F358 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; };
E81BBF6F97EDEA7FDC1F69D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
E842B76A1DCC0E0BF8956DA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; };
E8700FFF476BECBD2C77B1B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; };
- E87734FA8E583D8BCC5E910D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; };
E884E5D1197DA5F515B8A17D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
E8A4AB1A3C1521BB275EEEC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
+ F42550666CCA34433A2336AA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+ 6FE5B154BB57F05637B2339C = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Spatializer.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
+ DE1799DEA7064C5F74F6E4A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; };
+ E419F2F8A34646775873D3F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; };
+ E7DE8032BF3EE6E3EFBC4558 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; };
+ E87734FA8E583D8BCC5E910D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; };
E8EB602B65D8F38325BCADAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; };
E94AFE32124F3F234DC3D487 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; };
E95FC66FFEE9B835945F46FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
@@ -944,8 +966,6 @@
EACCB32681C96DCBF60B4007 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; };
EB2F3B26CA6AA6A46A992939 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; };
EB41D0A58922C1F9A5862184 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; };
- F42550666CCA34433A2336AA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
- 6FE5B154BB57F05637B2339C = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Spatializer.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
EB7D06976714FA930F3CDAC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; };
EB8EB8968B992FFAC968EA86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; };
EC0B0CCFBE66B11BA3120288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; };
@@ -971,6 +991,7 @@
F3C05C4B3B5B073DFB7EF30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
F3CB95C2A1FA0004DEDF10CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; };
F5FCFB2DF288D4383059BDCC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; };
+ F684F45179910D257AA28B58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; };
F6C2EA9EBF342A7357B0F13E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; };
F7A30FB39ED14A8C2DD5F70F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; };
F7B55FCD56257E0B0F77B95E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1016,7 +1037,17 @@
1A5B8B63A80D5EC9636ECFC8,
D15AC0A134AFAFFBBF924A7A,
CBE386E48B7730317D403119, ); name = buffers; sourceTree = ""; };
- 15F08C54EAF666954DA2976E = {isa = PBXGroup; children = (
+ 5176393479E78D22F710BC44 = {isa = PBXGroup; children = (
+ DC768FA8A9E33024D57D5F66,
+ 49560E6574C4AE88AC441CD0,
+ C920D1667739967B4785E645,
+ 1E5380575E2840568CEE18B0,
+ 5571D97128A513A4BBFA3E2D,
+ CBF186F248A7B053967529BE,
+ A1BDD8CA03B00EE72E06E2C8,
+ 83925D652855CACAA14B7093,
+ FFFF5649EA413863979E7B6E, ); name = effects; sourceTree = ""; };
+ 1F92F72B66D6139996047551 = {isa = PBXGroup; children = (
90867F2535F1F8EEFECF020A,
2C8E27327D36D3E2B393A79E,
0DBF03145527DAE8BDD98FF5,
@@ -1026,17 +1057,29 @@
2B5171E4A2674078D44395F7,
D928ABE7E0ABAE418F018A89,
4B022FD2D547AECEF38D1C60,
- DA4591B5BA3B70396E708614, ); name = midi; sourceTree = ""; };
- 25F335E3C0CA8FB12408BA29 = {isa = PBXGroup; children = (
- DC768FA8A9E33024D57D5F66,
- 49560E6574C4AE88AC441CD0,
- C920D1667739967B4785E645,
- 1E5380575E2840568CEE18B0,
- 5571D97128A513A4BBFA3E2D,
- CBF186F248A7B053967529BE,
- A1BDD8CA03B00EE72E06E2C8,
- FFFF5649EA413863979E7B6E, ); name = effects; sourceTree = ""; };
- D80462765DD5025C55788A60 = {isa = PBXGroup; children = (
+ DA4591B5BA3B70396E708614,
+ B992EA2939ED6783AB6B49B3,
+ A780651C3A7A7F98BBA0D903, ); name = midi; sourceTree = ""; };
+ A3C6629009CCC508BE3A2349 = {isa = PBXGroup; children = (
+ C1FCBA3BEC2063936954873E,
+ 0B5BB91249272FE9B9BC0F17,
+ 66FB97AC7D3E1EAC4CD2D5AC,
+ D6CFD59C0314CE7DD7BD73EA,
+ 84C0DB13AD3F35352A8DF100,
+ 3197326DC484EE8C3750C821,
+ F684F45179910D257AA28B58,
+ 498317E9BB9E7F31FD62395D,
+ 6BF63343EA4E345632830712,
+ 6211F56B14F64E3A2718F89C,
+ A8953A2C324B30F467C7CFC0,
+ 6FE7A0BB1C9D112CDE6A84F5,
+ 1C7C41F9071F263901C81AEB,
+ 99EC446A69BB72FAF50FA6C1,
+ A54086C90ED6CE6ED0B293AA,
+ A4DD1223308A4FD7396929EE,
+ 698FECF770157A24AB4ED83F,
+ A6228EE18834EBEACF2E1121, ); name = mpe; sourceTree = ""; };
+ 357800C3DDAF59EFF75E57CF = {isa = PBXGroup; children = (
106336EF7D17FB3FC3430527,
0A8B2220C48BD7CB942BAB91,
EE3F7E057A361EAB617739D6,
@@ -1053,15 +1096,16 @@
A1D3DD348C5846C2F0992BF9,
93359AEBEFFFCBEF78F65DBE,
20B89DE51E1C449D0A42FA79, ); name = sources; sourceTree = ""; };
- E7B20DBE5A96870184F8E877 = {isa = PBXGroup; children = (
+ 25FE22821328BCED3D4A8DCB = {isa = PBXGroup; children = (
0E701CDBF2DF0A6D600C64FB,
286C96166C43E3010D28CC86, ); name = synthesisers; sourceTree = ""; };
DD80F04BB2A4012039CC99E9 = {isa = PBXGroup; children = (
EF49A47831967DC2AC7EAD8B,
- 15F08C54EAF666954DA2976E,
- 25F335E3C0CA8FB12408BA29,
- D80462765DD5025C55788A60,
- E7B20DBE5A96870184F8E877,
+ 5176393479E78D22F710BC44,
+ 1F92F72B66D6139996047551,
+ A3C6629009CCC508BE3A2349,
+ 357800C3DDAF59EFF75E57CF,
+ 25FE22821328BCED3D4A8DCB,
A0D0AEA4C3A66D0BA7E82343,
1FC44D72EEEA32D1B9159458, ); name = "juce_audio_basics"; sourceTree = ""; };
071A62D9B344D0228965AA9F = {isa = PBXGroup; children = (
@@ -1314,6 +1358,7 @@
D47BD559E2A64C4D3DB4F4A6,
786BAB2519BD92C1DB0B810C,
39E5970711248B88D0AE21E6,
+ 7B1256C61E6B76F96E4A8852,
B9DFEAB3172A03D53D200448,
5DEE6FFDFB2055E45202BC25,
85B8A183C0C10960F111E77F,
@@ -1555,8 +1600,7 @@
D4D255CCDFE0F0C7044102C2,
9A0D506EC020CFEE145158C1,
EC647FDDB410F250373D95CE,
- 00FB03A7B2A03FEC348CECAB,
- CA4F396C2669DAD9D6E2B44B, ); name = broadcasters; sourceTree = ""; };
+ 00FB03A7B2A03FEC348CECAB, ); name = broadcasters; sourceTree = ""; };
27374956F377B94FC5B0F547 = {isa = PBXGroup; children = (
830C0583A57CA5FE6D628E22,
0EBA363945C61C43AD11D768,
@@ -2202,6 +2246,7 @@
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.Spatializer;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Debug; };
ADE738CB72745F9108B75339 = {isa = XCBuildConfiguration; buildSettings = {
@@ -2229,11 +2274,13 @@
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_LDFLAGS = "-bundle -lAAXLibrary";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.Spatializer;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Release; };
B47BAC17B47CCFA9AD69C0AD = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj b/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj
index 859322dc63..cf5321534e 100644
--- a/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj
+++ b/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj
@@ -144,6 +144,15 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -159,13 +168,34 @@
true
-
+
true
-
+
true
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
true
@@ -1282,16 +1312,27 @@
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -1415,6 +1456,7 @@
+
@@ -1520,7 +1562,6 @@
-
diff --git a/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj.filters b/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj.filters
index 8302de3615..0486cc4622 100644
--- a/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj.filters
+++ b/examples/PlugInSamples/Spatializer/Builds/VisualStudio2015/Spatializer.vcxproj.filters
@@ -17,11 +17,14 @@
{A33A1E1D-AC2C-6382-8681-48B0FC374C60}
+
+ {11A75801-B027-40BD-4993-023023ACCBF7}
+
{3FD908F5-98C8-9A61-FC03-0BAF8913CBB0}
-
- {11A75801-B027-40BD-4993-023023ACCBF7}
+
+ {8C868E51-156D-A916-047C-0D9EA1393675}
{EF2CAB40-0432-429B-C517-86ADF136BB8A}
@@ -331,6 +334,15 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -346,14 +358,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1596,6 +1629,24 @@
Juce Modules\juce_audio_basics\buffers
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
+
+ Juce Modules\juce_audio_basics\effects
+
Juce Modules\juce_audio_basics\midi
@@ -1611,20 +1662,35 @@
Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\midi
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
-
- Juce Modules\juce_audio_basics\effects
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
+
+
+ Juce Modules\juce_audio_basics\mpe
Juce Modules\juce_audio_basics\sources
@@ -1995,6 +2061,9 @@
Juce Modules\juce_core\containers
+
+ Juce Modules\juce_core\containers
+
Juce Modules\juce_core\containers
@@ -2310,9 +2379,6 @@
Juce Modules\juce_events\broadcasters
-
- Juce Modules\juce_events\broadcasters
-
Juce Modules\juce_events\interprocess
diff --git a/examples/PlugInSamples/Spatializer/Spatializer.jucer b/examples/PlugInSamples/Spatializer/Spatializer.jucer
index 0c458a9731..e5b52e41e1 100644
--- a/examples/PlugInSamples/Spatializer/Spatializer.jucer
+++ b/examples/PlugInSamples/Spatializer/Spatializer.jucer
@@ -9,7 +9,7 @@
pluginIsMidiEffectPlugin="0" pluginSilenceInIsSilenceOut="1"
pluginEditorRequiresKeys="0" pluginAUExportPrefix="SpatializerAU"
pluginRTASCategory="" aaxIdentifier="com.ROLI.Spatializer" pluginAAXCategory="AAX_ePlugInCategory_SoundField"
- jucerVersion="4.0.2" companyName="ROLI Ltd." companyWebsite="www.juce.com"
+ jucerVersion="4.1.0" companyName="ROLI Ltd." companyWebsite="www.juce.com"
companyEmail="info@juce.com">
diff --git a/examples/SimpleFFTExample/Builds/MacOSX/Info.plist b/examples/SimpleFFTExample/Builds/MacOSX/Info.plist
index 6df44660b8..7f1c61bd8c 100644
--- a/examples/SimpleFFTExample/Builds/MacOSX/Info.plist
+++ b/examples/SimpleFFTExample/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.yourcompany.SimpleFFTExample
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
SimpleFFTExample
CFBundlePackageType
diff --git a/examples/SimpleFFTExample/Builds/MacOSX/SimpleFFTExample.xcodeproj/project.pbxproj b/examples/SimpleFFTExample/Builds/MacOSX/SimpleFFTExample.xcodeproj/project.pbxproj
index f2cfd6331f..da762771ff 100644
--- a/examples/SimpleFFTExample/Builds/MacOSX/SimpleFFTExample.xcodeproj/project.pbxproj
+++ b/examples/SimpleFFTExample/Builds/MacOSX/SimpleFFTExample.xcodeproj/project.pbxproj
@@ -1993,6 +1993,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.SimpleFFTExample;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
001561C2B2CDB3908D96AB46 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2014,10 +2015,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.SimpleFFTExample;
SDKROOT_ppc = macosx10.5; }; name = Release; };
F1DB30FBBCE0275545D5B9CE = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/audio plugin demo/Builds/MacOSX/Info.plist b/examples/audio plugin demo/Builds/MacOSX/Info.plist
index c7fbf09d4f..04f425f5e6 100644
--- a/examples/audio plugin demo/Builds/MacOSX/Info.plist
+++ b/examples/audio plugin demo/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.juce.JuceDemoPlugin
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
JuceDemoPlugin
CFBundlePackageType
diff --git a/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj b/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
index f79a854fad..c9a47fef74 100644
--- a/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
+++ b/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
@@ -2155,6 +2155,7 @@
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_LDFLAGS = "-bundle";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.juce.JuceDemoPlugin;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Debug; };
76082281008CF5F891C856DA = {isa = XCBuildConfiguration; buildSettings = {
@@ -2182,11 +2183,13 @@
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_LDFLAGS = "-bundle";
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\"";
+ PRODUCT_BUNDLE_IDENTIFIER = com.juce.JuceDemoPlugin;
SDKROOT_ppc = macosx10.5;
WRAPPER_EXTENSION = component; }; name = Release; };
6758D5C5D24024DB6F83E78F = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/examples/audio plugin host/Builds/MacOSX/Info.plist b/examples/audio plugin host/Builds/MacOSX/Info.plist
index 66fad286dd..3f51777ac9 100644
--- a/examples/audio plugin host/Builds/MacOSX/Info.plist
+++ b/examples/audio plugin host/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
CFBundleIdentifier
- com.roli.pluginhost
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
Plugin Host
CFBundlePackageType
diff --git a/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj b/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
index 6f383d3b3d..58a05705b8 100644
--- a/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
+++ b/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
@@ -2170,6 +2170,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.pluginhost;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
20F59BC9E9ACBDF56007CE03 = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2192,10 +2193,12 @@
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET = 10.5;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.pluginhost;
SDKROOT_ppc = macosx10.5; }; name = Release; };
8D1CA827F1EFD443BDCF198A = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/extras/Introjucer/Builds/MacOSX/Info.plist b/extras/Introjucer/Builds/MacOSX/Info.plist
index 457de4bb59..74e92d44f0 100644
--- a/extras/Introjucer/Builds/MacOSX/Info.plist
+++ b/extras/Introjucer/Builds/MacOSX/Info.plist
@@ -8,7 +8,7 @@
CFBundleIconFile
Icon.icns
CFBundleIdentifier
- com.roli.introjucer
+ $(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleName
The Introjucer
CFBundlePackageType
diff --git a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
index 6b27a2cb8e..e92857b6fb 100644
--- a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
+++ b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
@@ -2035,6 +2035,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.10;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.introjucer;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
B159CF4275B8A90122629FF4 = {isa = XCBuildConfiguration; buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
@@ -2059,10 +2060,12 @@
MACOSX_DEPLOYMENT_TARGET = 10.5;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion";
+ PRODUCT_BUNDLE_IDENTIFIER = com.roli.introjucer;
SDKROOT_ppc = macosx10.5; }; name = Release; };
C42924A24AB55E6A940423EA = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h
index 4de050957b..648a2fd6c9 100644
--- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h
+++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h
@@ -1,1583 +1,1583 @@
-/*
- ==============================================================================
-
- This file is part of the JUCE library.
- Copyright (c) 2015 - ROLI Ltd.
-
- Permission is granted to use this software under the terms of either:
- a) the GPL v2 (or any later version)
- b) the Affero GPL v3
-
- Details of these licenses can be found at: www.gnu.org/licenses
-
- JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- ------------------------------------------------------------------------------
-
- To release a closed-source product which uses JUCE, commercial licenses are
- available: visit www.juce.com for more information.
-
- ==============================================================================
-*/
-
-namespace
-{
- const char* const osxVersionDefault = "default";
- const int oldestSDKVersion = 5;
- const int currentSDKVersion = 11;
-
- const char* const osxArch_Default = "default";
- const char* const osxArch_Native = "Native";
- const char* const osxArch_32BitUniversal = "32BitUniversal";
- const char* const osxArch_64BitUniversal = "64BitUniversal";
- const char* const osxArch_64Bit = "64BitIntel";
-}
-
-//==============================================================================
-class XCodeProjectExporter : public ProjectExporter
-{
-public:
- //==============================================================================
- static const char* getNameMac() { return "Xcode (MacOSX)"; }
- static const char* getNameiOS() { return "Xcode (iOS)"; }
- static const char* getValueTreeTypeName (bool iOS) { return iOS ? "XCODE_IPHONE" : "XCODE_MAC"; }
-
- //==============================================================================
- XCodeProjectExporter (Project& p, const ValueTree& t, const bool isIOS)
- : ProjectExporter (p, t),
- iOS (isIOS)
- {
- name = iOS ? getNameiOS() : getNameMac();
-
- if (getTargetLocationString().isEmpty())
- getTargetLocationValue() = getDefaultBuildsRootFolder() + (iOS ? "iOS" : "MacOSX");
-
- initialiseDependencyPathValues();
- }
-
- static XCodeProjectExporter* createForSettings (Project& project, const ValueTree& settings)
- {
- if (settings.hasType (getValueTreeTypeName (false))) return new XCodeProjectExporter (project, settings, false);
- if (settings.hasType (getValueTreeTypeName (true))) return new XCodeProjectExporter (project, settings, true);
-
- return nullptr;
- }
-
- //==============================================================================
- Value getPListToMergeValue() { return getSetting ("customPList"); }
- String getPListToMergeString() const { return settings ["customPList"]; }
-
- Value getExtraFrameworksValue() { return getSetting (Ids::extraFrameworks); }
- String getExtraFrameworksString() const { return settings [Ids::extraFrameworks]; }
-
- Value getPostBuildScriptValue() { return getSetting (Ids::postbuildCommand); }
- String getPostBuildScript() const { return settings [Ids::postbuildCommand]; }
-
- Value getPreBuildScriptValue() { return getSetting (Ids::prebuildCommand); }
- String getPreBuildScript() const { return settings [Ids::prebuildCommand]; }
-
- bool usesMMFiles() const override { return true; }
- bool isXcode() const override { return true; }
- bool isOSX() const override { return ! iOS; }
- bool canCopeWithDuplicateFiles() override { return true; }
-
- void createExporterProperties (PropertyListBuilder& props) override
- {
- if (projectType.isGUIApplication() && ! iOS)
- {
- props.add (new TextPropertyComponent (getSetting ("documentExtensions"), "Document file extensions", 128, false),
- "A comma-separated list of file extensions for documents that your app can open. "
- "Using a leading '.' is optional, and the extensions are not case-sensitive.");
- }
- else if (iOS)
- {
- props.add (new BooleanPropertyComponent (getSetting ("UIFileSharingEnabled"), "File Sharing Enabled", "Enabled"),
- "Enable this to expose your app's files to iTunes.");
-
- props.add (new BooleanPropertyComponent (getSetting ("UIStatusBarHidden"), "Status Bar Hidden", "Enabled"),
- "Enable this to disable the status bar in your app.");
- }
-
- props.add (new TextPropertyComponent (getPListToMergeValue(), "Custom PList", 8192, true),
- "You can paste the contents of an XML PList file in here, and the settings that it contains will override any "
- "settings that the Introjucer creates. BEWARE! When doing this, be careful to remove from the XML any "
- "values that you DO want the introjucer to change!");
-
- props.add (new TextPropertyComponent (getExtraFrameworksValue(), "Extra Frameworks", 2048, false),
- "A comma-separated list of extra frameworks that should be added to the build. "
- "(Don't include the .framework extension in the name)");
-
- props.add (new TextPropertyComponent (getPreBuildScriptValue(), "Pre-build shell script", 32768, true),
- "Some shell-script that will be run before a build starts.");
-
- props.add (new TextPropertyComponent (getPostBuildScriptValue(), "Post-build shell script", 32768, true),
- "Some shell-script that will be run after a build completes.");
- }
-
- bool launchProject() override
- {
- #if JUCE_MAC
- return getProjectBundle().startAsProcess();
- #else
- return false;
- #endif
- }
-
- bool canLaunchProject() override
- {
- #if JUCE_MAC
- return true;
- #else
- return false;
- #endif
- }
-
- //==============================================================================
- void create (const OwnedArray&) const override
- {
- infoPlistFile = getTargetFolder().getChildFile ("Info.plist");
- menuNibFile = getTargetFolder().getChildFile ("RecentFilesMenuTemplate.nib");
-
- createIconFile();
-
- File projectBundle (getProjectBundle());
- createDirectoryOrThrow (projectBundle);
-
- createObjects();
-
- File projectFile (projectBundle.getChildFile ("project.pbxproj"));
-
- {
- MemoryOutputStream mo;
- writeProjectFile (mo);
- overwriteFileIfDifferentOrThrow (projectFile, mo);
- }
-
- writeInfoPlistFile();
-
- // Deleting the .rsrc files can be needed to force Xcode to update the version number.
- deleteRsrcFiles();
- }
-
-protected:
- //==============================================================================
- class XcodeBuildConfiguration : public BuildConfiguration
- {
- public:
- XcodeBuildConfiguration (Project& p, const ValueTree& t, const bool isIOS, const ProjectExporter& e)
- : BuildConfiguration (p, t, e), iOS (isIOS)
- {
- if (iOS)
- {
- if (getiOSCompatibilityVersion().isEmpty())
- getiOSCompatibilityVersionValue() = osxVersionDefault;
- }
- else
- {
- if (getMacSDKVersion().isEmpty())
- getMacSDKVersionValue() = osxVersionDefault;
-
- if (getMacCompatibilityVersion().isEmpty())
- getMacCompatibilityVersionValue() = osxVersionDefault;
-
- if (getMacArchitecture().isEmpty())
- getMacArchitectureValue() = osxArch_Default;
- }
- }
-
- Value getMacSDKVersionValue() { return getValue (Ids::osxSDK); }
- String getMacSDKVersion() const { return config [Ids::osxSDK]; }
- Value getMacCompatibilityVersionValue() { return getValue (Ids::osxCompatibility); }
- String getMacCompatibilityVersion() const { return config [Ids::osxCompatibility]; }
- Value getiOSCompatibilityVersionValue() { return getValue (Ids::iosCompatibility); }
- String getiOSCompatibilityVersion() const { return config [Ids::iosCompatibility]; }
- Value getMacArchitectureValue() { return getValue (Ids::osxArchitecture); }
- String getMacArchitecture() const { return config [Ids::osxArchitecture]; }
- Value getCustomXcodeFlagsValue() { return getValue (Ids::customXcodeFlags); }
- String getCustomXcodeFlags() const { return config [Ids::customXcodeFlags]; }
- Value getCppLanguageStandardValue() { return getValue (Ids::cppLanguageStandard); }
- String getCppLanguageStandard() const { return config [Ids::cppLanguageStandard]; }
- Value getCppLibTypeValue() { return getValue (Ids::cppLibType); }
- String getCppLibType() const { return config [Ids::cppLibType]; }
- Value getCodeSignIdentityValue() { return getValue (Ids::codeSigningIdentity); }
- String getCodeSignIdentity() const { return config [Ids::codeSigningIdentity]; }
- Value getFastMathValue() { return getValue (Ids::fastMath); }
- bool isFastMathEnabled() const { return config [Ids::fastMath]; }
- Value getLinkTimeOptimisationValue() { return getValue (Ids::linkTimeOptimisation); }
- bool isLinkTimeOptimisationEnabled() const { return config [Ids::linkTimeOptimisation]; }
-
- var getDefaultOptimisationLevel() const override { return var ((int) (isDebug() ? gccO0 : gccO3)); }
-
- void createConfigProperties (PropertyListBuilder& props) override
- {
- addGCCOptimisationProperty (props);
-
- if (iOS)
- {
- const char* iosVersions[] = { "Use Default", "7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "8.4", "9.0", "9.1", "9.2", 0 };
- const char* iosVersionValues[] = { osxVersionDefault, "7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "8.4", "9.0", "9.1", "9.2", 0 };
-
- props.add (new ChoicePropertyComponent (getiOSCompatibilityVersionValue(), "iOS Deployment Target",
- StringArray (iosVersions), Array (iosVersionValues)),
- "The minimum version of iOS that the target binary will run on.");
- }
- else
- {
- StringArray sdkVersionNames, osxVersionNames;
- Array versionValues;
-
- sdkVersionNames.add ("Use Default");
- osxVersionNames.add ("Use Default");
- versionValues.add (osxVersionDefault);
-
- for (int ver = oldestSDKVersion; ver <= currentSDKVersion; ++ver)
- {
- sdkVersionNames.add (getSDKName (ver));
- osxVersionNames.add (getOSXVersionName (ver));
- versionValues.add (getSDKName (ver));
- }
-
- props.add (new ChoicePropertyComponent (getMacSDKVersionValue(), "OSX Base SDK Version", sdkVersionNames, versionValues),
- "The version of OSX to link against in the XCode build.");
-
- props.add (new ChoicePropertyComponent (getMacCompatibilityVersionValue(), "OSX Deployment Target", osxVersionNames, versionValues),
- "The minimum version of OSX that the target binary will be compatible with.");
-
- const char* osxArch[] = { "Use Default", "Native architecture of build machine",
- "Universal Binary (32-bit)", "Universal Binary (32/64-bit)", "64-bit Intel", 0 };
- const char* osxArchValues[] = { osxArch_Default, osxArch_Native, osxArch_32BitUniversal,
- osxArch_64BitUniversal, osxArch_64Bit, 0 };
-
- props.add (new ChoicePropertyComponent (getMacArchitectureValue(), "OSX Architecture",
- StringArray (osxArch), Array (osxArchValues)),
- "The type of OSX binary that will be produced.");
- }
-
- props.add (new TextPropertyComponent (getCustomXcodeFlagsValue(), "Custom Xcode flags", 8192, false),
- "A comma-separated list of custom Xcode setting flags which will be appended to the list of generated flags, "
- "e.g. MACOSX_DEPLOYMENT_TARGET_i386 = 10.5, VALID_ARCHS = \"ppc i386 x86_64\"");
-
- const char* cppLanguageStandardNames[] = { "Use Default", "C++98", "GNU++98", "C++11", "GNU++11", "C++14", "GNU++14", nullptr };
- Array cppLanguageStandardValues;
- cppLanguageStandardValues.add (var::null);
- cppLanguageStandardValues.add ("c++98");
- cppLanguageStandardValues.add ("gnu++98");
- cppLanguageStandardValues.add ("c++11");
- cppLanguageStandardValues.add ("gnu++11");
- cppLanguageStandardValues.add ("c++14");
- cppLanguageStandardValues.add ("gnu++14");
-
- props.add (new ChoicePropertyComponent (getCppLanguageStandardValue(), "C++ Language Standard", StringArray (cppLanguageStandardNames), cppLanguageStandardValues),
- "The standard of the C++ language that will be used for compilation.");
-
- const char* cppLibNames[] = { "Use Default", "LLVM libc++", "GNU libstdc++", nullptr };
- Array cppLibValues;
- cppLibValues.add (var::null);
- cppLibValues.add ("libc++");
- cppLibValues.add ("libstdc++");
-
- props.add (new ChoicePropertyComponent (getCppLibTypeValue(), "C++ Library", StringArray (cppLibNames), cppLibValues),
- "The type of C++ std lib that will be linked.");
-
- props.add (new TextPropertyComponent (getCodeSignIdentityValue(), "Code-signing Identity", 8192, false),
- "The name of a code-signing identity for Xcode to apply.");
-
- props.add (new BooleanPropertyComponent (getFastMathValue(), "Relax IEEE compliance", "Enabled"),
- "Enable this to use FAST_MATH non-IEEE mode. (Warning: this can have unexpected results!)");
-
- props.add (new BooleanPropertyComponent (getLinkTimeOptimisationValue(), "Link-Time Optimisation", "Enabled"),
- "Enable this to perform link-time code generation. This is recommended for release builds.");
- }
-
- bool iOS;
- };
-
- BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const override
- {
- return new XcodeBuildConfiguration (project, v, iOS, *this);
- }
-
-private:
- mutable OwnedArray pbxBuildFiles, pbxFileReferences, pbxGroups, misc, projectConfigs, targetConfigs;
- mutable StringArray buildPhaseIDs, resourceIDs, sourceIDs, frameworkIDs;
- mutable StringArray frameworkFileIDs, rezFileIDs, resourceFileRefs;
- mutable File infoPlistFile, menuNibFile, iconFile;
- const bool iOS;
-
- static String sanitisePath (const String& path)
- {
- if (path.startsWithChar ('~'))
- return "$(HOME)" + path.substring (1);
-
- return path;
- }
-
- static String addQuotesIfContainsSpace (const String& s)
- {
- return s.containsChar (' ') ? s.quoted() : s;
- }
-
- File getProjectBundle() const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (".xcodeproj"); }
-
- //==============================================================================
- void createObjects() const
- {
- addFrameworks();
- addMainBuildProduct();
-
- if (xcodeCreatePList)
- {
- RelativePath plistPath (infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder);
- addFileReference (plistPath.toUnixStyle());
- resourceFileRefs.add (createFileRefID (plistPath));
- }
-
- if (iOS)
- {
- if (! projectType.isStaticLibrary())
- createiOSAssetsFolder();
- }
- else
- {
- MemoryOutputStream nib;
- nib.write (BinaryData::RecentFilesMenuTemplate_nib, BinaryData::RecentFilesMenuTemplate_nibSize);
- overwriteFileIfDifferentOrThrow (menuNibFile, nib);
-
- RelativePath menuNibPath (menuNibFile, getTargetFolder(), RelativePath::buildTargetFolder);
- addFileReference (menuNibPath.toUnixStyle());
- resourceIDs.add (addBuildFile (menuNibPath, false, false));
- resourceFileRefs.add (createFileRefID (menuNibPath));
- }
-
- if (iconFile.exists())
- {
- RelativePath iconPath (iconFile, getTargetFolder(), RelativePath::buildTargetFolder);
- addFileReference (iconPath.toUnixStyle());
- resourceIDs.add (addBuildFile (iconPath, false, false));
- resourceFileRefs.add (createFileRefID (iconPath));
- }
-
- {
- StringArray topLevelGroupIDs;
-
- for (int i = 0; i < getAllGroups().size(); ++i)
- {
- const Project::Item& group = getAllGroups().getReference(i);
-
- if (group.getNumChildren() > 0)
- topLevelGroupIDs.add (addProjectItem (group));
- }
-
- { // 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 (ConstConfigIterator config (*this); config.next();)
- {
- const XcodeBuildConfiguration& xcodeConfig = dynamic_cast (*config);
- addProjectConfig (config->getName(), getProjectSettings (xcodeConfig));
- addTargetConfig (config->getName(), getTargetSettings (xcodeConfig));
- }
-
- addConfigList (projectConfigs, createID ("__projList"));
- addConfigList (targetConfigs, createID ("__configList"));
-
- addShellScriptBuildPhase ("Pre-build script", getPreBuildScript());
-
- if (! projectType.isStaticLibrary())
- addBuildPhase ("PBXResourcesBuildPhase", resourceIDs);
-
- if (rezFileIDs.size() > 0)
- addBuildPhase ("PBXRezBuildPhase", rezFileIDs);
-
- addBuildPhase ("PBXSourcesBuildPhase", sourceIDs);
-
- if (! projectType.isStaticLibrary())
- addBuildPhase ("PBXFrameworksBuildPhase", frameworkIDs);
-
- addShellScriptBuildPhase ("Post-build script", getPostBuildScript());
-
- addTargetObject();
- addProjectObject();
- }
-
- static Image fixMacIconImageSize (Drawable& image)
- {
- const int validSizes[] = { 16, 32, 48, 128, 256, 512, 1024 };
-
- const int w = image.getWidth();
- const int h = image.getHeight();
-
- int bestSize = 16;
-
- for (int i = 0; i < numElementsInArray (validSizes); ++i)
- {
- if (w == h && w == validSizes[i])
- {
- bestSize = w;
- break;
- }
-
- if (jmax (w, h) > validSizes[i])
- bestSize = validSizes[i];
- }
-
- return rescaleImageForIcon (image, bestSize);
- }
-
- static void writeOldIconFormat (MemoryOutputStream& out, const Image& image, const char* type, const char* maskType)
- {
- const int w = image.getWidth();
- const int h = image.getHeight();
-
- out.write (type, 4);
- out.writeIntBigEndian (8 + 4 * w * h);
-
- const Image::BitmapData bitmap (image, Image::BitmapData::readOnly);
-
- for (int y = 0; y < h; ++y)
- {
- for (int x = 0; x < w; ++x)
- {
- const Colour pixel (bitmap.getPixelColour (x, y));
- out.writeByte ((char) pixel.getAlpha());
- out.writeByte ((char) pixel.getRed());
- out.writeByte ((char) pixel.getGreen());
- out.writeByte ((char) pixel.getBlue());
- }
- }
-
- out.write (maskType, 4);
- out.writeIntBigEndian (8 + w * h);
-
- for (int y = 0; y < h; ++y)
- {
- for (int x = 0; x < w; ++x)
- {
- const Colour pixel (bitmap.getPixelColour (x, y));
- out.writeByte ((char) pixel.getAlpha());
- }
- }
- }
-
- static void writeNewIconFormat (MemoryOutputStream& out, const Image& image, const char* type)
- {
- MemoryOutputStream pngData;
- PNGImageFormat pngFormat;
- pngFormat.writeImageToStream (image, pngData);
-
- out.write (type, 4);
- out.writeIntBigEndian (8 + (int) pngData.getDataSize());
- out << pngData;
- }
-
- void writeIcnsFile (const OwnedArray& images, OutputStream& out) const
- {
- MemoryOutputStream data;
- int smallest = 0x7fffffff;
- Drawable* smallestImage = nullptr;
-
- for (int i = 0; i < images.size(); ++i)
- {
- const Image image (fixMacIconImageSize (*images.getUnchecked(i)));
- jassert (image.getWidth() == image.getHeight());
-
- if (image.getWidth() < smallest)
- {
- smallest = image.getWidth();
- smallestImage = images.getUnchecked(i);
- }
-
- switch (image.getWidth())
- {
- case 16: writeOldIconFormat (data, image, "is32", "s8mk"); break;
- case 32: writeOldIconFormat (data, image, "il32", "l8mk"); break;
- case 48: writeOldIconFormat (data, image, "ih32", "h8mk"); break;
- case 128: writeOldIconFormat (data, image, "it32", "t8mk"); break;
- case 256: writeNewIconFormat (data, image, "ic08"); break;
- case 512: writeNewIconFormat (data, image, "ic09"); break;
- case 1024: writeNewIconFormat (data, image, "ic10"); break;
- default: break;
- }
- }
-
- jassert (data.getDataSize() > 0); // no suitable sized images?
-
- // If you only supply a 1024 image, the file doesn't work on 10.8, so we need
- // to force a smaller one in there too..
- if (smallest > 512 && smallestImage != nullptr)
- writeNewIconFormat (data, rescaleImageForIcon (*smallestImage, 512), "ic09");
-
- out.write ("icns", 4);
- out.writeIntBigEndian ((int) data.getDataSize() + 8);
- out << data;
- }
-
- void getIconImages (OwnedArray& images) const
- {
- ScopedPointer bigIcon (getBigIcon());
- if (bigIcon != nullptr)
- images.add (bigIcon.release());
-
- ScopedPointer smallIcon (getSmallIcon());
- if (smallIcon != nullptr)
- images.add (smallIcon.release());
- }
-
- void createiOSIconFiles (File appIconSet) const
- {
- const Array types (getiOSAppIconTypes());
-
- OwnedArray images;
- getIconImages (images);
-
- if (images.size() > 0)
- {
- for (int i = 0; i < types.size(); ++i)
- {
- const AppIconType type = types.getUnchecked(i);
- const Image image (rescaleImageForIcon (*images.getFirst(), type.size));
-
- MemoryOutputStream pngData;
- PNGImageFormat pngFormat;
- pngFormat.writeImageToStream (image, pngData);
-
- overwriteFileIfDifferentOrThrow (appIconSet.getChildFile (type.filename), pngData);
- }
- }
- }
-
- void createIconFile() const
- {
- OwnedArray images;
- getIconImages (images);
-
- if (images.size() > 0)
- {
- MemoryOutputStream mo;
- writeIcnsFile (images, mo);
-
- iconFile = getTargetFolder().getChildFile ("Icon.icns");
- overwriteFileIfDifferentOrThrow (iconFile, mo);
- }
- }
-
- void writeInfoPlistFile() const
- {
- if (! xcodeCreatePList)
- return;
-
- ScopedPointer plist (XmlDocument::parse (getPListToMergeString()));
-
- if (plist == nullptr || ! plist->hasTagName ("plist"))
- plist = new XmlElement ("plist");
-
- XmlElement* dict = plist->getChildByName ("dict");
-
- if (dict == nullptr)
- dict = plist->createNewChildElement ("dict");
-
- if (iOS)
- {
- addPlistDictionaryKeyBool (dict, "LSRequiresIPhoneOS", true);
- addPlistDictionaryKeyBool (dict, "UIViewControllerBasedStatusBarAppearance", false);
- }
-
- addPlistDictionaryKey (dict, "CFBundleExecutable", "${EXECUTABLE_NAME}");
-
- if (! iOS) // (NB: on iOS this causes error ITMS-90032 during publishing)
- addPlistDictionaryKey (dict, "CFBundleIconFile", iconFile.exists() ? iconFile.getFileName() : String());
-
- addPlistDictionaryKey (dict, "CFBundleIdentifier", "$(PRODUCT_BUNDLE_IDENTIFIER)");
- addPlistDictionaryKey (dict, "CFBundleName", projectName);
- addPlistDictionaryKey (dict, "CFBundlePackageType", xcodePackageType);
- addPlistDictionaryKey (dict, "CFBundleSignature", xcodeBundleSignature);
- addPlistDictionaryKey (dict, "CFBundleShortVersionString", project.getVersionString());
- addPlistDictionaryKey (dict, "CFBundleVersion", project.getVersionString());
- addPlistDictionaryKey (dict, "NSHumanReadableCopyright", project.getCompanyName().toString());
- addPlistDictionaryKeyBool (dict, "NSHighResolutionCapable", true);
-
- StringArray documentExtensions;
- documentExtensions.addTokens (replacePreprocessorDefs (getAllPreprocessorDefs(), settings ["documentExtensions"]),
- ",", StringRef());
- documentExtensions.trim();
- documentExtensions.removeEmptyStrings (true);
-
- if (documentExtensions.size() > 0)
- {
- dict->createNewChildElement ("key")->addTextElement ("CFBundleDocumentTypes");
- XmlElement* dict2 = dict->createNewChildElement ("array")->createNewChildElement ("dict");
- XmlElement* arrayTag = nullptr;
-
- for (int i = 0; i < documentExtensions.size(); ++i)
- {
- String ex (documentExtensions[i]);
- if (ex.startsWithChar ('.'))
- ex = ex.substring (1);
-
- if (arrayTag == nullptr)
- {
- dict2->createNewChildElement ("key")->addTextElement ("CFBundleTypeExtensions");
- arrayTag = dict2->createNewChildElement ("array");
-
- addPlistDictionaryKey (dict2, "CFBundleTypeName", ex);
- addPlistDictionaryKey (dict2, "CFBundleTypeRole", "Editor");
- addPlistDictionaryKey (dict2, "CFBundleTypeIconFile", "Icon");
- addPlistDictionaryKey (dict2, "NSPersistentStoreTypeKey", "XML");
- }
-
- arrayTag->createNewChildElement ("string")->addTextElement (ex);
- }
- }
-
- if (settings ["UIFileSharingEnabled"])
- addPlistDictionaryKeyBool (dict, "UIFileSharingEnabled", true);
-
- if (settings ["UIStatusBarHidden"])
- addPlistDictionaryKeyBool (dict, "UIStatusBarHidden", true);
-
- if (iOS)
- {
- // Forcing full screen disables the split screen feature and prevents error ITMS-90475
- addPlistDictionaryKeyBool (dict, "UIRequiresFullScreen", true);
-
- static const char* kDefaultiOSOrientationStrings[] =
- {
- "UIInterfaceOrientationPortrait",
- "UIInterfaceOrientationPortraitUpsideDown",
- "UIInterfaceOrientationLandscapeLeft",
- "UIInterfaceOrientationLandscapeRight",
- nullptr
- };
-
- StringArray iOSOrientations (kDefaultiOSOrientationStrings);
-
- dict->createNewChildElement ("key")->addTextElement ("UISupportedInterfaceOrientations");
- XmlElement* plistStringArray = dict->createNewChildElement ("array");
-
- for (int i = 0; i < iOSOrientations.size(); ++i)
- plistStringArray->createNewChildElement ("string")->addTextElement (iOSOrientations[i]);
- }
-
- for (int i = 0; i < xcodeExtraPListEntries.size(); ++i)
- dict->addChildElement (new XmlElement (xcodeExtraPListEntries.getReference(i)));
-
- MemoryOutputStream mo;
- plist->writeToStream (mo, "");
-
- overwriteFileIfDifferentOrThrow (infoPlistFile, mo);
- }
-
- void deleteRsrcFiles() const
- {
- for (DirectoryIterator di (getTargetFolder().getChildFile ("build"), true, "*.rsrc", File::findFiles); di.next();)
- di.getFile().deleteFile();
- }
-
- String getHeaderSearchPaths (const BuildConfiguration& config) const
- {
- StringArray paths (extraSearchPaths);
- paths.addArray (config.getHeaderSearchPaths());
- paths.add ("$(inherited)");
-
- paths = getCleanedStringArray (paths);
-
- for (int i = 0; i < paths.size(); ++i)
- {
- String& s = paths.getReference(i);
-
- s = replacePreprocessorTokens (config, s);
-
- if (s.containsChar (' '))
- s = "\"\\\"" + s + "\\\"\""; // crazy double quotes required when there are spaces..
- else
- s = "\"" + s + "\"";
- }
-
- return "(" + paths.joinIntoString (", ") + ")";
- }
-
- static String getLinkerFlagForLib (String library)
- {
- if (library.substring (0, 3) == "lib")
- library = library.substring (3);
-
- return "-l" + library.upToLastOccurrenceOf (".", false, false);
- }
-
- void getLinkerFlagsForStaticLibrary (const RelativePath& library, StringArray& flags, StringArray& librarySearchPaths) const
- {
- flags.add (getLinkerFlagForLib (library.getFileNameWithoutExtension()));
-
- String searchPath (library.toUnixStyle().upToLastOccurrenceOf ("/", false, false));
-
- if (! library.isAbsolute())
- {
- String srcRoot (rebaseFromProjectFolderToBuildTarget (RelativePath (".", RelativePath::projectFolder)).toUnixStyle());
-
- if (srcRoot.endsWith ("/.")) srcRoot = srcRoot.dropLastCharacters (2);
- if (! srcRoot.endsWithChar ('/')) srcRoot << '/';
-
- searchPath = srcRoot + searchPath;
- }
-
- librarySearchPaths.add (sanitisePath (searchPath));
- }
-
- void getLinkerFlags (const BuildConfiguration& config, StringArray& flags, StringArray& librarySearchPaths) const
- {
- if (xcodeIsBundle)
- flags.add ("-bundle");
-
- const Array& extraLibs = config.isDebug() ? xcodeExtraLibrariesDebug
- : xcodeExtraLibrariesRelease;
-
- for (int i = 0; i < extraLibs.size(); ++i)
- getLinkerFlagsForStaticLibrary (extraLibs.getReference(i), flags, librarySearchPaths);
-
- flags.add (replacePreprocessorTokens (config, getExtraLinkerFlagsString()));
- flags.add (getExternalLibraryFlags (config));
-
- for (int i = 0; i < xcodeLibs.size(); ++i)
- flags.add (getLinkerFlagForLib (xcodeLibs[i]));
-
- flags = getCleanedStringArray (flags);
- }
-
- StringArray getProjectSettings (const XcodeBuildConfiguration& config) const
- {
- StringArray s;
- s.add ("ALWAYS_SEARCH_USER_PATHS = NO");
- s.add ("GCC_C_LANGUAGE_STANDARD = c99");
- s.add ("GCC_WARN_ABOUT_RETURN_TYPE = YES");
- s.add ("GCC_WARN_CHECK_SWITCH_STATEMENTS = YES");
- s.add ("GCC_WARN_UNUSED_VARIABLE = YES");
- s.add ("GCC_WARN_MISSING_PARENTHESES = YES");
- s.add ("GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES");
- s.add ("GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES");
- s.add ("WARNING_CFLAGS = -Wreorder");
- s.add ("GCC_MODEL_TUNING = G5");
-
- if (projectType.isStaticLibrary())
- {
- s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = NO");
- s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = NO");
- }
- else
- {
- s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = YES");
- }
-
- if (config.isDebug())
- {
- s.add ("ENABLE_TESTABILITY = YES");
-
- if (config.getMacArchitecture() == osxArch_Default || config.getMacArchitecture().isEmpty())
- s.add ("ONLY_ACTIVE_ARCH = YES");
- }
-
- if (iOS)
- {
- s.add ("\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\"");
- s.add ("SDKROOT = iphoneos");
- s.add ("TARGETED_DEVICE_FAMILY = \"1,2\"");
-
- const String iosVersion (config.getiOSCompatibilityVersion());
- if (iosVersion.isNotEmpty() && iosVersion != osxVersionDefault)
- s.add ("IPHONEOS_DEPLOYMENT_TARGET = " + iosVersion);
- }
-
- s.add ("ZERO_LINK = NO");
-
- if (xcodeCanUseDwarf)
- s.add ("DEBUG_INFORMATION_FORMAT = \"dwarf\"");
-
- s.add ("PRODUCT_NAME = \"" + replacePreprocessorTokens (config, config.getTargetBinaryNameString()) + "\"");
- return s;
- }
-
- StringArray getTargetSettings (const XcodeBuildConfiguration& config) const
- {
- StringArray s;
-
- s.add ("PRODUCT_BUNDLE_IDENTIFIER = " + project.getBundleIdentifier().toString());
-
- const String arch (config.getMacArchitecture());
- if (arch == osxArch_Native) s.add ("ARCHS = \"$(NATIVE_ARCH_ACTUAL)\"");
- else if (arch == osxArch_32BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_BIT)\"");
- else if (arch == osxArch_64BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\"");
- else if (arch == osxArch_64Bit) s.add ("ARCHS = \"$(ARCHS_STANDARD_64_BIT)\"");
-
- s.add ("HEADER_SEARCH_PATHS = " + getHeaderSearchPaths (config));
- s.add ("GCC_OPTIMIZATION_LEVEL = " + config.getGCCOptimisationFlag());
- s.add ("INFOPLIST_FILE = " + infoPlistFile.getFileName());
-
- if (config.isLinkTimeOptimisationEnabled())
- s.add ("LLVM_LTO = YES");
-
- if (config.isFastMathEnabled())
- s.add ("GCC_FAST_MATH = YES");
-
- const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlagsString()).trim());
- if (extraFlags.isNotEmpty())
- s.add ("OTHER_CPLUSPLUSFLAGS = \"" + extraFlags + "\"");
-
- if (xcodeProductInstallPath.isNotEmpty())
- s.add ("INSTALL_PATH = \"" + xcodeProductInstallPath + "\"");
-
- if (xcodeIsBundle)
- {
- s.add ("LIBRARY_STYLE = Bundle");
- s.add ("WRAPPER_EXTENSION = " + xcodeBundleExtension.substring (1));
- s.add ("GENERATE_PKGINFO_FILE = YES");
- }
-
- if (xcodeOtherRezFlags.isNotEmpty())
- s.add ("OTHER_REZFLAGS = \"" + xcodeOtherRezFlags + "\"");
-
- if (config.getTargetBinaryRelativePathString().isNotEmpty())
- {
- RelativePath binaryPath (config.getTargetBinaryRelativePathString(), RelativePath::projectFolder);
- binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder);
-
- s.add ("DSTROOT = " + addQuotesIfContainsSpace (sanitisePath (binaryPath.toUnixStyle())));
- s.add ("SYMROOT = " + addQuotesIfContainsSpace (sanitisePath (binaryPath.toUnixStyle())));
- }
- else
- {
- s.add ("CONFIGURATION_BUILD_DIR = \"$(PROJECT_DIR)/build/$(CONFIGURATION)\"");
- }
-
- String gccVersion ("com.apple.compilers.llvm.clang.1_0");
-
- if (iOS)
- {
- s.add ("ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon");
- s.add ("ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage");
- }
- else
- {
- const String sdk (config.getMacSDKVersion());
- const String sdkCompat (config.getMacCompatibilityVersion());
-
- for (int ver = oldestSDKVersion; ver <= currentSDKVersion; ++ver)
- {
- if (sdk == getSDKName (ver)) s.add ("SDKROOT = macosx10." + String (ver));
- if (sdkCompat == getSDKName (ver)) s.add ("MACOSX_DEPLOYMENT_TARGET = 10." + String (ver));
- }
-
- s.add ("MACOSX_DEPLOYMENT_TARGET_ppc = 10.4");
- s.add ("SDKROOT_ppc = macosx10.5");
-
- if (xcodeExcludedFiles64Bit.isNotEmpty())
- {
- s.add ("EXCLUDED_SOURCE_FILE_NAMES = \"$(EXCLUDED_SOURCE_FILE_NAMES_$(CURRENT_ARCH))\"");
- s.add ("EXCLUDED_SOURCE_FILE_NAMES_x86_64 = " + xcodeExcludedFiles64Bit);
- }
- }
-
- s.add ("GCC_VERSION = " + gccVersion);
- s.add ("CLANG_CXX_LANGUAGE_STANDARD = \"c++0x\"");
- s.add ("CLANG_LINK_OBJC_RUNTIME = NO");
-
- if (config.getCodeSignIdentity().isNotEmpty())
- s.add ("CODE_SIGN_IDENTITY = " + config.getCodeSignIdentity().quoted());
-
- if (config.getCppLanguageStandard().isNotEmpty())
- s.add ("CLANG_CXX_LANGUAGE_STANDARD = " + config.getCppLanguageStandard().quoted());
-
- if (config.getCppLibType().isNotEmpty())
- s.add ("CLANG_CXX_LIBRARY = " + config.getCppLibType().quoted());
-
- s.add ("COMBINE_HIDPI_IMAGES = YES");
-
- {
- StringArray linkerFlags, librarySearchPaths;
- getLinkerFlags (config, linkerFlags, librarySearchPaths);
-
- if (linkerFlags.size() > 0)
- s.add ("OTHER_LDFLAGS = \"" + linkerFlags.joinIntoString (" ") + "\"");
-
- librarySearchPaths.addArray (config.getLibrarySearchPaths());
- librarySearchPaths = getCleanedStringArray (librarySearchPaths);
-
- if (librarySearchPaths.size() > 0)
- {
- String libPaths ("LIBRARY_SEARCH_PATHS = (\"$(inherited)\"");
-
- for (int i = 0; i < librarySearchPaths.size(); ++i)
- libPaths += ", \"\\\"" + librarySearchPaths[i] + "\\\"\"";
-
- s.add (libPaths + ")");
- }
- }
-
- StringPairArray defines;
-
- if (config.isDebug())
- {
- defines.set ("_DEBUG", "1");
- defines.set ("DEBUG", "1");
- s.add ("COPY_PHASE_STRIP = NO");
- s.add ("GCC_DYNAMIC_NO_PIC = NO");
- }
- else
- {
- defines.set ("_NDEBUG", "1");
- defines.set ("NDEBUG", "1");
- s.add ("GCC_GENERATE_DEBUGGING_SYMBOLS = NO");
- s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = YES");
- s.add ("DEAD_CODE_STRIPPING = YES");
- }
-
- {
- defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config));
-
- StringArray defsList;
-
- for (int i = 0; i < defines.size(); ++i)
- {
- String def (defines.getAllKeys()[i]);
- const String value (defines.getAllValues()[i]);
- if (value.isNotEmpty())
- def << "=" << value.replace ("\"", "\\\"");
-
- defsList.add ("\"" + def + "\"");
- }
-
- s.add ("GCC_PREPROCESSOR_DEFINITIONS = " + indentParenthesisedList (defsList));
- }
-
- s.addTokens (config.getCustomXcodeFlags(), ",", "\"'");
-
- return getCleanedStringArray (s);
- }
-
- void addFrameworks() const
- {
- if (! projectType.isStaticLibrary())
- {
- StringArray s (xcodeFrameworks);
- s.addTokens (getExtraFrameworksString(), ",;", "\"'");
-
- if (project.getConfigFlag ("JUCE_QUICKTIME") == Project::configFlagDisabled)
- s.removeString ("QuickTime");
-
- s.trim();
- s.removeDuplicates (true);
- s.sort (true);
-
- for (int i = 0; i < s.size(); ++i)
- addFramework (s[i]);
- }
- }
-
- //==============================================================================
- void writeProjectFile (OutputStream& output) const
- {
- output << "// !$*UTF8*$!\n{\n"
- "\tarchiveVersion = 1;\n"
- "\tclasses = {\n\t};\n"
- "\tobjectVersion = 46;\n"
- "\tobjects = {\n\n";
-
- Array objects;
- objects.addArray (pbxBuildFiles);
- objects.addArray (pbxFileReferences);
- objects.addArray (pbxGroups);
- objects.addArray (targetConfigs);
- objects.addArray (projectConfigs);
- objects.addArray (misc);
-
- for (int i = 0; i < objects.size(); ++i)
- {
- ValueTree& o = *objects.getUnchecked(i);
- output << "\t\t" << o.getType().toString() << " = {";
-
- for (int j = 0; j < o.getNumProperties(); ++j)
- {
- const Identifier propertyName (o.getPropertyName(j));
- String val (o.getProperty (propertyName).toString());
-
- if (val.isEmpty() || (val.containsAnyOf (" \t;<>()=,&+-_@~\r\n\\#%^`*")
- && ! (val.trimStart().startsWithChar ('(')
- || val.trimStart().startsWithChar ('{'))))
- val = "\"" + val + "\"";
-
- output << propertyName.toString() << " = " << val << "; ";
- }
-
- output << "};\n";
- }
-
- output << "\t};\n\trootObject = " << createID ("__root") << ";\n}\n";
- }
-
- String addBuildFile (const String& path, const String& fileRefID, bool addToSourceBuildPhase, bool inhibitWarnings) const
- {
- String fileID (createID (path + "buildref"));
-
- if (addToSourceBuildPhase)
- sourceIDs.add (fileID);
-
- ValueTree* v = new ValueTree (fileID);
- v->setProperty ("isa", "PBXBuildFile", nullptr);
- v->setProperty ("fileRef", fileRefID, nullptr);
-
- if (inhibitWarnings)
- v->setProperty ("settings", "{COMPILER_FLAGS = \"-w\"; }", nullptr);
-
- pbxBuildFiles.add (v);
- return fileID;
- }
-
- String addBuildFile (const RelativePath& path, bool addToSourceBuildPhase, bool inhibitWarnings) const
- {
- return addBuildFile (path.toUnixStyle(), createFileRefID (path), addToSourceBuildPhase, inhibitWarnings);
- }
-
- String addFileReference (String pathString) const
- {
- String sourceTree ("SOURCE_ROOT");
- RelativePath path (pathString, RelativePath::unknown);
-
- if (pathString.startsWith ("${"))
- {
- sourceTree = pathString.substring (2).upToFirstOccurrenceOf ("}", false, false);
- pathString = pathString.fromFirstOccurrenceOf ("}/", false, false);
- }
- else if (path.isAbsolute())
- {
- sourceTree = "";
- }
-
- const String fileRefID (createFileRefID (pathString));
-
- ScopedPointer v (new ValueTree (fileRefID));
- v->setProperty ("isa", "PBXFileReference", nullptr);
- v->setProperty ("lastKnownFileType", getFileType (path), nullptr);
- v->setProperty (Ids::name, pathString.fromLastOccurrenceOf ("/", false, false), nullptr);
- v->setProperty ("path", sanitisePath (pathString), nullptr);
- v->setProperty ("sourceTree", sourceTree, nullptr);
-
- const int existing = pbxFileReferences.indexOfSorted (*this, v);
-
- if (existing >= 0)
- {
- // If this fails, there's either a string hash collision, or the same file is being added twice (incorrectly)
- jassert (pbxFileReferences.getUnchecked (existing)->isEquivalentTo (*v));
- }
- else
- {
- pbxFileReferences.addSorted (*this, v.release());
- }
-
- return fileRefID;
- }
-
-public:
- static int compareElements (const ValueTree* first, const ValueTree* second)
- {
- return first->getType().getCharPointer().compare (second->getType().getCharPointer());
- }
-
-private:
- static String getFileType (const RelativePath& file)
- {
- if (file.hasFileExtension (cppFileExtensions)) return "sourcecode.cpp.cpp";
- if (file.hasFileExtension (".mm")) return "sourcecode.cpp.objcpp";
- if (file.hasFileExtension (".m")) return "sourcecode.c.objc";
- if (file.hasFileExtension (".c")) return "sourcecode.c.c";
- if (file.hasFileExtension (headerFileExtensions)) return "sourcecode.c.h";
- if (file.hasFileExtension (asmFileExtensions)) return "sourcecode.c.asm";
- if (file.hasFileExtension (".framework")) return "wrapper.framework";
- if (file.hasFileExtension (".jpeg;.jpg")) return "image.jpeg";
- if (file.hasFileExtension ("png;gif")) return "image" + file.getFileExtension();
- if (file.hasFileExtension ("html;htm")) return "text.html";
- if (file.hasFileExtension ("xml;zip;wav")) return "file" + file.getFileExtension();
- if (file.hasFileExtension ("txt;rtf")) return "text" + file.getFileExtension();
- if (file.hasFileExtension ("plist")) return "text.plist.xml";
- if (file.hasFileExtension ("app")) return "wrapper.application";
- if (file.hasFileExtension ("component;vst;plugin")) return "wrapper.cfbundle";
- if (file.hasFileExtension ("xcodeproj")) return "wrapper.pb-project";
- if (file.hasFileExtension ("a")) return "archive.ar";
- if (file.hasFileExtension ("xcassets")) return "folder.assetcatalog";
-
- return "file" + file.getFileExtension();
- }
-
- String addFile (const RelativePath& path, bool shouldBeCompiled, bool shouldBeAddedToBinaryResources, bool shouldBeAddedToXcodeResources, bool inhibitWarnings) const
- {
- const String pathAsString (path.toUnixStyle());
- const String refID (addFileReference (path.toUnixStyle()));
-
- if (shouldBeCompiled)
- {
- if (path.hasFileExtension (".r"))
- rezFileIDs.add (addBuildFile (pathAsString, refID, false, inhibitWarnings));
- else
- addBuildFile (pathAsString, refID, true, inhibitWarnings);
- }
- else if (! shouldBeAddedToBinaryResources || shouldBeAddedToXcodeResources)
- {
- const String fileType (getFileType (path));
-
- if (shouldBeAddedToXcodeResources || fileType.startsWith ("image.") || fileType.startsWith ("text.") || fileType.startsWith ("file."))
- {
- resourceIDs.add (addBuildFile (pathAsString, refID, false, false));
- resourceFileRefs.add (refID);
- }
- }
-
- return refID;
- }
-
- String addProjectItem (const Project::Item& projectItem) const
- {
- if (projectItem.isGroup())
- {
- StringArray childIDs;
- for (int i = 0; i < projectItem.getNumChildren(); ++i)
- {
- const String childID (addProjectItem (projectItem.getChild(i)));
-
- if (childID.isNotEmpty())
- childIDs.add (childID);
- }
-
- return addGroup (projectItem, childIDs);
- }
-
- if (projectItem.shouldBeAddedToTargetProject())
- {
- const String itemPath (projectItem.getFilePath());
- RelativePath path;
-
- if (itemPath.startsWith ("${"))
- path = RelativePath (itemPath, RelativePath::unknown);
- else
- path = RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder);
-
- return addFile (path, projectItem.shouldBeCompiled(),
- projectItem.shouldBeAddedToBinaryResources(),
- projectItem.shouldBeAddedToXcodeResources(),
- projectItem.shouldInhibitWarnings());
- }
-
- return String();
- }
-
- void addFramework (const String& frameworkName) const
- {
- String path (frameworkName);
- if (! File::isAbsolutePath (path))
- path = "System/Library/Frameworks/" + path;
-
- if (! path.endsWithIgnoreCase (".framework"))
- path << ".framework";
-
- const String fileRefID (createFileRefID (path));
-
- addFileReference ((File::isAbsolutePath (frameworkName) ? "" : "${SDKROOT}/") + path);
- frameworkIDs.add (addBuildFile (path, fileRefID, false, false));
- frameworkFileIDs.add (fileRefID);
- }
-
- void addGroup (const String& groupID, const String& groupName, const StringArray& childIDs) const
- {
- ValueTree* v = new ValueTree (groupID);
- v->setProperty ("isa", "PBXGroup", nullptr);
- v->setProperty ("children", indentParenthesisedList (childIDs), nullptr);
- v->setProperty (Ids::name, groupName, nullptr);
- v->setProperty ("sourceTree", "", nullptr);
- pbxGroups.add (v);
- }
-
- String addGroup (const Project::Item& item, StringArray& childIDs) const
- {
- const String groupName (item.getName());
- const String groupID (getIDForGroup (item));
- addGroup (groupID, groupName, childIDs);
- return groupID;
- }
-
- void addMainBuildProduct() const
- {
- jassert (xcodeFileType.isNotEmpty());
- jassert (xcodeBundleExtension.isEmpty() || xcodeBundleExtension.startsWithChar ('.'));
-
- if (ProjectExporter::BuildConfiguration::Ptr config = getConfiguration(0))
- {
- String productName (replacePreprocessorTokens (*config, config->getTargetBinaryNameString()));
-
- if (xcodeFileType == "archive.ar")
- productName = getLibbedFilename (productName);
- else
- productName += xcodeBundleExtension;
-
- addBuildProduct (xcodeFileType, productName);
- }
- }
-
- void addBuildProduct (const String& fileType, const String& binaryName) const
- {
- ValueTree* v = new ValueTree (createID ("__productFileID"));
- v->setProperty ("isa", "PBXFileReference", nullptr);
- v->setProperty ("explicitFileType", fileType, nullptr);
- v->setProperty ("includeInIndex", (int) 0, nullptr);
- v->setProperty ("path", sanitisePath (binaryName), nullptr);
- v->setProperty ("sourceTree", "BUILT_PRODUCTS_DIR", nullptr);
- pbxFileReferences.add (v);
- }
-
- void addTargetConfig (const String& configName, const StringArray& buildSettings) const
- {
- ValueTree* v = new ValueTree (createID ("targetconfigid_" + configName));
- v->setProperty ("isa", "XCBuildConfiguration", nullptr);
- v->setProperty ("buildSettings", indentBracedList (buildSettings), nullptr);
- v->setProperty (Ids::name, configName, nullptr);
- targetConfigs.add (v);
- }
-
- void addProjectConfig (const String& configName, const StringArray& buildSettings) const
- {
- ValueTree* v = new ValueTree (createID ("projectconfigid_" + configName));
- v->setProperty ("isa", "XCBuildConfiguration", nullptr);
- v->setProperty ("buildSettings", indentBracedList (buildSettings), nullptr);
- v->setProperty (Ids::name, configName, nullptr);
- projectConfigs.add (v);
- }
-
- void addConfigList (const OwnedArray & configsToUse, const String& listID) const
- {
- StringArray configIDs;
-
- for (int i = 0; i < configsToUse.size(); ++i)
- configIDs.add (configsToUse[i]->getType().toString());
-
- ValueTree* v = new ValueTree (listID);
- v->setProperty ("isa", "XCConfigurationList", nullptr);
- v->setProperty ("buildConfigurations", indentParenthesisedList (configIDs), nullptr);
- v->setProperty ("defaultConfigurationIsVisible", (int) 0, nullptr);
-
- if (configsToUse[0] != nullptr)
- v->setProperty ("defaultConfigurationName", configsToUse[0]->getProperty (Ids::name), nullptr);
-
- misc.add (v);
- }
-
- ValueTree& addBuildPhase (const String& phaseType, const StringArray& fileIds) const
- {
- String phaseId (createID (phaseType + "resbuildphase"));
-
- int n = 0;
- while (buildPhaseIDs.contains (phaseId))
- phaseId = createID (phaseType + "resbuildphase" + String (++n));
-
- buildPhaseIDs.add (phaseId);
-
- ValueTree* v = new ValueTree (phaseId);
- v->setProperty ("isa", phaseType, nullptr);
- v->setProperty ("buildActionMask", "2147483647", nullptr);
- v->setProperty ("files", indentParenthesisedList (fileIds), nullptr);
- v->setProperty ("runOnlyForDeploymentPostprocessing", (int) 0, nullptr);
- misc.add (v);
- return *v;
- }
-
- void addTargetObject() const
- {
- ValueTree* const v = new ValueTree (createID ("__target"));
- v->setProperty ("isa", "PBXNativeTarget", nullptr);
- v->setProperty ("buildConfigurationList", createID ("__configList"), nullptr);
- v->setProperty ("buildPhases", indentParenthesisedList (buildPhaseIDs), nullptr);
- v->setProperty ("buildRules", "( )", nullptr);
- v->setProperty ("dependencies", "( )", nullptr);
- v->setProperty (Ids::name, projectName, nullptr);
- v->setProperty ("productName", projectName, nullptr);
- v->setProperty ("productReference", createID ("__productFileID"), nullptr);
-
- if (xcodeProductInstallPath.isNotEmpty())
- v->setProperty ("productInstallPath", xcodeProductInstallPath, nullptr);
-
- jassert (xcodeProductType.isNotEmpty());
- v->setProperty ("productType", xcodeProductType, nullptr);
-
- misc.add (v);
- }
-
- void addProjectObject() const
- {
- ValueTree* const v = new ValueTree (createID ("__root"));
- v->setProperty ("isa", "PBXProject", nullptr);
- v->setProperty ("buildConfigurationList", createID ("__projList"), nullptr);
- v->setProperty ("attributes", "{ LastUpgradeCheck = 0440; }", nullptr);
- v->setProperty ("compatibilityVersion", "Xcode 3.2", nullptr);
- v->setProperty ("hasScannedForEncodings", (int) 0, nullptr);
- v->setProperty ("mainGroup", createID ("__mainsourcegroup"), nullptr);
- v->setProperty ("projectDirPath", "\"\"", nullptr);
- v->setProperty ("projectRoot", "\"\"", nullptr);
- v->setProperty ("targets", "( " + createID ("__target") + " )", nullptr);
- misc.add (v);
- }
-
- void addShellScriptBuildPhase (const String& phaseName, const String& script) const
- {
- if (script.trim().isNotEmpty())
- {
- ValueTree& v = addBuildPhase ("PBXShellScriptBuildPhase", StringArray());
- v.setProperty (Ids::name, phaseName, nullptr);
- v.setProperty ("shellPath", "/bin/sh", nullptr);
- v.setProperty ("shellScript", script.replace ("\\", "\\\\")
- .replace ("\"", "\\\"")
- .replace ("\r\n", "\\n")
- .replace ("\n", "\\n"), nullptr);
- }
- }
-
- //==============================================================================
- struct AppIconType
- {
- const char* idiom;
- const char* sizeString;
- const char* filename;
- const char* scale;
- int size;
- };
-
- static Array getiOSAppIconTypes()
- {
- AppIconType types[] =
- {
- { "iphone", "29x29", "Icon-29.png", "1x", 29 },
- { "iphone", "29x29", "Icon-29@2x.png", "2x", 58 },
- { "iphone", "29x29", "Icon-29@3x.png", "3x", 87 },
- { "iphone", "40x40", "Icon-Spotlight-40@2x.png", "2x", 80 },
- { "iphone", "40x40", "Icon-Spotlight-40@3x.png", "3x", 120 },
- { "iphone", "57x57", "Icon.png", "1x", 57 },
- { "iphone", "57x57", "Icon@2x.png", "2x", 114 },
- { "iphone", "60x60", "Icon-60@2x.png", "2x", 120 },
- { "iphone", "60x60", "Icon-@3x.png", "3x", 180 },
- { "ipad", "29x29", "Icon-Small-1.png", "1x", 29 },
- { "ipad", "29x29", "Icon-Small@2x-1.png", "2x", 58 },
- { "ipad", "40x40", "Icon-Spotlight-40.png", "1x", 40 },
- { "ipad", "40x40", "Icon-Spotlight-40@2x-1.png", "2x", 80 },
- { "ipad", "50x50", "Icon-Small-50.png", "1x", 50 },
- { "ipad", "50x50", "Icon-Small-50@2x.png", "2x", 100 },
- { "ipad", "72x72", "Icon-72.png", "1x", 72 },
- { "ipad", "72x72", "Icon-72@2x.png", "2x", 144 },
- { "ipad", "76x76", "Icon-76.png", "1x", 76 },
- { "ipad", "76x76", "Icon-76@2x.png", "2x", 152 },
- { "ipad", "83.5x83.5", "Icon-83.5@2x.png", "2x", 167 }
- };
-
- return Array (types, numElementsInArray (types));
- }
-
- static String getiOSAppIconContents()
- {
- const Array types (getiOSAppIconTypes());
- var images;
-
- for (int i = 0; i < types.size(); ++i)
- {
- AppIconType type = types.getUnchecked(i);
-
- DynamicObject::Ptr d = new DynamicObject();
- d->setProperty ("idiom", type.idiom);
- d->setProperty ("size", type.sizeString);
- d->setProperty ("filename", type.filename);
- d->setProperty ("scale", type.scale);
- images.append (var (d));
- }
-
- return getiOSAssetContents (images);
- }
-
- //==============================================================================
- struct ImageType
- {
- const char* orientation;
- const char* idiom;
- const char* subtype;
- const char* extent;
- const char* scale;
- const char* filename;
- int width;
- int height;
- };
-
- static Array getiOSLaunchImageTypes()
- {
- ImageType types[] =
- {
- { "portrait", "iphone", nullptr, "full-screen", "2x", "LaunchImage-iphone-2x.png", 640, 960 },
- { "portrait", "iphone", "retina4", "full-screen", "2x", "LaunchImage-iphone-retina4.png", 640, 1136 },
- { "portrait", "ipad", nullptr, "full-screen", "1x", "LaunchImage-ipad-portrait-1x.png", 768, 1024 },
- { "landscape","ipad", nullptr, "full-screen", "1x", "LaunchImage-ipad-landscape-1x.png", 1024, 768 },
- { "portrait", "ipad", nullptr, "full-screen", "2x", "LaunchImage-ipad-portrait-2x.png", 1536, 2048 },
- { "landscape","ipad", nullptr, "full-screen", "2x", "LaunchImage-ipad-landscape-2x.png", 2048, 1536 }
- };
-
- return Array (types, numElementsInArray (types));
- }
-
- static String getiOSLaunchImageContents()
- {
- const Array types (getiOSLaunchImageTypes());
- var images;
-
- for (int i = 0; i < types.size(); ++i)
- {
- const ImageType& type = types.getReference(i);
-
- DynamicObject::Ptr d = new DynamicObject();
- d->setProperty ("orientation", type.orientation);
- d->setProperty ("idiom", type.idiom);
- d->setProperty ("extent", type.extent);
- d->setProperty ("minimum-system-version", "7.0");
- d->setProperty ("scale", type.scale);
- d->setProperty ("filename", type.filename);
-
- if (type.subtype != nullptr)
- d->setProperty ("subtype", type.subtype);
-
- images.append (var (d));
- }
-
- return getiOSAssetContents (images);
- }
-
- static void createiOSLaunchImageFiles (const File& launchImageSet)
- {
- const Array types (getiOSLaunchImageTypes());
-
- for (int i = 0; i < types.size(); ++i)
- {
- const ImageType& type = types.getReference(i);
-
- Image image (Image::ARGB, type.width, type.height, true); // (empty black image)
- image.clear (image.getBounds(), Colours::black);
-
- MemoryOutputStream pngData;
- PNGImageFormat pngFormat;
- pngFormat.writeImageToStream (image, pngData);
- overwriteFileIfDifferentOrThrow (launchImageSet.getChildFile (type.filename), pngData);
- }
- }
-
- //==============================================================================
- static String getiOSAssetContents (var images)
- {
- DynamicObject::Ptr v (new DynamicObject());
-
- var info (new DynamicObject());
- info.getDynamicObject()->setProperty ("version", 1);
- info.getDynamicObject()->setProperty ("author", "xcode");
-
- v->setProperty ("images", images);
- v->setProperty ("info", info);
-
- return JSON::toString (var (v));
- }
-
- void createiOSAssetsFolder() const
- {
- const File assets (getTargetFolder().getChildFile (project.getProjectFilenameRoot())
- .getChildFile ("Images.xcassets"));
- const File iconSet (assets.getChildFile ("AppIcon.appiconset"));
- const File launchImage (assets.getChildFile ("LaunchImage.launchimage"));
-
- overwriteFileIfDifferentOrThrow (iconSet.getChildFile ("Contents.json"), getiOSAppIconContents());
- createiOSIconFiles (iconSet);
-
- overwriteFileIfDifferentOrThrow (launchImage.getChildFile ("Contents.json"), getiOSLaunchImageContents());
- createiOSLaunchImageFiles (launchImage);
-
- RelativePath assetsPath (assets, getTargetFolder(), RelativePath::buildTargetFolder);
- addFileReference (assetsPath.toUnixStyle());
- resourceIDs.add (addBuildFile (assetsPath, false, false));
- resourceFileRefs.add (createFileRefID (assetsPath));
- }
-
- //==============================================================================
- static String indentBracedList (const StringArray& list) { return "{" + indentList (list, ";", 0, true) + " }"; }
- static String indentParenthesisedList (const StringArray& list) { return "(" + indentList (list, ",", 1, false) + " )"; }
-
- static String indentList (const StringArray& list, const String& separator, int extraTabs, bool shouldSort)
- {
- if (list.size() == 0)
- return " ";
-
- const String tabs ("\n" + String::repeatedString ("\t", extraTabs + 4));
-
- if (shouldSort)
- {
- StringArray sorted (list);
- sorted.sort (true);
-
- return tabs + sorted.joinIntoString (separator + tabs) + separator;
- }
-
- return tabs + list.joinIntoString (separator + tabs) + separator;
- }
-
- String createID (String rootString) const
- {
- if (rootString.startsWith ("${"))
- rootString = rootString.fromFirstOccurrenceOf ("}/", false, false);
-
- rootString += project.getProjectUID();
-
- return MD5 (rootString.toUTF8()).toHexString().substring (0, 24).toUpperCase();
- }
-
- String createFileRefID (const RelativePath& path) const { return createFileRefID (path.toUnixStyle()); }
- String createFileRefID (const String& path) const { return createID ("__fileref_" + path); }
- String getIDForGroup (const Project::Item& item) const { return createID (item.getID()); }
-
- bool shouldFileBeCompiledByDefault (const RelativePath& file) const override
- {
- return file.hasFileExtension (sourceFileExtensions);
- }
-
- static String getOSXVersionName (int version)
- {
- jassert (version >= 4);
- return "10." + String (version);
- }
-
- static String getSDKName (int version)
- {
- return getOSXVersionName (version) + " SDK";
- }
-
- void initialiseDependencyPathValues()
- {
- vst2Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vstFolder), Ids::vst2Path, TargetOS::osx)));
- vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder), Ids::vst3Path, TargetOS::osx)));
- aaxPath. referTo (Value (new DependencyPathValueSource (getSetting (Ids::aaxFolder), Ids::aaxPath, TargetOS::osx)));
- rtasPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::rtasFolder), Ids::rtasPath, TargetOS::osx)));
- }
-};
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2015 - ROLI Ltd.
+
+ Permission is granted to use this software under the terms of either:
+ a) the GPL v2 (or any later version)
+ b) the Affero GPL v3
+
+ Details of these licenses can be found at: www.gnu.org/licenses
+
+ JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ ------------------------------------------------------------------------------
+
+ To release a closed-source product which uses JUCE, commercial licenses are
+ available: visit www.juce.com for more information.
+
+ ==============================================================================
+*/
+
+namespace
+{
+ const char* const osxVersionDefault = "default";
+ const int oldestSDKVersion = 5;
+ const int currentSDKVersion = 11;
+
+ const char* const osxArch_Default = "default";
+ const char* const osxArch_Native = "Native";
+ const char* const osxArch_32BitUniversal = "32BitUniversal";
+ const char* const osxArch_64BitUniversal = "64BitUniversal";
+ const char* const osxArch_64Bit = "64BitIntel";
+}
+
+//==============================================================================
+class XCodeProjectExporter : public ProjectExporter
+{
+public:
+ //==============================================================================
+ static const char* getNameMac() { return "Xcode (MacOSX)"; }
+ static const char* getNameiOS() { return "Xcode (iOS)"; }
+ static const char* getValueTreeTypeName (bool iOS) { return iOS ? "XCODE_IPHONE" : "XCODE_MAC"; }
+
+ //==============================================================================
+ XCodeProjectExporter (Project& p, const ValueTree& t, const bool isIOS)
+ : ProjectExporter (p, t),
+ iOS (isIOS)
+ {
+ name = iOS ? getNameiOS() : getNameMac();
+
+ if (getTargetLocationString().isEmpty())
+ getTargetLocationValue() = getDefaultBuildsRootFolder() + (iOS ? "iOS" : "MacOSX");
+
+ initialiseDependencyPathValues();
+ }
+
+ static XCodeProjectExporter* createForSettings (Project& project, const ValueTree& settings)
+ {
+ if (settings.hasType (getValueTreeTypeName (false))) return new XCodeProjectExporter (project, settings, false);
+ if (settings.hasType (getValueTreeTypeName (true))) return new XCodeProjectExporter (project, settings, true);
+
+ return nullptr;
+ }
+
+ //==============================================================================
+ Value getPListToMergeValue() { return getSetting ("customPList"); }
+ String getPListToMergeString() const { return settings ["customPList"]; }
+
+ Value getExtraFrameworksValue() { return getSetting (Ids::extraFrameworks); }
+ String getExtraFrameworksString() const { return settings [Ids::extraFrameworks]; }
+
+ Value getPostBuildScriptValue() { return getSetting (Ids::postbuildCommand); }
+ String getPostBuildScript() const { return settings [Ids::postbuildCommand]; }
+
+ Value getPreBuildScriptValue() { return getSetting (Ids::prebuildCommand); }
+ String getPreBuildScript() const { return settings [Ids::prebuildCommand]; }
+
+ bool usesMMFiles() const override { return true; }
+ bool isXcode() const override { return true; }
+ bool isOSX() const override { return ! iOS; }
+ bool canCopeWithDuplicateFiles() override { return true; }
+
+ void createExporterProperties (PropertyListBuilder& props) override
+ {
+ if (projectType.isGUIApplication() && ! iOS)
+ {
+ props.add (new TextPropertyComponent (getSetting ("documentExtensions"), "Document file extensions", 128, false),
+ "A comma-separated list of file extensions for documents that your app can open. "
+ "Using a leading '.' is optional, and the extensions are not case-sensitive.");
+ }
+ else if (iOS)
+ {
+ props.add (new BooleanPropertyComponent (getSetting ("UIFileSharingEnabled"), "File Sharing Enabled", "Enabled"),
+ "Enable this to expose your app's files to iTunes.");
+
+ props.add (new BooleanPropertyComponent (getSetting ("UIStatusBarHidden"), "Status Bar Hidden", "Enabled"),
+ "Enable this to disable the status bar in your app.");
+ }
+
+ props.add (new TextPropertyComponent (getPListToMergeValue(), "Custom PList", 8192, true),
+ "You can paste the contents of an XML PList file in here, and the settings that it contains will override any "
+ "settings that the Introjucer creates. BEWARE! When doing this, be careful to remove from the XML any "
+ "values that you DO want the introjucer to change!");
+
+ props.add (new TextPropertyComponent (getExtraFrameworksValue(), "Extra Frameworks", 2048, false),
+ "A comma-separated list of extra frameworks that should be added to the build. "
+ "(Don't include the .framework extension in the name)");
+
+ props.add (new TextPropertyComponent (getPreBuildScriptValue(), "Pre-build shell script", 32768, true),
+ "Some shell-script that will be run before a build starts.");
+
+ props.add (new TextPropertyComponent (getPostBuildScriptValue(), "Post-build shell script", 32768, true),
+ "Some shell-script that will be run after a build completes.");
+ }
+
+ bool launchProject() override
+ {
+ #if JUCE_MAC
+ return getProjectBundle().startAsProcess();
+ #else
+ return false;
+ #endif
+ }
+
+ bool canLaunchProject() override
+ {
+ #if JUCE_MAC
+ return true;
+ #else
+ return false;
+ #endif
+ }
+
+ //==============================================================================
+ void create (const OwnedArray&) const override
+ {
+ infoPlistFile = getTargetFolder().getChildFile ("Info.plist");
+ menuNibFile = getTargetFolder().getChildFile ("RecentFilesMenuTemplate.nib");
+
+ createIconFile();
+
+ File projectBundle (getProjectBundle());
+ createDirectoryOrThrow (projectBundle);
+
+ createObjects();
+
+ File projectFile (projectBundle.getChildFile ("project.pbxproj"));
+
+ {
+ MemoryOutputStream mo;
+ writeProjectFile (mo);
+ overwriteFileIfDifferentOrThrow (projectFile, mo);
+ }
+
+ writeInfoPlistFile();
+
+ // Deleting the .rsrc files can be needed to force Xcode to update the version number.
+ deleteRsrcFiles();
+ }
+
+protected:
+ //==============================================================================
+ class XcodeBuildConfiguration : public BuildConfiguration
+ {
+ public:
+ XcodeBuildConfiguration (Project& p, const ValueTree& t, const bool isIOS, const ProjectExporter& e)
+ : BuildConfiguration (p, t, e), iOS (isIOS)
+ {
+ if (iOS)
+ {
+ if (getiOSCompatibilityVersion().isEmpty())
+ getiOSCompatibilityVersionValue() = osxVersionDefault;
+ }
+ else
+ {
+ if (getMacSDKVersion().isEmpty())
+ getMacSDKVersionValue() = osxVersionDefault;
+
+ if (getMacCompatibilityVersion().isEmpty())
+ getMacCompatibilityVersionValue() = osxVersionDefault;
+
+ if (getMacArchitecture().isEmpty())
+ getMacArchitectureValue() = osxArch_Default;
+ }
+ }
+
+ Value getMacSDKVersionValue() { return getValue (Ids::osxSDK); }
+ String getMacSDKVersion() const { return config [Ids::osxSDK]; }
+ Value getMacCompatibilityVersionValue() { return getValue (Ids::osxCompatibility); }
+ String getMacCompatibilityVersion() const { return config [Ids::osxCompatibility]; }
+ Value getiOSCompatibilityVersionValue() { return getValue (Ids::iosCompatibility); }
+ String getiOSCompatibilityVersion() const { return config [Ids::iosCompatibility]; }
+ Value getMacArchitectureValue() { return getValue (Ids::osxArchitecture); }
+ String getMacArchitecture() const { return config [Ids::osxArchitecture]; }
+ Value getCustomXcodeFlagsValue() { return getValue (Ids::customXcodeFlags); }
+ String getCustomXcodeFlags() const { return config [Ids::customXcodeFlags]; }
+ Value getCppLanguageStandardValue() { return getValue (Ids::cppLanguageStandard); }
+ String getCppLanguageStandard() const { return config [Ids::cppLanguageStandard]; }
+ Value getCppLibTypeValue() { return getValue (Ids::cppLibType); }
+ String getCppLibType() const { return config [Ids::cppLibType]; }
+ Value getCodeSignIdentityValue() { return getValue (Ids::codeSigningIdentity); }
+ String getCodeSignIdentity() const { return config [Ids::codeSigningIdentity]; }
+ Value getFastMathValue() { return getValue (Ids::fastMath); }
+ bool isFastMathEnabled() const { return config [Ids::fastMath]; }
+ Value getLinkTimeOptimisationValue() { return getValue (Ids::linkTimeOptimisation); }
+ bool isLinkTimeOptimisationEnabled() const { return config [Ids::linkTimeOptimisation]; }
+
+ var getDefaultOptimisationLevel() const override { return var ((int) (isDebug() ? gccO0 : gccO3)); }
+
+ void createConfigProperties (PropertyListBuilder& props) override
+ {
+ addGCCOptimisationProperty (props);
+
+ if (iOS)
+ {
+ const char* iosVersions[] = { "Use Default", "7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "8.4", "9.0", "9.1", "9.2", 0 };
+ const char* iosVersionValues[] = { osxVersionDefault, "7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "8.4", "9.0", "9.1", "9.2", 0 };
+
+ props.add (new ChoicePropertyComponent (getiOSCompatibilityVersionValue(), "iOS Deployment Target",
+ StringArray (iosVersions), Array (iosVersionValues)),
+ "The minimum version of iOS that the target binary will run on.");
+ }
+ else
+ {
+ StringArray sdkVersionNames, osxVersionNames;
+ Array versionValues;
+
+ sdkVersionNames.add ("Use Default");
+ osxVersionNames.add ("Use Default");
+ versionValues.add (osxVersionDefault);
+
+ for (int ver = oldestSDKVersion; ver <= currentSDKVersion; ++ver)
+ {
+ sdkVersionNames.add (getSDKName (ver));
+ osxVersionNames.add (getOSXVersionName (ver));
+ versionValues.add (getSDKName (ver));
+ }
+
+ props.add (new ChoicePropertyComponent (getMacSDKVersionValue(), "OSX Base SDK Version", sdkVersionNames, versionValues),
+ "The version of OSX to link against in the XCode build.");
+
+ props.add (new ChoicePropertyComponent (getMacCompatibilityVersionValue(), "OSX Deployment Target", osxVersionNames, versionValues),
+ "The minimum version of OSX that the target binary will be compatible with.");
+
+ const char* osxArch[] = { "Use Default", "Native architecture of build machine",
+ "Universal Binary (32-bit)", "Universal Binary (32/64-bit)", "64-bit Intel", 0 };
+ const char* osxArchValues[] = { osxArch_Default, osxArch_Native, osxArch_32BitUniversal,
+ osxArch_64BitUniversal, osxArch_64Bit, 0 };
+
+ props.add (new ChoicePropertyComponent (getMacArchitectureValue(), "OSX Architecture",
+ StringArray (osxArch), Array (osxArchValues)),
+ "The type of OSX binary that will be produced.");
+ }
+
+ props.add (new TextPropertyComponent (getCustomXcodeFlagsValue(), "Custom Xcode flags", 8192, false),
+ "A comma-separated list of custom Xcode setting flags which will be appended to the list of generated flags, "
+ "e.g. MACOSX_DEPLOYMENT_TARGET_i386 = 10.5, VALID_ARCHS = \"ppc i386 x86_64\"");
+
+ const char* cppLanguageStandardNames[] = { "Use Default", "C++98", "GNU++98", "C++11", "GNU++11", "C++14", "GNU++14", nullptr };
+ Array cppLanguageStandardValues;
+ cppLanguageStandardValues.add (var::null);
+ cppLanguageStandardValues.add ("c++98");
+ cppLanguageStandardValues.add ("gnu++98");
+ cppLanguageStandardValues.add ("c++11");
+ cppLanguageStandardValues.add ("gnu++11");
+ cppLanguageStandardValues.add ("c++14");
+ cppLanguageStandardValues.add ("gnu++14");
+
+ props.add (new ChoicePropertyComponent (getCppLanguageStandardValue(), "C++ Language Standard", StringArray (cppLanguageStandardNames), cppLanguageStandardValues),
+ "The standard of the C++ language that will be used for compilation.");
+
+ const char* cppLibNames[] = { "Use Default", "LLVM libc++", "GNU libstdc++", nullptr };
+ Array cppLibValues;
+ cppLibValues.add (var::null);
+ cppLibValues.add ("libc++");
+ cppLibValues.add ("libstdc++");
+
+ props.add (new ChoicePropertyComponent (getCppLibTypeValue(), "C++ Library", StringArray (cppLibNames), cppLibValues),
+ "The type of C++ std lib that will be linked.");
+
+ props.add (new TextPropertyComponent (getCodeSignIdentityValue(), "Code-signing Identity", 8192, false),
+ "The name of a code-signing identity for Xcode to apply.");
+
+ props.add (new BooleanPropertyComponent (getFastMathValue(), "Relax IEEE compliance", "Enabled"),
+ "Enable this to use FAST_MATH non-IEEE mode. (Warning: this can have unexpected results!)");
+
+ props.add (new BooleanPropertyComponent (getLinkTimeOptimisationValue(), "Link-Time Optimisation", "Enabled"),
+ "Enable this to perform link-time code generation. This is recommended for release builds.");
+ }
+
+ bool iOS;
+ };
+
+ BuildConfiguration::Ptr createBuildConfig (const ValueTree& v) const override
+ {
+ return new XcodeBuildConfiguration (project, v, iOS, *this);
+ }
+
+private:
+ mutable OwnedArray pbxBuildFiles, pbxFileReferences, pbxGroups, misc, projectConfigs, targetConfigs;
+ mutable StringArray buildPhaseIDs, resourceIDs, sourceIDs, frameworkIDs;
+ mutable StringArray frameworkFileIDs, rezFileIDs, resourceFileRefs;
+ mutable File infoPlistFile, menuNibFile, iconFile;
+ const bool iOS;
+
+ static String sanitisePath (const String& path)
+ {
+ if (path.startsWithChar ('~'))
+ return "$(HOME)" + path.substring (1);
+
+ return path;
+ }
+
+ static String addQuotesIfContainsSpace (const String& s)
+ {
+ return s.containsChar (' ') ? s.quoted() : s;
+ }
+
+ File getProjectBundle() const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (".xcodeproj"); }
+
+ //==============================================================================
+ void createObjects() const
+ {
+ addFrameworks();
+ addMainBuildProduct();
+
+ if (xcodeCreatePList)
+ {
+ RelativePath plistPath (infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder);
+ addFileReference (plistPath.toUnixStyle());
+ resourceFileRefs.add (createFileRefID (plistPath));
+ }
+
+ if (iOS)
+ {
+ if (! projectType.isStaticLibrary())
+ createiOSAssetsFolder();
+ }
+ else
+ {
+ MemoryOutputStream nib;
+ nib.write (BinaryData::RecentFilesMenuTemplate_nib, BinaryData::RecentFilesMenuTemplate_nibSize);
+ overwriteFileIfDifferentOrThrow (menuNibFile, nib);
+
+ RelativePath menuNibPath (menuNibFile, getTargetFolder(), RelativePath::buildTargetFolder);
+ addFileReference (menuNibPath.toUnixStyle());
+ resourceIDs.add (addBuildFile (menuNibPath, false, false));
+ resourceFileRefs.add (createFileRefID (menuNibPath));
+ }
+
+ if (iconFile.exists())
+ {
+ RelativePath iconPath (iconFile, getTargetFolder(), RelativePath::buildTargetFolder);
+ addFileReference (iconPath.toUnixStyle());
+ resourceIDs.add (addBuildFile (iconPath, false, false));
+ resourceFileRefs.add (createFileRefID (iconPath));
+ }
+
+ {
+ StringArray topLevelGroupIDs;
+
+ for (int i = 0; i < getAllGroups().size(); ++i)
+ {
+ const Project::Item& group = getAllGroups().getReference(i);
+
+ if (group.getNumChildren() > 0)
+ topLevelGroupIDs.add (addProjectItem (group));
+ }
+
+ { // 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 (ConstConfigIterator config (*this); config.next();)
+ {
+ const XcodeBuildConfiguration& xcodeConfig = dynamic_cast (*config);
+ addProjectConfig (config->getName(), getProjectSettings (xcodeConfig));
+ addTargetConfig (config->getName(), getTargetSettings (xcodeConfig));
+ }
+
+ addConfigList (projectConfigs, createID ("__projList"));
+ addConfigList (targetConfigs, createID ("__configList"));
+
+ addShellScriptBuildPhase ("Pre-build script", getPreBuildScript());
+
+ if (! projectType.isStaticLibrary())
+ addBuildPhase ("PBXResourcesBuildPhase", resourceIDs);
+
+ if (rezFileIDs.size() > 0)
+ addBuildPhase ("PBXRezBuildPhase", rezFileIDs);
+
+ addBuildPhase ("PBXSourcesBuildPhase", sourceIDs);
+
+ if (! projectType.isStaticLibrary())
+ addBuildPhase ("PBXFrameworksBuildPhase", frameworkIDs);
+
+ addShellScriptBuildPhase ("Post-build script", getPostBuildScript());
+
+ addTargetObject();
+ addProjectObject();
+ }
+
+ static Image fixMacIconImageSize (Drawable& image)
+ {
+ const int validSizes[] = { 16, 32, 48, 128, 256, 512, 1024 };
+
+ const int w = image.getWidth();
+ const int h = image.getHeight();
+
+ int bestSize = 16;
+
+ for (int i = 0; i < numElementsInArray (validSizes); ++i)
+ {
+ if (w == h && w == validSizes[i])
+ {
+ bestSize = w;
+ break;
+ }
+
+ if (jmax (w, h) > validSizes[i])
+ bestSize = validSizes[i];
+ }
+
+ return rescaleImageForIcon (image, bestSize);
+ }
+
+ static void writeOldIconFormat (MemoryOutputStream& out, const Image& image, const char* type, const char* maskType)
+ {
+ const int w = image.getWidth();
+ const int h = image.getHeight();
+
+ out.write (type, 4);
+ out.writeIntBigEndian (8 + 4 * w * h);
+
+ const Image::BitmapData bitmap (image, Image::BitmapData::readOnly);
+
+ for (int y = 0; y < h; ++y)
+ {
+ for (int x = 0; x < w; ++x)
+ {
+ const Colour pixel (bitmap.getPixelColour (x, y));
+ out.writeByte ((char) pixel.getAlpha());
+ out.writeByte ((char) pixel.getRed());
+ out.writeByte ((char) pixel.getGreen());
+ out.writeByte ((char) pixel.getBlue());
+ }
+ }
+
+ out.write (maskType, 4);
+ out.writeIntBigEndian (8 + w * h);
+
+ for (int y = 0; y < h; ++y)
+ {
+ for (int x = 0; x < w; ++x)
+ {
+ const Colour pixel (bitmap.getPixelColour (x, y));
+ out.writeByte ((char) pixel.getAlpha());
+ }
+ }
+ }
+
+ static void writeNewIconFormat (MemoryOutputStream& out, const Image& image, const char* type)
+ {
+ MemoryOutputStream pngData;
+ PNGImageFormat pngFormat;
+ pngFormat.writeImageToStream (image, pngData);
+
+ out.write (type, 4);
+ out.writeIntBigEndian (8 + (int) pngData.getDataSize());
+ out << pngData;
+ }
+
+ void writeIcnsFile (const OwnedArray& images, OutputStream& out) const
+ {
+ MemoryOutputStream data;
+ int smallest = 0x7fffffff;
+ Drawable* smallestImage = nullptr;
+
+ for (int i = 0; i < images.size(); ++i)
+ {
+ const Image image (fixMacIconImageSize (*images.getUnchecked(i)));
+ jassert (image.getWidth() == image.getHeight());
+
+ if (image.getWidth() < smallest)
+ {
+ smallest = image.getWidth();
+ smallestImage = images.getUnchecked(i);
+ }
+
+ switch (image.getWidth())
+ {
+ case 16: writeOldIconFormat (data, image, "is32", "s8mk"); break;
+ case 32: writeOldIconFormat (data, image, "il32", "l8mk"); break;
+ case 48: writeOldIconFormat (data, image, "ih32", "h8mk"); break;
+ case 128: writeOldIconFormat (data, image, "it32", "t8mk"); break;
+ case 256: writeNewIconFormat (data, image, "ic08"); break;
+ case 512: writeNewIconFormat (data, image, "ic09"); break;
+ case 1024: writeNewIconFormat (data, image, "ic10"); break;
+ default: break;
+ }
+ }
+
+ jassert (data.getDataSize() > 0); // no suitable sized images?
+
+ // If you only supply a 1024 image, the file doesn't work on 10.8, so we need
+ // to force a smaller one in there too..
+ if (smallest > 512 && smallestImage != nullptr)
+ writeNewIconFormat (data, rescaleImageForIcon (*smallestImage, 512), "ic09");
+
+ out.write ("icns", 4);
+ out.writeIntBigEndian ((int) data.getDataSize() + 8);
+ out << data;
+ }
+
+ void getIconImages (OwnedArray& images) const
+ {
+ ScopedPointer bigIcon (getBigIcon());
+ if (bigIcon != nullptr)
+ images.add (bigIcon.release());
+
+ ScopedPointer smallIcon (getSmallIcon());
+ if (smallIcon != nullptr)
+ images.add (smallIcon.release());
+ }
+
+ void createiOSIconFiles (File appIconSet) const
+ {
+ const Array types (getiOSAppIconTypes());
+
+ OwnedArray images;
+ getIconImages (images);
+
+ if (images.size() > 0)
+ {
+ for (int i = 0; i < types.size(); ++i)
+ {
+ const AppIconType type = types.getUnchecked(i);
+ const Image image (rescaleImageForIcon (*images.getFirst(), type.size));
+
+ MemoryOutputStream pngData;
+ PNGImageFormat pngFormat;
+ pngFormat.writeImageToStream (image, pngData);
+
+ overwriteFileIfDifferentOrThrow (appIconSet.getChildFile (type.filename), pngData);
+ }
+ }
+ }
+
+ void createIconFile() const
+ {
+ OwnedArray images;
+ getIconImages (images);
+
+ if (images.size() > 0)
+ {
+ MemoryOutputStream mo;
+ writeIcnsFile (images, mo);
+
+ iconFile = getTargetFolder().getChildFile ("Icon.icns");
+ overwriteFileIfDifferentOrThrow (iconFile, mo);
+ }
+ }
+
+ void writeInfoPlistFile() const
+ {
+ if (! xcodeCreatePList)
+ return;
+
+ ScopedPointer plist (XmlDocument::parse (getPListToMergeString()));
+
+ if (plist == nullptr || ! plist->hasTagName ("plist"))
+ plist = new XmlElement ("plist");
+
+ XmlElement* dict = plist->getChildByName ("dict");
+
+ if (dict == nullptr)
+ dict = plist->createNewChildElement ("dict");
+
+ if (iOS)
+ {
+ addPlistDictionaryKeyBool (dict, "LSRequiresIPhoneOS", true);
+ addPlistDictionaryKeyBool (dict, "UIViewControllerBasedStatusBarAppearance", false);
+ }
+
+ addPlistDictionaryKey (dict, "CFBundleExecutable", "${EXECUTABLE_NAME}");
+
+ if (! iOS) // (NB: on iOS this causes error ITMS-90032 during publishing)
+ addPlistDictionaryKey (dict, "CFBundleIconFile", iconFile.exists() ? iconFile.getFileName() : String());
+
+ addPlistDictionaryKey (dict, "CFBundleIdentifier", "$(PRODUCT_BUNDLE_IDENTIFIER)");
+ addPlistDictionaryKey (dict, "CFBundleName", projectName);
+ addPlistDictionaryKey (dict, "CFBundlePackageType", xcodePackageType);
+ addPlistDictionaryKey (dict, "CFBundleSignature", xcodeBundleSignature);
+ addPlistDictionaryKey (dict, "CFBundleShortVersionString", project.getVersionString());
+ addPlistDictionaryKey (dict, "CFBundleVersion", project.getVersionString());
+ addPlistDictionaryKey (dict, "NSHumanReadableCopyright", project.getCompanyName().toString());
+ addPlistDictionaryKeyBool (dict, "NSHighResolutionCapable", true);
+
+ StringArray documentExtensions;
+ documentExtensions.addTokens (replacePreprocessorDefs (getAllPreprocessorDefs(), settings ["documentExtensions"]),
+ ",", StringRef());
+ documentExtensions.trim();
+ documentExtensions.removeEmptyStrings (true);
+
+ if (documentExtensions.size() > 0)
+ {
+ dict->createNewChildElement ("key")->addTextElement ("CFBundleDocumentTypes");
+ XmlElement* dict2 = dict->createNewChildElement ("array")->createNewChildElement ("dict");
+ XmlElement* arrayTag = nullptr;
+
+ for (int i = 0; i < documentExtensions.size(); ++i)
+ {
+ String ex (documentExtensions[i]);
+ if (ex.startsWithChar ('.'))
+ ex = ex.substring (1);
+
+ if (arrayTag == nullptr)
+ {
+ dict2->createNewChildElement ("key")->addTextElement ("CFBundleTypeExtensions");
+ arrayTag = dict2->createNewChildElement ("array");
+
+ addPlistDictionaryKey (dict2, "CFBundleTypeName", ex);
+ addPlistDictionaryKey (dict2, "CFBundleTypeRole", "Editor");
+ addPlistDictionaryKey (dict2, "CFBundleTypeIconFile", "Icon");
+ addPlistDictionaryKey (dict2, "NSPersistentStoreTypeKey", "XML");
+ }
+
+ arrayTag->createNewChildElement ("string")->addTextElement (ex);
+ }
+ }
+
+ if (settings ["UIFileSharingEnabled"])
+ addPlistDictionaryKeyBool (dict, "UIFileSharingEnabled", true);
+
+ if (settings ["UIStatusBarHidden"])
+ addPlistDictionaryKeyBool (dict, "UIStatusBarHidden", true);
+
+ if (iOS)
+ {
+ // Forcing full screen disables the split screen feature and prevents error ITMS-90475
+ addPlistDictionaryKeyBool (dict, "UIRequiresFullScreen", true);
+
+ static const char* kDefaultiOSOrientationStrings[] =
+ {
+ "UIInterfaceOrientationPortrait",
+ "UIInterfaceOrientationPortraitUpsideDown",
+ "UIInterfaceOrientationLandscapeLeft",
+ "UIInterfaceOrientationLandscapeRight",
+ nullptr
+ };
+
+ StringArray iOSOrientations (kDefaultiOSOrientationStrings);
+
+ dict->createNewChildElement ("key")->addTextElement ("UISupportedInterfaceOrientations");
+ XmlElement* plistStringArray = dict->createNewChildElement ("array");
+
+ for (int i = 0; i < iOSOrientations.size(); ++i)
+ plistStringArray->createNewChildElement ("string")->addTextElement (iOSOrientations[i]);
+ }
+
+ for (int i = 0; i < xcodeExtraPListEntries.size(); ++i)
+ dict->addChildElement (new XmlElement (xcodeExtraPListEntries.getReference(i)));
+
+ MemoryOutputStream mo;
+ plist->writeToStream (mo, "");
+
+ overwriteFileIfDifferentOrThrow (infoPlistFile, mo);
+ }
+
+ void deleteRsrcFiles() const
+ {
+ for (DirectoryIterator di (getTargetFolder().getChildFile ("build"), true, "*.rsrc", File::findFiles); di.next();)
+ di.getFile().deleteFile();
+ }
+
+ String getHeaderSearchPaths (const BuildConfiguration& config) const
+ {
+ StringArray paths (extraSearchPaths);
+ paths.addArray (config.getHeaderSearchPaths());
+ paths.add ("$(inherited)");
+
+ paths = getCleanedStringArray (paths);
+
+ for (int i = 0; i < paths.size(); ++i)
+ {
+ String& s = paths.getReference(i);
+
+ s = replacePreprocessorTokens (config, s);
+
+ if (s.containsChar (' '))
+ s = "\"\\\"" + s + "\\\"\""; // crazy double quotes required when there are spaces..
+ else
+ s = "\"" + s + "\"";
+ }
+
+ return "(" + paths.joinIntoString (", ") + ")";
+ }
+
+ static String getLinkerFlagForLib (String library)
+ {
+ if (library.substring (0, 3) == "lib")
+ library = library.substring (3);
+
+ return "-l" + library.upToLastOccurrenceOf (".", false, false);
+ }
+
+ void getLinkerFlagsForStaticLibrary (const RelativePath& library, StringArray& flags, StringArray& librarySearchPaths) const
+ {
+ flags.add (getLinkerFlagForLib (library.getFileNameWithoutExtension()));
+
+ String searchPath (library.toUnixStyle().upToLastOccurrenceOf ("/", false, false));
+
+ if (! library.isAbsolute())
+ {
+ String srcRoot (rebaseFromProjectFolderToBuildTarget (RelativePath (".", RelativePath::projectFolder)).toUnixStyle());
+
+ if (srcRoot.endsWith ("/.")) srcRoot = srcRoot.dropLastCharacters (2);
+ if (! srcRoot.endsWithChar ('/')) srcRoot << '/';
+
+ searchPath = srcRoot + searchPath;
+ }
+
+ librarySearchPaths.add (sanitisePath (searchPath));
+ }
+
+ void getLinkerFlags (const BuildConfiguration& config, StringArray& flags, StringArray& librarySearchPaths) const
+ {
+ if (xcodeIsBundle)
+ flags.add ("-bundle");
+
+ const Array& extraLibs = config.isDebug() ? xcodeExtraLibrariesDebug
+ : xcodeExtraLibrariesRelease;
+
+ for (int i = 0; i < extraLibs.size(); ++i)
+ getLinkerFlagsForStaticLibrary (extraLibs.getReference(i), flags, librarySearchPaths);
+
+ flags.add (replacePreprocessorTokens (config, getExtraLinkerFlagsString()));
+ flags.add (getExternalLibraryFlags (config));
+
+ for (int i = 0; i < xcodeLibs.size(); ++i)
+ flags.add (getLinkerFlagForLib (xcodeLibs[i]));
+
+ flags = getCleanedStringArray (flags);
+ }
+
+ StringArray getProjectSettings (const XcodeBuildConfiguration& config) const
+ {
+ StringArray s;
+ s.add ("ALWAYS_SEARCH_USER_PATHS = NO");
+ s.add ("GCC_C_LANGUAGE_STANDARD = c99");
+ s.add ("GCC_WARN_ABOUT_RETURN_TYPE = YES");
+ s.add ("GCC_WARN_CHECK_SWITCH_STATEMENTS = YES");
+ s.add ("GCC_WARN_UNUSED_VARIABLE = YES");
+ s.add ("GCC_WARN_MISSING_PARENTHESES = YES");
+ s.add ("GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES");
+ s.add ("GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES");
+ s.add ("WARNING_CFLAGS = -Wreorder");
+ s.add ("GCC_MODEL_TUNING = G5");
+
+ if (projectType.isStaticLibrary())
+ {
+ s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = NO");
+ s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = NO");
+ }
+ else
+ {
+ s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = YES");
+ }
+
+ if (config.isDebug())
+ {
+ s.add ("ENABLE_TESTABILITY = YES");
+
+ if (config.getMacArchitecture() == osxArch_Default || config.getMacArchitecture().isEmpty())
+ s.add ("ONLY_ACTIVE_ARCH = YES");
+ }
+
+ if (iOS)
+ {
+ s.add ("\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\"");
+ s.add ("SDKROOT = iphoneos");
+ s.add ("TARGETED_DEVICE_FAMILY = \"1,2\"");
+
+ const String iosVersion (config.getiOSCompatibilityVersion());
+ if (iosVersion.isNotEmpty() && iosVersion != osxVersionDefault)
+ s.add ("IPHONEOS_DEPLOYMENT_TARGET = " + iosVersion);
+ }
+
+ s.add ("ZERO_LINK = NO");
+
+ if (xcodeCanUseDwarf)
+ s.add ("DEBUG_INFORMATION_FORMAT = \"dwarf\"");
+
+ s.add ("PRODUCT_NAME = \"" + replacePreprocessorTokens (config, config.getTargetBinaryNameString()) + "\"");
+ return s;
+ }
+
+ StringArray getTargetSettings (const XcodeBuildConfiguration& config) const
+ {
+ StringArray s;
+
+ s.add ("PRODUCT_BUNDLE_IDENTIFIER = " + project.getBundleIdentifier().toString());
+
+ const String arch (config.getMacArchitecture());
+ if (arch == osxArch_Native) s.add ("ARCHS = \"$(NATIVE_ARCH_ACTUAL)\"");
+ else if (arch == osxArch_32BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_BIT)\"");
+ else if (arch == osxArch_64BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\"");
+ else if (arch == osxArch_64Bit) s.add ("ARCHS = \"$(ARCHS_STANDARD_64_BIT)\"");
+
+ s.add ("HEADER_SEARCH_PATHS = " + getHeaderSearchPaths (config));
+ s.add ("GCC_OPTIMIZATION_LEVEL = " + config.getGCCOptimisationFlag());
+ s.add ("INFOPLIST_FILE = " + infoPlistFile.getFileName());
+
+ if (config.isLinkTimeOptimisationEnabled())
+ s.add ("LLVM_LTO = YES");
+
+ if (config.isFastMathEnabled())
+ s.add ("GCC_FAST_MATH = YES");
+
+ const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlagsString()).trim());
+ if (extraFlags.isNotEmpty())
+ s.add ("OTHER_CPLUSPLUSFLAGS = \"" + extraFlags + "\"");
+
+ if (xcodeProductInstallPath.isNotEmpty())
+ s.add ("INSTALL_PATH = \"" + xcodeProductInstallPath + "\"");
+
+ if (xcodeIsBundle)
+ {
+ s.add ("LIBRARY_STYLE = Bundle");
+ s.add ("WRAPPER_EXTENSION = " + xcodeBundleExtension.substring (1));
+ s.add ("GENERATE_PKGINFO_FILE = YES");
+ }
+
+ if (xcodeOtherRezFlags.isNotEmpty())
+ s.add ("OTHER_REZFLAGS = \"" + xcodeOtherRezFlags + "\"");
+
+ if (config.getTargetBinaryRelativePathString().isNotEmpty())
+ {
+ RelativePath binaryPath (config.getTargetBinaryRelativePathString(), RelativePath::projectFolder);
+ binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder);
+
+ s.add ("DSTROOT = " + addQuotesIfContainsSpace (sanitisePath (binaryPath.toUnixStyle())));
+ s.add ("SYMROOT = " + addQuotesIfContainsSpace (sanitisePath (binaryPath.toUnixStyle())));
+ }
+ else
+ {
+ s.add ("CONFIGURATION_BUILD_DIR = \"$(PROJECT_DIR)/build/$(CONFIGURATION)\"");
+ }
+
+ String gccVersion ("com.apple.compilers.llvm.clang.1_0");
+
+ if (iOS)
+ {
+ s.add ("ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon");
+ s.add ("ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage");
+ }
+ else
+ {
+ const String sdk (config.getMacSDKVersion());
+ const String sdkCompat (config.getMacCompatibilityVersion());
+
+ for (int ver = oldestSDKVersion; ver <= currentSDKVersion; ++ver)
+ {
+ if (sdk == getSDKName (ver)) s.add ("SDKROOT = macosx10." + String (ver));
+ if (sdkCompat == getSDKName (ver)) s.add ("MACOSX_DEPLOYMENT_TARGET = 10." + String (ver));
+ }
+
+ s.add ("MACOSX_DEPLOYMENT_TARGET_ppc = 10.4");
+ s.add ("SDKROOT_ppc = macosx10.5");
+
+ if (xcodeExcludedFiles64Bit.isNotEmpty())
+ {
+ s.add ("EXCLUDED_SOURCE_FILE_NAMES = \"$(EXCLUDED_SOURCE_FILE_NAMES_$(CURRENT_ARCH))\"");
+ s.add ("EXCLUDED_SOURCE_FILE_NAMES_x86_64 = " + xcodeExcludedFiles64Bit);
+ }
+ }
+
+ s.add ("GCC_VERSION = " + gccVersion);
+ s.add ("CLANG_CXX_LANGUAGE_STANDARD = \"c++0x\"");
+ s.add ("CLANG_LINK_OBJC_RUNTIME = NO");
+
+ if (config.getCodeSignIdentity().isNotEmpty())
+ s.add ("CODE_SIGN_IDENTITY = " + config.getCodeSignIdentity().quoted());
+
+ if (config.getCppLanguageStandard().isNotEmpty())
+ s.add ("CLANG_CXX_LANGUAGE_STANDARD = " + config.getCppLanguageStandard().quoted());
+
+ if (config.getCppLibType().isNotEmpty())
+ s.add ("CLANG_CXX_LIBRARY = " + config.getCppLibType().quoted());
+
+ s.add ("COMBINE_HIDPI_IMAGES = YES");
+
+ {
+ StringArray linkerFlags, librarySearchPaths;
+ getLinkerFlags (config, linkerFlags, librarySearchPaths);
+
+ if (linkerFlags.size() > 0)
+ s.add ("OTHER_LDFLAGS = \"" + linkerFlags.joinIntoString (" ") + "\"");
+
+ librarySearchPaths.addArray (config.getLibrarySearchPaths());
+ librarySearchPaths = getCleanedStringArray (librarySearchPaths);
+
+ if (librarySearchPaths.size() > 0)
+ {
+ String libPaths ("LIBRARY_SEARCH_PATHS = (\"$(inherited)\"");
+
+ for (int i = 0; i < librarySearchPaths.size(); ++i)
+ libPaths += ", \"\\\"" + librarySearchPaths[i] + "\\\"\"";
+
+ s.add (libPaths + ")");
+ }
+ }
+
+ StringPairArray defines;
+
+ if (config.isDebug())
+ {
+ defines.set ("_DEBUG", "1");
+ defines.set ("DEBUG", "1");
+ s.add ("COPY_PHASE_STRIP = NO");
+ s.add ("GCC_DYNAMIC_NO_PIC = NO");
+ }
+ else
+ {
+ defines.set ("_NDEBUG", "1");
+ defines.set ("NDEBUG", "1");
+ s.add ("GCC_GENERATE_DEBUGGING_SYMBOLS = NO");
+ s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = YES");
+ s.add ("DEAD_CODE_STRIPPING = YES");
+ }
+
+ {
+ defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config));
+
+ StringArray defsList;
+
+ for (int i = 0; i < defines.size(); ++i)
+ {
+ String def (defines.getAllKeys()[i]);
+ const String value (defines.getAllValues()[i]);
+ if (value.isNotEmpty())
+ def << "=" << value.replace ("\"", "\\\"");
+
+ defsList.add ("\"" + def + "\"");
+ }
+
+ s.add ("GCC_PREPROCESSOR_DEFINITIONS = " + indentParenthesisedList (defsList));
+ }
+
+ s.addTokens (config.getCustomXcodeFlags(), ",", "\"'");
+
+ return getCleanedStringArray (s);
+ }
+
+ void addFrameworks() const
+ {
+ if (! projectType.isStaticLibrary())
+ {
+ StringArray s (xcodeFrameworks);
+ s.addTokens (getExtraFrameworksString(), ",;", "\"'");
+
+ if (project.getConfigFlag ("JUCE_QUICKTIME") == Project::configFlagDisabled)
+ s.removeString ("QuickTime");
+
+ s.trim();
+ s.removeDuplicates (true);
+ s.sort (true);
+
+ for (int i = 0; i < s.size(); ++i)
+ addFramework (s[i]);
+ }
+ }
+
+ //==============================================================================
+ void writeProjectFile (OutputStream& output) const
+ {
+ output << "// !$*UTF8*$!\n{\n"
+ "\tarchiveVersion = 1;\n"
+ "\tclasses = {\n\t};\n"
+ "\tobjectVersion = 46;\n"
+ "\tobjects = {\n\n";
+
+ Array objects;
+ objects.addArray (pbxBuildFiles);
+ objects.addArray (pbxFileReferences);
+ objects.addArray (pbxGroups);
+ objects.addArray (targetConfigs);
+ objects.addArray (projectConfigs);
+ objects.addArray (misc);
+
+ for (int i = 0; i < objects.size(); ++i)
+ {
+ ValueTree& o = *objects.getUnchecked(i);
+ output << "\t\t" << o.getType().toString() << " = {";
+
+ for (int j = 0; j < o.getNumProperties(); ++j)
+ {
+ const Identifier propertyName (o.getPropertyName(j));
+ String val (o.getProperty (propertyName).toString());
+
+ if (val.isEmpty() || (val.containsAnyOf (" \t;<>()=,&+-_@~\r\n\\#%^`*")
+ && ! (val.trimStart().startsWithChar ('(')
+ || val.trimStart().startsWithChar ('{'))))
+ val = "\"" + val + "\"";
+
+ output << propertyName.toString() << " = " << val << "; ";
+ }
+
+ output << "};\n";
+ }
+
+ output << "\t};\n\trootObject = " << createID ("__root") << ";\n}\n";
+ }
+
+ String addBuildFile (const String& path, const String& fileRefID, bool addToSourceBuildPhase, bool inhibitWarnings) const
+ {
+ String fileID (createID (path + "buildref"));
+
+ if (addToSourceBuildPhase)
+ sourceIDs.add (fileID);
+
+ ValueTree* v = new ValueTree (fileID);
+ v->setProperty ("isa", "PBXBuildFile", nullptr);
+ v->setProperty ("fileRef", fileRefID, nullptr);
+
+ if (inhibitWarnings)
+ v->setProperty ("settings", "{COMPILER_FLAGS = \"-w\"; }", nullptr);
+
+ pbxBuildFiles.add (v);
+ return fileID;
+ }
+
+ String addBuildFile (const RelativePath& path, bool addToSourceBuildPhase, bool inhibitWarnings) const
+ {
+ return addBuildFile (path.toUnixStyle(), createFileRefID (path), addToSourceBuildPhase, inhibitWarnings);
+ }
+
+ String addFileReference (String pathString) const
+ {
+ String sourceTree ("SOURCE_ROOT");
+ RelativePath path (pathString, RelativePath::unknown);
+
+ if (pathString.startsWith ("${"))
+ {
+ sourceTree = pathString.substring (2).upToFirstOccurrenceOf ("}", false, false);
+ pathString = pathString.fromFirstOccurrenceOf ("}/", false, false);
+ }
+ else if (path.isAbsolute())
+ {
+ sourceTree = "";
+ }
+
+ const String fileRefID (createFileRefID (pathString));
+
+ ScopedPointer v (new ValueTree (fileRefID));
+ v->setProperty ("isa", "PBXFileReference", nullptr);
+ v->setProperty ("lastKnownFileType", getFileType (path), nullptr);
+ v->setProperty (Ids::name, pathString.fromLastOccurrenceOf ("/", false, false), nullptr);
+ v->setProperty ("path", sanitisePath (pathString), nullptr);
+ v->setProperty ("sourceTree", sourceTree, nullptr);
+
+ const int existing = pbxFileReferences.indexOfSorted (*this, v);
+
+ if (existing >= 0)
+ {
+ // If this fails, there's either a string hash collision, or the same file is being added twice (incorrectly)
+ jassert (pbxFileReferences.getUnchecked (existing)->isEquivalentTo (*v));
+ }
+ else
+ {
+ pbxFileReferences.addSorted (*this, v.release());
+ }
+
+ return fileRefID;
+ }
+
+public:
+ static int compareElements (const ValueTree* first, const ValueTree* second)
+ {
+ return first->getType().getCharPointer().compare (second->getType().getCharPointer());
+ }
+
+private:
+ static String getFileType (const RelativePath& file)
+ {
+ if (file.hasFileExtension (cppFileExtensions)) return "sourcecode.cpp.cpp";
+ if (file.hasFileExtension (".mm")) return "sourcecode.cpp.objcpp";
+ if (file.hasFileExtension (".m")) return "sourcecode.c.objc";
+ if (file.hasFileExtension (".c")) return "sourcecode.c.c";
+ if (file.hasFileExtension (headerFileExtensions)) return "sourcecode.c.h";
+ if (file.hasFileExtension (asmFileExtensions)) return "sourcecode.c.asm";
+ if (file.hasFileExtension (".framework")) return "wrapper.framework";
+ if (file.hasFileExtension (".jpeg;.jpg")) return "image.jpeg";
+ if (file.hasFileExtension ("png;gif")) return "image" + file.getFileExtension();
+ if (file.hasFileExtension ("html;htm")) return "text.html";
+ if (file.hasFileExtension ("xml;zip;wav")) return "file" + file.getFileExtension();
+ if (file.hasFileExtension ("txt;rtf")) return "text" + file.getFileExtension();
+ if (file.hasFileExtension ("plist")) return "text.plist.xml";
+ if (file.hasFileExtension ("app")) return "wrapper.application";
+ if (file.hasFileExtension ("component;vst;plugin")) return "wrapper.cfbundle";
+ if (file.hasFileExtension ("xcodeproj")) return "wrapper.pb-project";
+ if (file.hasFileExtension ("a")) return "archive.ar";
+ if (file.hasFileExtension ("xcassets")) return "folder.assetcatalog";
+
+ return "file" + file.getFileExtension();
+ }
+
+ String addFile (const RelativePath& path, bool shouldBeCompiled, bool shouldBeAddedToBinaryResources, bool shouldBeAddedToXcodeResources, bool inhibitWarnings) const
+ {
+ const String pathAsString (path.toUnixStyle());
+ const String refID (addFileReference (path.toUnixStyle()));
+
+ if (shouldBeCompiled)
+ {
+ if (path.hasFileExtension (".r"))
+ rezFileIDs.add (addBuildFile (pathAsString, refID, false, inhibitWarnings));
+ else
+ addBuildFile (pathAsString, refID, true, inhibitWarnings);
+ }
+ else if (! shouldBeAddedToBinaryResources || shouldBeAddedToXcodeResources)
+ {
+ const String fileType (getFileType (path));
+
+ if (shouldBeAddedToXcodeResources || fileType.startsWith ("image.") || fileType.startsWith ("text.") || fileType.startsWith ("file."))
+ {
+ resourceIDs.add (addBuildFile (pathAsString, refID, false, false));
+ resourceFileRefs.add (refID);
+ }
+ }
+
+ return refID;
+ }
+
+ String addProjectItem (const Project::Item& projectItem) const
+ {
+ if (projectItem.isGroup())
+ {
+ StringArray childIDs;
+ for (int i = 0; i < projectItem.getNumChildren(); ++i)
+ {
+ const String childID (addProjectItem (projectItem.getChild(i)));
+
+ if (childID.isNotEmpty())
+ childIDs.add (childID);
+ }
+
+ return addGroup (projectItem, childIDs);
+ }
+
+ if (projectItem.shouldBeAddedToTargetProject())
+ {
+ const String itemPath (projectItem.getFilePath());
+ RelativePath path;
+
+ if (itemPath.startsWith ("${"))
+ path = RelativePath (itemPath, RelativePath::unknown);
+ else
+ path = RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder);
+
+ return addFile (path, projectItem.shouldBeCompiled(),
+ projectItem.shouldBeAddedToBinaryResources(),
+ projectItem.shouldBeAddedToXcodeResources(),
+ projectItem.shouldInhibitWarnings());
+ }
+
+ return String();
+ }
+
+ void addFramework (const String& frameworkName) const
+ {
+ String path (frameworkName);
+ if (! File::isAbsolutePath (path))
+ path = "System/Library/Frameworks/" + path;
+
+ if (! path.endsWithIgnoreCase (".framework"))
+ path << ".framework";
+
+ const String fileRefID (createFileRefID (path));
+
+ addFileReference ((File::isAbsolutePath (frameworkName) ? "" : "${SDKROOT}/") + path);
+ frameworkIDs.add (addBuildFile (path, fileRefID, false, false));
+ frameworkFileIDs.add (fileRefID);
+ }
+
+ void addGroup (const String& groupID, const String& groupName, const StringArray& childIDs) const
+ {
+ ValueTree* v = new ValueTree (groupID);
+ v->setProperty ("isa", "PBXGroup", nullptr);
+ v->setProperty ("children", indentParenthesisedList (childIDs), nullptr);
+ v->setProperty (Ids::name, groupName, nullptr);
+ v->setProperty ("sourceTree", "", nullptr);
+ pbxGroups.add (v);
+ }
+
+ String addGroup (const Project::Item& item, StringArray& childIDs) const
+ {
+ const String groupName (item.getName());
+ const String groupID (getIDForGroup (item));
+ addGroup (groupID, groupName, childIDs);
+ return groupID;
+ }
+
+ void addMainBuildProduct() const
+ {
+ jassert (xcodeFileType.isNotEmpty());
+ jassert (xcodeBundleExtension.isEmpty() || xcodeBundleExtension.startsWithChar ('.'));
+
+ if (ProjectExporter::BuildConfiguration::Ptr config = getConfiguration(0))
+ {
+ String productName (replacePreprocessorTokens (*config, config->getTargetBinaryNameString()));
+
+ if (xcodeFileType == "archive.ar")
+ productName = getLibbedFilename (productName);
+ else
+ productName += xcodeBundleExtension;
+
+ addBuildProduct (xcodeFileType, productName);
+ }
+ }
+
+ void addBuildProduct (const String& fileType, const String& binaryName) const
+ {
+ ValueTree* v = new ValueTree (createID ("__productFileID"));
+ v->setProperty ("isa", "PBXFileReference", nullptr);
+ v->setProperty ("explicitFileType", fileType, nullptr);
+ v->setProperty ("includeInIndex", (int) 0, nullptr);
+ v->setProperty ("path", sanitisePath (binaryName), nullptr);
+ v->setProperty ("sourceTree", "BUILT_PRODUCTS_DIR", nullptr);
+ pbxFileReferences.add (v);
+ }
+
+ void addTargetConfig (const String& configName, const StringArray& buildSettings) const
+ {
+ ValueTree* v = new ValueTree (createID ("targetconfigid_" + configName));
+ v->setProperty ("isa", "XCBuildConfiguration", nullptr);
+ v->setProperty ("buildSettings", indentBracedList (buildSettings), nullptr);
+ v->setProperty (Ids::name, configName, nullptr);
+ targetConfigs.add (v);
+ }
+
+ void addProjectConfig (const String& configName, const StringArray& buildSettings) const
+ {
+ ValueTree* v = new ValueTree (createID ("projectconfigid_" + configName));
+ v->setProperty ("isa", "XCBuildConfiguration", nullptr);
+ v->setProperty ("buildSettings", indentBracedList (buildSettings), nullptr);
+ v->setProperty (Ids::name, configName, nullptr);
+ projectConfigs.add (v);
+ }
+
+ void addConfigList (const OwnedArray & configsToUse, const String& listID) const
+ {
+ StringArray configIDs;
+
+ for (int i = 0; i < configsToUse.size(); ++i)
+ configIDs.add (configsToUse[i]->getType().toString());
+
+ ValueTree* v = new ValueTree (listID);
+ v->setProperty ("isa", "XCConfigurationList", nullptr);
+ v->setProperty ("buildConfigurations", indentParenthesisedList (configIDs), nullptr);
+ v->setProperty ("defaultConfigurationIsVisible", (int) 0, nullptr);
+
+ if (configsToUse[0] != nullptr)
+ v->setProperty ("defaultConfigurationName", configsToUse[0]->getProperty (Ids::name), nullptr);
+
+ misc.add (v);
+ }
+
+ ValueTree& addBuildPhase (const String& phaseType, const StringArray& fileIds) const
+ {
+ String phaseId (createID (phaseType + "resbuildphase"));
+
+ int n = 0;
+ while (buildPhaseIDs.contains (phaseId))
+ phaseId = createID (phaseType + "resbuildphase" + String (++n));
+
+ buildPhaseIDs.add (phaseId);
+
+ ValueTree* v = new ValueTree (phaseId);
+ v->setProperty ("isa", phaseType, nullptr);
+ v->setProperty ("buildActionMask", "2147483647", nullptr);
+ v->setProperty ("files", indentParenthesisedList (fileIds), nullptr);
+ v->setProperty ("runOnlyForDeploymentPostprocessing", (int) 0, nullptr);
+ misc.add (v);
+ return *v;
+ }
+
+ void addTargetObject() const
+ {
+ ValueTree* const v = new ValueTree (createID ("__target"));
+ v->setProperty ("isa", "PBXNativeTarget", nullptr);
+ v->setProperty ("buildConfigurationList", createID ("__configList"), nullptr);
+ v->setProperty ("buildPhases", indentParenthesisedList (buildPhaseIDs), nullptr);
+ v->setProperty ("buildRules", "( )", nullptr);
+ v->setProperty ("dependencies", "( )", nullptr);
+ v->setProperty (Ids::name, projectName, nullptr);
+ v->setProperty ("productName", projectName, nullptr);
+ v->setProperty ("productReference", createID ("__productFileID"), nullptr);
+
+ if (xcodeProductInstallPath.isNotEmpty())
+ v->setProperty ("productInstallPath", xcodeProductInstallPath, nullptr);
+
+ jassert (xcodeProductType.isNotEmpty());
+ v->setProperty ("productType", xcodeProductType, nullptr);
+
+ misc.add (v);
+ }
+
+ void addProjectObject() const
+ {
+ ValueTree* const v = new ValueTree (createID ("__root"));
+ v->setProperty ("isa", "PBXProject", nullptr);
+ v->setProperty ("buildConfigurationList", createID ("__projList"), nullptr);
+ v->setProperty ("attributes", "{ LastUpgradeCheck = 0440; }", nullptr);
+ v->setProperty ("compatibilityVersion", "Xcode 3.2", nullptr);
+ v->setProperty ("hasScannedForEncodings", (int) 0, nullptr);
+ v->setProperty ("mainGroup", createID ("__mainsourcegroup"), nullptr);
+ v->setProperty ("projectDirPath", "\"\"", nullptr);
+ v->setProperty ("projectRoot", "\"\"", nullptr);
+ v->setProperty ("targets", "( " + createID ("__target") + " )", nullptr);
+ misc.add (v);
+ }
+
+ void addShellScriptBuildPhase (const String& phaseName, const String& script) const
+ {
+ if (script.trim().isNotEmpty())
+ {
+ ValueTree& v = addBuildPhase ("PBXShellScriptBuildPhase", StringArray());
+ v.setProperty (Ids::name, phaseName, nullptr);
+ v.setProperty ("shellPath", "/bin/sh", nullptr);
+ v.setProperty ("shellScript", script.replace ("\\", "\\\\")
+ .replace ("\"", "\\\"")
+ .replace ("\r\n", "\\n")
+ .replace ("\n", "\\n"), nullptr);
+ }
+ }
+
+ //==============================================================================
+ struct AppIconType
+ {
+ const char* idiom;
+ const char* sizeString;
+ const char* filename;
+ const char* scale;
+ int size;
+ };
+
+ static Array getiOSAppIconTypes()
+ {
+ AppIconType types[] =
+ {
+ { "iphone", "29x29", "Icon-29.png", "1x", 29 },
+ { "iphone", "29x29", "Icon-29@2x.png", "2x", 58 },
+ { "iphone", "29x29", "Icon-29@3x.png", "3x", 87 },
+ { "iphone", "40x40", "Icon-Spotlight-40@2x.png", "2x", 80 },
+ { "iphone", "40x40", "Icon-Spotlight-40@3x.png", "3x", 120 },
+ { "iphone", "57x57", "Icon.png", "1x", 57 },
+ { "iphone", "57x57", "Icon@2x.png", "2x", 114 },
+ { "iphone", "60x60", "Icon-60@2x.png", "2x", 120 },
+ { "iphone", "60x60", "Icon-@3x.png", "3x", 180 },
+ { "ipad", "29x29", "Icon-Small-1.png", "1x", 29 },
+ { "ipad", "29x29", "Icon-Small@2x-1.png", "2x", 58 },
+ { "ipad", "40x40", "Icon-Spotlight-40.png", "1x", 40 },
+ { "ipad", "40x40", "Icon-Spotlight-40@2x-1.png", "2x", 80 },
+ { "ipad", "50x50", "Icon-Small-50.png", "1x", 50 },
+ { "ipad", "50x50", "Icon-Small-50@2x.png", "2x", 100 },
+ { "ipad", "72x72", "Icon-72.png", "1x", 72 },
+ { "ipad", "72x72", "Icon-72@2x.png", "2x", 144 },
+ { "ipad", "76x76", "Icon-76.png", "1x", 76 },
+ { "ipad", "76x76", "Icon-76@2x.png", "2x", 152 },
+ { "ipad", "83.5x83.5", "Icon-83.5@2x.png", "2x", 167 }
+ };
+
+ return Array (types, numElementsInArray (types));
+ }
+
+ static String getiOSAppIconContents()
+ {
+ const Array types (getiOSAppIconTypes());
+ var images;
+
+ for (int i = 0; i < types.size(); ++i)
+ {
+ AppIconType type = types.getUnchecked(i);
+
+ DynamicObject::Ptr d = new DynamicObject();
+ d->setProperty ("idiom", type.idiom);
+ d->setProperty ("size", type.sizeString);
+ d->setProperty ("filename", type.filename);
+ d->setProperty ("scale", type.scale);
+ images.append (var (d));
+ }
+
+ return getiOSAssetContents (images);
+ }
+
+ //==============================================================================
+ struct ImageType
+ {
+ const char* orientation;
+ const char* idiom;
+ const char* subtype;
+ const char* extent;
+ const char* scale;
+ const char* filename;
+ int width;
+ int height;
+ };
+
+ static Array getiOSLaunchImageTypes()
+ {
+ ImageType types[] =
+ {
+ { "portrait", "iphone", nullptr, "full-screen", "2x", "LaunchImage-iphone-2x.png", 640, 960 },
+ { "portrait", "iphone", "retina4", "full-screen", "2x", "LaunchImage-iphone-retina4.png", 640, 1136 },
+ { "portrait", "ipad", nullptr, "full-screen", "1x", "LaunchImage-ipad-portrait-1x.png", 768, 1024 },
+ { "landscape","ipad", nullptr, "full-screen", "1x", "LaunchImage-ipad-landscape-1x.png", 1024, 768 },
+ { "portrait", "ipad", nullptr, "full-screen", "2x", "LaunchImage-ipad-portrait-2x.png", 1536, 2048 },
+ { "landscape","ipad", nullptr, "full-screen", "2x", "LaunchImage-ipad-landscape-2x.png", 2048, 1536 }
+ };
+
+ return Array (types, numElementsInArray (types));
+ }
+
+ static String getiOSLaunchImageContents()
+ {
+ const Array types (getiOSLaunchImageTypes());
+ var images;
+
+ for (int i = 0; i < types.size(); ++i)
+ {
+ const ImageType& type = types.getReference(i);
+
+ DynamicObject::Ptr d = new DynamicObject();
+ d->setProperty ("orientation", type.orientation);
+ d->setProperty ("idiom", type.idiom);
+ d->setProperty ("extent", type.extent);
+ d->setProperty ("minimum-system-version", "7.0");
+ d->setProperty ("scale", type.scale);
+ d->setProperty ("filename", type.filename);
+
+ if (type.subtype != nullptr)
+ d->setProperty ("subtype", type.subtype);
+
+ images.append (var (d));
+ }
+
+ return getiOSAssetContents (images);
+ }
+
+ static void createiOSLaunchImageFiles (const File& launchImageSet)
+ {
+ const Array types (getiOSLaunchImageTypes());
+
+ for (int i = 0; i < types.size(); ++i)
+ {
+ const ImageType& type = types.getReference(i);
+
+ Image image (Image::ARGB, type.width, type.height, true); // (empty black image)
+ image.clear (image.getBounds(), Colours::black);
+
+ MemoryOutputStream pngData;
+ PNGImageFormat pngFormat;
+ pngFormat.writeImageToStream (image, pngData);
+ overwriteFileIfDifferentOrThrow (launchImageSet.getChildFile (type.filename), pngData);
+ }
+ }
+
+ //==============================================================================
+ static String getiOSAssetContents (var images)
+ {
+ DynamicObject::Ptr v (new DynamicObject());
+
+ var info (new DynamicObject());
+ info.getDynamicObject()->setProperty ("version", 1);
+ info.getDynamicObject()->setProperty ("author", "xcode");
+
+ v->setProperty ("images", images);
+ v->setProperty ("info", info);
+
+ return JSON::toString (var (v));
+ }
+
+ void createiOSAssetsFolder() const
+ {
+ const File assets (getTargetFolder().getChildFile (project.getProjectFilenameRoot())
+ .getChildFile ("Images.xcassets"));
+ const File iconSet (assets.getChildFile ("AppIcon.appiconset"));
+ const File launchImage (assets.getChildFile ("LaunchImage.launchimage"));
+
+ overwriteFileIfDifferentOrThrow (iconSet.getChildFile ("Contents.json"), getiOSAppIconContents());
+ createiOSIconFiles (iconSet);
+
+ overwriteFileIfDifferentOrThrow (launchImage.getChildFile ("Contents.json"), getiOSLaunchImageContents());
+ createiOSLaunchImageFiles (launchImage);
+
+ RelativePath assetsPath (assets, getTargetFolder(), RelativePath::buildTargetFolder);
+ addFileReference (assetsPath.toUnixStyle());
+ resourceIDs.add (addBuildFile (assetsPath, false, false));
+ resourceFileRefs.add (createFileRefID (assetsPath));
+ }
+
+ //==============================================================================
+ static String indentBracedList (const StringArray& list) { return "{" + indentList (list, ";", 0, true) + " }"; }
+ static String indentParenthesisedList (const StringArray& list) { return "(" + indentList (list, ",", 1, false) + " )"; }
+
+ static String indentList (const StringArray& list, const String& separator, int extraTabs, bool shouldSort)
+ {
+ if (list.size() == 0)
+ return " ";
+
+ const String tabs ("\n" + String::repeatedString ("\t", extraTabs + 4));
+
+ if (shouldSort)
+ {
+ StringArray sorted (list);
+ sorted.sort (true);
+
+ return tabs + sorted.joinIntoString (separator + tabs) + separator;
+ }
+
+ return tabs + list.joinIntoString (separator + tabs) + separator;
+ }
+
+ String createID (String rootString) const
+ {
+ if (rootString.startsWith ("${"))
+ rootString = rootString.fromFirstOccurrenceOf ("}/", false, false);
+
+ rootString += project.getProjectUID();
+
+ return MD5 (rootString.toUTF8()).toHexString().substring (0, 24).toUpperCase();
+ }
+
+ String createFileRefID (const RelativePath& path) const { return createFileRefID (path.toUnixStyle()); }
+ String createFileRefID (const String& path) const { return createID ("__fileref_" + path); }
+ String getIDForGroup (const Project::Item& item) const { return createID (item.getID()); }
+
+ bool shouldFileBeCompiledByDefault (const RelativePath& file) const override
+ {
+ return file.hasFileExtension (sourceFileExtensions);
+ }
+
+ static String getOSXVersionName (int version)
+ {
+ jassert (version >= 4);
+ return "10." + String (version);
+ }
+
+ static String getSDKName (int version)
+ {
+ return getOSXVersionName (version) + " SDK";
+ }
+
+ void initialiseDependencyPathValues()
+ {
+ vst2Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vstFolder), Ids::vst2Path, TargetOS::osx)));
+ vst3Path.referTo (Value (new DependencyPathValueSource (getSetting (Ids::vst3Folder), Ids::vst3Path, TargetOS::osx)));
+ aaxPath. referTo (Value (new DependencyPathValueSource (getSetting (Ids::aaxFolder), Ids::aaxPath, TargetOS::osx)));
+ rtasPath.referTo (Value (new DependencyPathValueSource (getSetting (Ids::rtasFolder), Ids::rtasPath, TargetOS::osx)));
+ }
+};
diff --git a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj
index c87d190659..6a67ee88d2 100644
--- a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj
+++ b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj
@@ -740,6 +740,7 @@
BE3EA058010047456D73AACD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; };
BE5E66183FBDAED0236061AE = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; };
BEDCD61FAD477E737E9001FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; };
+ BF07F813AE252965882B419D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; };
BF7DB7CEEFC788FBAC7DDAFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; };
BF83F16E220BF09C26FD7DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; };
C0531453A002C480280C5F05 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
@@ -754,6 +755,7 @@
C2E6F205D15873BBDA6C611C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
C2F2E19D495434FA2DE26CDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; };
C3B38FF0CFF855B48FD341D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; };
+ C3FF931ABD1A2A7A0B3F2F32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; };
C43F3C14D904F5ACD41ADA91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; };
C4725A9E883FE9A4BE50D9CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; };
C479F3274C5CA6E09B397633 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1143,6 +1145,8 @@
28E930DA6A81123555C6B4D0,
D3B67F76F3E120815C1B3729, ); name = "juce_audio_formats"; sourceTree = ""; };
0CD4E1D56790D679DC1A71C4 = {isa = PBXGroup; children = (
+ C3FF931ABD1A2A7A0B3F2F32,
+ BF07F813AE252965882B419D,
59EE21D372B3DFC1B453B8B4,
7BC436F55CA94D4ED0A20BC6,
468EE2A5579D7F6508B3BE7F,
@@ -2132,6 +2136,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.10;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-pedantic-errors -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.UnitTestRunner;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
CB72F298783F8212D048A91B = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -2156,10 +2161,12 @@
MACOSX_DEPLOYMENT_TARGET = 10.10;
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
OTHER_CPLUSPLUSFLAGS = "-pedantic-errors -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion";
+ PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.UnitTestRunner;
SDKROOT_ppc = macosx10.5; }; name = Release; };
53146F81C8222491DC6DF2A5 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj
index 33fb8f109b..a6389d4499 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj
@@ -337,6 +337,9 @@
true
+
+ true
+
true
@@ -1371,6 +1374,7 @@
+
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters
index d78ffc3fae..14d307a2d4 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters
@@ -529,6 +529,9 @@
Juce Modules\juce_audio_formats\sampler
+
+ Juce Modules\juce_audio_processors\processors
+
Juce Modules\juce_audio_processors\processors
@@ -1794,6 +1797,9 @@
Juce Modules\juce_audio_formats
+
+ Juce Modules\juce_audio_processors\processors
+
Juce Modules\juce_audio_processors\processors
diff --git a/extras/UnitTestRunner/UnitTestRunner.jucer b/extras/UnitTestRunner/UnitTestRunner.jucer
index d61bcf4c1b..8b8cd29ec2 100644
--- a/extras/UnitTestRunner/UnitTestRunner.jucer
+++ b/extras/UnitTestRunner/UnitTestRunner.jucer
@@ -2,7 +2,7 @@
+ jucerVersion="4.1.0" defines="JUCE_UNIT_TESTS=1">
diff --git a/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj b/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj
index 33c2545479..15bd1a1cf7 100644
--- a/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj
+++ b/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj
@@ -495,6 +495,7 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "/usr/bin";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.rawmaterialsoftware.binarybuilder;
SDKROOT_ppc = macosx10.5; }; name = Debug; };
145C0C90E41D8DECE4DD66AD = {isa = XCBuildConfiguration; buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
@@ -516,10 +517,12 @@
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "/usr/bin";
MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
+ PRODUCT_BUNDLE_IDENTIFIER = com.rawmaterialsoftware.binarybuilder;
SDKROOT_ppc = macosx10.5; }; name = Release; };
D9552CAECBA3D7D5725848E5 = {isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_MODEL_TUNING = G5;