diff --git a/extras/Jucer (experimental)/Source/model/jucer_ProjectExport_XCode.h b/extras/Jucer (experimental)/Source/model/jucer_ProjectExport_XCode.h index 0e7fd59abc..c0a3d14ad7 100644 --- a/extras/Jucer (experimental)/Source/model/jucer_ProjectExport_XCode.h +++ b/extras/Jucer (experimental)/Source/model/jucer_ProjectExport_XCode.h @@ -488,14 +488,21 @@ private: StringArray s; if (iPhone) + { s.addTokens (T("UIKit Foundation CoreGraphics AudioToolbox"), false); + + if ((int) project.getJuceConfigFlag ("JUCE_OPENGL").getValue() == 1) + s.addTokens (T("QuartzCore OpenGLES"), false); + } else + { s.addTokens (T("Cocoa Carbon IOKit CoreAudio CoreMIDI WebKit DiscRecording OpenGL QuartzCore QTKit QuickTime"), false); - if (isAU()) - s.addTokens (T("AudioUnit CoreAudioKit AudioToolbox"), false); - else if ((int) project.getJuceConfigFlag ("JUCE_PLUGINHOST_AU").getValue() == 1) - s.addTokens (T("AudioUnit CoreAudioKit"), false); + if (isAU()) + s.addTokens (T("AudioUnit CoreAudioKit AudioToolbox"), false); + else if ((int) project.getJuceConfigFlag ("JUCE_PLUGINHOST_AU").getValue() == 1) + s.addTokens (T("AudioUnit CoreAudioKit"), false); + } for (int i = 0; i < s.size(); ++i) addFramework (s[i]); diff --git a/extras/juce demo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj b/extras/juce demo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj index 84ed41211a..74ce8edc0d 100644 --- a/extras/juce demo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/juce demo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj @@ -6,171 +6,171 @@ objectVersion = 44; objects = { - 20915FFEC378C0A1E6C96EAC = { isa = PBXBuildFile; fileRef = 057B163F44EC0485FCA05081; }; - 2CF185F6E9B8343940C21F92 = { isa = PBXBuildFile; fileRef = 2659C9B8310B8CD4ABA47820; }; - 1B7FEDB2A01E18F33947B5CB = { isa = PBXBuildFile; fileRef = 38F80F061AE618AD08407BCA; }; - ECD42C38F1E71FE93C1BCE6E = { isa = PBXBuildFile; fileRef = 4080F849C1FE3013DB59DF12; }; - 04D3F31A4C84BDA3B5F366CE = { isa = PBXBuildFile; fileRef = 21165FCC9F052172E7256B5C; }; - 0428E26BE29AF1EA23210F83 = { isa = PBXBuildFile; fileRef = 56B5D2D3FB2B77560EF3E45E; }; - 8124C59C2A41584D44D2952B = { isa = PBXBuildFile; fileRef = 843199DEE877339C6C9CF7FF; }; - 3F0A163C30A5301DE2E578A9 = { isa = PBXBuildFile; fileRef = 792420D99BC9FBE3B74A7374; }; - 6C00A25BA650290D8D48D8E6 = { isa = PBXBuildFile; fileRef = 4DF805B42961EC29F46CEDD1; }; - 12E2DFFC0A4FF36F4288E4C2 = { isa = PBXBuildFile; fileRef = D56085DC9D0D09AF0DAEEA3F; }; - 45F5DAF3E6E26132D920043D = { isa = PBXBuildFile; fileRef = DA42E80E8EBD70415618B8FC; }; - A9D4CEB8BF6B35872821ECCD = { isa = PBXBuildFile; fileRef = 8CAAF50C584E234C08D5F4B6; }; - 07A544BF39B1B076D6A41228 = { isa = PBXBuildFile; fileRef = C08E0D90EDF5F3C1DC7960D9; }; - 73F16F1F0146CEEA5DBCCA0E = { isa = PBXBuildFile; fileRef = F7AFA888A6F33AA6A41DBBF1; }; - 83D2B03EB08B6BC6E0A385E1 = { isa = PBXBuildFile; fileRef = 4768B9E0E7E47689D2152273; }; - 0C722E5F96990CA1B5F27046 = { isa = PBXBuildFile; fileRef = C142C47C1CCB975D7ED69A76; }; - F6BAACC4178B6483EF2089B9 = { isa = PBXBuildFile; fileRef = 12E008A030CFA73B8A2C5F8D; }; - 133B5F3401B8B97010441CA8 = { isa = PBXBuildFile; fileRef = A679D77333FEDBBFDD3996CE; }; - BD4BACF416D7989BAB96272F = { isa = PBXBuildFile; fileRef = 90405E5EB08DAA8AEF278373; }; - FC7D30005FAF2F55AD31E1F7 = { isa = PBXBuildFile; fileRef = 53CDACB61E480F6CD0DA0227; }; - 1F90CA68AED3A84286873E2D = { isa = PBXBuildFile; fileRef = 25F200D7C24E7D65E6180A96; }; - 46770F1D01A9249360CAC4F1 = { isa = PBXBuildFile; fileRef = 7C337F848FFCE6B474C24F8F; }; - 5F598B0DF13D01DB78462450 = { isa = PBXBuildFile; fileRef = CA67B495395BF40180861DBB; }; - 443769AEA489DBFE4A6904B0 = { isa = PBXBuildFile; fileRef = 9BCDD95754B3483A5AA5CBA3; }; - F511BC8A5F0B5C9BC19F8FB7 = { isa = PBXBuildFile; fileRef = 10CD526C87D2AE14485D9E02; }; - C02D29C17C874EEB8B811264 = { isa = PBXBuildFile; fileRef = D77329750883321F2B19C175; }; - A586096D3A6BAF493634A393 = { isa = PBXBuildFile; fileRef = 685ED451763D1ECDF37C069A; }; - 3F3DECC996DAADBDCD7D276C = { isa = PBXBuildFile; fileRef = B51FED2131FBE1356A01B300; }; - 948DB156D3ADAC90034428A9 = { isa = PBXBuildFile; fileRef = B19EC95562A9E9EDC3E9B1A9; }; - 554C5D64E0396AF57640E861 = { isa = PBXBuildFile; fileRef = E4275128DD1C668E42E12F93; }; - 3D4C6B63961E3A0212142B8C = { isa = PBXBuildFile; fileRef = 14C92BB589AB3736AE0D2993; }; - D451763D1ECDF37C069A3770 = { isa = PBXBuildFile; fileRef = C5445AF598689D6BF0F83CBE; }; - EA6A2F2B7DE0322ED19BFD55 = { isa = PBXBuildFile; fileRef = B532F2C386E75E0E34783044; }; - F97659F31912D12C91E95549 = { isa = PBXBuildFile; fileRef = D027981BD4F6CC3DB5103192; }; - 56752EC63E4979FD534D2009 = { isa = PBXBuildFile; fileRef = 78A1366D8680F8706D29BA89; }; - C383E3A9627121BF26A2EACA = { isa = PBXBuildFile; fileRef = 212AD4AE482A14B305233281; }; - 2082A87B96A8C980E806A59A = { isa = PBXBuildFile; fileRef = DA9462FFFAC440E6BE3DBA78; }; - 057B163F44EC0485FCA05081 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 2659C9B8310B8CD4ABA47820 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - 38F80F061AE618AD08407BCA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; - 4080F849C1FE3013DB59DF12 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - 21165FCC9F052172E7256B5C = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; - 56B5D2D3FB2B77560EF3E45E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - 843199DEE877339C6C9CF7FF = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; - 792420D99BC9FBE3B74A7374 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 4DF805B42961EC29F46CEDD1 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - D56085DC9D0D09AF0DAEEA3F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; - DA42E80E8EBD70415618B8FC = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; - 56BC57F08A02495F85DB8DC8 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 6B2414965418FDE8B71BF091 = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; - 8CAAF50C584E234C08D5F4B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = SOURCE_ROOT; }; - C08E0D90EDF5F3C1DC7960D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = SOURCE_ROOT; }; - FB1ADFC973C66571E2962637 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = SOURCE_ROOT; }; - 4BE34F808E4597871BE6E83D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucedemo_headers.h; path = ../../Source/jucedemo_headers.h; sourceTree = SOURCE_ROOT; }; - F7AFA888A6F33AA6A41DBBF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = SOURCE_ROOT; }; - C8FECA3890075D8C8124F71C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = SOURCE_ROOT; }; - 4768B9E0E7E47689D2152273 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = SOURCE_ROOT; }; - 8182FA9F3E05EA434B048C8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = SOURCE_ROOT; }; - C142C47C1CCB975D7ED69A76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = SOURCE_ROOT; }; - 123BE3D4AE300D6A8901D25C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = SOURCE_ROOT; }; - 12E008A030CFA73B8A2C5F8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = SOURCE_ROOT; }; - F3FBE7B3648DC27B2FD6B696 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = SOURCE_ROOT; }; - A679D77333FEDBBFDD3996CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = SOURCE_ROOT; }; - 2C7A5ABF7F84DDB6CC69FE24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = SOURCE_ROOT; }; - 90405E5EB08DAA8AEF278373 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = SOURCE_ROOT; }; - 00090BE7B99A50D58854C369 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = SOURCE_ROOT; }; - 53CDACB61E480F6CD0DA0227 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = SOURCE_ROOT; }; - 25F200D7C24E7D65E6180A96 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = SOURCE_ROOT; }; - 7C337F848FFCE6B474C24F8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = SOURCE_ROOT; }; - CA67B495395BF40180861DBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = SOURCE_ROOT; }; - 9BCDD95754B3483A5AA5CBA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = SOURCE_ROOT; }; - 10CD526C87D2AE14485D9E02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = SOURCE_ROOT; }; - D77329750883321F2B19C175 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = SOURCE_ROOT; }; - 685ED451763D1ECDF37C069A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = SOURCE_ROOT; }; - 811F98EC290C7A97FC44209A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = SOURCE_ROOT; }; - B51FED2131FBE1356A01B300 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = SOURCE_ROOT; }; - B19EC95562A9E9EDC3E9B1A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = SOURCE_ROOT; }; - E4275128DD1C668E42E12F93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = SOURCE_ROOT; }; - 14C92BB589AB3736AE0D2993 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = SOURCE_ROOT; }; - C5445AF598689D6BF0F83CBE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = SOURCE_ROOT; }; - E393B96DABAE67B4BF9CC8A0 = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = SOURCE_ROOT; }; - 29C2F4E4B5B2D1809AE3F2E0 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = SOURCE_ROOT; }; - 3161255EB1EA2EB48796EF3D = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = SOURCE_ROOT; }; - 7CD420C22AF83DB31EE71EA6 = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = SOURCE_ROOT; }; - A5B7CC1437DA58DFC19AA3C8 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = SOURCE_ROOT; }; - 3B0725900B1EB76FCFF9725F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; - CF077D3ED7B7B56F351AAF67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; - B532F2C386E75E0E34783044 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; }; - 16FA53FF896BC5EA2C681C1A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = SOURCE_ROOT; }; - D027981BD4F6CC3DB5103192 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; - 78A1366D8680F8706D29BA89 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; - 212AD4AE482A14B305233281 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; - DA9462FFFAC440E6BE3DBA78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; - FD1552CA3E06EF6E4FC85A8A = { isa = PBXGroup; children = ( - F7AFA888A6F33AA6A41DBBF1, - C8FECA3890075D8C8124F71C, - 4768B9E0E7E47689D2152273, - 8182FA9F3E05EA434B048C8B, - C142C47C1CCB975D7ED69A76, - 123BE3D4AE300D6A8901D25C, - 12E008A030CFA73B8A2C5F8D, - F3FBE7B3648DC27B2FD6B696, - A679D77333FEDBBFDD3996CE, - 2C7A5ABF7F84DDB6CC69FE24, - 90405E5EB08DAA8AEF278373, - 00090BE7B99A50D58854C369, - 53CDACB61E480F6CD0DA0227, - 25F200D7C24E7D65E6180A96, - 7C337F848FFCE6B474C24F8F, - CA67B495395BF40180861DBB, - 9BCDD95754B3483A5AA5CBA3, - 10CD526C87D2AE14485D9E02, - D77329750883321F2B19C175, - 685ED451763D1ECDF37C069A, - 811F98EC290C7A97FC44209A, - B51FED2131FBE1356A01B300, - B19EC95562A9E9EDC3E9B1A9, - E4275128DD1C668E42E12F93, - 14C92BB589AB3736AE0D2993, - C5445AF598689D6BF0F83CBE ); name = Demos; sourceTree = ""; }; - C9C1EC6EEE457C21A26B0EC3 = { isa = PBXGroup; children = ( - E393B96DABAE67B4BF9CC8A0, - 29C2F4E4B5B2D1809AE3F2E0, - 3161255EB1EA2EB48796EF3D, - 7CD420C22AF83DB31EE71EA6, - A5B7CC1437DA58DFC19AA3C8 ); name = "Binary Data"; sourceTree = ""; }; - 2EA528914EC159A58C97A873 = { isa = PBXGroup; children = ( - 8CAAF50C584E234C08D5F4B6, - C08E0D90EDF5F3C1DC7960D9, - FB1ADFC973C66571E2962637, - 4BE34F808E4597871BE6E83D, - FD1552CA3E06EF6E4FC85A8A, - C9C1EC6EEE457C21A26B0EC3 ); name = Source; sourceTree = ""; }; - 3B5437A20FCADA50EBD06731 = { isa = PBXGroup; children = ( - 3B0725900B1EB76FCFF9725F, - CF077D3ED7B7B56F351AAF67, - B532F2C386E75E0E34783044, - 16FA53FF896BC5EA2C681C1A, - D027981BD4F6CC3DB5103192, - 78A1366D8680F8706D29BA89, - 212AD4AE482A14B305233281, - DA9462FFFAC440E6BE3DBA78 ); name = "Juce Library Code"; sourceTree = ""; }; - F473AC9C072A0F6CF3B5410F = { isa = PBXGroup; children = ( - 6B2414965418FDE8B71BF091 ); name = Resources; sourceTree = ""; }; - 6030FE912A851A2507B3BF34 = { isa = PBXGroup; children = ( - 057B163F44EC0485FCA05081, - 2659C9B8310B8CD4ABA47820, - 38F80F061AE618AD08407BCA, - 4080F849C1FE3013DB59DF12, - 21165FCC9F052172E7256B5C, - 56B5D2D3FB2B77560EF3E45E, - 843199DEE877339C6C9CF7FF, - 792420D99BC9FBE3B74A7374, - 4DF805B42961EC29F46CEDD1, - D56085DC9D0D09AF0DAEEA3F, - DA42E80E8EBD70415618B8FC ); name = Frameworks; sourceTree = ""; }; - 29CBBCDCEE131C353F0715E1 = { isa = PBXGroup; children = ( - 56BC57F08A02495F85DB8DC8 ); name = Products; sourceTree = ""; }; - 24AF20CBAA4DC5F17CFE8606 = { isa = PBXGroup; children = ( - 2EA528914EC159A58C97A873, - 3B5437A20FCADA50EBD06731, - F473AC9C072A0F6CF3B5410F, - 6030FE912A851A2507B3BF34, - 29CBBCDCEE131C353F0715E1 ); name = Source; sourceTree = ""; }; - 52C29F86E3DBE91F252B8C0D = { isa = XCBuildConfiguration; buildSettings = { + 92A7143821252FB13891CC53 = { isa = PBXBuildFile; fileRef = 2B37CDCFCBC0AC0AEAA9A479; }; + DEDBEF9AC48F8AD1502B6DC2 = { isa = PBXBuildFile; fileRef = 6A7D4DC561F2DD95ABD76F0D; }; + 29F75103FFB220F2E10CF9A9 = { isa = PBXBuildFile; fileRef = 3CE85049C3E91E38E71FF149; }; + 687BFA1946EAD55C5C39907C = { isa = PBXBuildFile; fileRef = DA3360514D221A36446DC6DE; }; + ED283D0ABEC2EC312E40C6B4 = { isa = PBXBuildFile; fileRef = 010E9F48D32EA5C5451D8086; }; + 0CFE603DE523940AF3352227 = { isa = PBXBuildFile; fileRef = 9BE978B2BDA9B7DA3BE403B4; }; + 420A9C88B711F5E4997FAAD0 = { isa = PBXBuildFile; fileRef = CB7CDD93EE1469B969AF844E; }; + C1437C4A64EB72D2A86729D3 = { isa = PBXBuildFile; fileRef = 85E860BFDA9D53EF77C08873; }; + F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; + B9911F3AC6CADFB47D1EA8D7 = { isa = PBXBuildFile; fileRef = 4D3E0D18D24F78B6BDE0E5DA; }; + 452052BBDBAF17DCC06EF521 = { isa = PBXBuildFile; fileRef = E0C3359BB4B5260CEB917D46; }; + 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; + CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; + 2E2DB52D03DD6A56FAC937A4 = { isa = PBXBuildFile; fileRef = 0704E2D6B0D1B38FBBBC6B85; }; + 8E0E3B718F35E9E1DC3D89C5 = { isa = PBXBuildFile; fileRef = D856109CF311BB94D8EE8826; }; + C4C49D2D5D27730E55B27BCB = { isa = PBXBuildFile; fileRef = 411D5D0920812790F4F78462; }; + 2CD67851BCF3F24E0B5F82CF = { isa = PBXBuildFile; fileRef = 67F817AAB55ED2BE16B376BF; }; + 29C9F0E2824F63B105234C0A = { isa = PBXBuildFile; fileRef = FBCE524D94BF5BE0160142D4; }; + 7EFB4E7D738BFFF90F49E0C0 = { isa = PBXBuildFile; fileRef = 048CEE4CC06227D8A57E47F2; }; + B69F5957B1729915BFB18735 = { isa = PBXBuildFile; fileRef = 7D65727C8F72F2BCC9A17D34; }; + F920A5AB6D0FF01022575079 = { isa = PBXBuildFile; fileRef = 268D7AFE2F3822C2C8E9A612; }; + A3AF0F559DD97F1B908AC1CA = { isa = PBXBuildFile; fileRef = F23738E4EFD2323063F82F1C; }; + 2C0AB902CB01E38D87A2A6A5 = { isa = PBXBuildFile; fileRef = B7F4DAFA5F8F1FC976C8B55D; }; + ACD2210FDE1137548F995F85 = { isa = PBXBuildFile; fileRef = F7620D8D567CCE463ADDE0A6; }; + 2F6BFF7DD839160223057CF7 = { isa = PBXBuildFile; fileRef = DA3BCFCC5BF07FC689DB5C34; }; + 1552CF5A0A932C5EB88EC56C = { isa = PBXBuildFile; fileRef = D6EF70641473A3E7C0DC5168; }; + 969C49FA8B55C700ED848494 = { isa = PBXBuildFile; fileRef = 3BC17D4051063C1BF66548C6; }; + AE1CB65D73BFB3FA707B59FF = { isa = PBXBuildFile; fileRef = 08B45C29F5EEC874E014D122; }; + 99D9F5D6FC8A015C603B32C3 = { isa = PBXBuildFile; fileRef = D5F519861915C136BAA8D87A; }; + 563DEC7941B88163A50E0945 = { isa = PBXBuildFile; fileRef = 402768B1A52E32348D505F18; }; + F5691895ACDC7B12DE88EFF4 = { isa = PBXBuildFile; fileRef = F2EB42A070E349D77ACF77C9; }; + 4D5C0ED42C87FBE02A9C7BE6 = { isa = PBXBuildFile; fileRef = CF7FFEAFF4F386ED4DAED523; }; + 80926D2B83ACF680958111EC = { isa = PBXBuildFile; fileRef = E6EF5CE04768BA5B10050D51; }; + 2201A04DDCFC361882F8EA62 = { isa = PBXBuildFile; fileRef = BA05C84C3258A1978AF3D357; }; + 2E98B1DEA8B7FC20ACCD2E6D = { isa = PBXBuildFile; fileRef = F42C91375F3314CA6EE65697; }; + 3A2EC17F8472C338D6A26278 = { isa = PBXBuildFile; fileRef = 4D526A336B2E97ED42CADAD7; }; + 36B5D100604D9A300187B773 = { isa = PBXBuildFile; fileRef = 8679333E781A0A0116AE5D26; }; + 2B37CDCFCBC0AC0AEAA9A479 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 6A7D4DC561F2DD95ABD76F0D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 3CE85049C3E91E38E71FF149 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + DA3360514D221A36446DC6DE = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 010E9F48D32EA5C5451D8086 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 9BE978B2BDA9B7DA3BE403B4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + CB7CDD93EE1469B969AF844E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 85E860BFDA9D53EF77C08873 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 4D3E0D18D24F78B6BDE0E5DA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; + E0C3359BB4B5260CEB917D46 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; + 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; + 885A20D277AD743C21C822B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = SOURCE_ROOT; }; + 42291DB48BF81754D90FE200 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = SOURCE_ROOT; }; + 49138F5652E637AA67CD4B70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = SOURCE_ROOT; }; + 18BDC68F9701862603871A7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucedemo_headers.h; path = ../../Source/jucedemo_headers.h; sourceTree = SOURCE_ROOT; }; + 0704E2D6B0D1B38FBBBC6B85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = SOURCE_ROOT; }; + D793BFCCD11E218E5CED3320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = SOURCE_ROOT; }; + D856109CF311BB94D8EE8826 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = SOURCE_ROOT; }; + FC989E104DDB02E8A99B6564 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = SOURCE_ROOT; }; + 411D5D0920812790F4F78462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = SOURCE_ROOT; }; + 570DE12AFA65E0EF97A76118 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = SOURCE_ROOT; }; + 67F817AAB55ED2BE16B376BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = SOURCE_ROOT; }; + 91ACA90EFCAD4614B3ECC0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = SOURCE_ROOT; }; + FBCE524D94BF5BE0160142D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = SOURCE_ROOT; }; + 865617D983052FBE0ADDDEDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = SOURCE_ROOT; }; + 048CEE4CC06227D8A57E47F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = SOURCE_ROOT; }; + 8BEA0B754661F3038DBAF558 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = SOURCE_ROOT; }; + 7D65727C8F72F2BCC9A17D34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = SOURCE_ROOT; }; + 268D7AFE2F3822C2C8E9A612 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = SOURCE_ROOT; }; + F23738E4EFD2323063F82F1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = SOURCE_ROOT; }; + B7F4DAFA5F8F1FC976C8B55D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = SOURCE_ROOT; }; + F7620D8D567CCE463ADDE0A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = SOURCE_ROOT; }; + DA3BCFCC5BF07FC689DB5C34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = SOURCE_ROOT; }; + D6EF70641473A3E7C0DC5168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = SOURCE_ROOT; }; + 3BC17D4051063C1BF66548C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = SOURCE_ROOT; }; + A6FB61B33BDDB0880203370C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = SOURCE_ROOT; }; + 08B45C29F5EEC874E014D122 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = SOURCE_ROOT; }; + D5F519861915C136BAA8D87A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = SOURCE_ROOT; }; + 402768B1A52E32348D505F18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = SOURCE_ROOT; }; + F2EB42A070E349D77ACF77C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = SOURCE_ROOT; }; + CF7FFEAFF4F386ED4DAED523 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = SOURCE_ROOT; }; + ACFD7F6AAFC09C234D15501D = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = SOURCE_ROOT; }; + A869663CA0E96FE15BB42A97 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = SOURCE_ROOT; }; + A76B69386F1F19647804510D = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = SOURCE_ROOT; }; + 013E12213AD7B4BEB28A31BE = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = SOURCE_ROOT; }; + C7327AD5191A22C1FBD4F5F9 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = SOURCE_ROOT; }; + EE37A0ECE471A928C6170F9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; + A6B37799E63CCE882A3383FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; + E6EF5CE04768BA5B10050D51 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; }; + CC7EB9777A4DE3408705625C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = SOURCE_ROOT; }; + BA05C84C3258A1978AF3D357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; + F42C91375F3314CA6EE65697 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; + 4D526A336B2E97ED42CADAD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; + 8679333E781A0A0116AE5D26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; + 1045A435754FDEACC6D7259C = { isa = PBXGroup; children = ( + 0704E2D6B0D1B38FBBBC6B85, + D793BFCCD11E218E5CED3320, + D856109CF311BB94D8EE8826, + FC989E104DDB02E8A99B6564, + 411D5D0920812790F4F78462, + 570DE12AFA65E0EF97A76118, + 67F817AAB55ED2BE16B376BF, + 91ACA90EFCAD4614B3ECC0C5, + FBCE524D94BF5BE0160142D4, + 865617D983052FBE0ADDDEDF, + 048CEE4CC06227D8A57E47F2, + 8BEA0B754661F3038DBAF558, + 7D65727C8F72F2BCC9A17D34, + 268D7AFE2F3822C2C8E9A612, + F23738E4EFD2323063F82F1C, + B7F4DAFA5F8F1FC976C8B55D, + F7620D8D567CCE463ADDE0A6, + DA3BCFCC5BF07FC689DB5C34, + D6EF70641473A3E7C0DC5168, + 3BC17D4051063C1BF66548C6, + A6FB61B33BDDB0880203370C, + 08B45C29F5EEC874E014D122, + D5F519861915C136BAA8D87A, + 402768B1A52E32348D505F18, + F2EB42A070E349D77ACF77C9, + CF7FFEAFF4F386ED4DAED523 ); name = Demos; sourceTree = ""; }; + 7B2518B268DCBBF7B74F2B1D = { isa = PBXGroup; children = ( + ACFD7F6AAFC09C234D15501D, + A869663CA0E96FE15BB42A97, + A76B69386F1F19647804510D, + 013E12213AD7B4BEB28A31BE, + C7327AD5191A22C1FBD4F5F9 ); name = "Binary Data"; sourceTree = ""; }; + A10CCE1B2A215D5AE12386E3 = { isa = PBXGroup; children = ( + 885A20D277AD743C21C822B5, + 42291DB48BF81754D90FE200, + 49138F5652E637AA67CD4B70, + 18BDC68F9701862603871A7A, + 1045A435754FDEACC6D7259C, + 7B2518B268DCBBF7B74F2B1D ); name = Source; sourceTree = ""; }; + 4C2E644EAC72C263D09C74BB = { isa = PBXGroup; children = ( + EE37A0ECE471A928C6170F9B, + A6B37799E63CCE882A3383FB, + E6EF5CE04768BA5B10050D51, + CC7EB9777A4DE3408705625C, + BA05C84C3258A1978AF3D357, + F42C91375F3314CA6EE65697, + 4D526A336B2E97ED42CADAD7, + 8679333E781A0A0116AE5D26 ); name = "Juce Library Code"; sourceTree = ""; }; + 019CD423F1EFF7A1A0A079DD = { isa = PBXGroup; children = ( + 1A9DEA62F6A3CD1FB5CF105B ); name = Resources; sourceTree = ""; }; + 244B9AF7D858999910FD243E = { isa = PBXGroup; children = ( + 2B37CDCFCBC0AC0AEAA9A479, + 6A7D4DC561F2DD95ABD76F0D, + 3CE85049C3E91E38E71FF149, + DA3360514D221A36446DC6DE, + 010E9F48D32EA5C5451D8086, + 9BE978B2BDA9B7DA3BE403B4, + CB7CDD93EE1469B969AF844E, + 85E860BFDA9D53EF77C08873, + 4A96850C150C1C6D87A0D21A, + 4D3E0D18D24F78B6BDE0E5DA, + E0C3359BB4B5260CEB917D46 ); name = Frameworks; sourceTree = ""; }; + 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( + 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = ""; }; + D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( + A10CCE1B2A215D5AE12386E3, + 4C2E644EAC72C263D09C74BB, + 019CD423F1EFF7A1A0A079DD, + 244B9AF7D858999910FD243E, + 3F406773369804D0FBF2789A ); name = Source; sourceTree = ""; }; + F46B3E8DBAFA746E04F4F62C = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; PREBINDING = NO; HEADER_SEARCH_PATHS = " $(inherited)"; @@ -185,7 +185,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "_DEBUG=1", "DEBUG=1 "); }; name = Debug; }; - 7DBDB93B1B9DF79BA4819F7F = { isa = XCBuildConfiguration; buildSettings = { + 8EF7C7FFD55219581A5075F3 = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; PREBINDING = NO; HEADER_SEARCH_PATHS = " $(inherited)"; @@ -198,7 +198,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "_NDEBUG=1", "NDEBUG=1 "); }; name = Release; }; - B612DCB6B9D782F3D3744B79 = { isa = XCBuildConfiguration; buildSettings = { + 7FA986B99AFC795723E00AB0 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -212,7 +212,7 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; PRODUCT_NAME = "JuceDemo"; }; name = Debug; }; - ABFBF014E4913E0475A16742 = { isa = XCBuildConfiguration; buildSettings = { + 623F392572A48BDD48CE1CC4 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -226,57 +226,57 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; PRODUCT_NAME = "JuceDemo"; }; name = Release; }; - B89AA9A9D76AFB9FD94E91F1 = { isa = XCConfigurationList; buildConfigurations = ( - B612DCB6B9D782F3D3744B79, - ABFBF014E4913E0475A16742 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 29330EA5DC9F3CCDAD719B7B = { isa = XCConfigurationList; buildConfigurations = ( - 52C29F86E3DBE91F252B8C0D, - 7DBDB93B1B9DF79BA4819F7F ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - EEA25E5ECDB75868B1875A36 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - B2757B8179BE66929127AD2D = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A9D4CEB8BF6B35872821ECCD, - 07A544BF39B1B076D6A41228, - 73F16F1F0146CEEA5DBCCA0E, - 83D2B03EB08B6BC6E0A385E1, - 0C722E5F96990CA1B5F27046, - F6BAACC4178B6483EF2089B9, - 133B5F3401B8B97010441CA8, - BD4BACF416D7989BAB96272F, - FC7D30005FAF2F55AD31E1F7, - 1F90CA68AED3A84286873E2D, - 46770F1D01A9249360CAC4F1, - 5F598B0DF13D01DB78462450, - 443769AEA489DBFE4A6904B0, - F511BC8A5F0B5C9BC19F8FB7, - C02D29C17C874EEB8B811264, - A586096D3A6BAF493634A393, - 3F3DECC996DAADBDCD7D276C, - 948DB156D3ADAC90034428A9, - 554C5D64E0396AF57640E861, - 3D4C6B63961E3A0212142B8C, - D451763D1ECDF37C069A3770, - EA6A2F2B7DE0322ED19BFD55, - F97659F31912D12C91E95549, - 56752EC63E4979FD534D2009, - C383E3A9627121BF26A2EACA, - 2082A87B96A8C980E806A59A ); runOnlyForDeploymentPostprocessing = 0; }; - 6C1906E1104429D10063FE75 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 20915FFEC378C0A1E6C96EAC, - 2CF185F6E9B8343940C21F92, - 1B7FEDB2A01E18F33947B5CB, - ECD42C38F1E71FE93C1BCE6E, - 04D3F31A4C84BDA3B5F366CE, - 0428E26BE29AF1EA23210F83, - 8124C59C2A41584D44D2952B, - 3F0A163C30A5301DE2E578A9, - 6C00A25BA650290D8D48D8E6, - 12E2DFFC0A4FF36F4288E4C2, - 45F5DAF3E6E26132D920043D ); runOnlyForDeploymentPostprocessing = 0; }; - 44C47F7E6BD5B8AB41466286 = { isa = PBXNativeTarget; buildConfigurationList = 29330EA5DC9F3CCDAD719B7B; buildPhases = ( - EEA25E5ECDB75868B1875A36, - B2757B8179BE66929127AD2D, - 6C1906E1104429D10063FE75 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 56BC57F08A02495F85DB8DC8; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - CBEE715C52BD1D65BBB7F342 = { isa = PBXProject; buildConfigurationList = B89AA9A9D76AFB9FD94E91F1; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = 24AF20CBAA4DC5F17CFE8606; projectDirPath = ""; projectRoot = ""; targets = ( 44C47F7E6BD5B8AB41466286 ); }; + 2B22E1D006C8AF43954EE79D = { isa = XCConfigurationList; buildConfigurations = ( + 7FA986B99AFC795723E00AB0, + 623F392572A48BDD48CE1CC4 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + C264FE1BF62B589B345E0C81 = { isa = XCConfigurationList; buildConfigurations = ( + F46B3E8DBAFA746E04F4F62C, + 8EF7C7FFD55219581A5075F3 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + AE930F136F638C3C939F7146 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 7A3A0C722E5F96990CA1B5F2 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 78A66C2F9A9E2E6D011D8E5E, + CE5C46E66485B7D77B5ADB4E, + 2E2DB52D03DD6A56FAC937A4, + 8E0E3B718F35E9E1DC3D89C5, + C4C49D2D5D27730E55B27BCB, + 2CD67851BCF3F24E0B5F82CF, + 29C9F0E2824F63B105234C0A, + 7EFB4E7D738BFFF90F49E0C0, + B69F5957B1729915BFB18735, + F920A5AB6D0FF01022575079, + A3AF0F559DD97F1B908AC1CA, + 2C0AB902CB01E38D87A2A6A5, + ACD2210FDE1137548F995F85, + 2F6BFF7DD839160223057CF7, + 1552CF5A0A932C5EB88EC56C, + 969C49FA8B55C700ED848494, + AE1CB65D73BFB3FA707B59FF, + 99D9F5D6FC8A015C603B32C3, + 563DEC7941B88163A50E0945, + F5691895ACDC7B12DE88EFF4, + 4D5C0ED42C87FBE02A9C7BE6, + 80926D2B83ACF680958111EC, + 2201A04DDCFC361882F8EA62, + 2E98B1DEA8B7FC20ACCD2E6D, + 3A2EC17F8472C338D6A26278, + 36B5D100604D9A300187B773 ); runOnlyForDeploymentPostprocessing = 0; }; + 2E5F3CCB074AC0B18683A4F3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 92A7143821252FB13891CC53, + DEDBEF9AC48F8AD1502B6DC2, + 29F75103FFB220F2E10CF9A9, + 687BFA1946EAD55C5C39907C, + ED283D0ABEC2EC312E40C6B4, + 0CFE603DE523940AF3352227, + 420A9C88B711F5E4997FAAD0, + C1437C4A64EB72D2A86729D3, + F1BAE9DCD179C8784FF28F8D, + B9911F3AC6CADFB47D1EA8D7, + 452052BBDBAF17DCC06EF521 ); runOnlyForDeploymentPostprocessing = 0; }; + F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( + AE930F136F638C3C939F7146, + 7A3A0C722E5F96990CA1B5F2, + 2E5F3CCB074AC0B18683A4F3 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 39B98C60B57B831FE5215CDD; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = D6A4B94A747BFCF299B17932; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; }; - rootObject = CBEE715C52BD1D65BBB7F342; + rootObject = FD051827ADE403C022034508; } diff --git a/extras/juce demo/Builds/VisualStudio2005/Juce Demo.sln b/extras/juce demo/Builds/VisualStudio2005/Juce Demo.sln index 3b93e57ab2..a65b004f37 100644 --- a/extras/juce demo/Builds/VisualStudio2005/Juce Demo.sln +++ b/extras/juce demo/Builds/VisualStudio2005/Juce Demo.sln @@ -1,7 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 8.00 # Visual C++ Express 2005 -Project("{3B1DD41A-AF04-DA23-7081-0A1575DE7532}") = "Juce Demo", "Juce Demo.vcproj", "{49CD629B-E99C-F915-A29E-7BE8278496F2}" +Project("{7A947A64-CDD8-D41D-F886-5E65A8ABDF81}") = "Juce Demo", "Juce Demo.vcproj", "{36211E76-A802-50EE-3B95-0202F4EB67ED}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -9,10 +9,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Debug|Win32.ActiveCfg = Debug|Win32 - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Debug|Win32.Build.0 = Debug|Win32 - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Release|Win32.ActiveCfg = Release|Win32 - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Release|Win32.Build.0 = Release|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.Build.0 = Debug|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.ActiveCfg = Release|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj b/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj index f04e8fdbac..83e203a5df 100644 --- a/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj +++ b/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj @@ -3,7 +3,7 @@ diff --git a/extras/juce demo/Builds/VisualStudio2008/Juce Demo.sln b/extras/juce demo/Builds/VisualStudio2008/Juce Demo.sln index f70739db37..7c3f7cf038 100644 --- a/extras/juce demo/Builds/VisualStudio2008/Juce Demo.sln +++ b/extras/juce demo/Builds/VisualStudio2008/Juce Demo.sln @@ -1,7 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C++ Express 2008 -Project("{3B1DD41A-AF04-DA23-7081-0A1575DE7532}") = "Juce Demo", "Juce Demo.vcproj", "{49CD629B-E99C-F915-A29E-7BE8278496F2}" +Project("{7A947A64-CDD8-D41D-F886-5E65A8ABDF81}") = "Juce Demo", "Juce Demo.vcproj", "{36211E76-A802-50EE-3B95-0202F4EB67ED}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -9,10 +9,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Debug|Win32.ActiveCfg = Debug|Win32 - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Debug|Win32.Build.0 = Debug|Win32 - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Release|Win32.ActiveCfg = Release|Win32 - {49CD629B-E99C-F915-A29E-7BE8278496F2}.Release|Win32.Build.0 = Release|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.Build.0 = Debug|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.ActiveCfg = Release|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj b/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj index adecdd9abb..f7f06ff1d2 100644 --- a/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj +++ b/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj @@ -3,7 +3,7 @@ diff --git a/extras/juce demo/Builds/iPhone/Juce Demo.xcodeproj/project.pbxproj b/extras/juce demo/Builds/iPhone/Juce Demo.xcodeproj/project.pbxproj index d8025c4760..bad3df05cd 100644 --- a/extras/juce demo/Builds/iPhone/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/juce demo/Builds/iPhone/Juce Demo.xcodeproj/project.pbxproj @@ -6,150 +6,156 @@ objectVersion = 44; objects = { - A82540492797AA2A111F534F = { isa = PBXBuildFile; fileRef = FE73A99FC442611763B78962; }; - D351446B8D35F4C9EADDF0F8 = { isa = PBXBuildFile; fileRef = 6FB2992756D842FF2A71CBDF; }; - DDE2D54D9AF8DEDFC66E75D4 = { isa = PBXBuildFile; fileRef = A4EE39790FFF23240CB7BFB6; }; - 2C6ED8CEE9C15855321CDEE6 = { isa = PBXBuildFile; fileRef = 80AFA57E396DBF8EB3483F66; }; - A9D4CEB8BF6B35872821ECCD = { isa = PBXBuildFile; fileRef = 8CAAF50C584E234C08D5F4B6; }; - 07A544BF39B1B076D6A41228 = { isa = PBXBuildFile; fileRef = C08E0D90EDF5F3C1DC7960D9; }; - 73F16F1F0146CEEA5DBCCA0E = { isa = PBXBuildFile; fileRef = F7AFA888A6F33AA6A41DBBF1; }; - 83D2B03EB08B6BC6E0A385E1 = { isa = PBXBuildFile; fileRef = 4768B9E0E7E47689D2152273; }; - 0C722E5F96990CA1B5F27046 = { isa = PBXBuildFile; fileRef = C142C47C1CCB975D7ED69A76; }; - F6BAACC4178B6483EF2089B9 = { isa = PBXBuildFile; fileRef = 12E008A030CFA73B8A2C5F8D; }; - 133B5F3401B8B97010441CA8 = { isa = PBXBuildFile; fileRef = A679D77333FEDBBFDD3996CE; }; - BD4BACF416D7989BAB96272F = { isa = PBXBuildFile; fileRef = 90405E5EB08DAA8AEF278373; }; - FC7D30005FAF2F55AD31E1F7 = { isa = PBXBuildFile; fileRef = 53CDACB61E480F6CD0DA0227; }; - 1F90CA68AED3A84286873E2D = { isa = PBXBuildFile; fileRef = 25F200D7C24E7D65E6180A96; }; - 46770F1D01A9249360CAC4F1 = { isa = PBXBuildFile; fileRef = 7C337F848FFCE6B474C24F8F; }; - 5F598B0DF13D01DB78462450 = { isa = PBXBuildFile; fileRef = CA67B495395BF40180861DBB; }; - 443769AEA489DBFE4A6904B0 = { isa = PBXBuildFile; fileRef = 9BCDD95754B3483A5AA5CBA3; }; - F511BC8A5F0B5C9BC19F8FB7 = { isa = PBXBuildFile; fileRef = 10CD526C87D2AE14485D9E02; }; - C02D29C17C874EEB8B811264 = { isa = PBXBuildFile; fileRef = D77329750883321F2B19C175; }; - A586096D3A6BAF493634A393 = { isa = PBXBuildFile; fileRef = 685ED451763D1ECDF37C069A; }; - 3F3DECC996DAADBDCD7D276C = { isa = PBXBuildFile; fileRef = B51FED2131FBE1356A01B300; }; - 948DB156D3ADAC90034428A9 = { isa = PBXBuildFile; fileRef = B19EC95562A9E9EDC3E9B1A9; }; - 554C5D64E0396AF57640E861 = { isa = PBXBuildFile; fileRef = E4275128DD1C668E42E12F93; }; - 3D4C6B63961E3A0212142B8C = { isa = PBXBuildFile; fileRef = 14C92BB589AB3736AE0D2993; }; - D451763D1ECDF37C069A3770 = { isa = PBXBuildFile; fileRef = C5445AF598689D6BF0F83CBE; }; - EA6A2F2B7DE0322ED19BFD55 = { isa = PBXBuildFile; fileRef = B532F2C386E75E0E34783044; }; - F97659F31912D12C91E95549 = { isa = PBXBuildFile; fileRef = D027981BD4F6CC3DB5103192; }; - 56752EC63E4979FD534D2009 = { isa = PBXBuildFile; fileRef = 78A1366D8680F8706D29BA89; }; - C383E3A9627121BF26A2EACA = { isa = PBXBuildFile; fileRef = 212AD4AE482A14B305233281; }; - 2082A87B96A8C980E806A59A = { isa = PBXBuildFile; fileRef = DA9462FFFAC440E6BE3DBA78; }; - FE73A99FC442611763B78962 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 6FB2992756D842FF2A71CBDF = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - A4EE39790FFF23240CB7BFB6 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 80AFA57E396DBF8EB3483F66 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 56BC57F08A02495F85DB8DC8 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 6B2414965418FDE8B71BF091 = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; - 8CAAF50C584E234C08D5F4B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = SOURCE_ROOT; }; - C08E0D90EDF5F3C1DC7960D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = SOURCE_ROOT; }; - FB1ADFC973C66571E2962637 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = SOURCE_ROOT; }; - 4BE34F808E4597871BE6E83D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucedemo_headers.h; path = ../../Source/jucedemo_headers.h; sourceTree = SOURCE_ROOT; }; - F7AFA888A6F33AA6A41DBBF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = SOURCE_ROOT; }; - C8FECA3890075D8C8124F71C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = SOURCE_ROOT; }; - 4768B9E0E7E47689D2152273 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = SOURCE_ROOT; }; - 8182FA9F3E05EA434B048C8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = SOURCE_ROOT; }; - C142C47C1CCB975D7ED69A76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = SOURCE_ROOT; }; - 123BE3D4AE300D6A8901D25C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = SOURCE_ROOT; }; - 12E008A030CFA73B8A2C5F8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = SOURCE_ROOT; }; - F3FBE7B3648DC27B2FD6B696 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = SOURCE_ROOT; }; - A679D77333FEDBBFDD3996CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = SOURCE_ROOT; }; - 2C7A5ABF7F84DDB6CC69FE24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = SOURCE_ROOT; }; - 90405E5EB08DAA8AEF278373 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = SOURCE_ROOT; }; - 00090BE7B99A50D58854C369 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = SOURCE_ROOT; }; - 53CDACB61E480F6CD0DA0227 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = SOURCE_ROOT; }; - 25F200D7C24E7D65E6180A96 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = SOURCE_ROOT; }; - 7C337F848FFCE6B474C24F8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = SOURCE_ROOT; }; - CA67B495395BF40180861DBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = SOURCE_ROOT; }; - 9BCDD95754B3483A5AA5CBA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = SOURCE_ROOT; }; - 10CD526C87D2AE14485D9E02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = SOURCE_ROOT; }; - D77329750883321F2B19C175 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = SOURCE_ROOT; }; - 685ED451763D1ECDF37C069A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = SOURCE_ROOT; }; - 811F98EC290C7A97FC44209A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = SOURCE_ROOT; }; - B51FED2131FBE1356A01B300 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = SOURCE_ROOT; }; - B19EC95562A9E9EDC3E9B1A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = SOURCE_ROOT; }; - E4275128DD1C668E42E12F93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = SOURCE_ROOT; }; - 14C92BB589AB3736AE0D2993 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = SOURCE_ROOT; }; - C5445AF598689D6BF0F83CBE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = SOURCE_ROOT; }; - E393B96DABAE67B4BF9CC8A0 = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = SOURCE_ROOT; }; - 29C2F4E4B5B2D1809AE3F2E0 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = SOURCE_ROOT; }; - 3161255EB1EA2EB48796EF3D = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = SOURCE_ROOT; }; - 7CD420C22AF83DB31EE71EA6 = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = SOURCE_ROOT; }; - A5B7CC1437DA58DFC19AA3C8 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = SOURCE_ROOT; }; - 3B0725900B1EB76FCFF9725F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; - CF077D3ED7B7B56F351AAF67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; - B532F2C386E75E0E34783044 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; }; - 16FA53FF896BC5EA2C681C1A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = SOURCE_ROOT; }; - D027981BD4F6CC3DB5103192 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; - 78A1366D8680F8706D29BA89 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; - 212AD4AE482A14B305233281 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; - DA9462FFFAC440E6BE3DBA78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; - FD1552CA3E06EF6E4FC85A8A = { isa = PBXGroup; children = ( - F7AFA888A6F33AA6A41DBBF1, - C8FECA3890075D8C8124F71C, - 4768B9E0E7E47689D2152273, - 8182FA9F3E05EA434B048C8B, - C142C47C1CCB975D7ED69A76, - 123BE3D4AE300D6A8901D25C, - 12E008A030CFA73B8A2C5F8D, - F3FBE7B3648DC27B2FD6B696, - A679D77333FEDBBFDD3996CE, - 2C7A5ABF7F84DDB6CC69FE24, - 90405E5EB08DAA8AEF278373, - 00090BE7B99A50D58854C369, - 53CDACB61E480F6CD0DA0227, - 25F200D7C24E7D65E6180A96, - 7C337F848FFCE6B474C24F8F, - CA67B495395BF40180861DBB, - 9BCDD95754B3483A5AA5CBA3, - 10CD526C87D2AE14485D9E02, - D77329750883321F2B19C175, - 685ED451763D1ECDF37C069A, - 811F98EC290C7A97FC44209A, - B51FED2131FBE1356A01B300, - B19EC95562A9E9EDC3E9B1A9, - E4275128DD1C668E42E12F93, - 14C92BB589AB3736AE0D2993, - C5445AF598689D6BF0F83CBE ); name = Demos; sourceTree = ""; }; - C9C1EC6EEE457C21A26B0EC3 = { isa = PBXGroup; children = ( - E393B96DABAE67B4BF9CC8A0, - 29C2F4E4B5B2D1809AE3F2E0, - 3161255EB1EA2EB48796EF3D, - 7CD420C22AF83DB31EE71EA6, - A5B7CC1437DA58DFC19AA3C8 ); name = "Binary Data"; sourceTree = ""; }; - 2EA528914EC159A58C97A873 = { isa = PBXGroup; children = ( - 8CAAF50C584E234C08D5F4B6, - C08E0D90EDF5F3C1DC7960D9, - FB1ADFC973C66571E2962637, - 4BE34F808E4597871BE6E83D, - FD1552CA3E06EF6E4FC85A8A, - C9C1EC6EEE457C21A26B0EC3 ); name = Source; sourceTree = ""; }; - 3B5437A20FCADA50EBD06731 = { isa = PBXGroup; children = ( - 3B0725900B1EB76FCFF9725F, - CF077D3ED7B7B56F351AAF67, - B532F2C386E75E0E34783044, - 16FA53FF896BC5EA2C681C1A, - D027981BD4F6CC3DB5103192, - 78A1366D8680F8706D29BA89, - 212AD4AE482A14B305233281, - DA9462FFFAC440E6BE3DBA78 ); name = "Juce Library Code"; sourceTree = ""; }; - F473AC9C072A0F6CF3B5410F = { isa = PBXGroup; children = ( - 6B2414965418FDE8B71BF091 ); name = Resources; sourceTree = ""; }; - 6030FE912A851A2507B3BF34 = { isa = PBXGroup; children = ( - FE73A99FC442611763B78962, - 6FB2992756D842FF2A71CBDF, - A4EE39790FFF23240CB7BFB6, - 80AFA57E396DBF8EB3483F66 ); name = Frameworks; sourceTree = ""; }; - 29CBBCDCEE131C353F0715E1 = { isa = PBXGroup; children = ( - 56BC57F08A02495F85DB8DC8 ); name = Products; sourceTree = ""; }; - 24AF20CBAA4DC5F17CFE8606 = { isa = PBXGroup; children = ( - 2EA528914EC159A58C97A873, - 3B5437A20FCADA50EBD06731, - F473AC9C072A0F6CF3B5410F, - 6030FE912A851A2507B3BF34, - 29CBBCDCEE131C353F0715E1 ); name = Source; sourceTree = ""; }; - 52C29F86E3DBE91F252B8C0D = { isa = XCBuildConfiguration; buildSettings = { + 1DF18F6B9CCFF7BD07C36AC2 = { isa = PBXBuildFile; fileRef = CE3A43E4FB4D61350C000764; }; + 3BE296F09A47C0ECE4D91CF5 = { isa = PBXBuildFile; fileRef = 90E63FC1333F952D526FF194; }; + 7938A4501BDD574C4121B988 = { isa = PBXBuildFile; fileRef = 0D376A9686DFA1EAF983841C; }; + 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; + F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; + 268F2BF480CF9844E2F2B974 = { isa = PBXBuildFile; fileRef = B72353F9624D99DB6F93E400; }; + 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; + CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; + 2E2DB52D03DD6A56FAC937A4 = { isa = PBXBuildFile; fileRef = 0704E2D6B0D1B38FBBBC6B85; }; + 8E0E3B718F35E9E1DC3D89C5 = { isa = PBXBuildFile; fileRef = D856109CF311BB94D8EE8826; }; + C4C49D2D5D27730E55B27BCB = { isa = PBXBuildFile; fileRef = 411D5D0920812790F4F78462; }; + 2CD67851BCF3F24E0B5F82CF = { isa = PBXBuildFile; fileRef = 67F817AAB55ED2BE16B376BF; }; + 29C9F0E2824F63B105234C0A = { isa = PBXBuildFile; fileRef = FBCE524D94BF5BE0160142D4; }; + 7EFB4E7D738BFFF90F49E0C0 = { isa = PBXBuildFile; fileRef = 048CEE4CC06227D8A57E47F2; }; + B69F5957B1729915BFB18735 = { isa = PBXBuildFile; fileRef = 7D65727C8F72F2BCC9A17D34; }; + F920A5AB6D0FF01022575079 = { isa = PBXBuildFile; fileRef = 268D7AFE2F3822C2C8E9A612; }; + A3AF0F559DD97F1B908AC1CA = { isa = PBXBuildFile; fileRef = F23738E4EFD2323063F82F1C; }; + 2C0AB902CB01E38D87A2A6A5 = { isa = PBXBuildFile; fileRef = B7F4DAFA5F8F1FC976C8B55D; }; + ACD2210FDE1137548F995F85 = { isa = PBXBuildFile; fileRef = F7620D8D567CCE463ADDE0A6; }; + 2F6BFF7DD839160223057CF7 = { isa = PBXBuildFile; fileRef = DA3BCFCC5BF07FC689DB5C34; }; + 1552CF5A0A932C5EB88EC56C = { isa = PBXBuildFile; fileRef = D6EF70641473A3E7C0DC5168; }; + 969C49FA8B55C700ED848494 = { isa = PBXBuildFile; fileRef = 3BC17D4051063C1BF66548C6; }; + AE1CB65D73BFB3FA707B59FF = { isa = PBXBuildFile; fileRef = 08B45C29F5EEC874E014D122; }; + 99D9F5D6FC8A015C603B32C3 = { isa = PBXBuildFile; fileRef = D5F519861915C136BAA8D87A; }; + 563DEC7941B88163A50E0945 = { isa = PBXBuildFile; fileRef = 402768B1A52E32348D505F18; }; + F5691895ACDC7B12DE88EFF4 = { isa = PBXBuildFile; fileRef = F2EB42A070E349D77ACF77C9; }; + 4D5C0ED42C87FBE02A9C7BE6 = { isa = PBXBuildFile; fileRef = CF7FFEAFF4F386ED4DAED523; }; + 80926D2B83ACF680958111EC = { isa = PBXBuildFile; fileRef = E6EF5CE04768BA5B10050D51; }; + 2201A04DDCFC361882F8EA62 = { isa = PBXBuildFile; fileRef = BA05C84C3258A1978AF3D357; }; + 2E98B1DEA8B7FC20ACCD2E6D = { isa = PBXBuildFile; fileRef = F42C91375F3314CA6EE65697; }; + 3A2EC17F8472C338D6A26278 = { isa = PBXBuildFile; fileRef = 4D526A336B2E97ED42CADAD7; }; + 36B5D100604D9A300187B773 = { isa = PBXBuildFile; fileRef = 8679333E781A0A0116AE5D26; }; + CE3A43E4FB4D61350C000764 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 90E63FC1333F952D526FF194 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 0D376A9686DFA1EAF983841C = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + B72353F9624D99DB6F93E400 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; + 885A20D277AD743C21C822B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = SOURCE_ROOT; }; + 42291DB48BF81754D90FE200 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = SOURCE_ROOT; }; + 49138F5652E637AA67CD4B70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = SOURCE_ROOT; }; + 18BDC68F9701862603871A7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jucedemo_headers.h; path = ../../Source/jucedemo_headers.h; sourceTree = SOURCE_ROOT; }; + 0704E2D6B0D1B38FBBBC6B85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = SOURCE_ROOT; }; + D793BFCCD11E218E5CED3320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = SOURCE_ROOT; }; + D856109CF311BB94D8EE8826 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = SOURCE_ROOT; }; + FC989E104DDB02E8A99B6564 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = SOURCE_ROOT; }; + 411D5D0920812790F4F78462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = SOURCE_ROOT; }; + 570DE12AFA65E0EF97A76118 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = SOURCE_ROOT; }; + 67F817AAB55ED2BE16B376BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = SOURCE_ROOT; }; + 91ACA90EFCAD4614B3ECC0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = SOURCE_ROOT; }; + FBCE524D94BF5BE0160142D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = SOURCE_ROOT; }; + 865617D983052FBE0ADDDEDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = SOURCE_ROOT; }; + 048CEE4CC06227D8A57E47F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = SOURCE_ROOT; }; + 8BEA0B754661F3038DBAF558 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = SOURCE_ROOT; }; + 7D65727C8F72F2BCC9A17D34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = SOURCE_ROOT; }; + 268D7AFE2F3822C2C8E9A612 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = SOURCE_ROOT; }; + F23738E4EFD2323063F82F1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = SOURCE_ROOT; }; + B7F4DAFA5F8F1FC976C8B55D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = SOURCE_ROOT; }; + F7620D8D567CCE463ADDE0A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = SOURCE_ROOT; }; + DA3BCFCC5BF07FC689DB5C34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = SOURCE_ROOT; }; + D6EF70641473A3E7C0DC5168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = SOURCE_ROOT; }; + 3BC17D4051063C1BF66548C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = SOURCE_ROOT; }; + A6FB61B33BDDB0880203370C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = SOURCE_ROOT; }; + 08B45C29F5EEC874E014D122 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = SOURCE_ROOT; }; + D5F519861915C136BAA8D87A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = SOURCE_ROOT; }; + 402768B1A52E32348D505F18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = SOURCE_ROOT; }; + F2EB42A070E349D77ACF77C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = SOURCE_ROOT; }; + CF7FFEAFF4F386ED4DAED523 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = SOURCE_ROOT; }; + ACFD7F6AAFC09C234D15501D = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = SOURCE_ROOT; }; + A869663CA0E96FE15BB42A97 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = SOURCE_ROOT; }; + A76B69386F1F19647804510D = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = SOURCE_ROOT; }; + 013E12213AD7B4BEB28A31BE = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = SOURCE_ROOT; }; + C7327AD5191A22C1FBD4F5F9 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = SOURCE_ROOT; }; + EE37A0ECE471A928C6170F9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; + A6B37799E63CCE882A3383FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; + E6EF5CE04768BA5B10050D51 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = SOURCE_ROOT; }; + CC7EB9777A4DE3408705625C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = SOURCE_ROOT; }; + BA05C84C3258A1978AF3D357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; + F42C91375F3314CA6EE65697 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; + 4D526A336B2E97ED42CADAD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; + 8679333E781A0A0116AE5D26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; + 1045A435754FDEACC6D7259C = { isa = PBXGroup; children = ( + 0704E2D6B0D1B38FBBBC6B85, + D793BFCCD11E218E5CED3320, + D856109CF311BB94D8EE8826, + FC989E104DDB02E8A99B6564, + 411D5D0920812790F4F78462, + 570DE12AFA65E0EF97A76118, + 67F817AAB55ED2BE16B376BF, + 91ACA90EFCAD4614B3ECC0C5, + FBCE524D94BF5BE0160142D4, + 865617D983052FBE0ADDDEDF, + 048CEE4CC06227D8A57E47F2, + 8BEA0B754661F3038DBAF558, + 7D65727C8F72F2BCC9A17D34, + 268D7AFE2F3822C2C8E9A612, + F23738E4EFD2323063F82F1C, + B7F4DAFA5F8F1FC976C8B55D, + F7620D8D567CCE463ADDE0A6, + DA3BCFCC5BF07FC689DB5C34, + D6EF70641473A3E7C0DC5168, + 3BC17D4051063C1BF66548C6, + A6FB61B33BDDB0880203370C, + 08B45C29F5EEC874E014D122, + D5F519861915C136BAA8D87A, + 402768B1A52E32348D505F18, + F2EB42A070E349D77ACF77C9, + CF7FFEAFF4F386ED4DAED523 ); name = Demos; sourceTree = ""; }; + 7B2518B268DCBBF7B74F2B1D = { isa = PBXGroup; children = ( + ACFD7F6AAFC09C234D15501D, + A869663CA0E96FE15BB42A97, + A76B69386F1F19647804510D, + 013E12213AD7B4BEB28A31BE, + C7327AD5191A22C1FBD4F5F9 ); name = "Binary Data"; sourceTree = ""; }; + A10CCE1B2A215D5AE12386E3 = { isa = PBXGroup; children = ( + 885A20D277AD743C21C822B5, + 42291DB48BF81754D90FE200, + 49138F5652E637AA67CD4B70, + 18BDC68F9701862603871A7A, + 1045A435754FDEACC6D7259C, + 7B2518B268DCBBF7B74F2B1D ); name = Source; sourceTree = ""; }; + 4C2E644EAC72C263D09C74BB = { isa = PBXGroup; children = ( + EE37A0ECE471A928C6170F9B, + A6B37799E63CCE882A3383FB, + E6EF5CE04768BA5B10050D51, + CC7EB9777A4DE3408705625C, + BA05C84C3258A1978AF3D357, + F42C91375F3314CA6EE65697, + 4D526A336B2E97ED42CADAD7, + 8679333E781A0A0116AE5D26 ); name = "Juce Library Code"; sourceTree = ""; }; + 019CD423F1EFF7A1A0A079DD = { isa = PBXGroup; children = ( + 1A9DEA62F6A3CD1FB5CF105B ); name = Resources; sourceTree = ""; }; + 244B9AF7D858999910FD243E = { isa = PBXGroup; children = ( + CE3A43E4FB4D61350C000764, + 90E63FC1333F952D526FF194, + 0D376A9686DFA1EAF983841C, + 7B6D428682221857EAEA1C7D, + 4A96850C150C1C6D87A0D21A, + B72353F9624D99DB6F93E400 ); name = Frameworks; sourceTree = ""; }; + 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( + 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = ""; }; + D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( + A10CCE1B2A215D5AE12386E3, + 4C2E644EAC72C263D09C74BB, + 019CD423F1EFF7A1A0A079DD, + 244B9AF7D858999910FD243E, + 3F406773369804D0FBF2789A ); name = Source; sourceTree = ""; }; + F46B3E8DBAFA746E04F4F62C = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; PREBINDING = NO; HEADER_SEARCH_PATHS = " $(inherited)"; @@ -164,7 +170,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "_DEBUG=1", "DEBUG=1 "); }; name = Debug; }; - 7DBDB93B1B9DF79BA4819F7F = { isa = XCBuildConfiguration; buildSettings = { + 8EF7C7FFD55219581A5075F3 = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; PREBINDING = NO; HEADER_SEARCH_PATHS = " $(inherited)"; @@ -177,7 +183,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "_NDEBUG=1", "NDEBUG=1 "); }; name = Release; }; - B612DCB6B9D782F3D3744B79 = { isa = XCBuildConfiguration; buildSettings = { + 7FA986B99AFC795723E00AB0 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -191,7 +197,7 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; PRODUCT_NAME = "JuceDemo"; }; name = Debug; }; - ABFBF014E4913E0475A16742 = { isa = XCBuildConfiguration; buildSettings = { + 623F392572A48BDD48CE1CC4 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -205,50 +211,52 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; PRODUCT_NAME = "JuceDemo"; }; name = Release; }; - B89AA9A9D76AFB9FD94E91F1 = { isa = XCConfigurationList; buildConfigurations = ( - B612DCB6B9D782F3D3744B79, - ABFBF014E4913E0475A16742 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 29330EA5DC9F3CCDAD719B7B = { isa = XCConfigurationList; buildConfigurations = ( - 52C29F86E3DBE91F252B8C0D, - 7DBDB93B1B9DF79BA4819F7F ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - EEA25E5ECDB75868B1875A36 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - B2757B8179BE66929127AD2D = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A9D4CEB8BF6B35872821ECCD, - 07A544BF39B1B076D6A41228, - 73F16F1F0146CEEA5DBCCA0E, - 83D2B03EB08B6BC6E0A385E1, - 0C722E5F96990CA1B5F27046, - F6BAACC4178B6483EF2089B9, - 133B5F3401B8B97010441CA8, - BD4BACF416D7989BAB96272F, - FC7D30005FAF2F55AD31E1F7, - 1F90CA68AED3A84286873E2D, - 46770F1D01A9249360CAC4F1, - 5F598B0DF13D01DB78462450, - 443769AEA489DBFE4A6904B0, - F511BC8A5F0B5C9BC19F8FB7, - C02D29C17C874EEB8B811264, - A586096D3A6BAF493634A393, - 3F3DECC996DAADBDCD7D276C, - 948DB156D3ADAC90034428A9, - 554C5D64E0396AF57640E861, - 3D4C6B63961E3A0212142B8C, - D451763D1ECDF37C069A3770, - EA6A2F2B7DE0322ED19BFD55, - F97659F31912D12C91E95549, - 56752EC63E4979FD534D2009, - C383E3A9627121BF26A2EACA, - 2082A87B96A8C980E806A59A ); runOnlyForDeploymentPostprocessing = 0; }; - 6C1906E1104429D10063FE75 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A82540492797AA2A111F534F, - D351446B8D35F4C9EADDF0F8, - DDE2D54D9AF8DEDFC66E75D4, - 2C6ED8CEE9C15855321CDEE6 ); runOnlyForDeploymentPostprocessing = 0; }; - 44C47F7E6BD5B8AB41466286 = { isa = PBXNativeTarget; buildConfigurationList = 29330EA5DC9F3CCDAD719B7B; buildPhases = ( - EEA25E5ECDB75868B1875A36, - B2757B8179BE66929127AD2D, - 6C1906E1104429D10063FE75 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 56BC57F08A02495F85DB8DC8; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - CBEE715C52BD1D65BBB7F342 = { isa = PBXProject; buildConfigurationList = B89AA9A9D76AFB9FD94E91F1; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = 24AF20CBAA4DC5F17CFE8606; projectDirPath = ""; projectRoot = ""; targets = ( 44C47F7E6BD5B8AB41466286 ); }; + 2B22E1D006C8AF43954EE79D = { isa = XCConfigurationList; buildConfigurations = ( + 7FA986B99AFC795723E00AB0, + 623F392572A48BDD48CE1CC4 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + C264FE1BF62B589B345E0C81 = { isa = XCConfigurationList; buildConfigurations = ( + F46B3E8DBAFA746E04F4F62C, + 8EF7C7FFD55219581A5075F3 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + AE930F136F638C3C939F7146 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 7A3A0C722E5F96990CA1B5F2 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 78A66C2F9A9E2E6D011D8E5E, + CE5C46E66485B7D77B5ADB4E, + 2E2DB52D03DD6A56FAC937A4, + 8E0E3B718F35E9E1DC3D89C5, + C4C49D2D5D27730E55B27BCB, + 2CD67851BCF3F24E0B5F82CF, + 29C9F0E2824F63B105234C0A, + 7EFB4E7D738BFFF90F49E0C0, + B69F5957B1729915BFB18735, + F920A5AB6D0FF01022575079, + A3AF0F559DD97F1B908AC1CA, + 2C0AB902CB01E38D87A2A6A5, + ACD2210FDE1137548F995F85, + 2F6BFF7DD839160223057CF7, + 1552CF5A0A932C5EB88EC56C, + 969C49FA8B55C700ED848494, + AE1CB65D73BFB3FA707B59FF, + 99D9F5D6FC8A015C603B32C3, + 563DEC7941B88163A50E0945, + F5691895ACDC7B12DE88EFF4, + 4D5C0ED42C87FBE02A9C7BE6, + 80926D2B83ACF680958111EC, + 2201A04DDCFC361882F8EA62, + 2E98B1DEA8B7FC20ACCD2E6D, + 3A2EC17F8472C338D6A26278, + 36B5D100604D9A300187B773 ); runOnlyForDeploymentPostprocessing = 0; }; + 2E5F3CCB074AC0B18683A4F3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 1DF18F6B9CCFF7BD07C36AC2, + 3BE296F09A47C0ECE4D91CF5, + 7938A4501BDD574C4121B988, + 36AEC0EAE7AB9D061AD9EFEF, + F1BAE9DCD179C8784FF28F8D, + 268F2BF480CF9844E2F2B974 ); runOnlyForDeploymentPostprocessing = 0; }; + F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( + AE930F136F638C3C939F7146, + 7A3A0C722E5F96990CA1B5F2, + 2E5F3CCB074AC0B18683A4F3 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 39B98C60B57B831FE5215CDD; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = D6A4B94A747BFCF299B17932; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; }; - rootObject = CBEE715C52BD1D65BBB7F342; + rootObject = FD051827ADE403C022034508; } diff --git a/extras/juce demo/Juce Demo.jucer b/extras/juce demo/Juce Demo.jucer index 7180f957aa..89b42b96c8 100644 --- a/extras/juce demo/Juce Demo.jucer +++ b/extras/juce demo/Juce Demo.jucer @@ -101,11 +101,12 @@ + JUCE_CATCH_UNHANDLED_EXCEPTIONS="default" JUCE_STRINGS_ARE_UNICODE="default" + JUCE_USE_XRENDER="default"/> diff --git a/extras/juce demo/JuceLibraryCode/AppConfig.h b/extras/juce demo/JuceLibraryCode/AppConfig.h index bff7ad93c1..3f1f13382e 100644 --- a/extras/juce demo/JuceLibraryCode/AppConfig.h +++ b/extras/juce demo/JuceLibraryCode/AppConfig.h @@ -17,7 +17,7 @@ #define JUCE_WASAPI 1 //#define JUCE_DIRECTSOUND //#define JUCE_ALSA -//#define JUCE_QUICKTIME +#define JUCE_QUICKTIME 1 #define JUCE_OPENGL 1 //#define JUCE_USE_FLAC //#define JUCE_USE_OGGVORBIS @@ -27,6 +27,7 @@ //#define JUCE_ENABLE_REPAINT_DEBUGGING //#define JUCE_USE_XINERAMA //#define JUCE_USE_XSHM +//#define JUCE_USE_XRENDER #define JUCE_PLUGINHOST_VST 0 #define JUCE_PLUGINHOST_AU 0 //#define JUCE_ONLY_BUILD_CORE_LIBRARY diff --git a/extras/juce demo/JuceLibraryCode/BinaryData.cpp b/extras/juce demo/JuceLibraryCode/BinaryData.cpp index 35aeeae544..f10c50bff6 100644 --- a/extras/juce demo/JuceLibraryCode/BinaryData.cpp +++ b/extras/juce demo/JuceLibraryCode/BinaryData.cpp @@ -8,11 +8,12 @@ #include "BinaryData.h" -const char* BinaryData::getNamedResource (const wchar_t* resourceName, int& numBytes) throw() +const char* BinaryData::getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() { int hash = 0; - while (*resourceName != 0) - hash = 31 * hash + *resourceName++; + if (resourceNameUTF8 != 0) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + *resourceNameUTF8++; switch (hash) { diff --git a/extras/juce demo/JuceLibraryCode/BinaryData.h b/extras/juce demo/JuceLibraryCode/BinaryData.h index 571257008e..149a924a98 100644 --- a/extras/juce demo/JuceLibraryCode/BinaryData.h +++ b/extras/juce demo/JuceLibraryCode/BinaryData.h @@ -24,5 +24,5 @@ namespace BinaryData // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). - const char* getNamedResource (const wchar_t* resourceName, int& dataSizeInBytes) throw(); + const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); } diff --git a/extras/juce demo/Source/demos/OpenGLDemo.cpp b/extras/juce demo/Source/demos/OpenGLDemo.cpp index cfc841c306..54820ce044 100644 --- a/extras/juce demo/Source/demos/OpenGLDemo.cpp +++ b/extras/juce demo/Source/demos/OpenGLDemo.cpp @@ -29,7 +29,7 @@ #include "../jucedemo_headers.h" -#if JUCE_OPENGL && ! JUCE_IPHONE +#if JUCE_OPENGL #if JUCE_WINDOWS #include @@ -38,6 +38,9 @@ #include #include #undef KeyPress +#elif JUCE_IPHONE + #include + #include #elif JUCE_MAC #include #elif JUCE_IPHONE @@ -58,6 +61,11 @@ class DemoOpenGLCanvas : public OpenGLComponent, public: DemoOpenGLCanvas() { +#if JUCE_IPHONE + // (On the iPhone, choose a format without a depth buffer) + setPixelFormat (OpenGLPixelFormat (8, 8, 0, 0)); +#endif + rotation = 0.0f; delta = 1.0f; @@ -106,6 +114,7 @@ public: // we'll use the opportunity to create the textures needed. void newOpenGLContextCreated() { +#if ! JUCE_IPHONE // (no need to call makeCurrentContextActive(), as that will have // been done for us before the method call). glClearColor (0.0f, 0.0f, 0.0f, 0.0f); @@ -133,6 +142,7 @@ public: glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); glHint (GL_POINT_SMOOTH_HINT, GL_NICEST); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +#endif } void mouseDrag (const MouseEvent& e) @@ -143,15 +153,32 @@ public: void renderOpenGL() { - glClearColor (0.8f, 0.0f, 0.4f, 0.0f); + glClearColor (0.25f, 0.25f, 0.25f, 0.0f); glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glMatrixMode(GL_PROJECTION); + glMatrixMode (GL_PROJECTION); glLoadIdentity(); + +#if JUCE_IPHONE + const GLfloat vertices[] = { -0.5f, -0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f }; + const GLubyte colours[] = { 255, 255, 0, 255, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 255, 255 }; + + glOrthof (-1.0f, 1.0f, -1.5f, 1.5f, -1.0f, 1.0f); + glMatrixMode (GL_MODELVIEW); + glRotatef (1.0f, 0.0f, 0.0f, 1.0f); + + glVertexPointer (2, GL_FLOAT, 0, vertices); + glEnableClientState (GL_VERTEX_ARRAY); + glColorPointer (4, GL_UNSIGNED_BYTE, 0, colours); + glEnableClientState (GL_COLOR_ARRAY); + + glDrawArrays (GL_TRIANGLE_STRIP, 0, 4); +#else + glOrtho (0.0, getWidth(), 0.0, getHeight(), 0, 1); glColor4f (1.0f, 1.0f, 1.0f, fabsf (::sinf (rotation / 100.0f))); - glBegin(GL_QUADS); + glBegin (GL_QUADS); glTexCoord2i (0, 0); glVertex2f (50.0f, getHeight() - 50.0f); glTexCoord2i (1, 0); glVertex2f (getWidth() - 50.0f, getHeight() - 50.0f); glTexCoord2i (1, 1); glVertex2f (getWidth() - 50.0f, 50.0f); @@ -222,6 +249,7 @@ public: glEnd(); glPopMatrix(); +#endif } void timerCallback() diff --git a/extras/juce demo/Source/jucedemo_headers.h b/extras/juce demo/Source/jucedemo_headers.h index 75b8d485f1..9c6ae288e6 100644 --- a/extras/juce demo/Source/jucedemo_headers.h +++ b/extras/juce demo/Source/jucedemo_headers.h @@ -29,12 +29,7 @@ // include the JUCE headers.. #include "../JuceLibraryCode/JuceHeader.h" -#if JUCE_IPHONE - #undef JUCE_USE_CAMERA - #undef JUCE_OPENGL -#endif - -#if JUCE_LINUX +#if JUCE_IPHONE || JUCE_LINUX #undef JUCE_USE_CAMERA #endif diff --git a/juce_Config.h b/juce_Config.h index 517cb0c3b0..7e31635d8f 100644 --- a/juce_Config.h +++ b/juce_Config.h @@ -105,6 +105,9 @@ #define JUCE_QUICKTIME 0 #endif +#if (JUCE_IPHONE || JUCE_LINUX) && JUCE_QUICKTIME + #undef JUCE_QUICKTIME +#endif //============================================================================= /** JUCE_OPENGL: Enables the OpenGLComponent class (available on all platforms). @@ -151,7 +154,7 @@ //============================================================================= /** JUCE_USE_CAMERA: Enables web-cam support using the CameraDevice class (Mac and Windows). */ -#if JUCE_QUICKTIME && ! defined (JUCE_USE_CAMERA) +#if (JUCE_QUICKTIME || JUCE_WINDOWS) && ! defined (JUCE_USE_CAMERA) // #define JUCE_USE_CAMERA 1 #endif diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index d2e97984e2..21c6caf1a1 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -199,6 +199,10 @@ #define JUCE_QUICKTIME 0 #endif +#if (JUCE_IPHONE || JUCE_LINUX) && JUCE_QUICKTIME + #undef JUCE_QUICKTIME +#endif + #ifndef JUCE_OPENGL #define JUCE_OPENGL 1 #endif @@ -219,7 +223,7 @@ #define JUCE_USE_CDREADER 1 #endif -#if JUCE_QUICKTIME && ! defined (JUCE_USE_CAMERA) +#if (JUCE_QUICKTIME || JUCE_WINDOWS) && ! defined (JUCE_USE_CAMERA) // #define JUCE_USE_CAMERA 1 #endif @@ -566,7 +570,12 @@ public: #import #import #import + #import #include + #if JUCE_OPENGL + #include + #include + #endif #else #import #import @@ -7135,10 +7144,6 @@ bool TemporaryFile::overwriteTargetFileWithTemporary() const Thread::sleep (100); } - - // Failed to overwrite the new file! Make sure you've not left any - // file streams hanging around when you call this method! - jassertfalse } else { @@ -17816,7 +17821,8 @@ PropertiesFile::PropertiesFile (const File& f, const int millisecondsBeforeSavin PropertiesFile::~PropertiesFile() { - saveIfNeeded(); + if (! saveIfNeeded()) + jassertfalse; } bool PropertiesFile::saveIfNeeded() @@ -74821,8 +74827,9 @@ private: bool wasShowing; }; -OpenGLComponent::OpenGLComponent() - : context (0), +OpenGLComponent::OpenGLComponent (const OpenGLType type_) + : type (type_), + context (0), contextToShareListsWith (0), needToUpdateViewport (true) { @@ -74903,9 +74910,7 @@ bool OpenGLComponent::makeCurrentContextActive() if (isShowing() && getTopLevelComponent()->getPeer() != 0) { - context = OpenGLContext::createContextForWindow (this, - preferredPixelFormat, - contextToShareListsWith); + context = createContext(); if (context != 0) { @@ -219236,18 +219241,13 @@ private: WindowedGLContext& operator= (const WindowedGLContext&); }; -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - WindowedGLContext* c = new WindowedGLContext (component, - contextToShareWith != 0 ? (HGLRC) contextToShareWith->getRawContext() : 0, - pixelFormat); + ScopedPointer c (new WindowedGLContext (this, + contextToShareListsWith != 0 ? (HGLRC) contextToShareListsWith->getRawContext() : 0, + preferredPixelFormat)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void* OpenGLComponent::getNativeWindowHandle() const @@ -234296,17 +234296,12 @@ private: WindowedGLContext& operator= (const WindowedGLContext&); }; -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - WindowedGLContext* c = new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (GLXContext) contextToShareWith->getRawContext() : 0); + ScopedPointer c (new WindowedGLContext (this, preferredPixelFormat, + contextToShareListsWith != 0 ? (GLXContext) contextToShareListsWith->getRawContext() : 0)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void juce_glViewport (const int w, const int h) @@ -240692,11 +240687,7 @@ UIViewComponentPeer::UIViewComponentPeer (Component* const component, fullScreen (false), insideDrawRect (false) { - CGRect r; - r.origin.x = 0; - r.origin.y = 0; - r.size.width = (float) component->getWidth(); - r.size.height = (float) component->getHeight(); + CGRect r = CGRectMake (0, 0, (float) component->getWidth(), (float) component->getHeight()); view = [[JuceUIView alloc] initWithOwner: this withFrame: r]; @@ -241890,12 +241881,10 @@ private: WindowedGLContext& operator= (const WindowedGLContext&); }; -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - ScopedPointer c (new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0)); + ScopedPointer c (new WindowedGLContext (this, preferredPixelFormat, + contextToShareListsWith != 0 ? (NSOpenGLContext*) contextToShareListsWith->getRawContext() : 0)); return (c->renderContext != 0) ? c.release() : 0; } @@ -241948,16 +241937,208 @@ void OpenGLPixelFormat::getAvailablePixelFormats (Component* /*component*/, #else -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +END_JUCE_NAMESPACE + +@interface JuceGLView : UIView { +} ++ (Class) layerClass; +@end + +@implementation JuceGLView ++ (Class) layerClass +{ + return [CAEAGLLayer class]; +} +@end + +BEGIN_JUCE_NAMESPACE + +class GLESContext : public OpenGLContext +{ +public: + GLESContext (UIViewComponentPeer* peer, + Component* const component_, + const OpenGLPixelFormat& pixelFormat_, + const GLESContext* const sharedContext, + NSUInteger apiType) + : component (component_), pixelFormat (pixelFormat_), glLayer (0), context (0), + useDepthBuffer (pixelFormat_.depthBufferBits > 0), frameBufferHandle (0), colorBufferHandle (0), + depthBufferHandle (0), lastWidth (0), lastHeight (0) + { + view = [[JuceGLView alloc] initWithFrame: CGRectMake (0, 0, 64, 64)]; + view.opaque = YES; + view.hidden = NO; + view.backgroundColor = [UIColor redColor]; + + glLayer = (CAEAGLLayer*) [view layer]; + [peer->view addSubview: view]; + + if (sharedContext != 0) + context = [[EAGLContext alloc] initWithAPI: apiType + sharegroup: [sharedContext->context sharegroup]]; + else + context = [[EAGLContext alloc] initWithAPI: apiType]; + + createGLBuffers(); + } + + ~GLESContext() + { + makeInactive(); + [context release]; + [view removeFromSuperview]; + [view release]; + freeGLBuffers(); + } + + bool makeActive() const throw() + { + jassert (context != 0); + + [EAGLContext setCurrentContext: context]; + glBindFramebufferOES (GL_FRAMEBUFFER_OES, frameBufferHandle); + return true; + } + + void swapBuffers() + { + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + [context presentRenderbuffer: GL_RENDERBUFFER_OES]; + } + + bool makeInactive() const throw() + { + return [EAGLContext setCurrentContext: nil]; + } + + bool isActive() const throw() + { + return [EAGLContext currentContext] == context; + } + + const OpenGLPixelFormat getPixelFormat() const { return pixelFormat; } + void* getRawContext() const throw() { return (void*) glLayer; } + + void updateWindowPosition (int x, int y, int w, int h, int outerWindowHeight) + { + view.frame = CGRectMake ((CGFloat) x, (CGFloat) y, (CGFloat) w, (CGFloat) h); + + if (lastWidth != w || lastHeight != h) + { + lastWidth = w; + lastHeight = h; + freeGLBuffers(); + createGLBuffers(); + } + } + + bool setSwapInterval (const int numFramesPerSwap) + { + numFrames = numFramesPerSwap; + return true; + } + + int getSwapInterval() const + { + return numFrames; + } + + void repaint() + { + } + + void createGLBuffers() + { + makeActive(); + + glGenFramebuffersOES (1, &frameBufferHandle); + glGenRenderbuffersOES (1, &colorBufferHandle); + glGenRenderbuffersOES (1, &depthBufferHandle); + + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + [context renderbufferStorage: GL_RENDERBUFFER_OES fromDrawable: glLayer]; + + GLint width, height; + glGetRenderbufferParameterivOES (GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &width); + glGetRenderbufferParameterivOES (GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &height); + + if (useDepthBuffer) + { + glBindRenderbufferOES (GL_RENDERBUFFER_OES, depthBufferHandle); + glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, width, height); + } + + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + + glBindFramebufferOES (GL_FRAMEBUFFER_OES, frameBufferHandle); + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorBufferHandle); + + if (useDepthBuffer) + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthBufferHandle); + + jassert (glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES) == GL_FRAMEBUFFER_COMPLETE_OES); + } + + void freeGLBuffers() + { + if (frameBufferHandle != 0) + { + glDeleteFramebuffersOES (1, &frameBufferHandle); + frameBufferHandle = 0; + } + + if (colorBufferHandle != 0) + { + glDeleteRenderbuffersOES (1, &colorBufferHandle); + colorBufferHandle = 0; + } + + if (depthBufferHandle != 0) + { + glDeleteRenderbuffersOES (1, &depthBufferHandle); + depthBufferHandle = 0; + } + } + + juce_UseDebuggingNewOperator + +private: + Component::SafePointer component; + OpenGLPixelFormat pixelFormat; + JuceGLView* view; + CAEAGLLayer* glLayer; + EAGLContext* context; + bool useDepthBuffer; + GLuint frameBufferHandle, colorBufferHandle, depthBufferHandle; + int numFrames; + int lastWidth, lastHeight; + + GLESContext (const GLESContext&); + GLESContext& operator= (const GLESContext&); +}; + +OpenGLContext* OpenGLComponent::createContext() +{ + ScopedAutoReleasePool pool; + UIViewComponentPeer* peer = dynamic_cast (getPeer()); + + if (peer != 0) + return new GLESContext (peer, this, preferredPixelFormat, + dynamic_cast (contextToShareListsWith), + type == openGLES2 ? kEAGLRenderingAPIOpenGLES2 : kEAGLRenderingAPIOpenGLES1); + return 0; } +void OpenGLPixelFormat::getAvailablePixelFormats (Component* /*component*/, + OwnedArray & /*results*/) +{ +} + void juce_glViewport (const int w, const int h) { - //glViewport (0, 0, w, h); + glViewport (0, 0, w, h); } #endif @@ -247252,12 +247433,10 @@ private: WindowedGLContext& operator= (const WindowedGLContext&); }; -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - ScopedPointer c (new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0)); + ScopedPointer c (new WindowedGLContext (this, preferredPixelFormat, + contextToShareListsWith != 0 ? (NSOpenGLContext*) contextToShareListsWith->getRawContext() : 0)); return (c->renderContext != 0) ? c.release() : 0; } @@ -247310,16 +247489,208 @@ void OpenGLPixelFormat::getAvailablePixelFormats (Component* /*component*/, #else -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +END_JUCE_NAMESPACE + +@interface JuceGLView : UIView { +} ++ (Class) layerClass; +@end + +@implementation JuceGLView ++ (Class) layerClass +{ + return [CAEAGLLayer class]; +} +@end + +BEGIN_JUCE_NAMESPACE + +class GLESContext : public OpenGLContext +{ +public: + GLESContext (UIViewComponentPeer* peer, + Component* const component_, + const OpenGLPixelFormat& pixelFormat_, + const GLESContext* const sharedContext, + NSUInteger apiType) + : component (component_), pixelFormat (pixelFormat_), glLayer (0), context (0), + useDepthBuffer (pixelFormat_.depthBufferBits > 0), frameBufferHandle (0), colorBufferHandle (0), + depthBufferHandle (0), lastWidth (0), lastHeight (0) + { + view = [[JuceGLView alloc] initWithFrame: CGRectMake (0, 0, 64, 64)]; + view.opaque = YES; + view.hidden = NO; + view.backgroundColor = [UIColor redColor]; + + glLayer = (CAEAGLLayer*) [view layer]; + [peer->view addSubview: view]; + + if (sharedContext != 0) + context = [[EAGLContext alloc] initWithAPI: apiType + sharegroup: [sharedContext->context sharegroup]]; + else + context = [[EAGLContext alloc] initWithAPI: apiType]; + + createGLBuffers(); + } + + ~GLESContext() + { + makeInactive(); + [context release]; + [view removeFromSuperview]; + [view release]; + freeGLBuffers(); + } + + bool makeActive() const throw() + { + jassert (context != 0); + + [EAGLContext setCurrentContext: context]; + glBindFramebufferOES (GL_FRAMEBUFFER_OES, frameBufferHandle); + return true; + } + + void swapBuffers() + { + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + [context presentRenderbuffer: GL_RENDERBUFFER_OES]; + } + + bool makeInactive() const throw() + { + return [EAGLContext setCurrentContext: nil]; + } + + bool isActive() const throw() + { + return [EAGLContext currentContext] == context; + } + + const OpenGLPixelFormat getPixelFormat() const { return pixelFormat; } + void* getRawContext() const throw() { return (void*) glLayer; } + + void updateWindowPosition (int x, int y, int w, int h, int outerWindowHeight) + { + view.frame = CGRectMake ((CGFloat) x, (CGFloat) y, (CGFloat) w, (CGFloat) h); + + if (lastWidth != w || lastHeight != h) + { + lastWidth = w; + lastHeight = h; + freeGLBuffers(); + createGLBuffers(); + } + } + + bool setSwapInterval (const int numFramesPerSwap) + { + numFrames = numFramesPerSwap; + return true; + } + + int getSwapInterval() const + { + return numFrames; + } + + void repaint() + { + } + + void createGLBuffers() + { + makeActive(); + + glGenFramebuffersOES (1, &frameBufferHandle); + glGenRenderbuffersOES (1, &colorBufferHandle); + glGenRenderbuffersOES (1, &depthBufferHandle); + + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + [context renderbufferStorage: GL_RENDERBUFFER_OES fromDrawable: glLayer]; + + GLint width, height; + glGetRenderbufferParameterivOES (GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &width); + glGetRenderbufferParameterivOES (GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &height); + + if (useDepthBuffer) + { + glBindRenderbufferOES (GL_RENDERBUFFER_OES, depthBufferHandle); + glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, width, height); + } + + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + + glBindFramebufferOES (GL_FRAMEBUFFER_OES, frameBufferHandle); + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorBufferHandle); + + if (useDepthBuffer) + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthBufferHandle); + + jassert (glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES) == GL_FRAMEBUFFER_COMPLETE_OES); + } + + void freeGLBuffers() + { + if (frameBufferHandle != 0) + { + glDeleteFramebuffersOES (1, &frameBufferHandle); + frameBufferHandle = 0; + } + + if (colorBufferHandle != 0) + { + glDeleteRenderbuffersOES (1, &colorBufferHandle); + colorBufferHandle = 0; + } + + if (depthBufferHandle != 0) + { + glDeleteRenderbuffersOES (1, &depthBufferHandle); + depthBufferHandle = 0; + } + } + + juce_UseDebuggingNewOperator + +private: + Component::SafePointer component; + OpenGLPixelFormat pixelFormat; + JuceGLView* view; + CAEAGLLayer* glLayer; + EAGLContext* context; + bool useDepthBuffer; + GLuint frameBufferHandle, colorBufferHandle, depthBufferHandle; + int numFrames; + int lastWidth, lastHeight; + + GLESContext (const GLESContext&); + GLESContext& operator= (const GLESContext&); +}; + +OpenGLContext* OpenGLComponent::createContext() +{ + ScopedAutoReleasePool pool; + UIViewComponentPeer* peer = dynamic_cast (getPeer()); + + if (peer != 0) + return new GLESContext (peer, this, preferredPixelFormat, + dynamic_cast (contextToShareListsWith), + type == openGLES2 ? kEAGLRenderingAPIOpenGLES2 : kEAGLRenderingAPIOpenGLES1); + return 0; } +void OpenGLPixelFormat::getAvailablePixelFormats (Component* /*component*/, + OwnedArray & /*results*/) +{ +} + void juce_glViewport (const int w, const int h) { - //glViewport (0, 0, w, h); + glViewport (0, 0, w, h); } #endif @@ -251607,7 +251978,11 @@ MidiInput* MidiInput::openDevice (int index, MidiInputCallback* callback) /*** Start of inlined file: juce_mac_CameraDevice.mm ***/ // (This file gets included by juce_mac_NativeCode.mm, rather than being // compiled on its own). -#if JUCE_INCLUDED_FILE && JUCE_QUICKTIME && JUCE_USE_CAMERA +#if JUCE_INCLUDED_FILE && JUCE_USE_CAMERA + +#if ! JUCE_QUICKTIME + #error "On the Mac, cameras use Quicktime, so if you turn on JUCE_USE_CAMERA, you also need to enable JUCE_QUICKTIME" +#endif #define QTCaptureCallbackDelegate MakeObjCClassName(QTCaptureCallbackDelegate) diff --git a/juce_amalgamated.h b/juce_amalgamated.h index d63264620e..5351e6d9be 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -43,7 +43,7 @@ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 51 -#define JUCE_BUILDNUMBER 11 +#define JUCE_BUILDNUMBER 12 #define JUCE_VERSION ((JUCE_MAJOR_VERSION << 16) + (JUCE_MINOR_VERSION << 8) + JUCE_BUILDNUMBER) @@ -220,6 +220,10 @@ #define JUCE_QUICKTIME 0 #endif +#if (JUCE_IPHONE || JUCE_LINUX) && JUCE_QUICKTIME + #undef JUCE_QUICKTIME +#endif + #ifndef JUCE_OPENGL #define JUCE_OPENGL 1 #endif @@ -240,7 +244,7 @@ #define JUCE_USE_CDREADER 1 #endif -#if JUCE_QUICKTIME && ! defined (JUCE_USE_CAMERA) +#if (JUCE_QUICKTIME || JUCE_WINDOWS) && ! defined (JUCE_USE_CAMERA) // #define JUCE_USE_CAMERA 1 #endif @@ -26746,10 +26750,6 @@ public: virtual void* getRawContext() const throw() = 0; - static OpenGLContext* createContextForWindow (Component* componentToDrawTo, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith); - static OpenGLContext* getCurrentContext(); juce_UseDebuggingNewOperator @@ -26762,7 +26762,17 @@ class JUCE_API OpenGLComponent : public Component { public: - OpenGLComponent(); + enum OpenGLType + { + openGLDefault = 0, + +#if JUCE_IPHONE + openGLES1, /**< On the iPhone, this selects openGL ES 1.0 */ + openGLES2 /**< On the iPhone, this selects openGL ES 2.0 */ +#endif + }; + + OpenGLComponent (OpenGLType type = openGLDefault); ~OpenGLComponent(); @@ -26799,6 +26809,8 @@ public: juce_UseDebuggingNewOperator private: + const OpenGLType type; + class OpenGLComponentWatcher; friend class OpenGLComponentWatcher; friend class ScopedPointer ; @@ -26811,6 +26823,7 @@ private: OpenGLPixelFormat preferredPixelFormat; bool needToUpdateViewport; + OpenGLContext* createContext(); void deleteContext(); void updateContextPosition(); void internalRepaint (int x, int y, int w, int h); diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h index d979342ddb..121f6d27d8 100644 --- a/src/core/juce_StandardHeader.h +++ b/src/core/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 51 -#define JUCE_BUILDNUMBER 11 +#define JUCE_BUILDNUMBER 12 /** Current Juce version number. diff --git a/src/gui/components/special/juce_OpenGLComponent.cpp b/src/gui/components/special/juce_OpenGLComponent.cpp index be13fa0d16..90952eca55 100644 --- a/src/gui/components/special/juce_OpenGLComponent.cpp +++ b/src/gui/components/special/juce_OpenGLComponent.cpp @@ -177,8 +177,9 @@ private: }; //============================================================================== -OpenGLComponent::OpenGLComponent() - : context (0), +OpenGLComponent::OpenGLComponent (const OpenGLType type_) + : type (type_), + context (0), contextToShareListsWith (0), needToUpdateViewport (true) { @@ -259,9 +260,7 @@ bool OpenGLComponent::makeCurrentContextActive() if (isShowing() && getTopLevelComponent()->getPeer() != 0) { - context = OpenGLContext::createContextForWindow (this, - preferredPixelFormat, - contextToShareListsWith); + context = createContext(); if (context != 0) { diff --git a/src/gui/components/special/juce_OpenGLComponent.h b/src/gui/components/special/juce_OpenGLComponent.h index 6f8ad9ec1e..093a74133c 100644 --- a/src/gui/components/special/juce_OpenGLComponent.h +++ b/src/gui/components/special/juce_OpenGLComponent.h @@ -146,18 +146,6 @@ public: */ virtual void* getRawContext() const throw() = 0; - //============================================================================== - /** This tries to create a context that can be used for drawing into the - area occupied by the specified component. - - Note that you probably shouldn't use this method directly unless you know what - you're doing - the OpenGLComponent calls this and manages the context for you. - */ - static OpenGLContext* createContextForWindow (Component* componentToDrawTo, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith); - - //============================================================================== /** Returns the context that's currently in active use by the calling thread. @@ -185,9 +173,21 @@ class JUCE_API OpenGLComponent : public Component { public: //============================================================================== - /** Creates an OpenGLComponent. + /** Used to select the type of openGL API to use, if more than one choice is available + on a particular platform. */ - OpenGLComponent(); + enum OpenGLType + { + openGLDefault = 0, + +#if JUCE_IPHONE + openGLES1, /**< On the iPhone, this selects openGL ES 1.0 */ + openGLES2 /**< On the iPhone, this selects openGL ES 2.0 */ +#endif + }; + + /** Creates an OpenGLComponent. */ + OpenGLComponent (OpenGLType type = openGLDefault); /** Destructor. */ ~OpenGLComponent(); @@ -333,6 +333,8 @@ public: juce_UseDebuggingNewOperator private: + const OpenGLType type; + class OpenGLComponentWatcher; friend class OpenGLComponentWatcher; friend class ScopedPointer ; @@ -345,6 +347,7 @@ private: OpenGLPixelFormat preferredPixelFormat; bool needToUpdateViewport; + OpenGLContext* createContext(); void deleteContext(); void updateContextPosition(); void internalRepaint (int x, int y, int w, int h); diff --git a/src/io/files/juce_TemporaryFile.cpp b/src/io/files/juce_TemporaryFile.cpp index e59cb3ad0a..7aa2c93caa 100644 --- a/src/io/files/juce_TemporaryFile.cpp +++ b/src/io/files/juce_TemporaryFile.cpp @@ -95,10 +95,6 @@ bool TemporaryFile::overwriteTargetFileWithTemporary() const Thread::sleep (100); } - - // Failed to overwrite the new file! Make sure you've not left any - // file streams hanging around when you call this method! - jassertfalse } else { diff --git a/src/native/linux/juce_linux_Windowing.cpp b/src/native/linux/juce_linux_Windowing.cpp index e24a2d7bb9..6e73f8db3c 100644 --- a/src/native/linux/juce_linux_Windowing.cpp +++ b/src/native/linux/juce_linux_Windowing.cpp @@ -3349,17 +3349,12 @@ private: }; //============================================================================== -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - WindowedGLContext* c = new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (GLXContext) contextToShareWith->getRawContext() : 0); + ScopedPointer c (new WindowedGLContext (this, preferredPixelFormat, + contextToShareListsWith != 0 ? (GLXContext) contextToShareListsWith->getRawContext() : 0)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void juce_glViewport (const int w, const int h) diff --git a/src/native/mac/juce_iphone_UIViewComponentPeer.mm b/src/native/mac/juce_iphone_UIViewComponentPeer.mm index 1e5a1c1cc0..5950c0020c 100644 --- a/src/native/mac/juce_iphone_UIViewComponentPeer.mm +++ b/src/native/mac/juce_iphone_UIViewComponentPeer.mm @@ -283,11 +283,7 @@ UIViewComponentPeer::UIViewComponentPeer (Component* const component, fullScreen (false), insideDrawRect (false) { - CGRect r; - r.origin.x = 0; - r.origin.y = 0; - r.size.width = (float) component->getWidth(); - r.size.height = (float) component->getHeight(); + CGRect r = CGRectMake (0, 0, (float) component->getWidth(), (float) component->getHeight()); view = [[JuceUIView alloc] initWithOwner: this withFrame: r]; diff --git a/src/native/mac/juce_mac_CameraDevice.mm b/src/native/mac/juce_mac_CameraDevice.mm index 26162b9e40..f4a7952264 100644 --- a/src/native/mac/juce_mac_CameraDevice.mm +++ b/src/native/mac/juce_mac_CameraDevice.mm @@ -25,7 +25,11 @@ // (This file gets included by juce_mac_NativeCode.mm, rather than being // compiled on its own). -#if JUCE_INCLUDED_FILE && JUCE_QUICKTIME && JUCE_USE_CAMERA +#if JUCE_INCLUDED_FILE && JUCE_USE_CAMERA + +#if ! JUCE_QUICKTIME + #error "On the Mac, cameras use Quicktime, so if you turn on JUCE_USE_CAMERA, you also need to enable JUCE_QUICKTIME" +#endif //============================================================================== #define QTCaptureCallbackDelegate MakeObjCClassName(QTCaptureCallbackDelegate) diff --git a/src/native/mac/juce_mac_NativeIncludes.h b/src/native/mac/juce_mac_NativeIncludes.h index 19fd3ed9b0..d183f24380 100644 --- a/src/native/mac/juce_mac_NativeIncludes.h +++ b/src/native/mac/juce_mac_NativeIncludes.h @@ -44,7 +44,12 @@ #import #import #import + #import #include + #if JUCE_OPENGL + #include + #include + #endif #else #import #import diff --git a/src/native/mac/juce_mac_OpenGLComponent.mm b/src/native/mac/juce_mac_OpenGLComponent.mm index a1961a0486..b5db04dc15 100644 --- a/src/native/mac/juce_mac_OpenGLComponent.mm +++ b/src/native/mac/juce_mac_OpenGLComponent.mm @@ -258,12 +258,10 @@ private: }; //============================================================================== -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - ScopedPointer c (new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0)); + ScopedPointer c (new WindowedGLContext (this, preferredPixelFormat, + contextToShareListsWith != 0 ? (NSOpenGLContext*) contextToShareListsWith->getRawContext() : 0)); return (c->renderContext != 0) ? c.release() : 0; } @@ -317,16 +315,213 @@ void OpenGLPixelFormat::getAvailablePixelFormats (Component* /*component*/, #else //============================================================================== -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +END_JUCE_NAMESPACE + +@interface JuceGLView : UIView { +} ++ (Class) layerClass; +@end + +@implementation JuceGLView ++ (Class) layerClass +{ + return [CAEAGLLayer class]; +} +@end + +BEGIN_JUCE_NAMESPACE + +//============================================================================== +class GLESContext : public OpenGLContext +{ +public: + GLESContext (UIViewComponentPeer* peer, + Component* const component_, + const OpenGLPixelFormat& pixelFormat_, + const GLESContext* const sharedContext, + NSUInteger apiType) + : component (component_), pixelFormat (pixelFormat_), glLayer (0), context (0), + useDepthBuffer (pixelFormat_.depthBufferBits > 0), frameBufferHandle (0), colorBufferHandle (0), + depthBufferHandle (0), lastWidth (0), lastHeight (0) + { + view = [[JuceGLView alloc] initWithFrame: CGRectMake (0, 0, 64, 64)]; + view.opaque = YES; + view.hidden = NO; + view.backgroundColor = [UIColor redColor]; + + glLayer = (CAEAGLLayer*) [view layer]; + [peer->view addSubview: view]; + + if (sharedContext != 0) + context = [[EAGLContext alloc] initWithAPI: apiType + sharegroup: [sharedContext->context sharegroup]]; + else + context = [[EAGLContext alloc] initWithAPI: apiType]; + + createGLBuffers(); + } + + ~GLESContext() + { + makeInactive(); + [context release]; + [view removeFromSuperview]; + [view release]; + freeGLBuffers(); + } + + bool makeActive() const throw() + { + jassert (context != 0); + + [EAGLContext setCurrentContext: context]; + glBindFramebufferOES (GL_FRAMEBUFFER_OES, frameBufferHandle); + return true; + } + + void swapBuffers() + { + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + [context presentRenderbuffer: GL_RENDERBUFFER_OES]; + } + + bool makeInactive() const throw() + { + return [EAGLContext setCurrentContext: nil]; + } + + bool isActive() const throw() + { + return [EAGLContext currentContext] == context; + } + + const OpenGLPixelFormat getPixelFormat() const { return pixelFormat; } + void* getRawContext() const throw() { return (void*) glLayer; } + + void updateWindowPosition (int x, int y, int w, int h, int outerWindowHeight) + { + view.frame = CGRectMake ((CGFloat) x, (CGFloat) y, (CGFloat) w, (CGFloat) h); + + if (lastWidth != w || lastHeight != h) + { + lastWidth = w; + lastHeight = h; + freeGLBuffers(); + createGLBuffers(); + } + } + + bool setSwapInterval (const int numFramesPerSwap) + { + numFrames = numFramesPerSwap; + return true; + } + + int getSwapInterval() const + { + return numFrames; + } + + void repaint() + { + } + + //============================================================================== + void createGLBuffers() + { + makeActive(); + + glGenFramebuffersOES (1, &frameBufferHandle); + glGenRenderbuffersOES (1, &colorBufferHandle); + glGenRenderbuffersOES (1, &depthBufferHandle); + + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + [context renderbufferStorage: GL_RENDERBUFFER_OES fromDrawable: glLayer]; + + GLint width, height; + glGetRenderbufferParameterivOES (GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &width); + glGetRenderbufferParameterivOES (GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &height); + + if (useDepthBuffer) + { + glBindRenderbufferOES (GL_RENDERBUFFER_OES, depthBufferHandle); + glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, width, height); + } + + glBindRenderbufferOES (GL_RENDERBUFFER_OES, colorBufferHandle); + + glBindFramebufferOES (GL_FRAMEBUFFER_OES, frameBufferHandle); + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorBufferHandle); + + if (useDepthBuffer) + glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthBufferHandle); + + jassert (glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES) == GL_FRAMEBUFFER_COMPLETE_OES); + } + + void freeGLBuffers() + { + if (frameBufferHandle != 0) + { + glDeleteFramebuffersOES (1, &frameBufferHandle); + frameBufferHandle = 0; + } + + if (colorBufferHandle != 0) + { + glDeleteRenderbuffersOES (1, &colorBufferHandle); + colorBufferHandle = 0; + } + + if (depthBufferHandle != 0) + { + glDeleteRenderbuffersOES (1, &depthBufferHandle); + depthBufferHandle = 0; + } + } + + //============================================================================== + juce_UseDebuggingNewOperator + +private: + Component::SafePointer component; + OpenGLPixelFormat pixelFormat; + JuceGLView* view; + CAEAGLLayer* glLayer; + EAGLContext* context; + bool useDepthBuffer; + GLuint frameBufferHandle, colorBufferHandle, depthBufferHandle; + int numFrames; + int lastWidth, lastHeight; + + //============================================================================== + GLESContext (const GLESContext&); + GLESContext& operator= (const GLESContext&); +}; + + +OpenGLContext* OpenGLComponent::createContext() +{ + ScopedAutoReleasePool pool; + UIViewComponentPeer* peer = dynamic_cast (getPeer()); + + if (peer != 0) + return new GLESContext (peer, this, preferredPixelFormat, + dynamic_cast (contextToShareListsWith), + type == openGLES2 ? kEAGLRenderingAPIOpenGLES2 : kEAGLRenderingAPIOpenGLES1); + return 0; } +void OpenGLPixelFormat::getAvailablePixelFormats (Component* /*component*/, + OwnedArray & /*results*/) +{ +} + void juce_glViewport (const int w, const int h) { - //glViewport (0, 0, w, h); + glViewport (0, 0, w, h); } #endif diff --git a/src/native/windows/juce_win32_OpenGLComponent.cpp b/src/native/windows/juce_win32_OpenGLComponent.cpp index 610e55a167..a77d2af953 100644 --- a/src/native/windows/juce_win32_OpenGLComponent.cpp +++ b/src/native/windows/juce_win32_OpenGLComponent.cpp @@ -498,18 +498,13 @@ private: }; //============================================================================== -OpenGLContext* OpenGLContext::createContextForWindow (Component* const component, - const OpenGLPixelFormat& pixelFormat, - const OpenGLContext* const contextToShareWith) +OpenGLContext* OpenGLComponent::createContext() { - WindowedGLContext* c = new WindowedGLContext (component, - contextToShareWith != 0 ? (HGLRC) contextToShareWith->getRawContext() : 0, - pixelFormat); + ScopedPointer c (new WindowedGLContext (this, + contextToShareListsWith != 0 ? (HGLRC) contextToShareListsWith->getRawContext() : 0, + preferredPixelFormat)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void* OpenGLComponent::getNativeWindowHandle() const diff --git a/src/utilities/juce_PropertiesFile.cpp b/src/utilities/juce_PropertiesFile.cpp index cd9af0ad06..22d740c981 100644 --- a/src/utilities/juce_PropertiesFile.cpp +++ b/src/utilities/juce_PropertiesFile.cpp @@ -139,7 +139,8 @@ PropertiesFile::PropertiesFile (const File& f, const int millisecondsBeforeSavin PropertiesFile::~PropertiesFile() { - saveIfNeeded(); + if (! saveIfNeeded()) + jassertfalse; } bool PropertiesFile::saveIfNeeded()