diff --git a/examples/AUv3Synth/Source/AUv3SynthEditor.h b/examples/AUv3Synth/Source/AUv3SynthEditor.h index e70271bcc0..c476f9567d 100644 --- a/examples/AUv3Synth/Source/AUv3SynthEditor.h +++ b/examples/AUv3Synth/Source/AUv3SynthEditor.h @@ -9,9 +9,9 @@ //============================================================================== class AUv3SynthEditor : public AudioProcessorEditor, - public ButtonListener, - public Slider::Listener, - private Timer + public ButtonListener, + public Slider::Listener, + private Timer { public: //============================================================================== diff --git a/examples/AUv3Synth/Source/MaterialLookAndFeel.h b/examples/AUv3Synth/Source/MaterialLookAndFeel.h index 0b3a0bc6bf..9558c05793 100644 --- a/examples/AUv3Synth/Source/MaterialLookAndFeel.h +++ b/examples/AUv3Synth/Source/MaterialLookAndFeel.h @@ -9,7 +9,7 @@ #include "../JuceLibraryCode/JuceHeader.h" //============================================================================== -class MaterialLookAndFeel : public LookAndFeel_V3 +class MaterialLookAndFeel : public LookAndFeel_V4 { public: //============================================================================== @@ -24,16 +24,10 @@ public: void drawButtonBackground (Graphics& g, Button& button, const Colour& /*backgroundColour*/, - bool isMouseOverButton, + bool /*isMouseOverButton*/, bool isButtonDown) override { - ignoreUnused (isMouseOverButton); - - const int width = button.getWidth(); - const int height = button.getHeight(); - - Rectangle buttonRect (0, 0, width, height); - buttonRect.reduce (haloRadius, 0.0f); + const auto buttonRect = button.getLocalBounds().toFloat(); if (isButtonDown) g.setColour (brightButtonColour.withAlpha (0.7f)); @@ -58,7 +52,7 @@ public: else g.setColour (backgroundColour); - g.drawFittedText (button.getButtonText(), 0, 1, + g.drawFittedText (button.getButtonText(), 0, 0, button.getWidth(), button.getHeight(), Justification::centred, 2); diff --git a/examples/AnimationAppExample/Source/Main.cpp b/examples/AnimationAppExample/Source/Main.cpp index fe21b6842d..6e0956e1a0 100644 --- a/examples/AnimationAppExample/Source/Main.cpp +++ b/examples/AnimationAppExample/Source/Main.cpp @@ -62,7 +62,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/AnimationAppExample/Source/MainComponent.cpp b/examples/AnimationAppExample/Source/MainComponent.cpp index 13784487b7..589c530263 100644 --- a/examples/AnimationAppExample/Source/MainComponent.cpp +++ b/examples/AnimationAppExample/Source/MainComponent.cpp @@ -32,9 +32,9 @@ public: void paint (Graphics& g) override { // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); - g.setColour (Colours::white); + g.setColour (getLookAndFeel().findColour (Slider::thumbColourId)); const int fishLength = 15; Path spinePath; diff --git a/examples/AudioAppExample/Source/Main.cpp b/examples/AudioAppExample/Source/Main.cpp index 62a3610ad0..f834669118 100644 --- a/examples/AudioAppExample/Source/Main.cpp +++ b/examples/AudioAppExample/Source/Main.cpp @@ -62,7 +62,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/AudioAppExample/Source/MainComponent.cpp b/examples/AudioAppExample/Source/MainComponent.cpp index 3b3041fadc..fd9fcc73fb 100644 --- a/examples/AudioAppExample/Source/MainComponent.cpp +++ b/examples/AudioAppExample/Source/MainComponent.cpp @@ -76,7 +76,7 @@ public: void paint (Graphics& g) override { // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); const float centreY = getHeight() / 2.0f; const float radius = amplitude * 200.0f; @@ -95,7 +95,7 @@ public: wavePath.lineTo (x, centreY + amplitude * getHeight() * 2.0f * std::sin (x * frequency * 0.0001f)); - g.setColour (Colours::grey); + g.setColour (getLookAndFeel().findColour (Slider::thumbColourId)); g.strokePath (wavePath, PathStrokeType (2.0f)); } diff --git a/examples/BLOCKS/BlocksDrawing/Source/Main.cpp b/examples/BLOCKS/BlocksDrawing/Source/Main.cpp index f2444eee78..9e5b2cb14c 100644 --- a/examples/BLOCKS/BlocksDrawing/Source/Main.cpp +++ b/examples/BLOCKS/BlocksDrawing/Source/Main.cpp @@ -21,7 +21,7 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + getLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h b/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h index 0fd0a116bf..1c9afcce9d 100644 --- a/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h +++ b/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h @@ -148,7 +148,6 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::lightgrey); } void resized() override diff --git a/examples/BLOCKS/BlocksMonitor/Source/Main.cpp b/examples/BLOCKS/BlocksMonitor/Source/Main.cpp index 6163196518..24a9e8c390 100644 --- a/examples/BLOCKS/BlocksMonitor/Source/Main.cpp +++ b/examples/BLOCKS/BlocksMonitor/Source/Main.cpp @@ -21,7 +21,7 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + getLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h b/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h index fde65ccbce..205b2ed3b2 100644 --- a/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h +++ b/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h @@ -46,7 +46,6 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::lightgrey); } void resized() override diff --git a/examples/BLOCKS/BlocksSynth/Source/Main.cpp b/examples/BLOCKS/BlocksSynth/Source/Main.cpp index a0fcaab3fb..cb8eb1b646 100644 --- a/examples/BLOCKS/BlocksSynth/Source/Main.cpp +++ b/examples/BLOCKS/BlocksSynth/Source/Main.cpp @@ -20,7 +20,7 @@ public: struct MainWindow : public DocumentWindow { MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/BLOCKS/BlocksSynth/Source/MainComponent.h b/examples/BLOCKS/BlocksSynth/Source/MainComponent.h index fb7440ab2f..7bcbfd3253 100644 --- a/examples/BLOCKS/BlocksSynth/Source/MainComponent.h +++ b/examples/BLOCKS/BlocksSynth/Source/MainComponent.h @@ -100,7 +100,7 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::lightgrey); + g.setColour (getLookAndFeel().findColour (Label::textColourId)); g.drawText ("Connect a Lightpad Block to play.", getLocalBounds(), Justification::centred, false); } diff --git a/examples/BouncingBallWavetableDemo/Source/Main.cpp b/examples/BouncingBallWavetableDemo/Source/Main.cpp index 3c10a5275b..2da27fa1d9 100644 --- a/examples/BouncingBallWavetableDemo/Source/Main.cpp +++ b/examples/BouncingBallWavetableDemo/Source/Main.cpp @@ -58,7 +58,10 @@ public: { public: MainWindow (const String& name) - : DocumentWindow (name, Colours::lightgrey, DocumentWindow::allButtons) + : DocumentWindow (name, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), + DocumentWindow::allButtons) { setUsingNativeTitleBar (true); setContentOwned (createMainContentComponent(), true); diff --git a/examples/BouncingBallWavetableDemo/Source/MainComponent.cpp b/examples/BouncingBallWavetableDemo/Source/MainComponent.cpp index 2f1aecec32..26310858a7 100644 --- a/examples/BouncingBallWavetableDemo/Source/MainComponent.cpp +++ b/examples/BouncingBallWavetableDemo/Source/MainComponent.cpp @@ -84,7 +84,7 @@ public: void paint (Graphics& g) override { // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); Point nextPos = pos + delta; @@ -111,7 +111,7 @@ public: } // draw a circle - g.setColour (Colours::grey); + g.setColour (getLookAndFeel().findColour (Slider::thumbColourId)); g.fillEllipse (pos.x, pos.y, 20, 20); drawWaveform (g, 20.0f, 0); diff --git a/examples/ComponentTutorialExample/Source/Main.cpp b/examples/ComponentTutorialExample/Source/Main.cpp index fc240f432a..de17424658 100644 --- a/examples/ComponentTutorialExample/Source/Main.cpp +++ b/examples/ComponentTutorialExample/Source/Main.cpp @@ -62,7 +62,7 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/ComponentTutorialExample/Source/MainComponent.cpp b/examples/ComponentTutorialExample/Source/MainComponent.cpp index 3fb7dcff17..01565c0665 100644 --- a/examples/ComponentTutorialExample/Source/MainComponent.cpp +++ b/examples/ComponentTutorialExample/Source/MainComponent.cpp @@ -25,7 +25,6 @@ MainContentComponent::~MainContentComponent() void MainContentComponent::paint (Graphics& g) { - g.fillAll (Colour (0xff001F36)); } void MainContentComponent::resized() diff --git a/examples/ComponentTutorialExample/Source/ToggleLightComponent.h b/examples/ComponentTutorialExample/Source/ToggleLightComponent.h index b76a867f5f..ffd98ead8c 100644 --- a/examples/ComponentTutorialExample/Source/ToggleLightComponent.h +++ b/examples/ComponentTutorialExample/Source/ToggleLightComponent.h @@ -24,12 +24,10 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::black); - // Only shows the red ellipse when the button is on. if (isOn) { - g.setColour (Colours::red); + g.setColour (getLookAndFeel().findColour (Slider::thumbColourId)); g.fillEllipse (getLocalBounds().toFloat()); } } diff --git a/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj b/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj index 252ac7e0f5..37b2196fa4 100644 --- a/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj +++ b/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj @@ -79,112 +79,1366 @@ D1E75C36990645CC17E58511 = {isa = PBXBuildFile; fileRef = 652A128D7DE1672618DB9521; }; 74C9ED42D599D90581025EDF = {isa = PBXBuildFile; fileRef = EB93700805DBEBF58092DC3C; }; 8A222F52E0807B8E934447BF = {isa = PBXBuildFile; fileRef = 16C0655B97D6D3B992D6733E; }; + 002574EE2F13E1BBD52E75D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MovieComponent.h"; path = "../../../../modules/juce_video/playback/juce_MovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 005027EA86FFAEC19D634730 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 00869109FF554F8DB553761D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 009E483D2993902748AEEFE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_16.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = "SOURCE_ROOT"; }; + 00CC1BBABB9EEEBABF0D34ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + 00DE0C93FE719DC72E20A63B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; 014BF4937EAC7618FB1BCC69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/Demos/CameraDemo.cpp; sourceTree = "SOURCE_ROOT"; }; 016565008F3FF4F39192ACA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 019352D78DBBEE2AC10ED6BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 01AD7BA1E1B20309DC969EE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; 01C6528C4A0646873D4C3429 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioLatencyDemo.cpp; path = ../../Source/Demos/AudioLatencyDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 01F2CB80C1B14450528F0FA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 01F49D3FD943424005FB512F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02659911BD886D2E8431B912 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + 02ABF8C447E1A47845F6027D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02F0BF69062E8D9583F13C83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02F56486F8C6CC64CCF96A24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 030B047C95BEA80469F28E35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2EdgeAndCircleContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2EdgeAndCircleContact.h"; sourceTree = "SOURCE_ROOT"; }; 033BE48C56ED09055876AFB9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 0349FEE5DA18067918536934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; 034AA69C5B2B4882EEFAD046 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 03707F35E5DB4BC6F1FAC8D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + 03CB1183519203936C33025A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 03E5796BC74758EBDBD49081 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 03EC0E5A647E50B369E50BBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; 0443FA799896F7D084DED278 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WavefrontObjParser.h; path = ../../Source/Demos/WavefrontObjParser.h; sourceTree = "SOURCE_ROOT"; }; + 0453D6FB24F82E92A6BEDA49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 047E385F21CC5AD6238B120E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + 04ABAB5151BDC73BF265167F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdtrans.c"; sourceTree = "SOURCE_ROOT"; }; + 04C5FED8AEA4109C4ED07111 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 057A64839BFE9AD0864752C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; + 05AFEDB1F65A8C2C8E9620E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + 05DCF1D105D327102D02ADD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; + 0615C44ADB0F1EB55726FC33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2RopeJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2RopeJoint.h"; sourceTree = "SOURCE_ROOT"; }; + 063357A85BA244642BE1274A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 0638493DAFCB6148E77159B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 06496C804633EAB2003E5B19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 068183416EF5422C7AD0F238 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + 06903FD63E508771C576431D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + 06AE69217982DB82E0F47554 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06B6D19CE5691310DEF50DBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 06BD2631BF3C52F26B9981E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; + 06C06A48BB269847BA36AA3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2ContactSolver.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2ContactSolver.h"; sourceTree = "SOURCE_ROOT"; }; + 06D514A7B2556A07D2398433 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuntimePermissions.cpp"; path = "../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06DE336A39A9FEC47A8C2F06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06FACF171E0DE0AC6318AE4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + 0732CB9291291C9854197B28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Box2D.h; path = "../../../../modules/juce_box2d/box2d/Box2D.h"; sourceTree = "SOURCE_ROOT"; }; + 07425F710A1C4AC479BE56C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; }; 07553F86ADDF3CE278CBDE66 = {isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Resources/demo table data.xml"; sourceTree = "SOURCE_ROOT"; }; + 08085F4282FC26BA8D377921 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 081472DAF6208CF7FDD4466B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0876934F047839205147DB99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 088687334FC51A5136881578 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 088BC49A72D9304769B2CBFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 08F27F768CB242347E402318 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = alloc.h; path = "../../../../modules/juce_audio_formats/codecs/flac/alloc.h"; sourceTree = "SOURCE_ROOT"; }; + 09D51FD6DE5DF526BB36B4D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 09EB2AA32041290412E00D8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 0A189F6BF4FCE2D3FBF6FF4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitrate.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c"; sourceTree = "SOURCE_ROOT"; }; + 0A25E42359372E51ADB0123C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0A912DDCDF5336D520DF06F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; + 0AC78EC782815C8325A3AC8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; 0AF54289591CEBFBC19EDB40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/Demos/WebBrowserDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 0B08631AE709ADF41AB3B780 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + 0B3662D1FFE3102476FD60D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + 0B53DC9C735B3B307C65836A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ClangBugWorkaround.h"; path = "../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h"; sourceTree = "SOURCE_ROOT"; }; + 0B543B1E23AC1D74483632D2 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Ogg Vorbis Licence.txt"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt"; sourceTree = "SOURCE_ROOT"; }; + 0B54F1B0CB17ABD0C3E40658 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + 0B5B86BA8E4C60B999A45034 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; + 0B680B64FE7DE50C3E1A6B28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + 0B82DF796E577809EB03B874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LAMEEncoderAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0B9867D5674933AF753A2CF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0BD502F6196E1FE7D9888A1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + 0C13B04875D9B8903BCE30B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "lookup_data.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h"; sourceTree = "SOURCE_ROOT"; }; + 0C6B7C49C4630C18F995C738 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 0C73944DB76DB5DA61210A33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; 0CD847B28F63BAE0AB55CE37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 0CF03118A8723AF780D2A170 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c"; sourceTree = "SOURCE_ROOT"; }; + 0D17B181C82CDA7A6282A0C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D979051139C2AC633BB4B9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DD213E13669B821F91D3FAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c"; sourceTree = "SOURCE_ROOT"; }; + 0DF176A2BC5C338AF984036D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2BroadPhase.h; path = "../../../../modules/juce_box2d/box2d/Collision/b2BroadPhase.h"; sourceTree = "SOURCE_ROOT"; }; + 0E11770AD343D8A0780C54BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 0E1D85B025D93DAFA8404824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + 0E1F414FCC996E155B4DB5DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 0E26995340F6E559281691DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0E2F5CD3AB59E19A1ADFF875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 0E39FF2E9AD2BDC94CC015E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E501BDAF7993A70A4300040 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = md5.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h"; sourceTree = "SOURCE_ROOT"; }; + 0EA8F0AB668E3B77E8088139 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0EAB2E0BB8C3BE2725FA093A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + 0F0B65D33F71F27C1E366CF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0F28BC4F61D1898E4C68E8BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2CircleShape.h; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2CircleShape.h"; sourceTree = "SOURCE_ROOT"; }; 0F2AFC09338BE08479886B0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = IntroScreen.cpp; path = ../../Source/IntroScreen.cpp; sourceTree = "SOURCE_ROOT"; }; + 0F3360D13458198A3A88B1A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 0F517EA07DBFE31E5C9367F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 0F518E75055A9D954B52DAC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + 0F88F061C51BE43F53B27094 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0FC37E13A65710E3B9750BA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcphuff.c"; sourceTree = "SOURCE_ROOT"; }; + 0FF2403BC335E710BE391DEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 104B96755BED457D7CEA42EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + 1065FE461C00EABD9485BB93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 106F27CF32C79FAEE768ABA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10932841EA586B6969446549 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10B6D087BD60ECFE08F157AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + 10C9DC1661946DF49C304DAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10DF2A823B97BBC0BD840B9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11005DEC79FC6A6057FCFA7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 112164BE5067BB3274FDAED8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_extra.cpp"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.cpp"; sourceTree = "SOURCE_ROOT"; }; + 119E106357BA987590551255 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2PolygonContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2PolygonContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11A95002F7CE796B7C27EAA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11CB66B1CBA64B205FDF2767 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + 11F6937FC766E1E9568311C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1225AF360A43D61516016CF9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + 123D3579B74D9D5781B0BD1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2CircleContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2CircleContact.h"; sourceTree = "SOURCE_ROOT"; }; + 12E4EED0370A1733C6629D86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + 12FD27ECE82A3298E3A8675D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2ChainAndCircleContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2ChainAndCircleContact.h"; sourceTree = "SOURCE_ROOT"; }; + 1334EA2BB30D70E30E929919 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h"; sourceTree = "SOURCE_ROOT"; }; + 1339BD00EBF554E995968B6D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + 133BC5B880C7575FF3209D88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 139D5B8276448B8BFDBA3F7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 141036E097DAC47FB6F9CA80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 14594884413DA08D26106A81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h"; sourceTree = "SOURCE_ROOT"; }; 146EA869EC587DBE94B39198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioPlaybackDemo.cpp; path = ../../Source/Demos/AudioPlaybackDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 14933D0F3C598C38A113CE8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + 14A37C392DF6CF1CDB64612D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + 14A6170C094E7786C521A4DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 14EAA74C473506EC4920A160 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DemoUtilities.h; path = ../../Source/DemoUtilities.h; sourceTree = "SOURCE_ROOT"; }; + 14EED3F7B3E7AD8A7041BF3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2MouseJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2MouseJoint.h"; sourceTree = "SOURCE_ROOT"; }; + 151ADDBE74B99337BC2C2586 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 15348CE8667592D8F3841601 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; + 155D25867B048DB7685E6F11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 155EF3FCA61BEF035E1D7C8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 15F205032C5F811EC319B6D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c"; sourceTree = "SOURCE_ROOT"; }; + 1669962FEA6685A54CD44F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = "../../../../modules/juce_core/zip/zlib/zutil.h"; sourceTree = "SOURCE_ROOT"; }; + 1676147A3FADD6D79FF42CDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; + 168363BEFCBAD9F40E9636DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c"; sourceTree = "SOURCE_ROOT"; }; + 1697DAEA5B5B105AE1C48E12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1698E86A0E0E93DF1487E9FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; }; + 169C561B93262F8B46BEB768 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; 16C0655B97D6D3B992D6733E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../JuceLibraryCode/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; + 16DC590DCFE57F583E99F9C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1713D0650DCFA516EBF595DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 171E2FEB6097B9D059BCD196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; 1796A99F33AD5998FE4A6035 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 17ADC8ECFA616CF392783757 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 17C0612B5BA94849EA9768CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17D0D2AD3243F65FADB94446 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 17FDEA6209B7444B117E63C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 182223C68F452171BE479C01 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1827E39781E7FCD3FFEA879F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_decoder.c"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_decoder.c"; sourceTree = "SOURCE_ROOT"; }; + 184C5CCD9457D17375F9AE1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1890C5F569F315E5F8EBB1F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1913719A1E4E1803CD54D11F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 192EE3C990E80213984A44C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 193F42507FBE4E7A62D81E2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1945AFAFBEF562B3CE0B32B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = "SOURCE_ROOT"; }; + 1A1C23D2F16F880FCD3B565E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A379B56FED4D3EEF75539F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = "../../../../modules/juce_audio_formats/codecs/flac/endswap.h"; sourceTree = "SOURCE_ROOT"; }; + 1A3DE76CA275CEE7DAD501A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1AD3E125B61DD653C03FAC05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_box2d.h"; path = "../../../../modules/juce_box2d/juce_box2d.h"; sourceTree = "SOURCE_ROOT"; }; + 1AE91BCC794B0ED9C7C0EF9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; + 1B03ED2B0D5B73B876954081 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Contact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2Contact.h"; sourceTree = "SOURCE_ROOT"; }; + 1B0F7F7A6B9627B92F989632 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Settings.h; path = "../../../../modules/juce_box2d/box2d/Common/b2Settings.h"; sourceTree = "SOURCE_ROOT"; }; + 1B9B4E12F53F8350757CD4D2 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = README.txt; path = "../../../../modules/juce_box2d/box2d/README.txt"; sourceTree = "SOURCE_ROOT"; }; + 1BBECE3C619C157F072748D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + 1BE105DE7C738CCF8D6F2A54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BE21633CDF618F8D993F3BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 1BECFBA14CA548C5E8F1CC72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 1C9321B265A6894A2E51CCD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c"; sourceTree = "SOURCE_ROOT"; }; + 1CD8799B8784A91FC13E6641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + 1D43B002D877CDF3DA85E602 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; + 1D4E674C38566E14B4B73F49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + 1D62103CFAB9245F2CF523EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 1DB91DA41FDDC9D2F628C7E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 1DDAEBB24E58353761798ABE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + 1E00488AE073FB510E4BE10D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + 1E0453D8A9741695357567E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 1E74912578DEAF430E69D738 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44u.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h"; sourceTree = "SOURCE_ROOT"; }; + 1F0369584BC31DB2CF652A72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_linux_EventLoop.h"; path = "../../../../modules/juce_events/native/juce_linux_EventLoop.h"; sourceTree = "SOURCE_ROOT"; }; + 1F25BC80413668F43F5D7864 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1F2CB36A86AA1A4FFF89CD88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + 1F2FF9F4A1F8325AD3F19EA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + 1FCFCE4595E8313E1773B00D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c"; sourceTree = "SOURCE_ROOT"; }; + 1FF4527EB0D8AC7B141CF989 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; + 200A1B6B96E1089110CEAD48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + 201E7DB01624212F01B85F5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2060347D582A8E45F58AE1C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + 20A4427A1F9CCC5FC58AA159 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2108383000B0A3564DFF340D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 215D455CD5A3BD7537F88630 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2174CAEE6D8EB215ACD4A256 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + 217D243937EB2507494A4D34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 218E36147FA4309F072C1949 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + 21CE480826B56F0B5C8C4A43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + 21D71A36ABFDADD9A882857B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c"; sourceTree = "SOURCE_ROOT"; }; + 220344E43675A2A7D64D3A44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + 2274B9A5BC921FE3B877D0C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22CF0BEE62FB551A68223B3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2311D21B14AB268CDEA6F606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 234392598E5388F29CFD6B50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 236E11A53CE927AAA6681994 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c"; sourceTree = "SOURCE_ROOT"; }; + 239F942F45950F5EDCB65A17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 23A853ADC54A69406C7A49C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + 23D96CC5CE35DC9458F64A77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = misc.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h"; sourceTree = "SOURCE_ROOT"; }; 2403B8D4A16FB80D115BCD2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../JuceLibraryCode/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 241100DC52A0F56D071C8C4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 2432B5DFCDB8D39150029E01 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + 249A454A7EF1C3A07A66F453 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; 24B00BED20980D12119C228F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MultiTouch.cpp; path = ../../Source/Demos/MultiTouch.cpp; sourceTree = "SOURCE_ROOT"; }; - 2668DEB6C0BBE9B876ABBEF9 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_utils"; path = "../../../../modules/juce_audio_utils"; sourceTree = "SOURCE_ROOT"; }; + 24B56E58A88C5BA553F1C3F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + 24E2AF695F11B9BAEB8FBE3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + 24FC5DD7F88DBB1E3A46AB54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 2551FA5B61BFBEB5E0310B66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 25615385230E47D7E70A2745 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + 263BE0BDE184A7184A118B46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 2699A70E9610104CB8D30EC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + 26A65E5DA320A85F90F1F58F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 26ECEE2D25C933C4B8CF0B49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2TimeOfImpact.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2TimeOfImpact.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27436247FFB648C821348A91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; + 277ADB563604EE1FB51FDAE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2781E458566701273B805E8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 279EE7599C1DAE9EF83A59F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; + 2859FDF0CCD1ED788910E9D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 28A254DF535233A82D5D79BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; 28A7CFB0B6DF367A9830817C = {isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = ../../Resources/treedemo.xml; sourceTree = "SOURCE_ROOT"; }; 28CB3F1A8BFCE1F01FD630A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MidiDemo.cpp; path = ../../Source/Demos/MidiDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 28E65398C8CF95EB12A5734D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 293678404D17012C6E402AA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 29919F82CA5311BEA61649D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 29930414E0C7FD5EFC7F2095 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../../../modules/juce_video/playback/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 29AA7E6AE1C062B740F4D80C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FFT.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_FFT.cpp"; sourceTree = "SOURCE_ROOT"; }; + 29C7AE377B006C00D4293C59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; + 2A155BD926FEB91142E6A638 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + 2A1FF908BB6FEBAD912CDE8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 2A42C9B40A6A73C0CBE727B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h"; sourceTree = "SOURCE_ROOT"; }; + 2A5FA90E69311FB8A18EC3B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A5FF3EB0E2C32BF08080C7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h"; sourceTree = "SOURCE_ROOT"; }; + 2A8F6894339DCE6003B702F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 2B4F1477BB90BF7F62005BEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + 2B702EF83CBD217F8F9195F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; 2B789C58AFC77C0527BFBBB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../JuceLibraryCode/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 2B8FF1E4F8D48AEDE05224D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2BC7AB69474D7E280098B893 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2BEE810D30D4C6FB88206B42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = png.h; path = "../../../../modules/juce_graphics/image_formats/pnglib/png.h"; sourceTree = "SOURCE_ROOT"; }; + 2BFAB8AE52821D3786BD7ECA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C26D37BEDBDC3B1DF19388D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 2CC5542D7C142042D3A1D86B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + 2CD4306102317989E6321924 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + 2D13D48857E2530BF41F70CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + 2D68B7EF20BC3D11B3028648 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c"; sourceTree = "SOURCE_ROOT"; }; 2DA02BCCDBFD5BF2DA2D2FA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/Demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 2DAD09E643C29B6DE7F26EDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 2DDE8684F3C5CB4A781D72A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + 2DE7C6A69CC0096EF56E4049 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 2E093A5506319EC68DA184F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2E29C6A0CF15C32A35119DCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 2E524CE76F1B735AE8072E03 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 2E8E52B63BFBEF408E55B678 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdatasrc.c"; sourceTree = "SOURCE_ROOT"; }; + 2EB0FBA99B4F54DC67C391B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_devices.cpp"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EB37CCC4FF8C40B015C0555 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + 2ECFDDD7B3C255B050C99A1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + 2EE8E77D21471265869C9B4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EFA7470343EBFC6E338F7A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = "../../../../modules/juce_core/zip/zlib/zutil.c"; sourceTree = "SOURCE_ROOT"; }; + 2F1324CBA29604BD3E2003B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + 2F19C814598FC304CA841242 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2F66B42AF6C0B5ED381937C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + 2F78DE5144EBEAC697309BDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexItem.h"; path = "../../../../modules/juce_gui_basics/layout/juce_FlexItem.h"; sourceTree = "SOURCE_ROOT"; }; + 2F7F13C84464F8409BBDBEB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2F8041ECBF70D78604686D6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 2FCF501B503F3915AB871C8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_8.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h"; sourceTree = "SOURCE_ROOT"; }; + 3008922C531303C24B8791AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3009F5CB4D15119D2C680F98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30212C3F1731BD8F19412A38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + 305ADD801E4BA9EFDBBCA4FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2PolygonShape.h; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2PolygonShape.h"; sourceTree = "SOURCE_ROOT"; }; + 30CA850D191ECD5F1F7B6A70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30D828B153772EC3FBADF543 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Whirlpool.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_Whirlpool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30DA52AA554A0249429AC3FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 31A98E30E965B03150B381FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = highlevel.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h"; sourceTree = "SOURCE_ROOT"; }; + 31D74E7CF149EF5B569417A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3240A232A5C82A812A837A2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + 324452D7F5B5EA3B393FF4FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + 326FF20ABED3923B1418BB3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32F1D9C9FD2C0796E2E66C6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; + 3371D4F2A1E0AB784460E6D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + 338AEA7AC3EF4CE113FC7303 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 33B829EE652FAA7EFB9E7460 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + 33F3182598E9A84AD25A9184 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 3411D087E2F8C3962E73F64F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + 34176F324CF7EBCDE741B2DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 346CEC10C4A7DF779A799311 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; 3482A5FDDEE5E5D405047999 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/Demos/WidgetsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 3506BB2D001EAE3244ABE2AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c"; sourceTree = "SOURCE_ROOT"; }; + 3529CDDF14775FE48C57039E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = trees.c; path = "../../../../modules/juce_core/zip/zlib/trees.c"; sourceTree = "SOURCE_ROOT"; }; + 355DBB46C4283779C367E97B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 358C6A8FDD14AF0BADFC200E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 359FD60323CE3BA7B25008DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 35E35B099E2A7906A7AA2EDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35F5E95BA127E63BA136DACC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 360291D0346F776DDD3F43E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 3604A45AFB219B430055B832 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; }; + 360FC75BBB17079A50D83F82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = os.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/os.h"; sourceTree = "SOURCE_ROOT"; }; + 364888A8E80B59503995FE18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inflate.h; path = "../../../../modules/juce_core/zip/zlib/inflate.h"; sourceTree = "SOURCE_ROOT"; }; + 3649E7CD2BD6A37FCF7D72F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; + 366C0E8D559D37FF92B64F47 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 36711C0D24EB22FABF8E7BCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + 36A65D869B23D9987C676BCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36DA578E707673F6B174A016 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 37355CCC05D407D665AA6604 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3741E4C0CE5C7C0828D09BA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; + 376F6150287E759E77B824BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 379876C6391E331282D9C4D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpegint.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h"; sourceTree = "SOURCE_ROOT"; }; + 37B638D91C9915F8A747998C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; + 37C7B4ECD40F15EFB12D58AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + 37E835EA1318A5D504282D90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38271EF6B109065F290717DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2BroadPhase.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2BroadPhase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 384887ECD58A0B42E3669617 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 3855013A39E97B76B46E055E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38B737F6F0007F752EE380B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38FB6ABB883ECAD52027CE19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3924287A67ED97279455625B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 393A46D91FB481557E4DF792 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3994BC23A01CD8FA2A634654 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2WheelJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2WheelJoint.h"; sourceTree = "SOURCE_ROOT"; }; 39A06D3252DDA6F97FB09495 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo2D.cpp; path = ../../Source/Demos/OpenGLDemo2D.cpp; sourceTree = "SOURCE_ROOT"; }; + 39E23931E56560C294237428 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_curl_Network.cpp"; path = "../../../../modules/juce_core/native/juce_curl_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39E4404D57A8B66DF520B66F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 3A2ABBB84632B201DC78CC65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = "SOURCE_ROOT"; }; + 3A42694A047942A44E8216F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3AB4D648738323B910F9857F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c"; sourceTree = "SOURCE_ROOT"; }; + 3AB9E51994CD35A10F87EFF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + 3ADE61DBFBB6901CE2F1DB17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + 3B4867D990EA8802B4A319AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2PolygonAndCircleContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2PolygonAndCircleContact.h"; sourceTree = "SOURCE_ROOT"; }; + 3B4CB5DCC28B60C4129F024E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 3B61B715F29A0AEAEF73CCBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 3BC7A4DF55FD436E8C4D190B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BCC9E4DFC3910F668DA3FF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BE38D79FE135715685D1AAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BF94F93AE8A8E9AFA5FDEC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 3BFEBBE9B8185F65D69A1721 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3C169AF805125BDB30041647 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; + 3C18AC0F75E68A8601DD8F08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 3C1E6F7FBCCAFD6CCDBBB70C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + 3C37FCA5B754E496D13066B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Draw.h; path = "../../../../modules/juce_box2d/box2d/Common/b2Draw.h"; sourceTree = "SOURCE_ROOT"; }; + 3C48BCAFBB2B5332DB3FF7A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisenc.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c"; sourceTree = "SOURCE_ROOT"; }; + 3C776A3FADACB361BD4B3D9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 3CF67E6BCC6B52EFD6E6A458 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D0EA5C831C347728313FDFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D2B216A758EEC9EF2D9C7A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D2D6313C0A3397C4839B29B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D2FFA1F349A15621962C064 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D8A83C53BAF22EEEA014D90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DA95E7AE1D0DC64AF09EB66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DC0549B351FDD471AC643AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisfile.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisfile.h"; sourceTree = "SOURCE_ROOT"; }; + 3DF9D537778948BCCFAA6F90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; + 3E265486EFE462E632F47FD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2EdgeShape.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2EdgeShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3E27B6E7641EFD605545DF18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3EB15B173754AE2C7B96AE5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2ChainAndPolygonContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2ChainAndPolygonContact.h"; sourceTree = "SOURCE_ROOT"; }; + 3EC73BE7C098A631E5D5107D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3ED5A2B64359FED05CF309C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 3EF890CB40C6FFCAE055B7B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + 3F2BBE4509B19BFAC929D8DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../../modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; + 3F47F660FE021E7500D952B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V4.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h"; sourceTree = "SOURCE_ROOT"; }; + 3F4D37C15B02AA087A3A685F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h"; sourceTree = "SOURCE_ROOT"; }; + 3F58D27B17343BF1030AF92A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + 3F8C313EC9C1E6E234108098 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3FBF109F3AD6DE221EFB1BA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 408C5E78F7DE038844E18D31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 409B6897E764E49BCB4A9277 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; + 40B485A7CCC441C90EA92FBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + 40D267701C8FF75121454D79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + 41107A3608BE0848BE2A34FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; + 4120CBF145DA500C140BC666 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 4140669501152D9FB9A244B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4150459DAF5A300EE3646771 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c"; sourceTree = "SOURCE_ROOT"; }; + 4151602FFED0B1AE7B36CEF4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + 417FED446C0B953AB2DDB633 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2ContactSolver.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2ContactSolver.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4198EE3311A171C884A5FA9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 41F65957FAEED268DBFFE925 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../../../modules/juce_core/zip/zlib/adler32.c"; sourceTree = "SOURCE_ROOT"; }; + 41F76FF32798054E741CB90B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; + 420516E3BCE114E11526E916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = "SOURCE_ROOT"; }; + 4212EA9CE0B9AA4986108D9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 42386AD366F1AD43B6B29364 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4253F39382D064BA90766895 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2CollidePolygon.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2CollidePolygon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 428FA66F7D6FB46A64B438E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + 4290825CEF87C19A113CA9F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 429974B1B4C361F218093A41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 42DC5D8CEC7445468A96C227 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 436BAE91A167BB6107F261B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 437B4DC39531BF8DE5A12E02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextDiff.cpp"; path = "../../../../modules/juce_core/text/juce_TextDiff.cpp"; sourceTree = "SOURCE_ROOT"; }; + 437C63D80EDD563A91265CE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; + 43B80E11AC5121A2F4B8DD78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4407A352B303B27AA0B7D579 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 447B5BEAEF972DECD5F5A949 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44879946DE89AF141BE428B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + 44BB5D71E35E65F5209292B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44D1D1D5A6F855F920FD03A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2ChainAndCircleContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2ChainAndCircleContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44F4A9351C2B03F98A0D23E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + 456837CE387595EFF549939B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + 45BEA8B0139968C92A30EF34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c"; sourceTree = "SOURCE_ROOT"; }; + 45F089CBDED5CC39009A2FAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 46118CBA9C3CD3B354D93B30 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; 4621682C1A4E85A088F7CEE0 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 462F10FC0057AA53CC71472E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 46ACD125ABF2078BD7250307 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Flac Licence.txt"; path = "../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt"; sourceTree = "SOURCE_ROOT"; }; + 46C5401358EA7CF2D22FFC26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47091E4F83A415C063855A74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + 475B1787F548E4FB11C63CD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47817D36A37758981DEDCAAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 47962D8ADD22B8DC0CC4FF58 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "changes to libjpeg for JUCE.txt"; path = "../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt"; sourceTree = "SOURCE_ROOT"; }; + 4825D1B0C0AC0FD325F55C29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 48879AF101C3CFF70E2A6D6D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lookup.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.c"; sourceTree = "SOURCE_ROOT"; }; + 4895DA77962B46806EB0147F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + 48A0FC60EFF6334C161519FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; 49412C044B88516D9AF59FDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CryptographyDemo.cpp; path = ../../Source/Demos/CryptographyDemo.cpp; sourceTree = "SOURCE_ROOT"; }; 4975DB849F14413317E94609 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 4983B8B7E3666DCAC1A1644B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FFT.h"; path = "../../../../modules/juce_audio_basics/effects/juce_FFT.h"; sourceTree = "SOURCE_ROOT"; }; + 49BFC515C915A4AB53EC15C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + 49C275C319B36AC86512E34F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + 49D1B40749401475B52A6F85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 49FCD3BBF372EE7F6F143EA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A2C25FD55809F1489963FC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A4D3CCCDD2C972CA6715014 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + 4A73387280D58204ABCA6D6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pnginfo.h; path = "../../../../modules/juce_graphics/image_formats/pnglib/pnginfo.h"; sourceTree = "SOURCE_ROOT"; }; + 4ABF4B55F979F2A88EB1B331 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AEA921081036DD4C259B45F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V1.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AF5BD29C935D0EB7CB0F6AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 4B310AA3DF4F6188B2E6FAF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 4B4A489613828AC28F25417C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_books.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h"; sourceTree = "SOURCE_ROOT"; }; + 4C13F19ECFF6CA7AB9C801AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4C5649C5D9290FA9385B6CE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Rope.h; path = "../../../../modules/juce_box2d/box2d/Rope/b2Rope.h"; sourceTree = "SOURCE_ROOT"; }; + 4C66D04A6A5FA514A10AA406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C9033415E05CD39408389AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; 4D569839066D92C393F58EB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = GraphicsDemo.cpp; path = ../../Source/Demos/GraphicsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; 4DB00B418C4F068BC5FC7314 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsDemo.cpp; path = ../../Source/Demos/FontsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; 4DBE443E8F807D9366309A44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceDemoHeader.h; path = ../../Source/JuceDemoHeader.h; sourceTree = "SOURCE_ROOT"; }; + 4E0A9537FFDE89E4B46710CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E49D12CA5C42721F532DCD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 4E892CB7335853F8FE91B26F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + 4ECEF417A3156D46464E6B9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = format.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/format.c"; sourceTree = "SOURCE_ROOT"; }; + 4F2F2A6C3D3451EF896D71CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdhuff.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h"; sourceTree = "SOURCE_ROOT"; }; + 4F3386F75802D2519BF693FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; + 4F35D7B6179D00C91BB63AF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2WheelJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2WheelJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F56EAB8D09665602226930F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F6768F8EF9CB4A34A501966 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F9F102E3BEDFE30542BD479 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 50677353DB2766A800988656 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + 50C099C6D8CA6DBF95B0828D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 50C625257E68C3B8FDAE45A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + 50D167857CCBE08F692604BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5125E77EBA8500EAA778F51F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 512D5182047E0B46E971A13D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 5155F4A9D709CC0A8CC1A7F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44p51.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h"; sourceTree = "SOURCE_ROOT"; }; + 518DE93C8782835E470BC7F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = registry.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h"; sourceTree = "SOURCE_ROOT"; }; + 519F11BE9C786A7F9B221BA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; }; + 51DD2ECC1AED271892E87814 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; + 51FD353EA1F98D94A6A14B48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c"; sourceTree = "SOURCE_ROOT"; }; + 5232B9F7E62CD5C41C3ABFED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + 52455CCE9E92ED0C59F41734 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "config_types.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/config_types.h"; sourceTree = "SOURCE_ROOT"; }; + 52A8B69825B08106E9175D2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngget.c"; sourceTree = "SOURCE_ROOT"; }; + 52A95B5754438C999343869A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52D7400A47B19848EFCB5B51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; 52E4BE1BCD56D3676C84BEB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MDIDemo.cpp; path = ../../Source/Demos/MDIDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 531D198DE52845A4B641B6B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 533B6E74A9F84B4D319E2F16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 534098C590927D6768E57ACF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 538250B9DBD536733027C345 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c"; sourceTree = "SOURCE_ROOT"; }; + 5398AD39345A757DAAFC7F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2PrismaticJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2PrismaticJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53AA2F507FD9DE263E43B277 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53F2E8E42E27BCFA8130465A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 541E0CB92DCF5EDA093EDC7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LagrangeInterpolator.h"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + 541E4974C73E294DBA415BA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + 5434953F55BD35F74D59D980 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5459E2489D23B5764B4C919B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder_framing.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h"; sourceTree = "SOURCE_ROOT"; }; + 5496F73539DA26FD9C899223 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5509449631045CDCA7654270 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_16.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = "SOURCE_ROOT"; }; + 55273A59F96B3C775EB71FAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + 554678AFD58E3E3A2B0BE43D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; 556EFB307E14C15D5EA0242D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainWindow.cpp; path = ../../Source/MainWindow.cpp; sourceTree = "SOURCE_ROOT"; }; + 5595C04B0C1D8D8EBA119C8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; 55D08920D4992CD0721AA3E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DialogsDemo.cpp; path = ../../Source/Demos/DialogsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 55F9178934DDF31583323625 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 55FBB9F8900F753766A22BE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + 560B074FDFF6F94477083076 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 563167A7234166BE714F2DC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; 56416BD4B5AE294F24289057 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/Demos/CodeEditorDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 569187442B514D114A483D29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 56BCAE594E40E21699F9337E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 56C55F22CADABBA171D41BFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 56E74B5D9FEE2F25B15B50EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = "SOURCE_ROOT"; }; + 575D4B7FECA71BBCB194C30B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = "SOURCE_ROOT"; }; + 577378064273DA54B9BED3F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; 5784E19E01D5B23BDDFFA5AE = {isa = PBXFileReference; lastKnownFileType = file.obj; name = teapot.obj; path = ../../Resources/teapot.obj; sourceTree = "SOURCE_ROOT"; }; + 57B7A9C37305D4D7F876344C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + 57BB809A38D33486410104B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_IconHelpers.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_IconHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + 57D6E8A8E8D871EB1DEF6A5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 57F10A97F9AA52EF7B344208 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2ChainShape.h; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2ChainShape.h"; sourceTree = "SOURCE_ROOT"; }; + 57F36E18E098F0CADDA05309 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_44.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = "SOURCE_ROOT"; }; + 581E68F4E33DBA5837FB7F9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 58201275FBC0DEF77D010733 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitmath.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitmath.h"; sourceTree = "SOURCE_ROOT"; }; + 586A4398FE1B9F7D6104BB70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; }; + 5897A924018C9D26438796A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + 589812C6DA03A2299270F7D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2CircleShape.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2CircleShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58E53BE69281E3105C66FF07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 58EE7977BC7FBB3523A910D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 58F81EC0B3505F092DEBAA30 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 58FB0C4FE674CC5BB7B1DCA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + 592EFD580F6FC53E161A66EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c"; sourceTree = "SOURCE_ROOT"; }; + 59305C17D5656ADD56682C87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../modules/juce_audio_formats/codecs/flac/all.h"; sourceTree = "SOURCE_ROOT"; }; + 59810BDD671438F997D32061 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; + 599036DC07DB54E446ECA054 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59A4EE8F8C7CAC439DF95A91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h"; sourceTree = "SOURCE_ROOT"; }; + 59C6CE0327D10524BC789A72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2CollideCircle.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2CollideCircle.cpp"; sourceTree = "SOURCE_ROOT"; }; 59E2B82491E344257F84FC40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 5A2481A419E5A9D88B640A7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; + 5A3C2298934C0F77CC60D336 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5A73A448137344953ED2BD32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; 5AB15A508A07934A89398A6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PropertiesDemo.cpp; path = ../../Source/Demos/PropertiesDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 5AB81EDAFED264951169F1B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 5B0A45CD67D62B0BF9FC22F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5B20570CB36A5765EE06DB95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "codec_internal.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = "SOURCE_ROOT"; }; + 5B466272F3B821BE88BAC205 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 5C2DE230E3197CF04660851E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; + 5C5F8713DA326B5C6C559767 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CAED9BFE11E46C835DC9417 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 5CBB1DA4ECE2611DDA81A18C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 5D40332D94747C3190D4CC16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5D475A368AC24E639B8A3797 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5D4FE2C580EFC84212CFBFB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 5DA9EA3E74C2AB870EC9CACB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5E69510D460EEB7754976CC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5E9F335E274427A81514A20C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5EF33D6281C6FCD1040FDC9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + 5F3E8B08EE74B0023DA176B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F4304885211C2F40AC66E25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2World.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2World.h"; sourceTree = "SOURCE_ROOT"; }; + 5FC58B5FBBBB09878E3F2230 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5FCCFCEE3F6C4C51BB581572 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5FD5503AB0E161315DD5CD70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 603014A5B777586F4F1C98D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h"; sourceTree = "SOURCE_ROOT"; }; + 607FA0800596585429F6C22B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + 60849B046145D3BACDFA6A84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 608B8EFDDEBB7573425846B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../../../modules/juce_core/zip/zlib/infback.c"; sourceTree = "SOURCE_ROOT"; }; + 60B755F5684959E78C556810 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60BCBC74A3C12630E82631DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60EEA1369C0AD22C3EA05B69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2CircleContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2CircleContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6141692AC9282411091C8157 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + 6163B3DFD893F55523113A40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6209255CD43AA4EDC1C955DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + 6218A4FF5FB036AA0B7B77A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "lpc_flac.c"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c"; sourceTree = "SOURCE_ROOT"; }; + 6257CEA3C6EADCB94E25010F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62D20AFF94117B99556BF56C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62F9B202D524E33A2843ED84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 6308DABB4145FBD330B7DA5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + 631FD2CAE69A3D5DD8C2E1B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63AC834818EFF45708101F9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 63BB4EB9347AF60049BEEC1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63D09BD18653F6A0134C8195 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6438540B318F456A76A57197 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = "SOURCE_ROOT"; }; 64E7D43C4F4037CFC2C5E2AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ComponentTransformsDemo.cpp; path = ../../Source/Demos/ComponentTransformsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 64F04FAD3BAAEE3D0BA279B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 651D48BCCD81AC8B5BC3AAA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; 652A128D7DE1672618DB9521 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../JuceLibraryCode/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 653C6D41CCDB5D556F00D17B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; + 653E2E92DFD20A216DC5E698 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c"; sourceTree = "SOURCE_ROOT"; }; + 65DA0DAA8BDCE57A54C1CF26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; }; 66C35D440440937001697D0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; - 6D6FBD711B9FE1F6B0791B2E = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "../../../../modules/juce_audio_formats"; sourceTree = "SOURCE_ROOT"; }; + 66C5D2F0D9B9ABA7F4A386E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 66D5FD22DF1550A6CC9ABDA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + 66F8C7EB6520AB9439433DF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 673D3A9FEE5D83720B157FA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67541565521633071C03BD35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 6808473BBCC2E4D8E2CA0E71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6813D2FE050F9518A7BF3728 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2EdgeShape.h; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2EdgeShape.h"; sourceTree = "SOURCE_ROOT"; }; + 68944F99BABCA83A0440CDB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdapistd.c"; sourceTree = "SOURCE_ROOT"; }; + 68AD6A94C88A46A483B823E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 68D5182872CF48CC8A07EF88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2BlockAllocator.cpp; path = "../../../../modules/juce_box2d/box2d/Common/b2BlockAllocator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 69048AB4DDE300C5326BF2AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngpriv.h; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h"; sourceTree = "SOURCE_ROOT"; }; + 690DC0717A03CB51D3C34382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; + 69249A7E30512BBF13CB8A09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 6940E5FE7BC1ED1BB2258886 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6976B92D19F4FA1BA89A8922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 69CC80F5871F1AA06689E3BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 69DA0CE5CD8627CA01BA0781 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = "SOURCE_ROOT"; }; + 6A299D9BED7D078CB2F1C007 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 6A3315B465362CD3AF66D306 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 6A4AE0C59C1210D28A8C8AF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A643B44198DCE6FFE057E9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A6A22EF81805BE907DB5DA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A766394ABB39B5A0E3EF182 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../modules/juce_audio_formats/codecs/flac/format.h"; sourceTree = "SOURCE_ROOT"; }; + 6ACBD7C68EE20A8E8C5CC1AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + 6B1FEA349A6C8F51AB27E23C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + 6B3772278F9398D0AC7CE250 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B4AF4E4BE36B99E00BFE839 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B67DE0FF4487B060DCF31E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + 6B78EA517CE2D6A7C7B42C21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h"; sourceTree = "SOURCE_ROOT"; }; + 6B83E4AE241F0EAC9574923D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6BA2D0C9FB49A5C3E0554000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6BD1D463E40A463C69C065C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + 6BDAB94A88B565A734534368 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + 6BEA46E3C64DD2FD8946CD35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 6C52D68EDEA2D7ECA4CCC2BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C57333FC4ACEBC7C451A414 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 6CF95925EA874CFABAF7C284 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D095BAE8ECFCA14A483B980 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "os_types.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h"; sourceTree = "SOURCE_ROOT"; }; + 6D680FDE137012CFCDEEA7FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Rope.cpp; path = "../../../../modules/juce_box2d/box2d/Rope/b2Rope.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D6A08D5532A95D22E74371D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2PolygonContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2PolygonContact.h"; sourceTree = "SOURCE_ROOT"; }; + 6DDAF504B8C1BFDBF9F0DBB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; + 6DDDB822BBF3D557CA7AB427 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E125672C42D84CCD54F9B0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E176584A871F8C956918182 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 6E386DC2F80B9C90264AB60E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E522E47999DB582BA4DA5B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 6E98E22310F8BBEAC48EE55A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConnectedChildProcess.h"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 6E9BFA2B6260E09B2B3948E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 6EA8B0940C4486B9F03BA19C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + 6EBA81213324106593EF5DF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + 6F21AA1FF466F570DD76E329 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; + 6F2A90834846C810CCD39DF9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + 6F5B9777B802707C4A747E46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F6C75B9F875DFACEF086245 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Timer.h; path = "../../../../modules/juce_box2d/box2d/Common/b2Timer.h"; sourceTree = "SOURCE_ROOT"; }; + 6F8FAEA15628DF26DAFF73A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2GearJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2GearJoint.h"; sourceTree = "SOURCE_ROOT"; }; + 70276A64A50E5B56492853DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; 703C1FBF6632A8078BBE05AC = {isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = ../../Resources/cello.wav; sourceTree = "SOURCE_ROOT"; }; + 706E3A30C486843B267D27C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c"; sourceTree = "SOURCE_ROOT"; }; + 70A5CABA464ECFC6A8449A87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 70F33D8D2F48D64188861C6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 70F3590A122BFEBB8CF6049D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jerror.c"; sourceTree = "SOURCE_ROOT"; }; + 71B244396C01790820BDB08E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitreader.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h"; sourceTree = "SOURCE_ROOT"; }; + 71B9B558197CF23EC530D57F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2DistanceJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2DistanceJoint.h"; sourceTree = "SOURCE_ROOT"; }; + 71E5E55D76D83B711B6263C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 720C3CA9E28181C76434D465 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + 7212600D3FC9564179B991DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72370D6EFB4C549A2745C2B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Joint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2Joint.h"; sourceTree = "SOURCE_ROOT"; }; + 728155B591553FEF209516CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h"; sourceTree = "SOURCE_ROOT"; }; + 7286D6380C74734603D098EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 728E67FDBD3660742A33C7B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72A21240D2F87F857F10D246 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c"; sourceTree = "SOURCE_ROOT"; }; + 7319ADBC735F957219774263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; + 73267FE8DDE50FD1E6E31ED4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 7338D006521EDC5C10EEF974 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 734C43C3F7918061F2DDD214 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + 73CF65298983B8CDC1CD84AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73E0383F94E38E30C2CE0F5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_CommonFile.cpp"; path = "../../../../modules/juce_core/native/juce_linux_CommonFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73E670E23A2523F7A1B14775 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + 73EC10FBCA420227E5A145F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 73F0F1FA09AE9F7308AFCC3B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7416BF201FBFE7F978FD774A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74BE52ADFCAEFACF704E1269 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74CEBA45E0A8ECA5CFA9BEF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + 74D283E02B3A2A293678FF9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74D9D04AA36E9167899526F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_8.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h"; sourceTree = "SOURCE_ROOT"; }; + 753D9A91CFBFAA027F828C02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 754710498EE8C41F085A2B11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75944B175ADD077F59AADFCC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; 75B60B919D8CB88C6E0E0566 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 75DCF8CC61D7B790251356A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_graphics.cpp"; path = "../../../../modules/juce_graphics/juce_graphics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 764F36E2597540348F960404 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + 767818AB549833C6A3695680 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; + 76B8E770835968F565292D1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; 77179735C0CB2D89D9C61466 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../Resources/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 771D8CDD1499DEDAC2E38D25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../modules/juce_audio_formats/codecs/flac/metadata.h"; sourceTree = "SOURCE_ROOT"; }; + 7761FFBFAC88B7157D65EE1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 77BD025036C8B02426E61C79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77D7DE86E82C779B3DAA8678 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 780286F6E2915F0E5BE93D1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WinRTWrapper.cpp"; path = "../../../../modules/juce_events/native/juce_win32_WinRTWrapper.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7828AF42E3C857F520EABDD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78677F16A1356879D6F99EA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; + 786CF1CA66289DB77845F8E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 7890AB8CBF31F9788E10DBD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78979AFF44F164451516C986 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78B172DD2AAFE3535D0460C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 78D08E88D61781FC020AFE3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_RuntimePermissions.cpp"; path = "../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 791B204F13E056DA2644175D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + 797A5C7982E0CD14F93B3C54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_11.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = "SOURCE_ROOT"; }; + 79C8D0C6D1444EAB781C46F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79EB99F04FC9B1ADB0810935 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../../../modules/juce_core/zip/zlib/zconf.in.h"; sourceTree = "SOURCE_ROOT"; }; + 7A2009F14F7AFEEF7F233EBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitmath.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c"; sourceTree = "SOURCE_ROOT"; }; + 7AD412430D3AEB0468089AF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + 7AE34C0CF7EABE461F4FE5FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Body.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2Body.h"; sourceTree = "SOURCE_ROOT"; }; 7AEEF2EE40D3B8AE687C6618 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FlexBoxDemo.cpp; path = ../../Source/Demos/FlexBoxDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 7AF9EF500482C84F02849647 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; }; + 7B5560AEA0CB3E507C16140C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7B81083FC4CCD2D096D93162 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_android.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_android.h"; sourceTree = "SOURCE_ROOT"; }; + 7B83011366B95CC61212E5D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B8FADFD12EC0B9EC8A4ED09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CachedValue.cpp"; path = "../../../../modules/juce_data_structures/values/juce_CachedValue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BBD4B2D9A9EF13CE4357979 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BD4AC17C70E6771254B962A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BE5C4D52D35AEC60DEC2F0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2MouseJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2MouseJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BE8C42578F5E2E59D63F615 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + 7C70EC5AB0A3B9B14C0C0F05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C7FF651870B180BABD63D9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C8C5464933F6E34CF33578B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7CDA22D66C8FEDF1B644D041 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + 7D2013E3BCFFD5A65D970BBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D27FB93BD3C8AA77E0F2B7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_X11_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_X11_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D7A6251E976BF292861510F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 7DA062415E40E3BEC0B847FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 7DA9D4E06E9B9875EC3880AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7DB8F4BB2B4884803207417F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; 7DBF83B26277D13CB3FC1479 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ImagesDemo.cpp; path = ../../Source/Demos/ImagesDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 7DE074DF0D3074275DBBF9B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + 7DE7EDED3797A71816EA7F01 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2EdgeAndCircleContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2EdgeAndCircleContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E847EBFB83896EA08975F8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 7EC42C604603E1ED621E635B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 7F2A233FFE5CDB2681F0DC28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F539606D07BB39F04614D94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jerror.h"; sourceTree = "SOURCE_ROOT"; }; + 7F53A16CB1E2055C27A1AD8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmorecfg.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h"; sourceTree = "SOURCE_ROOT"; }; + 7F5DD7707E3EAC2A12F83072 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F7EAF366320BA71741B68C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 7FC3D3D142D1B4398D07FFC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80202384D81020DAE2072A1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; + 806A7A3BFC684B4D9E25ABDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + 807F5EE489018BC1956AAD5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; 809501824B7BBD3A378DEB61 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 80A57920E6EA9C2E881BC3E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80E4E835F2D35DA1E67B19E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h"; sourceTree = "SOURCE_ROOT"; }; + 80E5245755DC2ECC4C6BABD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 810292CC81EC98F57F64D79B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8139DFF71A397BB4FC1C4413 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + 81516145E8F737D290135758 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 818729A3311F3A7B8DB03764 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + 81B55F41498F2C7AEF8EF849 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2RevoluteJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2RevoluteJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 81D03597CE85238988E0F45D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 81DA6F8C2D59F6DBBB96F9E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2StackAllocator.cpp; path = "../../../../modules/juce_box2d/box2d/Common/b2StackAllocator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 824822F2A6A539B2D797DE23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 825690E8512078D4F8595CCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 827374BD9EE76A6B90DE88A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = block.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/block.c"; sourceTree = "SOURCE_ROOT"; }; + 82AABF91CB005E5463F1D522 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 82CDD7D8E38202F102788090 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 82DF136532B2A68A19CBD0C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2ChainShape.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2ChainShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 830A4891F6838B2A60C54C8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 831F5A6F03F8ECD18E2427D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngset.c"; sourceTree = "SOURCE_ROOT"; }; + 8329E2A86DF3E781B790F128 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + 8366D5DB3CBA57E06C1D896C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8396EA11DD261260F1A96DF9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 8413B0A6941430B8CEE7A573 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioRecordingDemo.cpp; path = ../../Source/Demos/AudioRecordingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 842FE973E11AAEF49D77AFE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + 8430FB57248237DDAD4CE4AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 8452076B5EAE822DD445458F = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 84BAF97675BE522B63DC9A4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SystemInfoDemo.cpp; path = ../../Source/Demos/SystemInfoDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 872F79D08296220D95DE456E = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "../../../../modules/juce_audio_devices"; sourceTree = "SOURCE_ROOT"; }; - 87FB12995D3200C2AD0531B1 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "../../../../modules/juce_data_structures"; sourceTree = "SOURCE_ROOT"; }; + 84FCF3E5B30EB7CF5EEFB983 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; + 851BE5F4B476FCC76DF56FEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8554F3107BAF434F9AFE3875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c"; sourceTree = "SOURCE_ROOT"; }; + 85677259EC513883D8D2076E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2WorldCallbacks.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2WorldCallbacks.h"; sourceTree = "SOURCE_ROOT"; }; + 857CE7D1DC614FCDD19F617D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 85D328C928A4CD6A1AEAB644 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 869FEB02E31658BD16664F1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Whirlpool.h"; path = "../../../../modules/juce_cryptography/hashing/juce_Whirlpool.h"; sourceTree = "SOURCE_ROOT"; }; + 86B1E971DDB1413BF596B130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2TimeStep.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2TimeStep.h"; sourceTree = "SOURCE_ROOT"; }; + 86BFE5D66623DB207CEA3F9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8717F2B47F51F0473C041760 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 872C4AF5B81B1664032594A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 877B42968286AAD56527516A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + 87B4302733FC6319FC9B1CB3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c"; sourceTree = "SOURCE_ROOT"; }; + 87C10F97FD75475F541A2236 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2DynamicTree.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2DynamicTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 87F30C283F01D6DE78677AE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; + 8838FC2F76E6D775B2E75F23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 885A0F1B41FFAF32ADC70925 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + 88A8F1D957ED293712DE0E23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + 88D689399C7F69D687208673 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + 88E9F6A65110F4753E115FF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 891BBF2E19D80372FA886E62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + 898999A1030D94C6808D5148 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_51.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h"; sourceTree = "SOURCE_ROOT"; }; + 8994E8A4FE0432DB2C9F5C32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; + 89C47678AF8B46702EC0EE66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; 89F0B6B952BC68FD271A652E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 89FD2460344D6B0FF04F70D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + 8A0109D195A8A98F3D316671 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = "SOURCE_ROOT"; }; + 8A81C6BE773B2895357F469C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; + 8A89A7C0DEC85C7773251B15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A8CA6C781EFD5F0997E7507 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + 8AE56D2F4E33B015C3D73EB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + 8AF04828A59F79DF2FD31E9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 8AF24276EFD548D2DE81B6E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backends.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h"; sourceTree = "SOURCE_ROOT"; }; + 8B24B1B5F68C57B014D709EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2DistanceJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2DistanceJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8B65B18F6411C38CE37289AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2FrictionJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2FrictionJoint.h"; sourceTree = "SOURCE_ROOT"; }; + 8BB3867A9236FF57B46581A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8BBC5E2D4753E8DB74E7BF8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c"; sourceTree = "SOURCE_ROOT"; }; + 8BDC3161654344162ECDCB32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8BFDB525631BDAD3A71CB307 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 8C4D0CE8E6E62BDD83F4432E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D121C4BCB6A36684EC59FB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; + 8D3B18C8A23499AB88F6B700 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 8D437AEAA6F7E3F0DCA43E8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D46447869B8AA77922FEE60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_linux_X11.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_linux_X11.h"; sourceTree = "SOURCE_ROOT"; }; + 8D67ED9898F9BE8652B8EE2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Math.h; path = "../../../../modules/juce_box2d/box2d/Common/b2Math.h"; sourceTree = "SOURCE_ROOT"; }; 8D70A7277DDD7B7974E9F178 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; 8D7BDA5CDDCCD2F7BE67037A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 8D936C8A4AFD6DE21F7212DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; + 8DA438AAAFBC64C11DE329B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8DC36D3C2FF85554B208793F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8DDCA7803625CF8DA817326A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 8DDE64B4A0EF76038498B47D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 8E1CA5F01D04FA8F6CCFF91B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8E28FF1F25D4B95ABA616BAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2PulleyJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2PulleyJoint.h"; sourceTree = "SOURCE_ROOT"; }; + 8E8283D81F04E954670F2636 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = "../../../../modules/juce_core/zip/zlib/inftrees.h"; sourceTree = "SOURCE_ROOT"; }; + 8EF11A0D1370915CA7AF4F64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + 8F05BFCFFAC8273150ABE262 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codec.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h"; sourceTree = "SOURCE_ROOT"; }; + 8F54927EB7C415884F445CD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2TimeOfImpact.h; path = "../../../../modules/juce_box2d/box2d/Collision/b2TimeOfImpact.h"; sourceTree = "SOURCE_ROOT"; }; 8F5B02778218DDD357C40D7D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 8F61AE043AEF6DCD47A36787 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F7D5E59BEB35E858363B752 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 8F8DD95844D647749BA662B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FA3BF005120A8BF8DD1BB80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 904A7BB9AF3500FCC5393750 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmemsys.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h"; sourceTree = "SOURCE_ROOT"; }; + 9053A4532020825D924EFB35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 905A87EA32A249ABFD0A90AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 9079FD325609A4E67E44F3ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; 90B1185950EF7670F87EAA3F = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 90C0455F5170CBCB8BB425E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngstruct.h; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngstruct.h"; sourceTree = "SOURCE_ROOT"; }; + 911A7962AD32375D7003FD41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngconf.h; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngconf.h"; sourceTree = "SOURCE_ROOT"; }; + 912E1A63093C3FA3BD2AFE61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 913BF3D4458ADD6A17F1BECC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2WorldCallbacks.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2WorldCallbacks.cpp"; sourceTree = "SOURCE_ROOT"; }; + 919095530634BCA10AB9AE95 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "libpng_readme.txt"; path = "../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt"; sourceTree = "SOURCE_ROOT"; }; + 9200669E9DB4FE676A07CD77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; 9297F74907620178A1EB41DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ChildProcessDemo.cpp; path = ../../Source/Demos/ChildProcessDemo.cpp; sourceTree = "SOURCE_ROOT"; }; 92D3CD3845968E4FAB93576D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LiveConstantDemo.cpp; path = ../../Source/Demos/LiveConstantDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 92E2C82B141DD4A923F03580 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2WeldJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2WeldJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 930C2398BC534B8387E867BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_all.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h"; sourceTree = "SOURCE_ROOT"; }; + 9327D6AA8805BE7AD971D68C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + 937A2E7B951F5D527DF54245 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + 93A03C37C749EEAEA8CDE62C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2FrictionJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2FrictionJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 93B3667FE4186CD75426EA53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 945E090A8DE2E776F7033143 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9461C1D2300CC3A91EC2D169 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 94D8CEE59AC2644453705A74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 94EC001CF772AFBA6D95F922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + 94FDE7DB4503F1DA55B7A47D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../../../modules/juce_core/zip/zlib/compress.c"; sourceTree = "SOURCE_ROOT"; }; + 95227EEF8BCCAD5E1840DB48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; + 95568D274244E02150C7F417 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; }; 9617B3B5FA9439D342F23ADC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AnimationDemo.cpp; path = ../../Source/Demos/AnimationDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 9627C56BF9BE509ABEF3B0DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c"; sourceTree = "SOURCE_ROOT"; }; + 96B7036D28E7BF24703EECAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = float.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/float.c"; sourceTree = "SOURCE_ROOT"; }; + 96F43E8EB364D3E40689D368 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 9750423DB3DB6570382DA3C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; + 977900010F61AF4676582E87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c"; sourceTree = "SOURCE_ROOT"; }; + 97C2F5225DC78ED6569FA916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; + 97C3A2B9575153E4CA0537B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9813895C24F80C5948DF41B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "win_utf8_io.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h"; sourceTree = "SOURCE_ROOT"; }; + 982A6760536A0D76070BFD3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2CollideEdge.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2CollideEdge.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9879B19E123C7C23F6A8CF28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V4.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9895036432E9AE55EE16323F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; + 989CD2B68A4EF90456E19ED9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 98D55DE4706A31BCD28458C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9918F60F5CC834C782543712 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 991F4C3B42036B549C321789 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99E8C71CC462DDDBC52D360C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 99E9746687DD6E518585DB09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedValue.h"; path = "../../../../modules/juce_data_structures/values/juce_CachedValue.h"; sourceTree = "SOURCE_ROOT"; }; + 9A4190B5B7E788B732637F2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9A4D6196AE49BEDAE4054729 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_events.cpp"; path = "../../../../modules/juce_events/juce_events.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9A60BF3F27FD10A058F4E956 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9A895B323AC3DDD249D99CB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; + 9ADA045A14202C9CF4F8CD40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 9B089D1649E4B5BC8AF63EC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 9B37E4C205A31B36B559E613 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = VideoDemo.cpp; path = ../../Source/Demos/VideoDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 9B9E034C5761096ACB8A76C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9B9F578EC77AA988C919AC6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BAE20FD7E2CBA120DDA82B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C0B4B92D8179B2B2EA27DCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Island.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2Island.h"; sourceTree = "SOURCE_ROOT"; }; + 9C734938D5FF5DA7827C74C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; 9CA3071EC654EB7FFEC70736 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainWindow.h; path = ../../Source/MainWindow.h; sourceTree = "SOURCE_ROOT"; }; - 9F1F73BB9993817FAB9D711F = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "../../../../modules/juce_audio_basics"; sourceTree = "SOURCE_ROOT"; }; + 9CABA28CDB2F38B933D7D5AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Distance.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2Distance.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9CC0810F5BAF70D00033FD22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9CDE3A30398FB033E5AE8498 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 9CED8F32B3718A90481EEDE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 9D0B40C4BF8FD939C33E3D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E0670BC105AC4CAE8569F04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngread.c"; sourceTree = "SOURCE_ROOT"; }; + 9E14C2C627D2F7B3C817468E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E30061BD7F9D97B218CED34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_X11_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9EB2AE5A72227301C365568F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9EB305226A801CB7012884F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9EC630CADB8CF5E2B3A517BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; 9F75FFB61C74FEECE61A7138 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MultithreadingDemo.cpp; path = ../../Source/Demos/MultithreadingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; 9FB3AFE9C376328C6D798741 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../JuceLibraryCode/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + A04410519258755461444678 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; A078E4C69AFA4FAE8DCC66BD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + A1244D54910A10100ECF8EE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A166FEC488A2EE5290FF0722 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + A167A41D05FA3B4AC6CA1E9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2GrowableStack.h; path = "../../../../modules/juce_box2d/box2d/Common/b2GrowableStack.h"; sourceTree = "SOURCE_ROOT"; }; + A169179FE554C215416FCD7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + A1A8D19C2E587194909B2913 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + A1EFF3DBE5F7B0C07AE59D7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + A1F10BB1A2745DC95DDDE0D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + A22726A53515D845743DFF84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + A235B5113FB4E5DA6267975F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + A2C836847DB29C151CB09E6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2PulleyJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2PulleyJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + A2EBD42F94D37FFF10F25985 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + A2F0B85560090CFAC7D95132 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + A2F403F649AC0AA7CA47EF65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + A2FD673C8D6D86B048C9E035 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c"; sourceTree = "SOURCE_ROOT"; }; + A3BC97F67B5567379214CECA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = "../../../../modules/juce_core/zip/zlib/crc32.c"; sourceTree = "SOURCE_ROOT"; }; + A3BDCE78A0AE63BEA0DDE600 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + A3D5134838BA1CEAF4284E9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + A457A6844324E461FF142768 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_8.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h"; sourceTree = "SOURCE_ROOT"; }; + A464874D0B8C63AA78C937B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4961A58A7D5F765D1EE083C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jccolor.c"; sourceTree = "SOURCE_ROOT"; }; + A4A64EF73E28AFFBD826AD60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + A4A7D4C4EF2A24F743D107B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4EAA590C3776FF63123E093 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = png.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/png.c"; sourceTree = "SOURCE_ROOT"; }; + A507AD139DCC0A43765C1FE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + A539F7B46DD001B3BF03B16F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + A60864C9398414445F587C91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + A6285ED9A26A9DA0A2931910 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A62BF9AB6EB0496F5BCE78B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + A631CD93C2809211DD926938 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + A670765B72A94519A5F66E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../../modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; A67AC004E3AD3129C578EFA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_box2d.cpp"; path = "../../JuceLibraryCode/juce_box2d.cpp"; sourceTree = "SOURCE_ROOT"; }; + A687283C2BEC2595A10EEE1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + A6AFF35305010E3E7C46D818 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2PolygonShape.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2PolygonShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6BC854E7C5B932911B2AFF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; A6EBDFEA86BEFF4682C46940 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../JuceLibraryCode/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + A6EE2D5A258294BAC600F75B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6F5FCBD2F26BF994727FBFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h"; sourceTree = "SOURCE_ROOT"; }; + A6FADD9A009BA1F1D36239FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + A73DB3E8639A4D39F9F9C50E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + A74BFBD7C3C18103B51F6342 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + A763B4ADDB7BDD941FFE51CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7C772D36E8964ADDCB7D096 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Draw.cpp; path = "../../../../modules/juce_box2d/box2d/Common/b2Draw.cpp"; sourceTree = "SOURCE_ROOT"; }; A7F846EF40A343C8E30D18DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../JuceLibraryCode/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + A8243EDBF34E3E3D4338D6F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + A83559E2258B5856CFD68EAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; A83639AF2210589E5367ABCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnitTestsDemo.cpp; path = ../../Source/Demos/UnitTestsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + A8878B1B86367E161868E49E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + A88B3DDBD1939456E225E36E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + A89CE9DD8363BF699DBAD4A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c"; sourceTree = "SOURCE_ROOT"; }; + A90C7FF8F98D21494524B726 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A90EA62A0A4A1B5E62CF0BE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + A966B620E1FB219BD4A4F3D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A99853D3CB536CFDB6C91F98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + A9BA8E7E434AC82F4604C773 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + AA920A77D326B0F5E53F567F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA967AC6E8FDCD7502272DA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + AAC3A67363234D151DA6BFF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = "SOURCE_ROOT"; }; + AAC68E522F44DA7AD25574C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + AAF6B6F2F129303FB8682109 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; + AB19F2DAD8930809EC63CF89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = info.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/info.c"; sourceTree = "SOURCE_ROOT"; }; + AB3C484314062E809AC41132 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLAppComponent.cpp"; path = "../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB589E1E7EC83EA620B7F780 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB92BC8961EE90E0F23FD6C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ABDFE5D85E6ED3CBB8AE1F50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + ABFAD9653637328D6FB7F06B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC043128E8D43D6EA4E29824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + AC25983CE9B938D1DB002A98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + AC2CA767DC0B09749E9EC53E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h"; sourceTree = "SOURCE_ROOT"; }; + AC3132AD4826E77E807ACD3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC3600881A53014EFC1CB8D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + AC67D402C4C5DD1F6F036044 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2GearJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2GearJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; AC70FAD27248857B6D16BD33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioSynthesiserDemo.cpp; path = ../../Source/Demos/AudioSynthesiserDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + AC7A214BA7B1A172F5B31735 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACDD5519D82FDB831085B8B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + AD33778491D50853BFFED9E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; AD55906C5D8552E842C98EDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WindowsDemo.cpp; path = ../../Source/Demos/WindowsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + AD593F766DC27414A94FABEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + ADDA92448B0EC5EC1C6D5A2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + AE68B9AA74EE6F138B3E0B94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; AEF26EF11BEBA847F152A1D5 = {isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; + AF08C54E4F91D5E480A48EFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2ContactManager.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2ContactManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF396B7AE1BE00099A19D191 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF98F62B0DD92F26D0018A98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + B02086DEB7D97B8B2DCBBF65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "window_flac.c"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/window_flac.c"; sourceTree = "SOURCE_ROOT"; }; + B0287B0EE6C4EE20EBF95FDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; }; + B02CAD037D993AC554573415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_cryptography.cpp"; path = "../../../../modules/juce_cryptography/juce_cryptography.cpp"; sourceTree = "SOURCE_ROOT"; }; + B033B7729D2D204BBD71BDD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0DA13336DA07392C689323C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0E867D448609AFBA718729D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2EdgeAndPolygonContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2EdgeAndPolygonContact.h"; sourceTree = "SOURCE_ROOT"; }; + B10A9A3B4A4C2507F514D5F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + B13478BBA4B1E5D7A147042E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + B13A8EA6840489EB88D77800 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B1608DC2A0212CE5D68585A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcdctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + B17EF578E9B736B1C5A5E8BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + B1C05A8D59655916054612D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; + B1F568A29AE97695819566D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; + B27A7B237782F9E15E4BF8D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + B2BD3F284DBA9EDFFF80ECE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + B2C11FB8D4762ABB6CB9B934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; + B2C2CE1C54B3F7BF754EB506 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c"; sourceTree = "SOURCE_ROOT"; }; + B2E3E18FA4A5EB53BADA5072 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h"; sourceTree = "SOURCE_ROOT"; }; + B305C104F5A573E8AFEFA763 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B31051BBF74FADEA48D39B22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44.h"; sourceTree = "SOURCE_ROOT"; }; + B341BC1AD30CCDDAD967EB0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + B36D9787DD79D0DED8D791F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B37E6323D9D3C3CA68672D6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + B3976635944EC69837499F9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + B3BF13E52ED6443A85AF0230 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; }; + B3E2A6A5C59E1462DF544A06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B44CC152D6454AF6F16E9EF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; B487CD915AF683CE01469268 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + B51567633F44A10D4543B219 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + B56F4C53187D40137670DB1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + B589CF5248A17A319E5EC80D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B59B0121C46D4A2B9EC3BBFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + B63430A7E4A342907B763957 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; + B63933880C456903722F46A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + B66569933AFA114078589944 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2ContactManager.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2ContactManager.h"; sourceTree = "SOURCE_ROOT"; }; + B680E1C22A5885A8336D8DA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6874BAE87F275944C07B498 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_video.h"; path = "../../../../modules/juce_video/juce_video.h"; sourceTree = "SOURCE_ROOT"; }; + B688441D29BB51A9C4E83CFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6B6519216FF4413B698C889 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTreeSynchroniser.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6BAAFF929DCAD7D8D0D0C95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2DynamicTree.h; path = "../../../../modules/juce_box2d/box2d/Collision/b2DynamicTree.h"; sourceTree = "SOURCE_ROOT"; }; B731664FB9EEEBC618BAB5A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TimersAndEventsDemo.cpp; path = ../../Source/Demos/TimersAndEventsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + B731BB6DF7C0468A42BBFEBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c"; sourceTree = "SOURCE_ROOT"; }; + B7AE6C1C50421EE6E02045DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; B84A6E341207FA1F60EB5AF1 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Resources/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; - BA0689752E29259BBD3AECAA = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "../../../../modules/juce_gui_basics"; sourceTree = "SOURCE_ROOT"; }; + B8BDAFE861AD60BEC44D7ED5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B8D4B6843E55CC07167085AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B8F25B3AB59A577E53304AC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + B97B2C0C6A4322FFAACE1C39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + B9A524CB6B0598E4D7F7DD93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; + B9D26C6C4CED62E6708B6865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + BA008864E9E4F195E61A21F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; }; + BA376DEB932E4D8C79105456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Body.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2Body.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA5A007216A3E496509D5CE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + BA87061C6A6FFC374FB92371 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_32.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = "SOURCE_ROOT"; }; + BAC70BABB531B634736585A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + BADD02151C3951E4853DA06D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB29289B196047505CF5EE6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + BBBBA7BB82E61F6A4906B2F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = compat.h; path = "../../../../modules/juce_audio_formats/codecs/flac/compat.h"; sourceTree = "SOURCE_ROOT"; }; + BBC3C77A4D771DFCCB08B874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + BC2E34C0883EB362398AC448 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + BC30642EEF908E1C7757690B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + BC5C356A2C2BCF10C0110E05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; + BC69E52F734ECCF2DAFF1CE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; + BCACFA5E8370800EB6487CC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDDD1C149C23BCA4F501BEF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE0138B298B1BC513ED94196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ios_Audio.h"; path = "../../../../modules/juce_audio_devices/native/juce_ios_Audio.h"; sourceTree = "SOURCE_ROOT"; }; + BE092C995070D86673E0CA21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE260594789CF43E1A4EF4E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE9B3F83B6037C848596286B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF2CAEB6EC641789133B627E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF3AF2E3B0D2184B766E1B26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF6E19C2CA2032242B7A2556 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF7EE64D6E337BED36814439 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; + BFC3C3EBCDDABF1529A317FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + BFCAF7A5D017D3BC4CD51D60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + BFEBB2645034DC82B723A79A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h"; sourceTree = "SOURCE_ROOT"; }; + BFEEC370F9DAD159E5789EB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + C006CE2DED5AB537B5C3FD5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + C02B87CFD478C01111DEC2AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = "../../../../modules/juce_audio_formats/codecs/flac/ordinals.h"; sourceTree = "SOURCE_ROOT"; }; + C054B94424A80B5DCA6CC52F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + C06F64DF6D95D5C9C8B2D5F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + C07500D8FFE6CAAC69A45845 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_uncoupled.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h"; sourceTree = "SOURCE_ROOT"; }; + C0918662F3E28570DF17B041 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + C09840AD421A11A244964AB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C0A9EF3D27D21B307649111B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Box2DRenderer.cpp"; path = "../../../../modules/juce_box2d/utils/juce_Box2DRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; C0C8D6D7D14DFAFB169FFDCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ValueTreesDemo.cpp; path = ../../Source/Demos/ValueTreesDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - C542454A6B0F43AFAEA63092 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "../../../../modules/juce_graphics"; sourceTree = "SOURCE_ROOT"; }; + C0F898298ABF2458D6C5AF17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + C17598E72A99F3BA8984EF48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_WinRTWrapper.h"; path = "../../../../modules/juce_events/native/juce_win32_WinRTWrapper.h"; sourceTree = "SOURCE_ROOT"; }; + C1CBC5B338453DA492698C3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + C1EA39F83282A1255996C0F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + C20FD8D605E6714D473D5C9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2FFDDA61218A94403D5FE56 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + C310CD4992AAC4FEB72694AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = envelope.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.c"; sourceTree = "SOURCE_ROOT"; }; + C350AC724B75E0B996FAB6EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c"; sourceTree = "SOURCE_ROOT"; }; + C411A91DC3B306E2C417F1BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + C416D60EFF7F25E0080A94D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C43CFE8A48F03CCBCAE08D24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Box2DRenderer.h"; path = "../../../../modules/juce_box2d/utils/juce_Box2DRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + C4422D6B71C3EC8AB4CF661D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + C45AB6B9BE8ED011F1846B34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = assert.h; path = "../../../../modules/juce_audio_formats/codecs/flac/assert.h"; sourceTree = "SOURCE_ROOT"; }; + C47BAAAD3DF91B17A7787941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + C4B8D5FC3E906DA9F6A4379E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + C4E873C0CD6E9C76EA2997C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; }; + C509F69A37C9A9053D6E9546 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5333852BC17403BEE42815C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = "../../../../modules/juce_core/zip/zlib/zconf.h"; sourceTree = "SOURCE_ROOT"; }; + C549EFF977C210EB398C9A33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + C563E89F311D1D59E9A14A11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_IconHelpers.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_IconHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5A932A82042E2DAEBE1C302 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + C60CE259EE4CFE6AC61044FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + C628426662C41516184AA5B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_22.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h"; sourceTree = "SOURCE_ROOT"; }; + C657A3FCA08E4022C085889D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2EdgeAndPolygonContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + C66610F2227199720C6D6D71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Fixture.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2Fixture.h"; sourceTree = "SOURCE_ROOT"; }; + C6D9D6E03D4B740DDF9B3C57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C7026BE1C751908FEA9E5AAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7089BDB2F572546643160C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + C73A51DC1F01D988D7293995 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/window.h"; sourceTree = "SOURCE_ROOT"; }; + C77F148F8E8E9F805D730386 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C784392363846286D29F207F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + C7A943716B2FD728EFAC84D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + C7C8C7D58A08D1583E0C2E6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; C812CDED0B089FD1B76FC9EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioLiveScrollingDisplay.h; path = ../../Source/Demos/AudioLiveScrollingDisplay.h; sourceTree = "SOURCE_ROOT"; }; + C8A42EE493A1DF2E283C245E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + C8CABD53634D53E64132CAAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; C8DBA0F79A42D081DF328798 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../JuceLibraryCode/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + C8E3220EC4F4E4242CD3026D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + C9285E46E758A36E7BE10F1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../../../modules/juce_core/zip/zlib/inffast.c"; sourceTree = "SOURCE_ROOT"; }; + C92A35B9676A81157B54284A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; C993FAEDCEE0A33CAB42F995 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Box2DDemo.cpp; path = ../../Source/Demos/Box2DDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - CA3990F1FAA13F322E813486 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_video"; path = "../../../../modules/juce_video"; sourceTree = "SOURCE_ROOT"; }; + C9A6F7104C8DF1694159B166 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2World.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2World.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9B2CD80C0B08241D7B4AAC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2ChainAndPolygonContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2ChainAndPolygonContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9C1FC1B4628557AE5C7E7ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9DA15073F3BF252BAFF9D69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + CA0E3166C77EB91555893286 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + CAD3749B6A5BDB2BB00D3498 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + CAD598C03B7C93B4AF912E66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + CADD66B495B2180CA8A267FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jutils.c"; sourceTree = "SOURCE_ROOT"; }; + CB3B1B31A502CFEFFBE3AB88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder.c"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c"; sourceTree = "SOURCE_ROOT"; }; + CBDC7CC5CE4132A5D63B583F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC5F6FD5F339E1811037EABE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC79B254C68555B4FFEBC692 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC9D900E9D8A5997076C8614 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = trees.h; path = "../../../../modules/juce_core/zip/zlib/trees.h"; sourceTree = "SOURCE_ROOT"; }; + CCD2ED6F6F3ABCC172DC4957 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + CCD337188E562E1273DAF2E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c"; sourceTree = "SOURCE_ROOT"; }; + CCEA3C304A87D1B80D2A8AE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdct.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdct.h"; sourceTree = "SOURCE_ROOT"; }; CCEC8F9385AE939B24D27954 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = JavaScript.cpp; path = ../../Source/Demos/JavaScript.cpp; sourceTree = "SOURCE_ROOT"; }; + CD4DB45FA0E529AD1A38DA8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = "../../../../modules/juce_core/zip/zlib/crc32.h"; sourceTree = "SOURCE_ROOT"; }; + CD8B9E60EFE0A0ED368EE3D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; + CD9B8C96642C7F691FCB3EC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + CDAD8C8558CF8FB2299D1916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Settings.cpp; path = "../../../../modules/juce_box2d/box2d/Common/b2Settings.cpp"; sourceTree = "SOURCE_ROOT"; }; + CDB41763FDE907C3C0E75374 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + CE045161909A4EADCE49629F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE276E0CAE722EA80F7985BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; + CE7D4E7030BF4BB4B1093B5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + CE7F627E873D9A1380271F7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2PrismaticJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2PrismaticJoint.h"; sourceTree = "SOURCE_ROOT"; }; + CEA314CE7BCC5304D9CF2617 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c"; sourceTree = "SOURCE_ROOT"; }; + CF1DA3CB41AA43B349D3A6B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; + CF626DE27EB763C9BCFD4F15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF7CEC8C260AC623C222264C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF8ED7DAF793C404D5AB68E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Collision.h; path = "../../../../modules/juce_box2d/box2d/Collision/b2Collision.h"; sourceTree = "SOURCE_ROOT"; }; + D026D56600A2F8328CD8DC2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h"; sourceTree = "SOURCE_ROOT"; }; + D04960564D2860B19FA5D1CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + D057633F8F7684AB7B4B28AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D0736DBF1DA74CBA695DE54C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; + D0A84ED14FC2F7A143679258 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + D0ADA33F00B3BD83C1D5AE37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + D100B2EDF88F2C019E4D2311 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + D185139B980081A6E950B572 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c"; sourceTree = "SOURCE_ROOT"; }; + D19A55AA2BD9028ED50F1941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; + D1D8A53A7614F106942DADED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + D1E31AC47CCAB97418EB646D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + D22CF9580AC80B5AB6D97ED4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; + D25576B0B80B36DC4C9830E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; + D2CD51975BB4D1630629B620 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../../../modules/juce_core/zip/zlib/zlib.h"; sourceTree = "SOURCE_ROOT"; }; + D31B7C2ABFDACEDFBF3230E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2BlockAllocator.h; path = "../../../../modules/juce_box2d/box2d/Common/b2BlockAllocator.h"; sourceTree = "SOURCE_ROOT"; }; + D32A6DB271947C7583815465 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44p51.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h"; sourceTree = "SOURCE_ROOT"; }; + D38060D21F6AC8F6A935A6BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; + D3A84810AE56991562B6F252 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; + D3D86F3CDD057C174A16E382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + D400C8DFE9DA635FDDBF57BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + D45AD25E5AC67424EAE5A85F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D574F24273E747525891B11C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + D5942A1C95986841CA286736 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + D5C59D717CF1C0F15164AD43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + D5E0E9C7BE4512793747276F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Island.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2Island.cpp"; sourceTree = "SOURCE_ROOT"; }; + D61BA88D3AC9556266FE4368 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6238E383F396236E3A4C054 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + D65129253734C1917354C08E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + D6AB846628BE74C5349C95CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + D6B8E586D30632EA07C48D6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + D74B19291F4B0370A2742A63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + D767A88B0BC208DECCC1AA3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + D769F1AEAE71E490F5E6CEFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatisticsAccumulator.h"; path = "../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h"; sourceTree = "SOURCE_ROOT"; }; + D7A951371F530DA0A350AF44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + D7B1BBA8FE789A80E86CEA03 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7D048CFDB58B67E9BAB7448 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; }; + D80487E6482EB12BF2C6BD22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D807B4138306397F8A93FA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D862A1AE0227E6565606415A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Collision.cpp; path = "../../../../modules/juce_box2d/box2d/Collision/b2Collision.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8AE63002C7273F98226394B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + D8DFE1C66668C30215288BBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8EB3FEADD047C7AEFF9C8C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + D93CE990D75211F4A5EBB4F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + D94C07E10FC25EE303D64992 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + D999C4C8DE51CDFB861B863D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D99C0F89D572BBF219A7B991 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + D9AAC6516BAD4F5BAE9CF297 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + D9D55F689FB9EBF41830E597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; + D9DFC1CE9A4EF9230B49D697 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + DA78B13D87626C49A2140FDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + DAACF5AFA6B6994384BA4984 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + DADF2C478777BA8EEBB55CDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + DAF2C8E641253779B6DFF139 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + DAFB19E49A6221854341BE2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + DB333E69879020687C4DEE40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = "SOURCE_ROOT"; }; + DB4F93F7AC744AEB619ABE42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + DB748B0D9227F5345683CF7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + DB8FAF091C9E78AE5F64701F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + DBA2AA024D68F286B07E32AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; + DBA6A4314768BEA9B73ADA2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = "SOURCE_ROOT"; }; + DC0AE99EFE4F88987CA2F705 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC6930EE56EEA5221CFECAB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + DCAB5AE95227A13D9822058F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c"; sourceTree = "SOURCE_ROOT"; }; DD24BAA1E8104B6D3554A222 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = XMLandJSONDemo.cpp; path = ../../Source/Demos/XMLandJSONDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - DD3241BC4E58514C9FE427EF = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "../../../../modules/juce_gui_extra"; sourceTree = "SOURCE_ROOT"; }; + DD4A812225F47E590FCF2E29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD5F4BFEA497212883A869A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD710105BDB9E94D4D137061 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdcoefct.c"; sourceTree = "SOURCE_ROOT"; }; + DDDB707A59DB489D195BF99D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + DDF02BD16454102C353FCD18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE3BEA732CBC57AE71E94159 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; + DE4911ACF6DDF2A31511D0F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_X11_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_X11_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE534A5A2D3B48BFBCE598B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEB0E2F28130100B1EFD250E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; DEE5EFE8148FD2DC743A7DD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LookAndFeelDemo.cpp; path = ../../Source/Demos/LookAndFeelDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - E0B675633C35F70D19DFBED9 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_opengl"; path = "../../../../modules/juce_opengl"; sourceTree = "SOURCE_ROOT"; }; + DEEF4C52F6D21B716534F2A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_opengl.cpp"; path = "../../../../modules/juce_opengl/juce_opengl.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF80BF471CDEF288F1226FAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_X11_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_X11_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF9B26660FAF5ECF2EF620B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + E04EC9F05219CEEB4469A437 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + E0565A19E2589729259C7116 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + E0B8277ABF9DDAC8C12DE26D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + E0DB91A472A77866258D12B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E1107017C2BF7ECC847DF01A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; E13D0BEFB46B4D8751EF6CAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../JuceLibraryCode/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; - E1EC83E7941C4CB66AD7D503 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_box2d"; path = "../../../../modules/juce_box2d"; sourceTree = "SOURCE_ROOT"; }; + E199DDD8F06741F21D8F9CFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + E20323737D800CE8CDCFAFA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder_framing.c"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c"; sourceTree = "SOURCE_ROOT"; }; + E2127416236840EE3AF32D5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + E22ACD275523DA9CFA935974 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; + E23EDF80FD5320232483D80F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + E2C5C95247FDECA4C39F1415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + E30009C6743474CD6195F5F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + E31FB2C8B34A146D28A4C611 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + E32D1C481161F063918F76AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + E3415348D45BF63A7CE8CF6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + E34DFFF51D0F7C34FB826C4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; + E3DC9C2BBC81EC0B035AA32C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; + E3E3CD4660C20BE120E8BB1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E3EA85354D9EE49DD8F21968 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c"; sourceTree = "SOURCE_ROOT"; }; + E3FC1C3B49CEAA7F4A500539 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + E41A387D233A436131D7910E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + E4369FFC0E1A6547580D671F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + E463B9F4796E34B8082A4EE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c"; sourceTree = "SOURCE_ROOT"; }; + E489FF0264C957A8F71F346A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + E4981056661C3F251FECEC32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + E4BD5632ADD38CF8BAD38A76 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + E5058DD199CEC42ECE922239 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + E579D4E4BEF679C5E543E1EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = res0.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c"; sourceTree = "SOURCE_ROOT"; }; + E5E02A3C4E942105FEDCA885 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + E65AD0A1AE4984807B2A724B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_IconHelpers.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_IconHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + E682A3A52BD15D5CA4933C12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + E6AA10B691E44C8C1ED5A8E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c"; sourceTree = "SOURCE_ROOT"; }; + E6E0ADA4E3632540A8ADC7D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + E6E0FE3CBDBE2554B527CF60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E70A283A87989F5A1CEDE6A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7113B21A18CD89165BAFD4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7800E0F7C31379D0EE87F75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; + E795BB191E062484B1FA776B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Fixture.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/b2Fixture.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7A5AF3EBCFEEF8787F2D14F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7B21011F93915ADD2CC5DD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7EA99CD84E1EC598F4984DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + E7EE6BDC0E3A0739529AED91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; E80CA3836329ED0EEC74BAE6 = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; - E8521F7D9BDD57712D7C95B8 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "../../../../modules/juce_audio_processors"; sourceTree = "SOURCE_ROOT"; }; + E8128A35828C860977FEC54C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + E82DF2D78AC0E2DD70161D4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_IconHelpers.cpp"; path = "../../../../modules/juce_graphics/native/juce_mac_IconHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + E868383557CF3FA6D9DCCF7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2RevoluteJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2RevoluteJoint.h"; sourceTree = "SOURCE_ROOT"; }; + E8D77909D3D8E10550164EE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = transupp.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/transupp.h"; sourceTree = "SOURCE_ROOT"; }; E8D96BDC76CD02DF3E238A88 = {isa = PBXFileReference; lastKnownFileType = image.png; name = "tile_background.png"; path = "../../Resources/tile_background.png"; sourceTree = "SOURCE_ROOT"; }; + E8DBB02B17A6E144D08E4CC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + E97D7A1408F6EDDAE48E1837 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + E98EA1189613978EA4E78D85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + E9A11D2BB2A05BBF2819EDA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Shape.h; path = "../../../../modules/juce_box2d/box2d/Collision/Shapes/b2Shape.h"; sourceTree = "SOURCE_ROOT"; }; + E9A3E96E32C301EE817059C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9B8B3FAECC80B66257B14F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; + E9BBEE1B3986E0829AA44133 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EA082125C757D1FD63BA38C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + EA3436079F0D78BB76CD15F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; + EA374E11C3C4C144F70E9763 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2StackAllocator.h; path = "../../../../modules/juce_box2d/box2d/Common/b2StackAllocator.h"; sourceTree = "SOURCE_ROOT"; }; + EA7D346CAE6A07C0B395816B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + EA9FE6D1E0A072E73312916C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + EAA0943602A39C1090D4BB0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Contact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2Contact.cpp"; sourceTree = "SOURCE_ROOT"; }; + EAB03C65A97235C01836E9F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_MovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; EACCBFA17F4D07ECE058EEBB = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + EAFE3EC4FDC03DC6929446E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Timer.cpp; path = "../../../../modules/juce_box2d/box2d/Common/b2Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + EB369EA30D31CD710A09B7FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + EB6F5F8F57F0117C10735583 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; EB93700805DBEBF58092DC3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../JuceLibraryCode/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + EBDC7D0B732C39AE0D0E66A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; + EC0F56A4059858E05BAB98BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h"; sourceTree = "SOURCE_ROOT"; }; + EC8A992EA9CFA558DB9F950E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + ECAB8BD2816B0BEFCD9F6961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + ED3DE86815324354C48631D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + ED60462270C52F6FA0844E31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; + ED6224ABC715AAB68661F4D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_box2d.cpp"; path = "../../../../modules/juce_box2d/juce_box2d.cpp"; sourceTree = "SOURCE_ROOT"; }; ED6ADC3F084F9F3B6177B0C8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; ED80E9909586DD64BDE03A70 = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = portmeirion.jpg; path = ../../Resources/portmeirion.jpg; sourceTree = "SOURCE_ROOT"; }; - ED9B08CE8FABC83B15ACC525 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_cryptography"; path = "../../../../modules/juce_cryptography"; sourceTree = "SOURCE_ROOT"; }; + EE7001BD5206A8D8EA2D125B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + EEA020419EF58E90C10AAE26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + EEAA1BB6254EDE07A7ABAD65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + EF18C494669488BEDFC25A5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlexBox.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + EF8055850F3DEA173761E3B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + EFD1BD42000EE640A17EE1ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + EFDA611057B66032D2F06E53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Joint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2Joint.cpp"; sourceTree = "SOURCE_ROOT"; }; + F020CAD810CE79FDB1032B27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = "SOURCE_ROOT"; }; + F037091D4A3012EBBA1E808F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F043752E829829CE2A364F39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTreeSynchroniser.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h"; sourceTree = "SOURCE_ROOT"; }; + F04AC34216D2378E32F0B07A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h"; sourceTree = "SOURCE_ROOT"; }; + F0ACCF70936A0BBA2A2AB289 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + F13AAF4D472479EEEDFDCF83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + F15C7935F9F6BC83AB51C529 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_video.cpp"; path = "../../../../modules/juce_video/juce_video.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1A30E40F7388D16BA35B0DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1A9F544E889DDA995415F6D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + F1C715FCE140547D074CDB96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; F1E995A1E00C6545A4C3297B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = KeyMappingsDemo.cpp; path = ../../Source/Demos/KeyMappingsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F5D8210C0B167990A207CB9D = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "../../../../modules/juce_events"; sourceTree = "SOURCE_ROOT"; }; - FB81D8A6BED189361FA8BE0A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "../../../../modules/juce_core"; sourceTree = "SOURCE_ROOT"; }; + F23C2044AD3C7D2B333ABE1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = envelope.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.h"; sourceTree = "SOURCE_ROOT"; }; + F2609029E69B0B5CB8A24D5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; + F26339EFC03BD8D22016EEB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + F29F6395C4935C1A663A1D15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + F2A15E99B15FBE0CC5F3712E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; }; + F380FE12E78619086BA33CDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3A9E0AE5ED05CA1AD6F56E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; + F3AF542BB3A9E6CC1D6E37DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3B746DC92EFE7A9B8EA9E43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + F3E98B138E54B8434CB3E34F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; + F400958FAF55C6818735E008 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2PolygonAndCircleContact.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2PolygonAndCircleContact.cpp"; sourceTree = "SOURCE_ROOT"; }; + F42FE65C750920656EA22BF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + F43CED7548EE5C9F841CB1FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + F44EEB349CFFF332AABDD46D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2RopeJoint.cpp; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2RopeJoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + F4676BB721F96DC5DDDAE746 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + F4877166B6AEA79289FE123A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2WeldJoint.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Joints/b2WeldJoint.h"; sourceTree = "SOURCE_ROOT"; }; + F48E6A27D809C49D42D3202C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F4B11F898B7FAF9370F36BCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = registry.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c"; sourceTree = "SOURCE_ROOT"; }; + F4BBD7DEBE0F1DD2CE45C411 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + F505192F2FE344F52DD681A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c"; sourceTree = "SOURCE_ROOT"; }; + F53D12880F3354B4FFA480E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + F584FC21C26C72A81D840840 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + F58760A8EE18630F97C7B646 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5B288379859F5C9F4FB83BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; + F5FAE931614AAD7C68FC6AB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_linux_X11.h"; path = "../../../../modules/juce_gui_basics/native/juce_linux_X11.h"; sourceTree = "SOURCE_ROOT"; }; + F696BA0801B1A34571346EDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6A32897F123B06226205866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c"; sourceTree = "SOURCE_ROOT"; }; + F6A48D53B5FE3830E3078B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c"; sourceTree = "SOURCE_ROOT"; }; + F6DB1C1E0D9315245E87CBC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + F704F70F80BA62A48F3651BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + F746F30147C6BE88F60E92CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + F753A7C2031832BB628CBB2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + F762EA210E2AA9560F3CF100 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c"; sourceTree = "SOURCE_ROOT"; }; + F779C79AC37C83A60B997641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7CDE069A32CA0EAD1BE7D43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; + F843FC09B4C2A10C76D8D35C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + F881704607DB79F9A3CF7491 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + F89584972F16A8EC49E5E74D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + F91A3C07D81BE2D4A191C9A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + F922253CBC7353685623728E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_16.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h"; sourceTree = "SOURCE_ROOT"; }; + F965E478C21D19EF32760A9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F97F775EDCD2D1C497625D4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + F98920AB20377A95CCA8CDF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CatmullRomInterpolator.h"; path = "../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + F98BEA2FEE66A3DEAD9D43B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + F99F73DEBB0EB724142FA930 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F9AF8317EEF3297C1D616049 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = "../../../../modules/juce_core/zip/zlib/inflate.c"; sourceTree = "SOURCE_ROOT"; }; + F9F4D5D9783B88F2DE889023 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + FA2DA6E207768A7B20EC8197 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = b2Math.cpp; path = "../../../../modules/juce_box2d/box2d/Common/b2Math.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA5777F9FFCC6BE9D9F98874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + FA8B6B0F6D43146BAAE04D4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + FAFF7B60A09FE1BFD468163B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB2CB5482F056ACD6AFE12A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FB8BE0538AD9420DD4D1E9C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBCB116F120D54D41B211C12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_X11.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_X11.cpp"; sourceTree = "SOURCE_ROOT"; }; FC022E24D3A4C3E7C77E55BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../JuceLibraryCode/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + FC14A2D9F860584459B762F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; + FC1BA0654179A585DF5B9DC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + FC63A33CA2E025F5C4C22CD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_win32.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_win32.h"; sourceTree = "SOURCE_ROOT"; }; FCA788F92D5BB1640CD2AC35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioSettingsDemo.cpp; path = ../../Source/Demos/AudioSettingsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + FCAC296E92A219D70EB96AD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + FCE177D4FA4ABB9635AC9737 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexBox.h"; path = "../../../../modules/juce_gui_basics/layout/juce_FlexBox.h"; sourceTree = "SOURCE_ROOT"; }; + FD22F7A808D3B534354FD7E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2Distance.h; path = "../../../../modules/juce_box2d/box2d/Collision/b2Distance.h"; sourceTree = "SOURCE_ROOT"; }; + FD2A08CE74C6EBC90CD44A49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; }; FD46383E356A5DDC1AD53380 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkingDemo.cpp; path = ../../Source/Demos/NetworkingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + FDB35D95490B931CC376A943 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + FDBFCE2A24F32AEEB896819F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + FDD9DA21786D445DCD01912A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FE22C972B67EC59701E1CC3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FE4C496CFA9A1E786253B005 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE613A570CE31071FD22DC06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; FEB688750213D0C64F18AA37 = {isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = ../../Resources/icons.zip; sourceTree = "SOURCE_ROOT"; }; + FEE40D6560981264BFB46189 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_formats.cpp"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.cpp"; sourceTree = "SOURCE_ROOT"; }; + FF34F4ED0C44B2BA4FBF22AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + FFF76FBE6229D1D034294843 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c"; sourceTree = "SOURCE_ROOT"; }; 5D279CE438F706BB32D767C7 = {isa = PBXGroup; children = ( 9617B3B5FA9439D342F23ADC, 01C6528C4A0646873D4C3429, @@ -247,22 +1501,1547 @@ 0BC17C2D6DC6B34C6F308432, ); name = Source; sourceTree = ""; }; DAD5A945FFB6D6920BF0D1F6 = {isa = PBXGroup; children = ( 41B2F9FB15FB255A0DEDCA00, ); name = JuceDemo; sourceTree = ""; }; + 2E611F0F7339D11F087A1996 = {isa = PBXGroup; children = ( + 9EC630CADB8CF5E2B3A517BE, ); name = "audio_play_head"; sourceTree = ""; }; + 2093B556368390D49E2342DD = {isa = PBXGroup; children = ( + 673D3A9FEE5D83720B157FA5, + 3604A45AFB219B430055B832, + 26A65E5DA320A85F90F1F58F, + 2699A70E9610104CB8D30EC4, + C0F898298ABF2458D6C5AF17, + CBDC7CC5CE4132A5D63B583F, + E34DFFF51D0F7C34FB826C4C, ); name = buffers; sourceTree = ""; }; + 8C51D7221F912CE37F745FAD = {isa = PBXGroup; children = ( + C4422D6B71C3EC8AB4CF661D, + F98920AB20377A95CCA8CDF1, + EA7D346CAE6A07C0B395816B, + 29AA7E6AE1C062B740F4D80C, + 4983B8B7E3666DCAC1A1644B, + 753D9A91CFBFAA027F828C02, + A3D5134838BA1CEAF4284E9A, + 155D25867B048DB7685E6F11, + 541E0CB92DCF5EDA093EDC7D, + BA008864E9E4F195E61A21F8, + B51567633F44A10D4543B219, ); name = effects; sourceTree = ""; }; + 9584E10BF221E61AA03D15D1 = {isa = PBXGroup; children = ( + 7F2A233FFE5CDB2681F0DC28, + 68AD6A94C88A46A483B823E0, + 2BFAB8AE52821D3786BD7ECA, + 7DB8F4BB2B4884803207417F, + FB8BE0538AD9420DD4D1E9C8, + 25615385230E47D7E70A2745, + 1F25BC80413668F43F5D7864, + E489FF0264C957A8F71F346A, + 7828AF42E3C857F520EABDD7, + 49BFC515C915A4AB53EC15C4, + F696BA0801B1A34571346EDC, + 586A4398FE1B9F7D6104BB70, ); name = midi; sourceTree = ""; }; + 02D4088EFD99A85F642A9518 = {isa = PBXGroup; children = ( + 66F8C7EB6520AB9439433DF3, + F2A15E99B15FBE0CC5F3712E, + 6E386DC2F80B9C90264AB60E, + B3BF13E52ED6443A85AF0230, + BF7EE64D6E337BED36814439, + 7AF9EF500482C84F02849647, + 44BB5D71E35E65F5209292B8, + 234392598E5388F29CFD6B50, + 338AEA7AC3EF4CE113FC7303, + 65DA0DAA8BDCE57A54C1CF26, + 03E5796BC74758EBDBD49081, + D7D048CFDB58B67E9BAB7448, + 8C4D0CE8E6E62BDD83F4432E, + B0287B0EE6C4EE20EBF95FDC, + 07425F710A1C4AC479BE56C6, + 59810BDD671438F997D32061, + 0F0B65D33F71F27C1E366CF0, + D0736DBF1DA74CBA695DE54C, ); name = mpe; sourceTree = ""; }; + D1AEDF3E8977710659AEBBF6 = {isa = PBXGroup; children = ( + 088BC49A72D9304769B2CBFE, + D767A88B0BC208DECCC1AA3F, + 0AC78EC782815C8325A3AC8B, + 3924287A67ED97279455625B, + E5E02A3C4E942105FEDCA885, + D574F24273E747525891B11C, + EEAA1BB6254EDE07A7ABAD65, + E0B8277ABF9DDAC8C12DE26D, + 2781E458566701273B805E8A, + 2C26D37BEDBDC3B1DF19388D, + E70A283A87989F5A1CEDE6A4, + 78B172DD2AAFE3535D0460C5, + 7E847EBFB83896EA08975F8F, + 384887ECD58A0B42E3669617, + 35F5E95BA127E63BA136DACC, + 7D7A6251E976BF292861510F, ); name = sources; sourceTree = ""; }; + 40ACD7AC2E7A22F480207678 = {isa = PBXGroup; children = ( + 42386AD366F1AD43B6B29364, + B341BC1AD30CCDDAD967EB0E, ); name = synthesisers; sourceTree = ""; }; + EAD085E39B98D2F88E2854DA = {isa = PBXGroup; children = ( + 2E611F0F7339D11F087A1996, + 2093B556368390D49E2342DD, + 8C51D7221F912CE37F745FAD, + 9584E10BF221E61AA03D15D1, + 02D4088EFD99A85F642A9518, + D1AEDF3E8977710659AEBBF6, + 40ACD7AC2E7A22F480207678, + 7F5DD7707E3EAC2A12F83072, + 249A454A7EF1C3A07A66F453, + 0349FEE5DA18067918536934, + 249A454A7EF1C3A07A66F453, ); name = "juce_audio_basics"; sourceTree = ""; }; + 267D40B303F2E443F2EFBCB2 = {isa = PBXGroup; children = ( + 64F04FAD3BAAEE3D0BA279B8, + 3ADE61DBFBB6901CE2F1DB17, + F53D12880F3354B4FFA480E5, + EB6F5F8F57F0117C10735583, + 70A5CABA464ECFC6A8449A87, + A9BA8E7E434AC82F4604C773, + F3A9E0AE5ED05CA1AD6F56E5, ); name = "audio_io"; sourceTree = ""; }; + 3E9F15364B26C613D1ACC279 = {isa = PBXGroup; children = ( + 8A8CA6C781EFD5F0997E7507, + A539F7B46DD001B3BF03B16F, + 3C1E6F7FBCCAFD6CCDBBB70C, + 0E39FF2E9AD2BDC94CC015E3, + E04EC9F05219CEEB4469A437, ); name = "midi_io"; sourceTree = ""; }; + E8E3D5C4CD168878BC935EE4 = {isa = PBXGroup; children = ( + F881704607DB79F9A3CF7491, + 088687334FC51A5136881578, + 7416BF201FBFE7F978FD774A, + 326FF20ABED3923B1418BB3F, + BE0138B298B1BC513ED94196, + F753A7C2031832BB628CBB2B, + 217D243937EB2507494A4D34, + 3BFEBBE9B8185F65D69A1721, + BAC70BABB531B634736585A9, + 393A46D91FB481557E4DF792, + 3ED5A2B64359FED05CF309C2, + BF3AF2E3B0D2184B766E1B26, + 74D283E02B3A2A293678FF9C, + 5FCCFCEE3F6C4C51BB581572, + 52D7400A47B19848EFCB5B51, ); name = native; sourceTree = ""; }; + C6488EA637BD0CF9616278C7 = {isa = PBXGroup; children = ( + E6E0FE3CBDBE2554B527CF60, + F1A9F544E889DDA995415F6D, + DDDB707A59DB489D195BF99D, + AAC68E522F44DA7AD25574C7, ); name = sources; sourceTree = ""; }; + B5BC400B03F73362F263D1FC = {isa = PBXGroup; children = ( + 267D40B303F2E443F2EFBCB2, + 3E9F15364B26C613D1ACC279, + E8E3D5C4CD168878BC935EE4, + C6488EA637BD0CF9616278C7, + 2EB0FBA99B4F54DC67C391B3, + 806A7A3BFC684B4D9E25ABDF, + 1E0453D8A9741695357567E3, + 806A7A3BFC684B4D9E25ABDF, ); name = "juce_audio_devices"; sourceTree = ""; }; + FE22719A1A7C0DE8788CC66C = {isa = PBXGroup; children = ( + 1334EA2BB30D70E30E929919, + 58201275FBC0DEF77D010733, + 71B244396C01790820BDB08E, + 8A81C6BE773B2895357F469C, + D026D56600A2F8328CD8DC2C, + 767818AB549833C6A3695680, + A6F5FCBD2F26BF994727FBFB, + 2A5FF3EB0E2C32BF08080C7E, + 59A4EE8F8C7CAC439DF95A91, + 5EF33D6281C6FCD1040FDC9B, + 0E501BDAF7993A70A4300040, + AC2CA767DC0B09749E9EC53E, + 603014A5B777586F4F1C98D6, + C1EA39F83282A1255996C0F6, + 5459E2489D23B5764B4C919B, + C73A51DC1F01D988D7293995, ); name = private; sourceTree = ""; }; + 81AE9D60457672A787004F0B = {isa = PBXGroup; children = ( + BFEBB2645034DC82B723A79A, + 84FCF3E5B30EB7CF5EEFB983, + A60864C9398414445F587C91, ); name = protected; sourceTree = ""; }; + A86DDFF9892CA2A05D173C4C = {isa = PBXGroup; children = ( + FE22719A1A7C0DE8788CC66C, + 81AE9D60457672A787004F0B, ); name = include; sourceTree = ""; }; + ABA74055DA2EEFA5423CD500 = {isa = PBXGroup; children = ( + A86DDFF9892CA2A05D173C4C, + 7A2009F14F7AFEEF7F233EBC, + 3DF9D537778948BCCFAA6F90, + 4150459DAF5A300EE3646771, + 3C169AF805125BDB30041647, + DCAB5AE95227A13D9822058F, + 706E3A30C486843B267D27C5, + 96B7036D28E7BF24703EECAE, + 4ECEF417A3156D46464E6B9C, + 6218A4FF5FB036AA0B7B77A3, + B2C2CE1C54B3F7BF754EB506, + 653C6D41CCDB5D556F00D17B, + 1827E39781E7FCD3FFEA879F, + CB3B1B31A502CFEFFBE3AB88, + E20323737D800CE8CDCFAFA2, + B02086DEB7D97B8B2DCBBF65, ); name = libFLAC; sourceTree = ""; }; + E7D99E2666990279C9A11700 = {isa = PBXGroup; children = ( + ABA74055DA2EEFA5423CD500, + 59305C17D5656ADD56682C87, + 08F27F768CB242347E402318, + C45AB6B9BE8ED011F1846B34, + 5A2481A419E5A9D88B640A7D, + BBBBA7BB82E61F6A4906B2F5, + 1A379B56FED4D3EEF75539F9, + F2609029E69B0B5CB8A24D5E, + 46ACD125ABF2078BD7250307, + 6A766394ABB39B5A0E3EF182, + 771D8CDD1499DEDAC2E38D25, + C02B87CFD478C01111DEC2AD, + B1F568A29AE97695819566D0, + E97D7A1408F6EDDAE48E1837, + 9813895C24F80C5948DF41B1, ); name = flac; sourceTree = ""; }; + AF8051C8C57B1E4263F065DA = {isa = PBXGroup; children = ( + 898999A1030D94C6808D5148, + 87F30C283F01D6DE78677AE1, ); name = coupled; sourceTree = ""; }; + 5D0A7B0AFE0FBA8B36493D58 = {isa = PBXGroup; children = ( + 4B4A489613828AC28F25417C, ); name = floor; sourceTree = ""; }; + C965B188AD1E330F076AD73E = {isa = PBXGroup; children = ( + C07500D8FFE6CAAC69A45845, ); name = uncoupled; sourceTree = ""; }; + 7CA0AFF5DBB536581B83B491 = {isa = PBXGroup; children = ( + AF8051C8C57B1E4263F065DA, + 5D0A7B0AFE0FBA8B36493D58, + C965B188AD1E330F076AD73E, ); name = books; sourceTree = ""; }; + 5165857850ECFA377F30097C = {isa = PBXGroup; children = ( + 930C2398BC534B8387E867BD, + 2FCF501B503F3915AB871C8E, + BC69E52F734ECCF2DAFF1CE3, + 5509449631045CDCA7654270, + 57F36E18E098F0CADDA05309, + A457A6844324E461FF142768, + F922253CBC7353685623728E, + B31051BBF74FADEA48D39B22, + 5155F4A9D709CC0A8CC1A7F1, + 6F21AA1FF466F570DD76E329, + 74D9D04AA36E9167899526F6, + 797A5C7982E0CD14F93B3C54, + 009E483D2993902748AEEFE5, + C628426662C41516184AA5B6, + BA87061C6A6FFC374FB92371, + 6438540B318F456A76A57197, + D32A6DB271947C7583815465, + 1E74912578DEAF430E69D738, + D22CF9580AC80B5AB6D97ED4, ); name = modes; sourceTree = ""; }; + D217546A2DC92083CC566233 = {isa = PBXGroup; children = ( + 7CA0AFF5DBB536581B83B491, + 5165857850ECFA377F30097C, + 1D43B002D877CDF3DA85E602, + 8AF24276EFD548D2DE81B6E6, + 0A189F6BF4FCE2D3FBF6FF4B, + 69DA0CE5CD8627CA01BA0781, + 827374BD9EE76A6B90DE88A3, + DBA6A4314768BEA9B73ADA2C, + 1945AFAFBEF562B3CE0B32B3, + 5B20570CB36A5765EE06DB95, + C310CD4992AAC4FEB72694AA, + F23C2044AD3C7D2B333ABE1D, + B63430A7E4A342907B763957, + 78677F16A1356879D6F99EA9, + 31A98E30E965B03150B381FC, + AB19F2DAD8930809EC63CF89, + 48879AF101C3CFF70E2A6D6D, + 3F4D37C15B02AA087A3A685F, + 0C13B04875D9B8903BCE30B9, + 3AB4D648738323B910F9857F, + 2CC5542D7C142042D3A1D86B, + 56E74B5D9FEE2F25B15B50EC, + DB333E69879020687C4DEE40, + 3A2ABBB84632B201DC78CC65, + F020CAD810CE79FDB1032B27, + 8554F3107BAF434F9AFE3875, + 1FF4527EB0D8AC7B141CF989, + 23D96CC5CE35DC9458F64A77, + 360FC75BBB17079A50D83F82, + 575D4B7FECA71BBCB194C30B, + 37B638D91C9915F8A747998C, + F4B11F898B7FAF9370F36BCB, + 518DE93C8782835E470BC7F3, + E579D4E4BEF679C5E543E1EB, + 8A0109D195A8A98F3D316671, + E7800E0F7C31379D0EE87F75, + 420516E3BCE114E11526E916, + 2A42C9B40A6A73C0CBE727B7, + EBDC7D0B732C39AE0D0E66A5, + 3C48BCAFBB2B5332DB3FF7A5, + 3506BB2D001EAE3244ABE2AD, + AAC3A67363234D151DA6BFF5, + 6B78EA517CE2D6A7C7B42C21, ); name = lib; sourceTree = ""; }; + 7D81CE6323AD99718724B32D = {isa = PBXGroup; children = ( + D217546A2DC92083CC566233, ); name = "libvorbis-1.3.2"; sourceTree = ""; }; + C3A04D1AB6018BB0FEF74D7B = {isa = PBXGroup; children = ( + 7D81CE6323AD99718724B32D, + 05DCF1D105D327102D02ADD8, + 8F05BFCFFAC8273150ABE262, + 52455CCE9E92ED0C59F41734, + 168363BEFCBAD9F40E9636DC, + 0B543B1E23AC1D74483632D2, + B2E3E18FA4A5EB53BADA5072, + 6D095BAE8ECFCA14A483B980, + F04AC34216D2378E32F0B07A, + 3DC0549B351FDD471AC643AC, ); name = oggvorbis; sourceTree = ""; }; + 3777DD37A1736028694C8335 = {isa = PBXGroup; children = ( + E7D99E2666990279C9A11700, + C3A04D1AB6018BB0FEF74D7B, + 35E35B099E2A7906A7AA2EDE, + 019352D78DBBEE2AC10ED6BC, + F4676BB721F96DC5DDDAE746, + 71E5E55D76D83B711B6263C2, + 851BE5F4B476FCC76DF56FEA, + A8878B1B86367E161868E49E, + 0B82DF796E577809EB03B874, + C9DA15073F3BF252BAFF9D69, + 8F61AE043AEF6DCD47A36787, + 581E68F4E33DBA5837FB7F9B, + 1BE105DE7C738CCF8D6F2A54, + B13A8EA6840489EB88D77800, + 462F10FC0057AA53CC71472E, + A687283C2BEC2595A10EEE1F, + 9B089D1649E4B5BC8AF63EC6, + 2859FDF0CCD1ED788910E9D3, + 60849B046145D3BACDFA6A84, + 6C57333FC4ACEBC7C451A414, ); name = codecs; sourceTree = ""; }; + 5952FC3AAEC16A94E549213E = {isa = PBXGroup; children = ( + D999C4C8DE51CDFB861B863D, + B305C104F5A573E8AFEFA763, + 63D09BD18653F6A0134C8195, + DC6930EE56EEA5221CFECAB7, + 991F4C3B42036B549C321789, + 7F7EAF366320BA71741B68C3, + EFD1BD42000EE640A17EE1ED, + 1F2CB36A86AA1A4FFF89CD88, + E8128A35828C860977FEC54C, + 324452D7F5B5EA3B393FF4FF, + E7EE6BDC0E3A0739529AED91, + 0E1D85B025D93DAFA8404824, + CA0E3166C77EB91555893286, + 00DE0C93FE719DC72E20A63B, + E31FB2C8B34A146D28A4C611, ); name = format; sourceTree = ""; }; + 2767F18F4CBCF8D4BAD5511F = {isa = PBXGroup; children = ( + 807F5EE489018BC1956AAD5C, + D04960564D2860B19FA5D1CE, ); name = sampler; sourceTree = ""; }; + 43D650FDDBAA28AE94A8942B = {isa = PBXGroup; children = ( + 3777DD37A1736028694C8335, + 5952FC3AAEC16A94E549213E, + 2767F18F4CBCF8D4BAD5511F, + FEE40D6560981264BFB46189, + 05AFEDB1F65A8C2C8E9620E0, + 40D267701C8FF75121454D79, + 05AFEDB1F65A8C2C8E9620E0, ); name = "juce_audio_formats"; sourceTree = ""; }; + FE5FF3B06216363423589217 = {isa = PBXGroup; children = ( + 7BBD4B2D9A9EF13CE4357979, + 4B310AA3DF4F6188B2E6FAF1, + E2127416236840EE3AF32D5C, + 96F43E8EB364D3E40689D368, ); name = format; sourceTree = ""; }; + B2244C90A3E08334409168A2 = {isa = PBXGroup; children = ( + 4F3386F75802D2519BF693FA, + D1E31AC47CCAB97418EB646D, + 58FB0C4FE674CC5BB7B1DCA7, + 8396EA11DD261260F1A96DF9, + A6FADD9A009BA1F1D36239FD, + B2C11FB8D4762ABB6CB9B934, + 9750423DB3DB6570382DA3C1, + 9B9E034C5761096ACB8A76C3, + 73267FE8DDE50FD1E6E31ED4, + 8D936C8A4AFD6DE21F7212DB, + 41F76FF32798054E741CB90B, + 8AE56D2F4E33B015C3D73EB8, + 52A95B5754438C999343869A, + C8A42EE493A1DF2E283C245E, ); name = "format_types"; sourceTree = ""; }; + AF1F4ACFB76E6349B2E2DFB0 = {isa = PBXGroup; children = ( + E3415348D45BF63A7CE8CF6F, + BE9B3F83B6037C848596286B, + 6F2A90834846C810CCD39DF9, + 36DA578E707673F6B174A016, + 3C776A3FADACB361BD4B3D9F, + FAFF7B60A09FE1BFD468163B, + 89FD2460344D6B0FF04F70D0, + 0B08631AE709ADF41AB3B780, + 3649E7CD2BD6A37FCF7D72F7, + FDB35D95490B931CC376A943, + C054B94424A80B5DCA6CC52F, + 872C4AF5B81B1664032594A1, + D9DFC1CE9A4EF9230B49D697, ); name = processors; sourceTree = ""; }; + F29CDD16F3F0451F4D5EE3EA = {isa = PBXGroup; children = ( + 6E125672C42D84CCD54F9B0D, + 55FBB9F8900F753766A22BE6, + F843FC09B4C2A10C76D8D35C, + 4895DA77962B46806EB0147F, + F3AF542BB3A9E6CC1D6E37DD, + FB2CB5482F056ACD6AFE12A1, ); name = scanning; sourceTree = ""; }; + 453BF0685F30EA92520392E4 = {isa = PBXGroup; children = ( + CF1DA3CB41AA43B349D3A6B9, + 41107A3608BE0848BE2A34FC, + 057A64839BFE9AD0864752C3, + 0B5B86BA8E4C60B999A45034, + 005027EA86FFAEC19D634730, + 95227EEF8BCCAD5E1840DB48, + 631FD2CAE69A3D5DD8C2E1B6, + FC14A2D9F860584459B762F7, ); name = utilities; sourceTree = ""; }; + 326CA890D2481B82367C6F3A = {isa = PBXGroup; children = ( + FE5FF3B06216363423589217, + B2244C90A3E08334409168A2, + AF1F4ACFB76E6349B2E2DFB0, + F29CDD16F3F0451F4D5EE3EA, + 453BF0685F30EA92520392E4, + 27436247FFB648C821348A91, + 6BD1D463E40A463C69C065C7, + 66C5D2F0D9B9ABA7F4A386E8, + 6BD1D463E40A463C69C065C7, ); name = "juce_audio_processors"; sourceTree = ""; }; + 2A4189B06CF3EDB00AA8CDB5 = {isa = PBXGroup; children = ( + 0B680B64FE7DE50C3E1A6B28, + 2311D21B14AB268CDEA6F606, + 1BECFBA14CA548C5E8F1CC72, ); name = "audio_cd"; sourceTree = ""; }; + 54EE75FA42A15F716F409593 = {isa = PBXGroup; children = ( + 5A3C2298934C0F77CC60D336, + A90C7FF8F98D21494524B726, + 081472DAF6208CF7FDD4466B, + AB92BC8961EE90E0F23FD6C5, + A4A7D4C4EF2A24F743D107B5, + 346CEC10C4A7DF779A799311, + B9A524CB6B0598E4D7F7DD93, + 22CF0BEE62FB551A68223B3A, + 28A254DF535233A82D5D79BC, + 14A6170C094E7786C521A4DD, + D807B4138306397F8A93FA16, + E3DC9C2BBC81EC0B035AA32C, + E7A5AF3EBCFEEF8787F2D14F, + D057633F8F7684AB7B4B28AD, ); name = gui; sourceTree = ""; }; + EDE41A20104F2FF0339F0224 = {isa = PBXGroup; children = ( + DDF02BD16454102C353FCD18, + 5232B9F7E62CD5C41C3ABFED, + 10C9DC1661946DF49C304DAA, + 8DA438AAAFBC64C11DE329B4, + F1C715FCE140547D074CDB96, + 2ECFDDD7B3C255B050C99A1E, + 4151602FFED0B1AE7B36CEF4, + 37355CCC05D407D665AA6604, + 7212600D3FC9564179B991DD, + B13478BBA4B1E5D7A147042E, ); name = native; sourceTree = ""; }; + 1F6CB98105F462B4343D819C = {isa = PBXGroup; children = ( + 4140669501152D9FB9A244B9, + E1107017C2BF7ECC847DF01A, + F13AAF4D472479EEEDFDCF83, + E3FC1C3B49CEAA7F4A500539, ); name = players; sourceTree = ""; }; + BE68248271118CC1AB328F34 = {isa = PBXGroup; children = ( + 2A4189B06CF3EDB00AA8CDB5, + 54EE75FA42A15F716F409593, + EDE41A20104F2FF0339F0224, + 1F6CB98105F462B4343D819C, + 8DC36D3C2FF85554B208793F, + 89C47678AF8B46702EC0EE66, + 5B466272F3B821BE88BAC205, + 89C47678AF8B46702EC0EE66, ); name = "juce_audio_utils"; sourceTree = ""; }; + 7111D29BC4EFFF98C14B5AE1 = {isa = PBXGroup; children = ( + 82DF136532B2A68A19CBD0C7, + 57F10A97F9AA52EF7B344208, + 589812C6DA03A2299270F7D0, + 0F28BC4F61D1898E4C68E8BA, + 3E265486EFE462E632F47FD5, + 6813D2FE050F9518A7BF3728, + A6AFF35305010E3E7C46D818, + 305ADD801E4BA9EFDBBCA4FC, + E9A11D2BB2A05BBF2819EDA7, ); name = Shapes; sourceTree = ""; }; + 9C66986B0146B23B5C90F910 = {isa = PBXGroup; children = ( + 7111D29BC4EFFF98C14B5AE1, + 38271EF6B109065F290717DE, + 0DF176A2BC5C338AF984036D, + 59C6CE0327D10524BC789A72, + 982A6760536A0D76070BFD3D, + 4253F39382D064BA90766895, + D862A1AE0227E6565606415A, + CF8ED7DAF793C404D5AB68E1, + 9CABA28CDB2F38B933D7D5AB, + FD22F7A808D3B534354FD7E1, + 87C10F97FD75475F541A2236, + B6BAAFF929DCAD7D8D0D0C95, + 26ECEE2D25C933C4B8CF0B49, + 8F54927EB7C415884F445CD3, ); name = Collision; sourceTree = ""; }; + 4F512B3A2785674337E1996C = {isa = PBXGroup; children = ( + 68D5182872CF48CC8A07EF88, + D31B7C2ABFDACEDFBF3230E1, + A7C772D36E8964ADDCB7D096, + 3C37FCA5B754E496D13066B5, + A167A41D05FA3B4AC6CA1E9D, + FA2DA6E207768A7B20EC8197, + 8D67ED9898F9BE8652B8EE2C, + CDAD8C8558CF8FB2299D1916, + 1B0F7F7A6B9627B92F989632, + 81DA6F8C2D59F6DBBB96F9E2, + EA374E11C3C4C144F70E9763, + EAFE3EC4FDC03DC6929446E3, + 6F6C75B9F875DFACEF086245, ); name = Common; sourceTree = ""; }; + 585099A9330962B6D173449D = {isa = PBXGroup; children = ( + 44D1D1D5A6F855F920FD03A5, + 12FD27ECE82A3298E3A8675D, + C9B2CD80C0B08241D7B4AAC1, + 3EB15B173754AE2C7B96AE5F, + 60EEA1369C0AD22C3EA05B69, + 123D3579B74D9D5781B0BD1D, + EAA0943602A39C1090D4BB0E, + 1B03ED2B0D5B73B876954081, + 417FED446C0B953AB2DDB633, + 06C06A48BB269847BA36AA3D, + 7DE7EDED3797A71816EA7F01, + 030B047C95BEA80469F28E35, + C657A3FCA08E4022C085889D, + B0E867D448609AFBA718729D, + F400958FAF55C6818735E008, + 3B4867D990EA8802B4A319AE, + 119E106357BA987590551255, + 6D6A08D5532A95D22E74371D, ); name = Contacts; sourceTree = ""; }; + DB28F0BB99DA5A11FFFCE184 = {isa = PBXGroup; children = ( + 8B24B1B5F68C57B014D709EF, + 71B9B558197CF23EC530D57F, + 93A03C37C749EEAEA8CDE62C, + 8B65B18F6411C38CE37289AF, + AC67D402C4C5DD1F6F036044, + 6F8FAEA15628DF26DAFF73A5, + EFDA611057B66032D2F06E53, + 72370D6EFB4C549A2745C2B8, + 7BE5C4D52D35AEC60DEC2F0F, + 14EED3F7B3E7AD8A7041BF3F, + 5398AD39345A757DAAFC7F97, + CE7F627E873D9A1380271F7F, + A2C836847DB29C151CB09E6B, + 8E28FF1F25D4B95ABA616BAA, + 81B55F41498F2C7AEF8EF849, + E868383557CF3FA6D9DCCF7C, + F44EEB349CFFF332AABDD46D, + 0615C44ADB0F1EB55726FC33, + 92E2C82B141DD4A923F03580, + F4877166B6AEA79289FE123A, + 4F35D7B6179D00C91BB63AF7, + 3994BC23A01CD8FA2A634654, ); name = Joints; sourceTree = ""; }; + CA0505816BEC0949E8FF5EED = {isa = PBXGroup; children = ( + 585099A9330962B6D173449D, + DB28F0BB99DA5A11FFFCE184, + BA376DEB932E4D8C79105456, + 7AE34C0CF7EABE461F4FE5FF, + AF08C54E4F91D5E480A48EFA, + B66569933AFA114078589944, + E795BB191E062484B1FA776B, + C66610F2227199720C6D6D71, + D5E0E9C7BE4512793747276F, + 9C0B4B92D8179B2B2EA27DCB, + 86B1E971DDB1413BF596B130, + C9A6F7104C8DF1694159B166, + 5F4304885211C2F40AC66E25, + 913BF3D4458ADD6A17F1BECC, + 85677259EC513883D8D2076E, ); name = Dynamics; sourceTree = ""; }; + 88BC1F717EB8F779194FF888 = {isa = PBXGroup; children = ( + 6D680FDE137012CFCDEEA7FE, + 4C5649C5D9290FA9385B6CE0, ); name = Rope; sourceTree = ""; }; + 7AF3E75ABE7FFA5936475F7E = {isa = PBXGroup; children = ( + 9C66986B0146B23B5C90F910, + 4F512B3A2785674337E1996C, + CA0505816BEC0949E8FF5EED, + 88BC1F717EB8F779194FF888, + 0732CB9291291C9854197B28, + 1B9B4E12F53F8350757CD4D2, ); name = box2d; sourceTree = ""; }; + 6B9A23A5A3DDDC23A6B9E0E7 = {isa = PBXGroup; children = ( + C0A9EF3D27D21B307649111B, + C43CFE8A48F03CCBCAE08D24, ); name = utils; sourceTree = ""; }; + B92F6CB95B8D46F185B51F43 = {isa = PBXGroup; children = ( + 7AF3E75ABE7FFA5936475F7E, + 6B9A23A5A3DDDC23A6B9E0E7, + ED6224ABC715AAB68661F4D4, + 1AD3E125B61DD653C03FAC05, + 1AD3E125B61DD653C03FAC05, ); name = "juce_box2d"; sourceTree = ""; }; + E0066AC466DB544165B25C93 = {isa = PBXGroup; children = ( + 1A3DE76CA275CEE7DAD501A4, + D100B2EDF88F2C019E4D2311, + E7EA99CD84E1EC598F4984DD, + DAF2C8E641253779B6DFF139, + 0D17B181C82CDA7A6282A0C1, + C0918662F3E28570DF17B041, + ADDA92448B0EC5EC1C6D5A2C, + 69249A7E30512BBF13CB8A09, + 7761FFBFAC88B7157D65EE1F, + 3BE38D79FE135715685D1AAF, + C92A35B9676A81157B54284A, + 9A4190B5B7E788B732637F2E, + D0A84ED14FC2F7A143679258, + 0F517EA07DBFE31E5C9367F5, + D9AAC6516BAD4F5BAE9CF297, + B44CC152D6454AF6F16E9EF6, + A22726A53515D845743DFF84, + 5CBB1DA4ECE2611DDA81A18C, + B10A9A3B4A4C2507F514D5F2, + 66D5FD22DF1550A6CC9ABDA4, + 8BB3867A9236FF57B46581A4, + CE7D4E7030BF4BB4B1093B5F, ); name = containers; sourceTree = ""; }; + 87941A88EB5477A35AE58282 = {isa = PBXGroup; children = ( + CF7CEC8C260AC623C222264C, + 366C0E8D559D37FF92B64F47, + 6B83E4AE241F0EAC9574923D, + 891BBF2E19D80372FA886E62, + 3D2B216A758EEC9EF2D9C7A9, + BBC3C77A4D771DFCCB08B874, + 85D328C928A4CD6A1AEAB644, + 830A4891F6838B2A60C54C8B, + 9E14C2C627D2F7B3C817468E, + C8E3220EC4F4E4242CD3026D, + A6EE2D5A258294BAC600F75B, + 0F518E75055A9D954B52DAC4, + 44879946DE89AF141BE428B6, + 5D40332D94747C3190D4CC16, + 2174CAEE6D8EB215ACD4A256, + 4198EE3311A171C884A5FA9F, + A90EA62A0A4A1B5E62CF0BE8, ); name = files; sourceTree = ""; }; + BC5183F7CB9EB07B19F0DAF9 = {isa = PBXGroup; children = ( + 6B3772278F9398D0AC7CE250, + C4E873C0CD6E9C76EA2997C2, + F746F30147C6BE88F60E92CF, + 0B54F1B0CB17ABD0C3E40658, ); name = javascript; sourceTree = ""; }; + BB0D6B9597130E0569A377E0 = {isa = PBXGroup; children = ( + AB589E1E7EC83EA620B7F780, + 88D689399C7F69D687208673, + DD4A812225F47E590FCF2E29, + 6141692AC9282411091C8157, ); name = logging; sourceTree = ""; }; + 46C240D133177910EC7257A6 = {isa = PBXGroup; children = ( + BADD02151C3951E4853DA06D, + 21CE480826B56F0B5C8C4A43, + A763B4ADDB7BDD941FFE51CF, + D7A951371F530DA0A350AF44, + 5125E77EBA8500EAA778F51F, + 519F11BE9C786A7F9B221BA5, + CC79B254C68555B4FFEBC692, + 220344E43675A2A7D64D3A44, + 2432B5DFCDB8D39150029E01, + D769F1AEAE71E490F5E6CEFD, ); name = maths; sourceTree = ""; }; + 5C3DD8859FD4ABA9978A896C = {isa = PBXGroup; children = ( + 0EAB2E0BB8C3BE2725FA093A, + 4AF5BD29C935D0EB7CB0F6AE, + DE3BEA732CBC57AE71E94159, + F26339EFC03BD8D22016EEB6, + A235B5113FB4E5DA6267975F, + 14933D0F3C598C38A113CE8D, + C60CE259EE4CFE6AC61044FB, + DF9B26660FAF5ECF2EF620B8, + A2F0B85560090CFAC7D95132, + 734C43C3F7918061F2DDD214, + AA967AC6E8FDCD7502272DA7, + 7319ADBC735F957219774263, + D1D8A53A7614F106942DADED, + 6B1FEA349A6C8F51AB27E23C, ); name = memory; sourceTree = ""; }; + E02451B1F1D00BF2FC0044CA = {isa = PBXGroup; children = ( + 55273A59F96B3C775EB71FAB, + 44F4A9351C2B03F98A0D23E4, + 06D514A7B2556A07D2398433, + F7CDE069A32CA0EAD1BE7D43, + 4A2C25FD55809F1489963FC3, + 360291D0346F776DDD3F43E8, + 28E65398C8CF95EB12A5734D, ); name = misc; sourceTree = ""; }; + 658C72E6E7F52541C5F63652 = {isa = PBXGroup; children = ( + 599036DC07DB54E446ECA054, + B63933880C456903722F46A4, + 60B755F5684959E78C556810, + B97B2C0C6A4322FFAACE1C39, + 78D08E88D61781FC020AFE3F, + 4290825CEF87C19A113CA9F9, + 3CF67E6BCC6B52EFD6E6A458, + FA8B6B0F6D43146BAAE04D4D, + 39E23931E56560C294237428, + 73E0383F94E38E30C2CE0F5D, + A83559E2258B5856CFD68EAC, + 447B5BEAEF972DECD5F5A949, + 9BAE20FD7E2CBA120DDA82B0, + 5E9F335E274427A81514A20C, + 0B53DC9C735B3B307C65836A, + 5897A924018C9D26438796A3, + C4B8D5FC3E906DA9F6A4379E, + BA5A007216A3E496509D5CE3, + 56C55F22CADABBA171D41BFC, + 104B96755BED457D7CEA42EA, + 8F7D5E59BEB35E858363B752, + B0DA13336DA07392C689323C, + A1A8D19C2E587194909B2913, + FDBFCE2A24F32AEEB896819F, + C006CE2DED5AB537B5C3FD5E, + 3F8C313EC9C1E6E234108098, + 50677353DB2766A800988656, + 48A0FC60EFF6334C161519FD, + 6F5B9777B802707C4A747E46, ); name = native; sourceTree = ""; }; + 9007E874A2FEEDAD24A9F7F0 = {isa = PBXGroup; children = ( + 9D0B40C4BF8FD939C33E3D59, + 0E11770AD343D8A0780C54BE, + 80A57920E6EA9C2E881BC3E5, + 39E4404D57A8B66DF520B66F, + 2274B9A5BC921FE3B877D0C1, + A1EFF3DBE5F7B0C07AE59D7C, + CD9B8C96642C7F691FCB3EC4, + 6EA8B0940C4486B9F03BA19C, + D61BA88D3AC9556266FE4368, + 24E2AF695F11B9BAEB8FBE3D, + DB4F93F7AC744AEB619ABE42, + 02F56486F8C6CC64CCF96A24, ); name = network; sourceTree = ""; }; + 32C5ED6A8EEB53DF786EA273 = {isa = PBXGroup; children = ( + 945E090A8DE2E776F7033143, + 9CED8F32B3718A90481EEDE6, + 9B9F578EC77AA988C919AC6F, + 49D1B40749401475B52A6F85, + BFC3C3EBCDDABF1529A317FF, + 62D20AFF94117B99556BF56C, + AD593F766DC27414A94FABEE, + 429974B1B4C361F218093A41, + B7AE6C1C50421EE6E02045DC, + CC5F6FD5F339E1811037EABE, + 03CB1183519203936C33025A, + 86BFE5D66623DB207CEA3F9F, + 3FBF109F3AD6DE221EFB1BA2, + DC0AE99EFE4F88987CA2F705, + F9F4D5D9783B88F2DE889023, ); name = streams; sourceTree = ""; }; + 701F4D4F2F738CF7491C920F = {isa = PBXGroup; children = ( + 80202384D81020DAE2072A1A, + 218E36147FA4309F072C1949, + 33F3182598E9A84AD25A9184, + 8BDC3161654344162ECDCB32, + 6BDAB94A88B565A734534368, + 12E4EED0370A1733C6629D86, ); name = system; sourceTree = ""; }; + 8B0950BB3801C1CB7418F5F6 = {isa = PBXGroup; children = ( + 7BD4AC17C70E6771254B962A, + 1698E86A0E0E93DF1487E9FA, + 651D48BCCD81AC8B5BC3AAA4, + EC8A992EA9CFA558DB9F950E, + 58E53BE69281E3105C66FF07, + C411A91DC3B306E2C417F1BF, + 03707F35E5DB4BC6F1FAC8D6, + 569187442B514D114A483D29, + 01F2CB80C1B14450528F0FA8, + 49C275C319B36AC86512E34F, + D6B8E586D30632EA07C48D6F, + 02659911BD886D2E8431B912, + 2A8F6894339DCE6003B702F0, + C9C1FC1B4628557AE5C7E7ED, + E4369FFC0E1A6547580D671F, + 7286D6380C74734603D098EB, + 3AB9E51994CD35A10F87EFF1, + AC7A214BA7B1A172F5B31735, + 3F58D27B17343BF1030AF92A, + 8D437AEAA6F7E3F0DCA43E8C, + B59B0121C46D4A2B9EC3BBFE, + 3741E4C0CE5C7C0828D09BA8, + 437B4DC39531BF8DE5A12E02, + D3A84810AE56991562B6F252, ); name = text; sourceTree = ""; }; + 0FB4DDC3457DFB5C76DFA9E5 = {isa = PBXGroup; children = ( + 38FB6ABB883ECAD52027CE19, + 76B8E770835968F565292D1E, + 720C3CA9E28181C76434D465, + 57B7A9C37305D4D7F876344C, + 3D8A83C53BAF22EEEA014D90, + 6A299D9BED7D078CB2F1C007, + 47817D36A37758981DEDCAAE, + 2CD4306102317989E6321924, + 0453D6FB24F82E92A6BEDA49, + 0FF2403BC335E710BE391DEE, + 7BE8C42578F5E2E59D63F615, + 764F36E2597540348F960404, + 133BC5B880C7575FF3209D88, + D8AE63002C7273F98226394B, + 8E1CA5F01D04FA8F6CCFF91B, + D5942A1C95986841CA286736, + 068183416EF5422C7AD0F238, + 9CC0810F5BAF70D00033FD22, + 2B4F1477BB90BF7F62005BEC, + 5496F73539DA26FD9C899223, + D0ADA33F00B3BD83C1D5AE37, + 81D03597CE85238988E0F45D, ); name = threads; sourceTree = ""; }; + 613E319C4446EECCB1C11EDF = {isa = PBXGroup; children = ( + CCD2ED6F6F3ABCC172DC4957, + 2060347D582A8E45F58AE1C2, + 3D2D6313C0A3397C4839B29B, + 0B3662D1FFE3102476FD60D7, + 78979AFF44F164451516C986, + 23A853ADC54A69406C7A49C6, ); name = time; sourceTree = ""; }; + 917E7615AED717BFFD2B2748 = {isa = PBXGroup; children = ( + 46118CBA9C3CD3B354D93B30, + 3EF890CB40C6FFCAE055B7B1, ); name = "unit_tests"; sourceTree = ""; }; + 48AC852C4D58B1A43FF5CF19 = {isa = PBXGroup; children = ( + 8A89A7C0DEC85C7773251B15, + 2E29C6A0CF15C32A35119DCA, + 16DC590DCFE57F583E99F9C9, + 6BEA46E3C64DD2FD8946CD35, ); name = xml; sourceTree = ""; }; + DD25B4337F2CF8FFF14D1177 = {isa = PBXGroup; children = ( + 41F65957FAEED268DBFFE925, + 94FDE7DB4503F1DA55B7A47D, + A3BC97F67B5567379214CECA, + CD4DB45FA0E529AD1A38DA8E, + A670765B72A94519A5F66E81, + DBA2AA024D68F286B07E32AC, + 608B8EFDDEBB7573425846B6, + C9285E46E758A36E7BE10F1E, + 409B6897E764E49BCB4A9277, + ED60462270C52F6FA0844E31, + F9AF8317EEF3297C1D616049, + 364888A8E80B59503995FE18, + AAF6B6F2F129303FB8682109, + 8E8283D81F04E954670F2636, + 3529CDDF14775FE48C57039E, + CC9D900E9D8A5997076C8614, + 0A912DDCDF5336D520DF06F9, + C5333852BC17403BEE42815C, + 79EB99F04FC9B1ADB0810935, + D2CD51975BB4D1630629B620, + 2EFA7470343EBFC6E338F7A9, + 1669962FEA6685A54CD44F3A, ); name = zlib; sourceTree = ""; }; + 912A12990074F09386E96068 = {isa = PBXGroup; children = ( + DD25B4337F2CF8FFF14D1177, + 50D167857CCBE08F692604BB, + D65129253734C1917354C08E, + 5FC58B5FBBBB09878E3F2230, + F29F6395C4935C1A663A1D15, + 55F9178934DDF31583323625, + 2F66B42AF6C0B5ED381937C3, ); name = zip; sourceTree = ""; }; + 7AB76D65BF8ACD7C0CCB6169 = {isa = PBXGroup; children = ( + E0066AC466DB544165B25C93, + 87941A88EB5477A35AE58282, + BC5183F7CB9EB07B19F0DAF9, + BB0D6B9597130E0569A377E0, + 46C240D133177910EC7257A6, + 5C3DD8859FD4ABA9978A896C, + E02451B1F1D00BF2FC0044CA, + 658C72E6E7F52541C5F63652, + 9007E874A2FEEDAD24A9F7F0, + 32C5ED6A8EEB53DF786EA273, + 701F4D4F2F738CF7491C920F, + 8B0950BB3801C1CB7418F5F6, + 0FB4DDC3457DFB5C76DFA9E5, + 613E319C4446EECCB1C11EDF, + 917E7615AED717BFFD2B2748, + 48AC852C4D58B1A43FF5CF19, + 912A12990074F09386E96068, + ABFAD9653637328D6FB7F06B, + 824822F2A6A539B2D797DE23, + 4E49D12CA5C42721F532DCD6, + 824822F2A6A539B2D797DE23, ); name = "juce_core"; sourceTree = ""; }; + D819E535B50B941C9A6E8FAB = {isa = PBXGroup; children = ( + 4E0A9537FFDE89E4B46710CB, + E9B8B3FAECC80B66257B14F9, + 8F8DD95844D647749BA662B7, + 607FA0800596585429F6C22B, + 15348CE8667592D8F3841601, + 32F1D9C9FD2C0796E2E66C6A, ); name = encryption; sourceTree = ""; }; + EE6612FF2E3D0EC70FC024BB = {isa = PBXGroup; children = ( + 0EA8F0AB668E3B77E8088139, + 8D121C4BCB6A36684EC59FB7, + F1A30E40F7388D16BA35B0DB, + 9A895B323AC3DDD249D99CB7, + 30D828B153772EC3FBADF543, + 869FEB02E31658BD16664F1C, ); name = hashing; sourceTree = ""; }; + AED3AAA07A81C88CC540827D = {isa = PBXGroup; children = ( + D819E535B50B941C9A6E8FAB, + EE6612FF2E3D0EC70FC024BB, + B02CAD037D993AC554573415, + 06BD2631BF3C52F26B9981E8, + B9D26C6C4CED62E6708B6865, + 06BD2631BF3C52F26B9981E8, ); name = "juce_cryptography"; sourceTree = ""; }; + 35030E2E43A56D85963D945C = {isa = PBXGroup; children = ( + 5B0A45CD67D62B0BF9FC22F9, + 9327D6AA8805BE7AD971D68C, + ABDFE5D85E6ED3CBB8AE1F50, + 93B3667FE4186CD75426EA53, ); name = "app_properties"; sourceTree = ""; }; + 1D71BB83807483ADA73BDA10 = {isa = PBXGroup; children = ( + F3B746DC92EFE7A9B8EA9E43, + 5FD5503AB0E161315DD5CD70, + 171E2FEB6097B9D059BCD196, ); name = undomanager; sourceTree = ""; }; + F4291B2AB46BA9F37B0894B0 = {isa = PBXGroup; children = ( + 7B8FADFD12EC0B9EC8A4ED09, + 99E9746687DD6E518585DB09, + F0ACCF70936A0BBA2A2AB289, + 3371D4F2A1E0AB784460E6D4, + 63BB4EB9347AF60049BEEC1E, + 24B56E58A88C5BA553F1C3F9, + B6B6519216FF4413B698C889, + F043752E829829CE2A364F39, ); name = values; sourceTree = ""; }; + 0B9FFA8B31858A3B3DFC06C3 = {isa = PBXGroup; children = ( + 35030E2E43A56D85963D945C, + 1D71BB83807483ADA73BDA10, + F4291B2AB46BA9F37B0894B0, + BE092C995070D86673E0CA21, + 11005DEC79FC6A6057FCFA7A, + 63AC834818EFF45708101F9A, + 11005DEC79FC6A6057FCFA7A, ); name = "juce_data_structures"; sourceTree = ""; }; + AD02336B808FDDCEFFD714A8 = {isa = PBXGroup; children = ( + 9A60BF3F27FD10A058F4E956, + 5AB81EDAFED264951169F1B3, + 0F3360D13458198A3A88B1A1, + BE260594789CF43E1A4EF4E6, + ECAB8BD2816B0BEFCD9F6961, + E2C5C95247FDECA4C39F1415, + AD33778491D50853BFFED9E9, + 4825D1B0C0AC0FD325F55C29, ); name = broadcasters; sourceTree = ""; }; + 7F49B97D06C9CA8E7C5888A7 = {isa = PBXGroup; children = ( + E6E0ADA4E3632540A8ADC7D8, + 6E98E22310F8BBEAC48EE55A, + F380FE12E78619086BA33CDB, + 1CD8799B8784A91FC13E6641, + 17C0612B5BA94849EA9768CC, + E30009C6743474CD6195F5F8, ); name = interprocess; sourceTree = ""; }; + F80940DC484E417EAD307ABD = {isa = PBXGroup; children = ( + C20FD8D605E6714D473D5C9B, + C784392363846286D29F207F, + 9CDE3A30398FB033E5AE8498, + 6DDDB822BBF3D557CA7AB427, + 3411D087E2F8C3962E73F64F, + F6DB1C1E0D9315245E87CBC2, + 06FACF171E0DE0AC6318AE4A, + 2F7F13C84464F8409BBDBEB0, + C5A932A82042E2DAEBE1C302, + EF8055850F3DEA173761E3B5, + 6E9BFA2B6260E09B2B3948E9, + 3C18AC0F75E68A8601DD8F08, + 3F2BBE4509B19BFAC929D8DF, ); name = messages; sourceTree = ""; }; + C29F1875B66EDED24B79C393 = {isa = PBXGroup; children = ( + E7113B21A18CD89165BAFD4B, + EB369EA30D31CD710A09B7FD, + 1F0369584BC31DB2CF652A72, + 82CDD7D8E38202F102788090, + 239F942F45950F5EDCB65A17, + 00CC1BBABB9EEEBABF0D34ED, + C77F148F8E8E9F805D730386, + 4407A352B303B27AA0B7D579, + 780286F6E2915F0E5BE93D1A, + C17598E72A99F3BA8984EF48, ); name = native; sourceTree = ""; }; + C255EBE3A74D88CE9A29A303 = {isa = PBXGroup; children = ( + 5F3E8B08EE74B0023DA176B1, + F42FE65C750920656EA22BF8, + DB8FAF091C9E78AE5F64701F, + F91A3C07D81BE2D4A191C9A2, ); name = timers; sourceTree = ""; }; + C217E6D7051F0944FFE75A52 = {isa = PBXGroup; children = ( + AD02336B808FDDCEFFD714A8, + 7F49B97D06C9CA8E7C5888A7, + F80940DC484E417EAD307ABD, + C29F1875B66EDED24B79C393, + C255EBE3A74D88CE9A29A303, + 9A4D6196AE49BEDAE4054729, + B17EF578E9B736B1C5A5E8BF, + 9079FD325609A4E67E44F3ED, + B17EF578E9B736B1C5A5E8BF, ); name = "juce_events"; sourceTree = ""; }; + 3948C1E25575B3E3F3C2C1B3 = {isa = PBXGroup; children = ( + 885A0F1B41FFAF32ADC70925, + D400C8DFE9DA635FDDBF57BB, + AF396B7AE1BE00099A19D191, + 6E522E47999DB582BA4DA5B6, + AF98F62B0DD92F26D0018A98, + 169C561B93262F8B46BEB768, + 11F6937FC766E1E9568311C2, + 33B829EE652FAA7EFB9E7460, + 73E670E23A2523F7A1B14775, ); name = colour; sourceTree = ""; }; + 45610FB37AA41F443C79FF61 = {isa = PBXGroup; children = ( + 6808473BBCC2E4D8E2CA0E71, + A8243EDBF34E3E3D4338D6F7, + 04C5FED8AEA4109C4ED07111, + 563167A7234166BE714F2DC9, + D5C59D717CF1C0F15164AD43, + 3E27B6E7641EFD605545DF18, + 3B4CB5DCC28B60C4129F024E, ); name = contexts; sourceTree = ""; }; + C578CCF8A53588B0F1831D03 = {isa = PBXGroup; children = ( + B680E1C22A5885A8336D8DA9, + 8DDE64B4A0EF76038498B47D, + 4F9F102E3BEDFE30542BD479, + A73DB3E8639A4D39F9F9C50E, + 6976B92D19F4FA1BA89A8922, ); name = effects; sourceTree = ""; }; + 75A548DB882C9629FFFA850E = {isa = PBXGroup; children = ( + 06AE69217982DB82E0F47554, + 0E2F5CD3AB59E19A1ADFF875, + C7026BE1C751908FEA9E5AAA, + 6209255CD43AA4EDC1C955DA, + 30212C3F1731BD8F19412A38, + D3D86F3CDD057C174A16E382, + E7B21011F93915ADD2CC5DD9, + ACDD5519D82FDB831085B8B2, + 17FDEA6209B7444B117E63C7, + 34176F324CF7EBCDE741B2DF, + BFCAF7A5D017D3BC4CD51D60, + A169179FE554C215416FCD7C, ); name = fonts; sourceTree = ""; }; + 9A5C589D98959551C5780AEF = {isa = PBXGroup; children = ( + E199DDD8F06741F21D8F9CFD, + E41A387D233A436131D7910E, + 9ADA045A14202C9CF4F8CD40, + 42DC5D8CEC7445468A96C227, + 36711C0D24EB22FABF8E7BCB, + 1DDAEBB24E58353761798ABE, + 7C70EC5AB0A3B9B14C0C0F05, + BFEEC370F9DAD159E5789EB9, + 754710498EE8C41F085A2B11, + 8BFDB525631BDAD3A71CB307, + 7C7FF651870B180BABD63D9F, + 47091E4F83A415C063855A74, + 03EC0E5A647E50B369E50BBF, + 533B6E74A9F84B4D319E2F16, + EE7001BD5206A8D8EA2D125B, ); name = geometry; sourceTree = ""; }; + 56B253C0C10EA8B44FD155A0 = {isa = PBXGroup; children = ( + 1AE91BCC794B0ED9C7C0EF9B, + 47962D8ADD22B8DC0CC4FF58, + BC5C356A2C2BCF10C0110E05, + 72A21240D2F87F857F10D246, + FFF76FBE6229D1D034294843, + A4961A58A7D5F765D1EE083C, + B1608DC2A0212CE5D68585A8, + F6A32897F123B06226205866, + 80E4E835F2D35DA1E67B19E3, + E6AA10B691E44C8C1ED5A8E6, + E463B9F4796E34B8082A4EE5, + 977900010F61AF4676582E87, + A89CE9DD8363BF699DBAD4A4, + 2D68B7EF20BC3D11B3028648, + EC0F56A4059858E05BAB98BA, + 1FCFCE4595E8313E1773B00D, + 0FC37E13A65710E3B9750BA3, + F3E98B138E54B8434CB3E34F, + D185139B980081A6E950B572, + 21D71A36ABFDADD9A882857B, + 15F205032C5F811EC319B6D3, + 68944F99BABCA83A0440CDB0, + 2E8E52B63BFBEF408E55B678, + DD710105BDB9E94D4D137061, + 97C2F5225DC78ED6569FA916, + CCEA3C304A87D1B80D2A8AE5, + 45F089CBDED5CC39009A2FAD, + CCD337188E562E1273DAF2E9, + 4F2F2A6C3D3451EF896D71CC, + 592EFD580F6FC53E161A66EB, + E3EA85354D9EE49DD8F21968, + 538250B9DBD536733027C345, + 9627C56BF9BE509ABEF3B0DC, + F505192F2FE344F52DD681A2, + 437C63D80EDD563A91265CE0, + D25576B0B80B36DC4C9830E8, + 51FD353EA1F98D94A6A14B48, + 04ABAB5151BDC73BF265167F, + 70F3590A122BFEBB8CF6049D, + 7F539606D07BB39F04614D94, + 236E11A53CE927AAA6681994, + 279EE7599C1DAE9EF83A59F6, + 0CF03118A8723AF780D2A170, + 0DD213E13669B821F91D3FAE, + D19A55AA2BD9028ED50F1941, + F6A48D53B5FE3830E3078B20, + 690DC0717A03CB51D3C34382, + 728155B591553FEF209516CC, + 53F2E8E42E27BCFA8130465A, + CEA314CE7BCC5304D9CF2617, + 904A7BB9AF3500FCC5393750, + 7F53A16CB1E2055C27A1AD8B, + 379876C6391E331282D9C4D8, + 14594884413DA08D26106A81, + 6DDAF504B8C1BFDBF9F0DBB0, + D38060D21F6AC8F6A935A6BC, + CADD66B495B2180CA8A267FA, + D9D55F689FB9EBF41830E597, + E22ACD275523DA9CFA935974, + E8D77909D3D8E10550164EE4, ); name = jpglib; sourceTree = ""; }; + F0CCB9C5F0BA177450F7F0FA = {isa = PBXGroup; children = ( + 919095530634BCA10AB9AE95, + A4EAA590C3776FF63123E093, + 2BEE810D30D4C6FB88206B42, + 911A7962AD32375D7003FD41, + A2FD673C8D6D86B048C9E035, + 52A8B69825B08106E9175D2B, + 4A73387280D58204ABCA6D6A, + 8BBC5E2D4753E8DB74E7BF8B, + 1C9321B265A6894A2E51CCD3, + 69048AB4DDE300C5326BF2AF, + 9E0670BC105AC4CAE8569F04, + F762EA210E2AA9560F3CF100, + B731BB6DF7C0468A42BBFEBA, + 45BEA8B0139968C92A30EF34, + 831F5A6F03F8ECD18E2427D2, + 90C0455F5170CBCB8BB425E4, + 75944B175ADD077F59AADFCC, + C350AC724B75E0B996FAB6EF, + 8994E8A4FE0432DB2C9F5C32, + 87B4302733FC6319FC9B1CB3, + 653E2E92DFD20A216DC5E698, ); name = pnglib; sourceTree = ""; }; + F7E2B18722D25139EC4DED3B = {isa = PBXGroup; children = ( + 56B253C0C10EA8B44FD155A0, + F0CCB9C5F0BA177450F7F0FA, + F584FC21C26C72A81D840840, + 3A42694A047942A44E8216F5, + 0F88F061C51BE43F53B27094, ); name = "image_formats"; sourceTree = ""; }; + 01511FDCFDF07798F149E5C7 = {isa = PBXGroup; children = ( + 3DA95E7AE1D0DC64AF09EB66, + 8DDCA7803625CF8DA817326A, + 29919F82CA5311BEA61649D9, + 0638493DAFCB6148E77159B1, + 0C73944DB76DB5DA61210A33, + 62F9B202D524E33A2843ED84, + BF2CAEB6EC641789133B627E, + B8D4B6843E55CC07167085AB, ); name = images; sourceTree = ""; }; + FD1C946DC2DC878FEB78451C = {isa = PBXGroup; children = ( + 3D0EA5C831C347728313FDFE, + 31D74E7CF149EF5B569417A7, + E65AD0A1AE4984807B2A724B, + 9EB305226A801CB7012884F0, + DE534A5A2D3B48BFBCE598B4, + 57BB809A38D33486410104B7, + A507AD139DCC0A43765C1FE6, + 1D4E674C38566E14B4B73F49, + 8FA3BF005120A8BF8DD1BB80, + F97F775EDCD2D1C497625D4F, + E82DF2D78AC0E2DD70161D4C, + 155EF3FCA61BEF035E1D7C8D, + 9053A4532020825D924EFB35, + F43CED7548EE5C9F841CB1FA, + 6A6A22EF81805BE907DB5DA2, + 3008922C531303C24B8791AA, + C563E89F311D1D59E9A14A11, ); name = native; sourceTree = ""; }; + EDF93544F0E0C0528D799FF8 = {isa = PBXGroup; children = ( + E5058DD199CEC42ECE922239, + D74B19291F4B0370A2742A63, + 88E9F6A65110F4753E115FF5, ); name = placement; sourceTree = ""; }; + A3212051A49A69AC9D00F91B = {isa = PBXGroup; children = ( + 3948C1E25575B3E3F3C2C1B3, + 45610FB37AA41F443C79FF61, + C578CCF8A53588B0F1831D03, + 75A548DB882C9629FFFA850E, + 9A5C589D98959551C5780AEF, + F7E2B18722D25139EC4DED3B, + 01511FDCFDF07798F149E5C7, + FD1C946DC2DC878FEB78451C, + EDF93544F0E0C0528D799FF8, + 75DCF8CC61D7B790251356A1, + 6ACBD7C68EE20A8E8C5CC1AB, + B27A7B237782F9E15E4BF8D5, + 6ACBD7C68EE20A8E8C5CC1AB, ); name = "juce_graphics"; sourceTree = ""; }; + 931170B47480060D59E2B7E4 = {isa = PBXGroup; children = ( + 5434953F55BD35F74D59D980, + 6A3315B465362CD3AF66D306, ); name = application; sourceTree = ""; }; + 27A66F8D80CC3A05EC51C9C6 = {isa = PBXGroup; children = ( + 182223C68F452171BE479C01, + 3240A232A5C82A812A837A2F, + 912E1A63093C3FA3BD2AFE61, + AE68B9AA74EE6F138B3E0B94, + 7338D006521EDC5C10EEF974, + 791B204F13E056DA2644175D, + 6CF95925EA874CFABAF7C284, + A166FEC488A2EE5290FF0722, + 215D455CD5A3BD7537F88630, + 5595C04B0C1D8D8EBA119C8A, + 38B737F6F0007F752EE380B6, + 74CEBA45E0A8ECA5CFA9BEF7, + B688441D29BB51A9C4E83CFC, + 1339BD00EBF554E995968B6D, + 4ABF4B55F979F2A88EB1B331, + C2FFDDA61218A94403D5FE56, + 355DBB46C4283779C367E97B, + 09EB2AA32041290412E00D8B, ); name = buttons; sourceTree = ""; }; + 90A2F8E8D2AFC78187045A0D = {isa = PBXGroup; children = ( + 06903FD63E508771C576431D, + F779C79AC37C83A60B997641, + 151ADDBE74B99337BC2C2586, + CF626DE27EB763C9BCFD4F15, + 01AD7BA1E1B20309DC969EE2, + CAD3749B6A5BDB2BB00D3498, + 3B61B715F29A0AEAEF73CCBA, + 2BC7AB69474D7E280098B893, + 818729A3311F3A7B8DB03764, ); name = commands; sourceTree = ""; }; + 2CCD7698C19BBD088CE96913 = {isa = PBXGroup; children = ( + 2F1324CBA29604BD3E2003B5, + 2108383000B0A3564DFF340D, + C549EFF977C210EB398C9A33, + 7FC3D3D142D1B4398D07FFC7, + E98EA1189613978EA4E78D85, + 73CF65298983B8CDC1CD84AC, + FA5777F9FFCC6BE9D9F98874, + FE613A570CE31071FD22DC06, + 2A155BD926FEB91142E6A638, ); name = components; sourceTree = ""; }; + 997D0DE45FD1E3EFA4E529C6 = {isa = PBXGroup; children = ( + 02F0BF69062E8D9583F13C83, + A99853D3CB536CFDB6C91F98, + FE4C496CFA9A1E786253B005, + B3976635944EC69837499F9F, + B033B7729D2D204BBD71BDD3, + 2EB37CCC4FF8C40B015C0555, + 77BD025036C8B02426E61C79, + 7DE074DF0D3074275DBBF9B1, + 6940E5FE7BC1ED1BB2258886, + 2DAD09E643C29B6DE7F26EDF, + 3855013A39E97B76B46E055E, + 11CB66B1CBA64B205FDF2767, + 02ABF8C447E1A47845F6027D, + 842FE973E11AAEF49D77AFE3, + 9461C1D2300CC3A91EC2D169, ); name = drawables; sourceTree = ""; }; + 1B6365C0EB9F304B264DC487 = {isa = PBXGroup; children = ( + A1244D54910A10100ECF8EE2, + FE22C972B67EC59701E1CC3C, + 0D979051139C2AC633BB4B9C, + DAFB19E49A6221854341BE2C, + BF6E19C2CA2032242B7A2556, + FDD9DA21786D445DCD01912A, + 8AF04828A59F79DF2FD31E9C, + 60BCBC74A3C12630E82631DE, + 877B42968286AAD56527516A, + 06496C804633EAB2003E5B19, + 50C625257E68C3B8FDAE45A9, + F48E6A27D809C49D42D3202C, + 7DA9D4E06E9B9875EC3880AF, + 7D2013E3BCFFD5A65D970BBD, + E3E3CD4660C20BE120E8BB1B, + F965E478C21D19EF32760A9C, + 534098C590927D6768E57ACF, + 857CE7D1DC614FCDD19F617D, + C416D60EFF7F25E0080A94D1, + DAACF5AFA6B6994384BA4984, + 192EE3C990E80213984A44C2, + E9BBEE1B3986E0829AA44133, ); name = filebrowser; sourceTree = ""; }; + 86FB4343774246D5644E05AB = {isa = PBXGroup; children = ( + 73F0F1FA09AE9F7308AFCC3B, + C6D9D6E03D4B740DDF9B3C57, + F037091D4A3012EBBA1E808F, + 0C6B7C49C4630C18F995C738, + 10932841EA586B6969446549, + A2EBD42F94D37FFF10F25985, + B2BD3F284DBA9EDFFF80ECE1, + 4E892CB7335853F8FE91B26F, + 5DA9EA3E74C2AB870EC9CACB, + 17D0D2AD3243F65FADB94446, + 70F33D8D2F48D64188861C6C, + AC3600881A53014EFC1CB8D2, + 0E1F414FCC996E155B4DB5DF, ); name = keyboard; sourceTree = ""; }; + 5933B882E6CCF71DDAD3290F = {isa = PBXGroup; children = ( + 1676147A3FADD6D79FF42CDF, + CD8B9E60EFE0A0ED368EE3D9, + 7890AB8CBF31F9788E10DBD5, + EA082125C757D1FD63BA38C5, + 6A643B44198DCE6FFE057E9B, + 428FA66F7D6FB46A64B438E1, + 88A8F1D957ED293712DE0E23, + C47BAAAD3DF91B17A7787941, + 49FCD3BBF372EE7F6F143EA9, + 2DDE8684F3C5CB4A781D72A5, + F58760A8EE18630F97C7B646, + 1D62103CFAB9245F2CF523EC, + EF18C494669488BEDFC25A5D, + FCE177D4FA4ABB9635AC9737, + 2F78DE5144EBEAC697309BDC, + 1065FE461C00EABD9485BB93, + 2E093A5506319EC68DA184F4, + 53AA2F507FD9DE263E43B277, + 8717F2B47F51F0473C041760, + 08085F4282FC26BA8D377921, + B8BDAFE861AD60BEC44D7ED5, + 8838FC2F76E6D775B2E75F23, + C09840AD421A11A244964AB5, + 36A65D869B23D9987C676BCD, + 560B074FDFF6F94477083076, + CE045161909A4EADCE49629F, + 2A1FF908BB6FEBAD912CDE8B, + 11A95002F7CE796B7C27EAA7, + C7A943716B2FD728EFAC84D1, + 139D5B8276448B8BFDBA3F7F, + E23EDF80FD5320232483D80F, + 7B83011366B95CC61212E5D2, + B56F4C53187D40137670DB1B, + C7C8C7D58A08D1583E0C2E6B, + 8329E2A86DF3E781B790F128, + 6C52D68EDEA2D7ECA4CCC2BF, + 58EE7977BC7FBB3523A910D9, + 50C099C6D8CA6DBF95B0828D, + 5D4FE2C580EFC84212CFBFB5, ); name = layout; sourceTree = ""; }; + EEF495E9ED24783E1A3352EC = {isa = PBXGroup; children = ( + 4F56EAB8D09665602226930F, + 73EC10FBCA420227E5A145F9, + 4AEA921081036DD4C259B45F, + 95568D274244E02150C7F417, + 06DE336A39A9FEC47A8C2F06, + 5C2DE230E3197CF04660851E, + FD2A08CE74C6EBC90CD44A49, + CE276E0CAE722EA80F7985BB, + 9879B19E123C7C23F6A8CF28, + 3F47F660FE021E7500D952B7, ); name = lookandfeel; sourceTree = ""; }; + 36588B3B34796BF3C473D6CA = {isa = PBXGroup; children = ( + 10DF2A823B97BBC0BD840B9F, + 989CD2B68A4EF90456E19ED9, + E32D1C481161F063918F76AA, + C06F64DF6D95D5C9C8B2D5F8, + D94C07E10FC25EE303D64992, + 937A2E7B951F5D527DF54245, ); name = menus; sourceTree = ""; }; + 59799D2C3AB2B87C03A2E4E8 = {isa = PBXGroup; children = ( + B3E2A6A5C59E1462DF544A06, + 81516145E8F737D290135758, + BCACFA5E8370800EB6487CC4, + 047E385F21CC5AD6238B120E, ); name = misc; sourceTree = ""; }; + 96E9E79B573DB15989229616 = {isa = PBXGroup; children = ( + 3D2FFA1F349A15621962C064, + EA9FE6D1E0A072E73312916C, + AA920A77D326B0F5E53F567F, + 905A87EA32A249ABFD0A90AA, + 24FC5DD7F88DBB1E3A46AB54, + BC2E34C0883EB362398AC448, + 80E5245755DC2ECC4C6BABD5, + 9C734938D5FF5DA7827C74C6, + 7AD412430D3AEB0468089AF5, + 1890C5F569F315E5F8EBB1F9, + 6E176584A871F8C956918182, + D8DFE1C66668C30215288BBE, + EA3436079F0D78BB76CD15F7, + 7C8C5464933F6E34CF33578B, + CAD598C03B7C93B4AF912E66, + 184C5CCD9457D17375F9AE1C, + 1913719A1E4E1803CD54D11F, + 2D13D48857E2530BF41F70CB, + 9200669E9DB4FE676A07CD77, + D99C0F89D572BBF219A7B991, ); name = mouse; sourceTree = ""; }; + F0AED22B6C1D16B4A92A3274 = {isa = PBXGroup; children = ( + 01F49D3FD943424005FB512F, + DD5F4BFEA497212883A869A9, + 7DA062415E40E3BEC0B847FE, + DEB0E2F28130100B1EFD250E, + C509F69A37C9A9053D6E9546, + FBCB116F120D54D41B211C12, + F5FAE931614AAD7C68FC6AB8, + 7D27FB93BD3C8AA77E0F2B7A, + 9E30061BD7F9D97B218CED34, + 37C7B4ECD40F15EFB12D58AD, + 554678AFD58E3E3A2B0BE43D, + 4A4D3CCCDD2C972CA6715014, + B37E6323D9D3C3CA68672D6B, + A2F403F649AC0AA7CA47EF65, + 9918F60F5CC834C782543712, + 70276A64A50E5B56492853DD, + 6A4AE0C59C1210D28A8C8AF7, + 2F19C814598FC304CA841242, ); name = native; sourceTree = ""; }; + 71E0F58372DB2B15C7236D7A = {isa = PBXGroup; children = ( + BB29289B196047505CF5EE6B, + 541E4974C73E294DBA415BA0, + F4BBD7DEBE0F1DD2CE45C411, + 1BE21633CDF618F8D993F3BE, + 193F42507FBE4E7A62D81E2C, + F89584972F16A8EC49E5E74D, + 531D198DE52845A4B641B6B3, + E682A3A52BD15D5CA4933C12, + A631CD93C2809211DD926938, + 7CDA22D66C8FEDF1B644D041, + 0B9867D5674933AF753A2CF6, + 2F8041ECBF70D78604686D6B, + 82AABF91CB005E5463F1D522, + 2551FA5B61BFBEB5E0310B66, ); name = positioning; sourceTree = ""; }; + FBE6D791C444D882314E9FC6 = {isa = PBXGroup; children = ( + 4F6768F8EF9CB4A34A501966, + 4C13F19ECFF6CA7AB9C801AC, + 8430FB57248237DDAD4CE4AD, + 7B5560AEA0CB3E507C16140C, + 5C5F8713DA326B5C6C559767, + 98D55DE4706A31BCD28458C3, + A966B620E1FB219BD4A4F3D9, + F99F73DEBB0EB724142FA930, + 4C9033415E05CD39408389AC, + 99E8C71CC462DDDBC52D360C, + E9A3E96E32C301EE817059C1, + BC30642EEF908E1C7757690B, + D45AD25E5AC67424EAE5A85F, + 825690E8512078D4F8595CCD, ); name = properties; sourceTree = ""; }; + E44032DFED9905AFC6749239 = {isa = PBXGroup; children = ( + 358C6A8FDD14AF0BADFC200E, + 1BBECE3C619C157F072748D9, + 79C8D0C6D1444EAB781C46F3, + 0E26995340F6E559281691DB, + 74BE52ADFCAEFACF704E1269, + 4120CBF145DA500C140BC666, + 2B8FF1E4F8D48AEDE05224D5, + A62BF9AB6EB0496F5BCE78B7, + 3BCC9E4DFC3910F668DA3FF7, + 241100DC52A0F56D071C8C4E, + FCAC296E92A219D70EB96AD5, + B8F25B3AB59A577E53304AC0, + B36D9787DD79D0DED8D791F0, + E0DB91A472A77866258D12B2, + A88B3DDBD1939456E225E36E, + 2DE7C6A69CC0096EF56E4049, + BDDD1C149C23BCA4F501BEF7, + 512D5182047E0B46E971A13D, + 1A1C23D2F16F880FCD3B565E, + 40B485A7CCC441C90EA92FBD, + A6285ED9A26A9DA0A2931910, + 277ADB563604EE1FB51FDAE7, + 6B67DE0FF4487B060DCF31E1, + A3BDCE78A0AE63BEA0DDE600, + 69CC80F5871F1AA06689E3BA, + A74BFBD7C3C18103B51F6342, + 456837CE387595EFF549939B, ); name = widgets; sourceTree = ""; }; + B8437EA646A5AFBC4DFB5A9D = {isa = PBXGroup; children = ( + C7089BDB2F572546643160C1, + A04410519258755461444678, + E4BD5632ADD38CF8BAD38A76, + 0BD502F6196E1FE7D9888A1C, + 30DA52AA554A0249429AC3FC, + D6238E383F396236E3A4C054, + 30CA850D191ECD5F1F7B6A70, + DA78B13D87626C49A2140FDC, + 2EE8E77D21471265869C9B4A, + 5A73A448137344953ED2BD32, + A6BC854E7C5B932911B2AFF2, + 43B80E11AC5121A2F4B8DD78, + EEA020419EF58E90C10AAE26, + 9EB2AE5A72227301C365568F, + CDB41763FDE907C3C0E75374, + 4C66D04A6A5FA514A10AA406, + 263BE0BDE184A7184A118B46, + 2B702EF83CBD217F8F9195F2, + 67541565521633071C03BD35, ); name = windows; sourceTree = ""; }; + 9C4033FFA3C21A4CEDF67C73 = {isa = PBXGroup; children = ( + 931170B47480060D59E2B7E4, + 27A66F8D80CC3A05EC51C9C6, + 90A2F8E8D2AFC78187045A0D, + 2CCD7698C19BBD088CE96913, + 997D0DE45FD1E3EFA4E529C6, + 1B6365C0EB9F304B264DC487, + 86FB4343774246D5644E05AB, + 5933B882E6CCF71DDAD3290F, + EEF495E9ED24783E1A3352EC, + 36588B3B34796BF3C473D6CA, + 59799D2C3AB2B87C03A2E4E8, + 96E9E79B573DB15989229616, + F0AED22B6C1D16B4A92A3274, + 71E0F58372DB2B15C7236D7A, + FBE6D791C444D882314E9FC6, + E44032DFED9905AFC6749239, + B8437EA646A5AFBC4DFB5A9D, + 3BC7A4DF55FD436E8C4D190B, + 063357A85BA244642BE1274A, + 09D51FD6DE5DF526BB36B4D3, + 063357A85BA244642BE1274A, ); name = "juce_gui_basics"; sourceTree = ""; }; + A979E39F17412D6727CF5163 = {isa = PBXGroup; children = ( + DB748B0D9227F5345683CF7A, + 436BAE91A167BB6107F261B4, + 728E67FDBD3660742A33C7B6, + 359FD60323CE3BA7B25008DD, + C1CBC5B338453DA492698C3F, + 577378064273DA54B9BED3F5, + 56BCAE594E40E21699F9337E, + 06B6D19CE5691310DEF50DBC, + 6B4AF4E4BE36B99E00BFE839, + D8EB3FEADD047C7AEFF9C8C8, + D7B1BBA8FE789A80E86CEA03, + ED3DE86815324354C48631D0, ); name = "code_editor"; sourceTree = ""; }; + 6F7EA6D458ED8668BF71C7A9 = {isa = PBXGroup; children = ( + E4981056661C3F251FECEC32, + F704F70F80BA62A48F3651BF, ); name = documents; sourceTree = ""; }; + 8A078F21816B96546F8C9F27 = {isa = PBXGroup; children = ( + 20A4427A1F9CCC5FC58AA159, + 57D6E8A8E8D871EB1DEF6A5F, + 17ADC8ECFA616CF392783757, ); name = embedding; sourceTree = ""; }; + 42D23522D61396640C03114D = {isa = PBXGroup; children = ( + 0876934F047839205147DB99, + 408C5E78F7DE038844E18D31, + 6EBA81213324106593EF5DF8, + 475B1787F548E4FB11C63CD3, + 0A25E42359372E51ADB0123C, + 376F6150287E759E77B824BC, + DADF2C478777BA8EEBB55CDD, + 201E7DB01624212F01B85F5E, + 94D8CEE59AC2644453705A74, + AC3132AD4826E77E807ACD3D, + B1C05A8D59655916054612D8, + 293678404D17012C6E402AA4, + AC043128E8D43D6EA4E29824, + A464874D0B8C63AA78C937B7, + 10B6D087BD60ECFE08F157AC, + 2A5FA90E69311FB8A18EC3B2, + 1E00488AE073FB510E4BE10D, + 00869109FF554F8DB553761D, + 6163B3DFD893F55523113A40, + D80487E6482EB12BF2C6BD22, ); name = misc; sourceTree = ""; }; + 1D1BEEE67D4DAA513D47FBB1 = {isa = PBXGroup; children = ( + 106F27CF32C79FAEE768ABA3, + D93CE990D75211F4A5EBB4F7, + DE4911ACF6DDF2A31511D0F0, + DF80BF471CDEF288F1226FAE, + A4A64EF73E28AFFBD826AD60, + 8D3B18C8A23499AB88F6B700, + 1713D0650DCFA516EBF595DF, + F98BEA2FEE66A3DEAD9D43B1, + 2E524CE76F1B735AE8072E03, + 1697DAEA5B5B105AE1C48E12, + 37E835EA1318A5D504282D90, + B589CF5248A17A319E5EC80D, ); name = native; sourceTree = ""; }; + 7FE4C9E90512F2CE899CFC51 = {isa = PBXGroup; children = ( + A979E39F17412D6727CF5163, + 6F7EA6D458ED8668BF71C7A9, + 8A078F21816B96546F8C9F27, + 42D23522D61396640C03114D, + 1D1BEEE67D4DAA513D47FBB1, + 112164BE5067BB3274FDAED8, + 1F2FF9F4A1F8325AD3F19EA7, + 141036E097DAC47FB6F9CA80, + 1F2FF9F4A1F8325AD3F19EA7, ); name = "juce_gui_extra"; sourceTree = ""; }; + 766D4531329B2C9C31E738D3 = {isa = PBXGroup; children = ( + FF34F4ED0C44B2BA4FBF22AA, + E8DBB02B17A6E144D08E4CC7, + 6308DABB4145FBD330B7DA5A, + 8EF11A0D1370915CA7AF4F64, ); name = geometry; sourceTree = ""; }; + C68100177C3351B178A3572D = {isa = PBXGroup; children = ( + 200A1B6B96E1089110CEAD48, + 7B81083FC4CCD2D096D93162, + F5B288379859F5C9F4FB83BB, + 8D46447869B8AA77922FEE60, + 51DD2ECC1AED271892E87814, + FC63A33CA2E025F5C4C22CD3, + 8139DFF71A397BB4FC1C4413, ); name = native; sourceTree = ""; }; + DB5439F4B71A086E30BFBE45 = {isa = PBXGroup; children = ( + A1F10BB1A2745DC95DDDE0D6, + D6AB846628BE74C5349C95CA, + 6257CEA3C6EADCB94E25010F, + 5CAED9BFE11E46C835DC9417, + 8366D5DB3CBA57E06C1D896C, + 58F81EC0B3505F092DEBAA30, + 94EC001CF772AFBA6D95F922, + 1DB91DA41FDDC9D2F628C7E8, + 810292CC81EC98F57F64D79B, + 1225AF360A43D61516016CF9, + 46C5401358EA7CF2D22FFC26, + 77D7DE86E82C779B3DAA8678, + E0565A19E2589729259C7116, + 4212EA9CE0B9AA4986108D9D, + FC1BA0654179A585DF5B9DC5, + 6BA2D0C9FB49A5C3E0554000, + AC25983CE9B938D1DB002A98, ); name = opengl; sourceTree = ""; }; + E811DB2F6FE958CD58944456 = {isa = PBXGroup; children = ( + AB3C484314062E809AC41132, + 5E69510D460EEB7754976CC8, ); name = utils; sourceTree = ""; }; + C47DD018E100D8FA5BDEBB7E = {isa = PBXGroup; children = ( + 766D4531329B2C9C31E738D3, + C68100177C3351B178A3572D, + DB5439F4B71A086E30BFBE45, + E811DB2F6FE958CD58944456, + DEEF4C52F6D21B716534F2A9, + 14A37C392DF6CF1CDB64612D, + 786CF1CA66289DB77845F8E9, + 14A37C392DF6CF1CDB64612D, ); name = "juce_opengl"; sourceTree = ""; }; + DBDA6BAA1B84CA0C6F838008 = {isa = PBXGroup; children = ( + 3EC73BE7C098A631E5D5107D, + 29C7AE377B006C00D4293C59, ); name = capture; sourceTree = ""; }; + AD173B0CF96B83CD29987F05 = {isa = PBXGroup; children = ( + 3009F5CB4D15119D2C680F98, + C8CABD53634D53E64132CAAD, + EAB03C65A97235C01836E9F0, + 5D475A368AC24E639B8A3797, + 97C3A2B9575153E4CA0537B7, ); name = native; sourceTree = ""; }; + 7DEFA7A7E23C0A137CEA6069 = {isa = PBXGroup; children = ( + 29930414E0C7FD5EFC7F2095, + 002574EE2F13E1BBD52E75D9, ); name = playback; sourceTree = ""; }; + D3C805B4AB4B31DFB20936B9 = {isa = PBXGroup; children = ( + DBDA6BAA1B84CA0C6F838008, + AD173B0CF96B83CD29987F05, + 7DEFA7A7E23C0A137CEA6069, + F15C7935F9F6BC83AB51C529, + B6874BAE87F275944C07B498, + 9895036432E9AE55EE16323F, + B6874BAE87F275944C07B498, ); name = "juce_video"; sourceTree = ""; }; 713498D20048E6A3D46E2D0B = {isa = PBXGroup; children = ( - 9F1F73BB9993817FAB9D711F, - 872F79D08296220D95DE456E, - 6D6FBD711B9FE1F6B0791B2E, - E8521F7D9BDD57712D7C95B8, - 2668DEB6C0BBE9B876ABBEF9, - E1EC83E7941C4CB66AD7D503, - FB81D8A6BED189361FA8BE0A, - ED9B08CE8FABC83B15ACC525, - 87FB12995D3200C2AD0531B1, - F5D8210C0B167990A207CB9D, - C542454A6B0F43AFAEA63092, - BA0689752E29259BBD3AECAA, - DD3241BC4E58514C9FE427EF, - E0B675633C35F70D19DFBED9, - CA3990F1FAA13F322E813486, ); name = "Juce Modules"; sourceTree = ""; }; + EAD085E39B98D2F88E2854DA, + B5BC400B03F73362F263D1FC, + 43D650FDDBAA28AE94A8942B, + 326CA890D2481B82367C6F3A, + BE68248271118CC1AB328F34, + B92F6CB95B8D46F185B51F43, + 7AB76D65BF8ACD7C0CCB6169, + AED3AAA07A81C88CC540827D, + 0B9FFA8B31858A3B3DFC06C3, + C217E6D7051F0944FFE75A52, + A3212051A49A69AC9D00F91B, + 9C4033FFA3C21A4CEDF67C73, + 7FE4C9E90512F2CE899CFC51, + C47DD018E100D8FA5BDEBB7E, + D3C805B4AB4B31DFB20936B9, ); name = "Juce Modules"; sourceTree = ""; }; AC3B3E6535CA727AC6C8B1F7 = {isa = PBXGroup; children = ( 4975DB849F14413317E94609, 8D70A7277DDD7B7974E9F178, @@ -333,7 +3112,7 @@ "JucePlugin_Build_AAX=0", "JucePlugin_Build_Standalone=0", ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "/juce_audio_plugin_client", "$(inherited)"); + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); INFOPLIST_FILE = Info-App.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.10; @@ -365,7 +3144,7 @@ "JucePlugin_Build_Standalone=0", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "/juce_audio_plugin_client", "$(inherited)"); + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); INFOPLIST_FILE = Info-App.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.6; @@ -377,7 +3156,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = c11; + GCC_C_LANGUAGE_STANDARD = c99; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_MODEL_TUNING = G5; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -393,7 +3172,7 @@ 5D9A258B559C20D1603B9B9F = {isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; - GCC_C_LANGUAGE_STANDARD = c11; + GCC_C_LANGUAGE_STANDARD = c99; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_MODEL_TUNING = G5; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -490,8 +3269,8 @@ 00C030852F071EE5DCA3C532 = {isa = PBXNativeTarget; buildConfigurationList = D3C30326DE5136D39B922959; buildPhases = ( 8A0460E8E406AB26F4BA09A8, DB71CE9A0FCC9F1D4DB88011, - 8B042CD6831F0E9BD5C0815E, ); buildRules = ( ); dependencies = ( ); name = "JuceDemo - App"; productName = JuceDemo; productReference = 90B1185950EF7670F87EAA3F; productType = "com.apple.product-type.application"; }; - A97F75347E57A9C1AF731F1D = {isa = PBXProject; buildConfigurationList = E3E8152B5B6326971AA2F802; attributes = { LastUpgradeCheck = 0830; TargetAttributes = { 00C030852F071EE5DCA3C532 = { SystemCapabilities = {com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 605D88E415A9989447F78548; projectDirPath = ""; projectRoot = ""; targets = (00C030852F071EE5DCA3C532); }; + 8B042CD6831F0E9BD5C0815E, ); buildRules = ( ); dependencies = ( ); name = "JuceDemo (App)"; productName = JuceDemo; productReference = 90B1185950EF7670F87EAA3F; productType = "com.apple.product-type.application"; }; + A97F75347E57A9C1AF731F1D = {isa = PBXProject; buildConfigurationList = E3E8152B5B6326971AA2F802; attributes = { LastUpgradeCheck = 0820; TargetAttributes = { 00C030852F071EE5DCA3C532 = { SystemCapabilities = {com.apple.InAppPurchase = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 605D88E415A9989447F78548; projectDirPath = ""; projectRoot = ""; targets = (00C030852F071EE5DCA3C532); }; }; rootObject = A97F75347E57A9C1AF731F1D; } diff --git a/examples/Demo/Source/DemoUtilities.h b/examples/Demo/Source/DemoUtilities.h index 58e3a8f414..cfa76a8d84 100644 --- a/examples/Demo/Source/DemoUtilities.h +++ b/examples/Demo/Source/DemoUtilities.h @@ -39,10 +39,12 @@ inline Colour getRandomColour (float brightness) inline Colour getRandomBrightColour() { return getRandomColour (0.8f); } inline Colour getRandomDarkColour() { return getRandomColour (0.3f); } -inline void fillStandardDemoBackground (Graphics& g) +inline Colour getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour uiColour, Colour fallback = Colour (0xff4d4d4d)) { - g.setColour (Colour (0xff4d4d4d)); - g.fillAll(); + if (auto* v4 = dynamic_cast (&LookAndFeel::getDefaultLookAndFeel())) + return v4->getCurrentColourScheme().getUIColour (uiColour); + + return fallback; } //============================================================================== diff --git a/examples/Demo/Source/Demos/AnimationDemo.cpp b/examples/Demo/Source/Demos/AnimationDemo.cpp index 54d8bd9abf..09f8dc9412 100644 --- a/examples/Demo/Source/Demos/AnimationDemo.cpp +++ b/examples/Demo/Source/Demos/AnimationDemo.cpp @@ -44,7 +44,7 @@ public: s.setJustification (Justification::centred); s.setWordWrap (AttributedString::none); s.append ("Drag Me!"); - s.setColour (Colours::white); + s.setColour (findColour (TextButton::textColourOffId)); s.draw (g, area); } @@ -168,7 +168,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } private: diff --git a/examples/Demo/Source/Demos/AudioLatencyDemo.cpp b/examples/Demo/Source/Demos/AudioLatencyDemo.cpp index e2d5767db6..a9b9c1d5df 100644 --- a/examples/Demo/Source/Demos/AudioLatencyDemo.cpp +++ b/examples/Demo/Source/Demos/AudioLatencyDemo.cpp @@ -305,9 +305,13 @@ public: resultsBox.setScrollbarsShown (true); resultsBox.setCaretVisible (false); resultsBox.setPopupMenuEnabled (true); - resultsBox.setColour (TextEditor::backgroundColourId, Colour (0x32ffffff)); + + resultsBox.setColour (TextEditor::backgroundColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::widgetBackground, + Colour (0x32ffffff))); resultsBox.setColour (TextEditor::outlineColourId, Colour (0x1c000000)); resultsBox.setColour (TextEditor::shadowColourId, Colour (0x16000000)); + resultsBox.setText ("Running this test measures the round-trip latency between the audio output and input " "devices you\'ve got selected.\n\n" "It\'ll play a sound, then try to measure the time at which the sound arrives " @@ -339,7 +343,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/AudioPlaybackDemo.cpp b/examples/Demo/Source/Demos/AudioPlaybackDemo.cpp index d680caff69..37d848c289 100644 --- a/examples/Demo/Source/Demos/AudioPlaybackDemo.cpp +++ b/examples/Demo/Source/Demos/AudioPlaybackDemo.cpp @@ -273,6 +273,7 @@ public: startStopButton.setButtonText ("Play/Stop"); startStopButton.addListener (this); startStopButton.setColour (TextButton::buttonColourId, Colour (0xff79ed7f)); + startStopButton.setColour (TextButton::textColourOffId, Colours::black); addAndMakeVisible (fileTreeComp); @@ -305,7 +306,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/AudioRecordingDemo.cpp b/examples/Demo/Source/Demos/AudioRecordingDemo.cpp index 1a1aab1a1a..c3e52a1570 100644 --- a/examples/Demo/Source/Demos/AudioRecordingDemo.cpp +++ b/examples/Demo/Source/Demos/AudioRecordingDemo.cpp @@ -247,7 +247,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/AudioSettingsDemo.cpp b/examples/Demo/Source/Demos/AudioSettingsDemo.cpp index ac69f8d75d..457d87dd35 100644 --- a/examples/Demo/Source/Demos/AudioSettingsDemo.cpp +++ b/examples/Demo/Source/Demos/AudioSettingsDemo.cpp @@ -44,10 +44,6 @@ public: diagnosticsBox.setScrollbarsShown (true); diagnosticsBox.setCaretVisible (false); diagnosticsBox.setPopupMenuEnabled (true); - diagnosticsBox.setColour (TextEditor::textColourId, Colours::white); - diagnosticsBox.setColour (TextEditor::backgroundColourId, Colour (0x32ffffff)); - diagnosticsBox.setColour (TextEditor::outlineColourId, Colour (0x1c000000)); - diagnosticsBox.setColour (TextEditor::shadowColourId, Colour (0x16000000)); MainAppWindow::getSharedAudioDeviceManager().addChangeListener (this); @@ -62,7 +58,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/AudioSynthesiserDemo.cpp b/examples/Demo/Source/Demos/AudioSynthesiserDemo.cpp index 1a41b03ab4..cfc04c1bb5 100644 --- a/examples/Demo/Source/Demos/AudioSynthesiserDemo.cpp +++ b/examples/Demo/Source/Demos/AudioSynthesiserDemo.cpp @@ -277,7 +277,7 @@ public: //============================================================================== void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/Box2DDemo.cpp b/examples/Demo/Source/Demos/Box2DDemo.cpp index 014f3b1534..80e8e03005 100644 --- a/examples/Demo/Source/Demos/Box2DDemo.cpp +++ b/examples/Demo/Source/Demos/Box2DDemo.cpp @@ -30,49 +30,26 @@ inline float32 RandomFloat (float32 lo, float32 hi) { return Random::getSystemRa struct Settings { - Settings() - : viewCenter (0.0f, 20.0f), - hz (60.0f), - velocityIterations (8), - positionIterations (3), - drawShapes (1), - drawJoints (1), - drawAABBs (0), - drawPairs (0), - drawContactPoints (0), - drawContactNormals (0), - drawContactForces (0), - drawFrictionForces (0), - drawCOMs (0), - drawStats (0), - drawProfile (0), - enableWarmStarting (1), - enableContinuous (1), - enableSubStepping (0), - pause (0), - singleStep (0) - {} - - b2Vec2 viewCenter; - float32 hz; - int velocityIterations; - int positionIterations; - int drawShapes; - int drawJoints; - int drawAABBs; - int drawPairs; - int drawContactPoints; - int drawContactNormals; - int drawContactForces; - int drawFrictionForces; - int drawCOMs; - int drawStats; - int drawProfile; - int enableWarmStarting; - int enableContinuous; - int enableSubStepping; - int pause; - int singleStep; + b2Vec2 viewCenter { 0.0f, 20.0f }; + float32 hz = 60.0f; + int velocityIterations = 8; + int positionIterations = 3; + int drawShapes = 1; + int drawJoints = 1; + int drawAABBs = 0; + int drawPairs = 0; + int drawContactPoints = 0; + int drawContactNormals = 0; + int drawContactForces = 0; + int drawFrictionForces = 0; + int drawCOMs = 0; + int drawStats = 0; + int drawProfile = 0; + int enableWarmStarting = 1; + int enableContinuous = 1; + int enableSubStepping = 0; + int pause = 0; + int singleStep = 0; }; struct Test @@ -107,11 +84,14 @@ public: void paintListBoxItem (int row, Graphics& g, int w, int h, bool rowIsSelected) override { + auto& lf = LookAndFeel::getDefaultLookAndFeel(); + if (rowIsSelected) - g.fillAll (LookAndFeel::getDefaultLookAndFeel().findColour (TextEditor::highlightColourId)); + g.fillAll (Colour::contrasting (lf.findColour (ListBox::textColourId), + lf.findColour (ListBox::backgroundColourId))); const Font f (h * 0.7f); - g.setColour (Colours::black); + g.setColour (lf.findColour (ListBox::textColourId)); g.setFont (f); g.drawText (tests[row], Rectangle (0, 0, w, h).reduced (2), Justification::centredLeft, true); @@ -182,12 +162,10 @@ public: addAndMakeVisible (testsListBox); testsListBox.setModel (&testsListModel); testsListBox.selectRow (dominoes); - testsListBox.setColour (ListBox::backgroundColourId, Colours::lightgrey); addAndMakeVisible (instructions); instructions.setMultiLine (true); instructions.setReadOnly (true); - instructions.setColour (TextEditor::backgroundColourId, Colours::lightgrey); startTimerHz (60); } @@ -199,14 +177,14 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override { - Rectangle r (getLocalBounds().reduced (4)); + auto r = getLocalBounds().reduced (4); - Rectangle area (r.removeFromBottom (150)); + auto area = r.removeFromBottom (150); testsListBox.setBounds (area.removeFromLeft (150)); area.removeFromLeft (4); instructions.setBounds (area); diff --git a/examples/Demo/Source/Demos/ChildProcessDemo.cpp b/examples/Demo/Source/Demos/ChildProcessDemo.cpp index a692a40b8a..95cbcadc31 100644 --- a/examples/Demo/Source/Demos/ChildProcessDemo.cpp +++ b/examples/Demo/Source/Demos/ChildProcessDemo.cpp @@ -87,7 +87,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/CodeEditorDemo.cpp b/examples/Demo/Source/Demos/CodeEditorDemo.cpp index d37bce4e45..f1bc7903c3 100644 --- a/examples/Demo/Source/Demos/CodeEditorDemo.cpp +++ b/examples/Demo/Source/Demos/CodeEditorDemo.cpp @@ -61,7 +61,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::lightgrey); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::lightgrey)); } void resized() override diff --git a/examples/Demo/Source/Demos/ComponentTransformsDemo.cpp b/examples/Demo/Source/Demos/ComponentTransformsDemo.cpp index 921461bafe..88314d23ae 100644 --- a/examples/Demo/Source/Demos/ComponentTransformsDemo.cpp +++ b/examples/Demo/Source/Demos/ComponentTransformsDemo.cpp @@ -48,7 +48,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); g.setColour (Colours::white); g.setFont (15.0f); diff --git a/examples/Demo/Source/Demos/CryptographyDemo.cpp b/examples/Demo/Source/Demos/CryptographyDemo.cpp index 3c7050c8d0..354c7178be 100644 --- a/examples/Demo/Source/Demos/CryptographyDemo.cpp +++ b/examples/Demo/Source/Demos/CryptographyDemo.cpp @@ -33,8 +33,16 @@ public: { addAndMakeVisible (rsaGroup); rsaGroup.setText ("RSA Encryption"); - rsaGroup.setColour (GroupComponent::outlineColourId, Colours::grey); - rsaGroup.setColour (GroupComponent::textColourId, Colours::white); + + rsaGroup.setColour (GroupComponent::outlineColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::outline, + Colours::grey)); + rsaGroup.setColour (GroupComponent::textColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::white)); + rsaResultBox.setColour (TextEditor::backgroundColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::widgetBackground, + Colours::white.withAlpha (0.5f))); bitSizeLabel.setText ("Num Bits to Use:", dontSendNotification); bitSizeLabel.attachToComponent (&bitSize, true); @@ -47,7 +55,6 @@ public: generateRSAButton.addListener (this); addAndMakeVisible (rsaResultBox); - rsaResultBox.setColour (TextEditor::backgroundColourId, Colours::white.withAlpha (0.5f)); rsaResultBox.setReadOnly (true); rsaResultBox.setMultiLine (true); } @@ -123,12 +130,19 @@ public: { addAndMakeVisible (hashGroup); hashGroup.setText ("Hashes"); - hashGroup.setColour (GroupComponent::outlineColourId, Colours::grey); - hashGroup.setColour (GroupComponent::textColourId, Colours::white); + + hashGroup.setColour (GroupComponent::outlineColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::outline, + Colours::grey)); + hashGroup.setColour (GroupComponent::textColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::white)); + hashEntryBox.setColour (TextEditor::backgroundColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::widgetBackground, + Colours::white.withAlpha (0.5f))); addAndMakeVisible (hashEntryBox); hashEntryBox.setMultiLine (true); - hashEntryBox.setColour (TextEditor::backgroundColourId, Colours::white.withAlpha (0.5f)); hashEntryBox.setReturnKeyStartsNewLine (true); hashEntryBox.setText ("Type some text in this box and the resulting MD5, SHA and Whirlpool hashes will update below"); @@ -213,7 +227,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.4f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.4f))); } void resized() override diff --git a/examples/Demo/Source/Demos/DialogsDemo.cpp b/examples/Demo/Source/Demos/DialogsDemo.cpp index 2c9284da27..ba03e5d97a 100644 --- a/examples/Demo/Source/Demos/DialogsDemo.cpp +++ b/examples/Demo/Source/Demos/DialogsDemo.cpp @@ -156,7 +156,7 @@ public: //============================================================================== void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/FlexBoxDemo.cpp b/examples/Demo/Source/Demos/FlexBoxDemo.cpp index a523610bcb..fd2ee79153 100644 --- a/examples/Demo/Source/Demos/FlexBoxDemo.cpp +++ b/examples/Demo/Source/Demos/FlexBoxDemo.cpp @@ -158,8 +158,8 @@ struct FlexBoxDemo : public juce::Component, void paint (Graphics& g) override { - g.fillAll (Colours::lightgrey); - + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::lightgrey)); g.setColour (Colours::white); g.fillRect (getFlexBoxBounds()); } diff --git a/examples/Demo/Source/Demos/FontsDemo.cpp b/examples/Demo/Source/Demos/FontsDemo.cpp index 395b49690e..048c23cdc5 100644 --- a/examples/Demo/Source/Demos/FontsDemo.cpp +++ b/examples/Demo/Source/Demos/FontsDemo.cpp @@ -34,12 +34,6 @@ class FontsDemo : public Component, { public: FontsDemo() - : heightLabel (String(), "Height:"), - kerningLabel (String(), "Kerning:"), - scaleLabel (String(), "Scale:"), - styleLabel ("Style"), - boldToggle ("Bold"), - italicToggle ("Italic") { setOpaque (true); @@ -71,6 +65,9 @@ public: listBox.setRowHeight (20); listBox.setModel (this); // Tell the listbox where to get its data model + listBox.setColour (ListBox::textColourId, Colours::black); + listBox.setColour (ListBox::backgroundColourId, Colours::white); + heightSlider.setRange (3.0, 150.0, 0.01); scaleSlider.setRange (0.2, 3.0, 0.01); @@ -106,17 +103,19 @@ public: "non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."); demoTextBox.setCaretPosition (0); + demoTextBox.setColour (TextEditor::textColourId, Colours::black); + demoTextBox.setColour (TextEditor::backgroundColourId, Colours::white); } //============================================================================== void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override { - Rectangle r (getLocalBounds().reduced (5)); + auto r = getLocalBounds().reduced (5); // lay out the list box and vertical divider.. Component* vcomps[] = { &listBox, verticalDividerBar, nullptr }; @@ -134,7 +133,7 @@ public: const int labelWidth = 60; - Rectangle row (r.removeFromBottom (30)); + auto row = r.removeFromBottom (30); row.removeFromLeft (labelWidth); boldToggle.setBounds (row.removeFromLeft (row.getWidth() / 2)); italicToggle.setBounds (row); @@ -174,7 +173,7 @@ public: if (rowIsSelected) g.fillAll (Colours::lightblue); - Font font (fonts [rowNumber]); + Font font (fonts[rowNumber]); AttributedString s; s.setWordWrap (AttributedString::none); @@ -196,9 +195,16 @@ private: ListBox listBox; TextEditor demoTextBox; - Label heightLabel, kerningLabel, scaleLabel, styleLabel; + + Label heightLabel {{}, "Height:" }, + kerningLabel {{}, "Kerning:" }, + scaleLabel { "Scale:" }, + styleLabel { "Style" }; + + ToggleButton boldToggle { "Bold" }, + italicToggle { "Italic" }; + Slider heightSlider, kerningSlider, scaleSlider; - ToggleButton boldToggle, italicToggle; ComboBox styleBox; StretchableLayoutManager verticalLayout; diff --git a/examples/Demo/Source/Demos/GraphicsDemo.cpp b/examples/Demo/Source/Demos/GraphicsDemo.cpp index 29224bf247..ddf8eb0381 100644 --- a/examples/Demo/Source/Demos/GraphicsDemo.cpp +++ b/examples/Demo/Source/Demos/GraphicsDemo.cpp @@ -45,17 +45,17 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override { - Rectangle r (getLocalBounds().reduced (4)); + auto r = getLocalBounds().reduced (4); int buttonHeight = 22; - Rectangle columns (r.removeFromTop (buttonHeight * 4)); - Rectangle col (columns.removeFromLeft (200)); + auto columns = r.removeFromTop (buttonHeight * 4); + auto col = columns.removeFromLeft (200); animatePosition.setBounds (col.removeFromTop (buttonHeight)); animateRotation.setBounds (col.removeFromTop (buttonHeight)); @@ -630,7 +630,6 @@ public: addAndMakeVisible (listBox); listBox.setModel (this); listBox.selectRow (0); - listBox.setColour (ListBox::backgroundColourId, Colour::greyLevel (0.9f)); } void resized() @@ -645,14 +644,13 @@ public: void paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) { - Component* demo = demos [rowNumber]; - - if (demo != nullptr) + if (auto* demo = demos[rowNumber]) { if (rowIsSelected) - g.fillAll (findColour (TextEditor::highlightColourId)); + g.fillAll (Colour::contrasting (findColour (ListBox::textColourId), + findColour (ListBox::backgroundColourId))); - g.setColour (Colours::black); + g.setColour (findColour (ListBox::textColourId)); g.setFont (14.0f); g.drawFittedText (demo->getName(), 8, 0, width - 10, height, Justification::centredLeft, 2); } @@ -693,7 +691,7 @@ public: void resized() override { - Rectangle area (getLocalBounds()); + auto area = getLocalBounds(); controllersComponent.setBounds (area.removeFromBottom (150)); testList.setBounds (area.removeFromRight (150)); demoHolder.setBounds (area); diff --git a/examples/Demo/Source/Demos/ImagesDemo.cpp b/examples/Demo/Source/Demos/ImagesDemo.cpp index 883ab2c02a..a87db0282e 100644 --- a/examples/Demo/Source/Demos/ImagesDemo.cpp +++ b/examples/Demo/Source/Demos/ImagesDemo.cpp @@ -41,7 +41,7 @@ public: directoryThread.startThread (1); fileTree.addListener (this); - fileTree.setColour (TreeView::backgroundColourId, Colours::lightgrey.withAlpha (0.6f)); + fileTree.setColour (TreeView::backgroundColourId, Colours::grey); addAndMakeVisible (fileTree); addAndMakeVisible (resizerBar); @@ -68,12 +68,12 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (Colours::white); } void resized() override { - Rectangle r (getLocalBounds().reduced (4)); + auto r = getLocalBounds().reduced (4); // make a list of two of our child components that we want to reposition Component* comps[] = { &fileTree, &resizerBar, &imagePreview }; diff --git a/examples/Demo/Source/Demos/JavaScript.cpp b/examples/Demo/Source/Demos/JavaScript.cpp index e24d8914d0..b7f473aee7 100644 --- a/examples/Demo/Source/Demos/JavaScript.cpp +++ b/examples/Demo/Source/Demos/JavaScript.cpp @@ -125,7 +125,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } private: diff --git a/examples/Demo/Source/Demos/KeyMappingsDemo.cpp b/examples/Demo/Source/Demos/KeyMappingsDemo.cpp index f46e3bf38a..ac02bf2deb 100644 --- a/examples/Demo/Source/Demos/KeyMappingsDemo.cpp +++ b/examples/Demo/Source/Demos/KeyMappingsDemo.cpp @@ -34,11 +34,16 @@ public: { setOpaque (true); addAndMakeVisible (keyMappingEditor); + + LookAndFeel* lf = &LookAndFeel::getDefaultLookAndFeel(); + keyMappingEditor.setColours (lf->findColour (KeyMappingEditorComponent::backgroundColourId), + lf->findColour (KeyMappingEditorComponent::textColourId)); } void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.93f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.93f))); } void resized() override diff --git a/examples/Demo/Source/Demos/LiveConstantDemo.cpp b/examples/Demo/Source/Demos/LiveConstantDemo.cpp index 8768706cd6..558d4e4e68 100644 --- a/examples/Demo/Source/Demos/LiveConstantDemo.cpp +++ b/examples/Demo/Source/Demos/LiveConstantDemo.cpp @@ -78,7 +78,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/LookAndFeelDemo.cpp b/examples/Demo/Source/Demos/LookAndFeelDemo.cpp index b42d6f365d..a08b62c175 100644 --- a/examples/Demo/Source/Demos/LookAndFeelDemo.cpp +++ b/examples/Demo/Source/Demos/LookAndFeelDemo.cpp @@ -32,7 +32,7 @@ It's a good idea not to hard code your colours, use the findColour method along with appropriate ColourIds so you can set these on a per-component basis. */ -struct CustomLookAndFeel : public LookAndFeel_V3 +struct CustomLookAndFeel : public LookAndFeel_V4 { void drawRoundThumb (Graphics& g, const float x, const float y, const float diameter, const Colour& colour, float outlineThickness) @@ -116,7 +116,7 @@ struct CustomLookAndFeel : public LookAndFeel_V3 if (ticked) { - const Path tick (LookAndFeel_V2::getTickShape (6.0f)); + const Path tick (LookAndFeel_V4::getTickShape (6.0f)); g.setColour (isEnabled ? findColour (TextButton::buttonOnColourId) : Colours::grey); const float scale = 9.0f; @@ -315,7 +315,7 @@ struct SquareLookAndFeel : public CustomLookAndFeel if (ticked) { - const Path tick (LookAndFeel_V3::getTickShape (6.0f)); + const Path tick (LookAndFeel_V4::getTickShape (6.0f)); g.setColour (isEnabled ? findColour (TextButton::buttonColourId) : Colours::grey); const AffineTransform trans (RectanglePlacement (RectanglePlacement::centred) @@ -509,6 +509,10 @@ public: addLookAndFeel (new LookAndFeel_V1(), "LookAndFeel_V1"); addLookAndFeel (new LookAndFeel_V2(), "LookAndFeel_V2"); addLookAndFeel (new LookAndFeel_V3(), "LookAndFeel_V3"); + addLookAndFeel (new LookAndFeel_V4(), "LookAndFeel_V4 (Dark)"); + addLookAndFeel (new LookAndFeel_V4 (LookAndFeel_V4::getMidnightColourScheme()), "LookAndFeel_V4 (Midnight)"); + addLookAndFeel (new LookAndFeel_V4 (LookAndFeel_V4::getGreyColourScheme()), "LookAndFeel_V4 (Grey)"); + addLookAndFeel (new LookAndFeel_V4 (LookAndFeel_V4::getLightColourScheme()), "LookAndFeel_V4 (Light)"); CustomLookAndFeel* claf = new CustomLookAndFeel(); addLookAndFeel (claf, "Custom Look And Feel"); @@ -528,7 +532,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.4f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.4f))); } void resized() override diff --git a/examples/Demo/Source/Demos/MDIDemo.cpp b/examples/Demo/Source/Demos/MDIDemo.cpp index 80211274ce..3b1d7bd11a 100644 --- a/examples/Demo/Source/Demos/MDIDemo.cpp +++ b/examples/Demo/Source/Demos/MDIDemo.cpp @@ -189,7 +189,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/MidiDemo.cpp b/examples/Demo/Source/Demos/MidiDemo.cpp index 3310aecc35..c0474c3a90 100644 --- a/examples/Demo/Source/Demos/MidiDemo.cpp +++ b/examples/Demo/Source/Demos/MidiDemo.cpp @@ -42,7 +42,8 @@ public: if (isPositiveAndBelow (row, midiMessageList.size())) { - g.setColour (Colours::black); + g.setColour (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::black)); const MidiMessage& message = midiMessageList.getReference (row); double time = message.getTimeStamp(); @@ -120,8 +121,6 @@ public: addAndMakeVisible (messageListBox); messageListBox.setModel (&midiLogListBoxModel); - messageListBox.setColour (ListBox::backgroundColourId, Colour (0x32ffffff)); - messageListBox.setColour (ListBox::outlineColourId, Colours::black); } ~MidiDemo() @@ -133,7 +132,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/MultiTouch.cpp b/examples/Demo/Source/Demos/MultiTouch.cpp index cb58d2a41d..06a07d0dc2 100644 --- a/examples/Demo/Source/Demos/MultiTouch.cpp +++ b/examples/Demo/Source/Demos/MultiTouch.cpp @@ -36,9 +36,11 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.4f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.4f))); - g.setColour (Colours::lightgrey); + g.setColour (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::lightgrey)); g.setFont (14.0f); g.drawFittedText ("Drag here with as many fingers as you have!", getLocalBounds().reduced (30), Justification::centred, 4); diff --git a/examples/Demo/Source/Demos/MultithreadingDemo.cpp b/examples/Demo/Source/Demos/MultithreadingDemo.cpp index f4427a3de2..a8992eb47c 100644 --- a/examples/Demo/Source/Demos/MultithreadingDemo.cpp +++ b/examples/Demo/Source/Demos/MultithreadingDemo.cpp @@ -244,7 +244,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } private: diff --git a/examples/Demo/Source/Demos/NetworkingDemo.cpp b/examples/Demo/Source/Demos/NetworkingDemo.cpp index 531513b09a..41d3433c25 100644 --- a/examples/Demo/Source/Demos/NetworkingDemo.cpp +++ b/examples/Demo/Source/Demos/NetworkingDemo.cpp @@ -51,7 +51,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/OpenGLDemo.cpp b/examples/Demo/Source/Demos/OpenGLDemo.cpp index 382a7ef959..75c24bf52c 100644 --- a/examples/Demo/Source/Demos/OpenGLDemo.cpp +++ b/examples/Demo/Source/Demos/OpenGLDemo.cpp @@ -344,7 +344,6 @@ struct OpenGLDemoClasses { addAndMakeVisible (statusLabel); statusLabel.setJustificationType (Justification::topLeft); - statusLabel.setColour (Label::textColourId, Colours::black); statusLabel.setFont (Font (14.0f)); addAndMakeVisible (sizeSlider); @@ -367,7 +366,9 @@ struct OpenGLDemoClasses addAndMakeVisible (showBackgroundToggle); showBackgroundToggle.addListener (this); - Colour editorBackground (Colours::white.withAlpha (0.6f)); + Colour editorBackground = dynamic_cast (&LookAndFeel::getDefaultLookAndFeel()) + ? getLookAndFeel().findColour (ResizableWindow::backgroundColourId) + : Colours::white; addAndMakeVisible (tabbedComp); tabbedComp.setTabBarDepth (25); @@ -645,7 +646,9 @@ struct OpenGLDemoClasses jassert (OpenGLHelpers::isContextActive()); const float desktopScale = (float) openGLContext.getRenderingScale(); - OpenGLHelpers::clear (Colours::lightblue); + + OpenGLHelpers::clear (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::lightblue)); if (textureToUse != nullptr) if (! textureToUse->applyTo (texture)) diff --git a/examples/Demo/Source/Demos/OpenGLDemo2D.cpp b/examples/Demo/Source/Demos/OpenGLDemo2D.cpp index 7be659ae80..297a7d4441 100644 --- a/examples/Demo/Source/Demos/OpenGLDemo2D.cpp +++ b/examples/Demo/Source/Demos/OpenGLDemo2D.cpp @@ -43,7 +43,6 @@ public: addAndMakeVisible (statusLabel); statusLabel.setJustificationType (Justification::topLeft); - statusLabel.setColour (Label::textColourId, Colours::black); statusLabel.setFont (Font (14.0f)); Array presets (getPresets()); @@ -59,8 +58,6 @@ public: addAndMakeVisible (presetBox); presetBox.addListener (this); - Colour editorBackground (Colours::white.withAlpha (0.6f)); - fragmentEditorComp.setColour (CodeEditorComponent::backgroundColourId, editorBackground); fragmentEditorComp.setOpaque (false); fragmentDocument.addListener (this); addAndMakeVisible (fragmentEditorComp); diff --git a/examples/Demo/Source/Demos/PropertiesDemo.cpp b/examples/Demo/Source/Demos/PropertiesDemo.cpp index acb083f824..366e9d3aa1 100644 --- a/examples/Demo/Source/Demos/PropertiesDemo.cpp +++ b/examples/Demo/Source/Demos/PropertiesDemo.cpp @@ -158,7 +158,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.8f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.8f))); } void resized() override @@ -212,7 +213,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.8f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.8f))); } void resized() override @@ -223,7 +225,7 @@ public: void timerCallback() override { stopTimer(); - concertinaPanel.expandPanelFully (concertinaPanel.getPanel(0), true); + concertinaPanel.expandPanelFully (concertinaPanel.getPanel (0), true); } private: diff --git a/examples/Demo/Source/Demos/SystemInfoDemo.cpp b/examples/Demo/Source/Demos/SystemInfoDemo.cpp index 698ceaf54f..05b34b609c 100644 --- a/examples/Demo/Source/Demos/SystemInfoDemo.cpp +++ b/examples/Demo/Source/Demos/SystemInfoDemo.cpp @@ -188,7 +188,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour::greyLevel (0.93f)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colour::greyLevel (0.93f))); } void resized() override diff --git a/examples/Demo/Source/Demos/TimersAndEventsDemo.cpp b/examples/Demo/Source/Demos/TimersAndEventsDemo.cpp index 9e9176db5d..ff31bcbf93 100644 --- a/examples/Demo/Source/Demos/TimersAndEventsDemo.cpp +++ b/examples/Demo/Source/Demos/TimersAndEventsDemo.cpp @@ -192,7 +192,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::darkgrey); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::darkgrey)); } void paintOverChildren (Graphics& g) override @@ -205,7 +206,8 @@ public: s.append ("Click the \"Set Random Colour\" button to change the colour of one of the circles."); s.append (newLine); s.setFont (Font (16.0f)); - s.setColour (Colours::lightgrey); + s.setColour (getUIColourIfAvailable(LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::lightgrey)); s.draw (g, explanationArea.reduced (10).toFloat()); } diff --git a/examples/Demo/Source/Demos/UnitTestsDemo.cpp b/examples/Demo/Source/Demos/UnitTestsDemo.cpp index 28e2ede66b..4475bd98b6 100644 --- a/examples/Demo/Source/Demos/UnitTestsDemo.cpp +++ b/examples/Demo/Source/Demos/UnitTestsDemo.cpp @@ -126,7 +126,8 @@ struct UnitTestClasses //============================================================================== void paint (Graphics& g) override { - g.fillAll (Colours::grey); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::grey)); } void resized() override diff --git a/examples/Demo/Source/Demos/ValueTreesDemo.cpp b/examples/Demo/Source/Demos/ValueTreesDemo.cpp index 97a5d2dca5..00a639bf34 100644 --- a/examples/Demo/Source/Demos/ValueTreesDemo.cpp +++ b/examples/Demo/Source/Demos/ValueTreesDemo.cpp @@ -48,7 +48,8 @@ public: void paintItem (Graphics& g, int width, int height) override { - g.setColour (Colours::black); + g.setColour (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::black)); g.setFont (15.0f); g.drawText (tree["name"].toString(), @@ -168,7 +169,6 @@ public: tree.setDefaultOpenness (true); tree.setMultiSelectEnabled (true); tree.setRootItem (rootItem = new ValueTreeItem (createRootValueTree(), undoManager)); - tree.setColour (TreeView::backgroundColourId, Colours::white); addAndMakeVisible (undoButton); addAndMakeVisible (redoButton); @@ -185,7 +185,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/VideoDemo.cpp b/examples/Demo/Source/Demos/VideoDemo.cpp index a34748cafe..000fb56e46 100644 --- a/examples/Demo/Source/Demos/VideoDemo.cpp +++ b/examples/Demo/Source/Demos/VideoDemo.cpp @@ -137,7 +137,7 @@ public: directoryThread.startThread (1); fileTree.addListener (this); - fileTree.setColour (TreeView::backgroundColourId, Colours::lightgrey); + fileTree.setColour (FileTreeComponent::backgroundColourId, Colours::lightgrey.withAlpha (0.6f)); addAndMakeVisible (fileTree); addAndMakeVisible (resizerBar); @@ -176,7 +176,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/Demos/WebBrowserDemo.cpp b/examples/Demo/Source/Demos/WebBrowserDemo.cpp index 78341e5742..51effe24b0 100644 --- a/examples/Demo/Source/Demos/WebBrowserDemo.cpp +++ b/examples/Demo/Source/Demos/WebBrowserDemo.cpp @@ -100,7 +100,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::grey); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::grey)); } void resized() override diff --git a/examples/Demo/Source/Demos/WidgetsDemo.cpp b/examples/Demo/Source/Demos/WidgetsDemo.cpp index f5886f8802..901145a5d5 100644 --- a/examples/Demo/Source/Demos/WidgetsDemo.cpp +++ b/examples/Demo/Source/Demos/WidgetsDemo.cpp @@ -42,6 +42,7 @@ static void showBubbleMessage (Component* targetComponent, const String& textToS AttributedString text (textToShow); text.setJustification (Justification::centred); + text.setColour (targetComponent->findColour (TextButton::textColourOffId)); bmc->showAt (targetComponent, text, 2000, true, false); } @@ -278,6 +279,8 @@ struct ButtonsPage : public Component, tb->setClickingTogglesState (true); tb->setRadioGroupId (34567); + tb->setColour (TextButton::textColourOffId, Colours::black); + tb->setColour (TextButton::textColourOnId, Colours::black); tb->setColour (TextButton::buttonColourId, Colours::white); tb->setColour (TextButton::buttonOnColourId, Colours::blueviolet.brighter()); @@ -745,10 +748,12 @@ public: // This is overloaded from TableListBoxModel, and should fill in the background of the whole row void paintRowBackground (Graphics& g, int rowNumber, int /*width*/, int /*height*/, bool rowIsSelected) override { + const Colour alternateColour (getLookAndFeel().findColour (ListBox::backgroundColourId) + .interpolatedWith (getLookAndFeel().findColour (ListBox::textColourId), 0.03f)); if (rowIsSelected) g.fillAll (Colours::lightblue); else if (rowNumber % 2) - g.fillAll (Colour (0xffeeeeee)); + g.fillAll (alternateColour); } // This is overloaded from TableListBoxModel, and must paint any cells that aren't using custom @@ -756,7 +761,7 @@ public: void paintCell (Graphics& g, int rowNumber, int columnId, int width, int height, bool /*rowIsSelected*/) override { - g.setColour (Colours::black); + g.setColour (getLookAndFeel().findColour (ListBox::textColourId)); g.setFont (font); if (const XmlElement* rowElement = dataList->getChildElement (rowNumber)) @@ -766,7 +771,7 @@ public: g.drawText (text, 2, 0, width - 4, height, Justification::centredLeft, true); } - g.setColour (Colours::black.withAlpha (0.2f)); + g.setColour (getLookAndFeel().findColour (ListBox::backgroundColourId)); g.fillRect (width - 1, 0, 1, height); } @@ -888,7 +893,6 @@ private: { // double click to edit the label text; single click handled below setEditable (false, true, false); - setColour (textColourId, Colours::black); } void mouseDown (const MouseEvent& event) override @@ -912,12 +916,21 @@ private: setText (owner.getText(columnId, row), dontSendNotification); } + void paint (Graphics& g) override + { + auto& lf = getLookAndFeel(); + if (! dynamic_cast (&lf)) + lf.setColour (textColourId, Colours::black); + + Label::paint (g); + } + private: TableDemoComponent& owner; int row, columnId; + Colour textColour; }; - //============================================================================== // This is a custom component containing a combo box, which we're going to put inside // our table's "rating" column. @@ -1063,7 +1076,7 @@ private: if (rowIsSelected) g.fillAll (Colours::lightblue); - g.setColour (Colours::black); + g.setColour (LookAndFeel::getDefaultLookAndFeel().findColour (Label::textColourId)); g.setFont (height * 0.7f); g.drawText ("Draggable Thing #" + String (rowNumber + 1), @@ -1110,7 +1123,7 @@ private: g.drawRect (getLocalBounds(), 3); } - g.setColour (Colours::black); + g.setColour (getLookAndFeel().findColour (Label::textColourId)); g.setFont (14.0f); g.drawFittedText (message, getLocalBounds().reduced (10, 0), Justification::centred, 4); } @@ -1235,6 +1248,7 @@ private: //============================================================================== class MenusDemo : public Component, public MenuBarModel, + public ChangeBroadcaster, private Button::Listener { public: @@ -1296,6 +1310,15 @@ public: menu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV1); menu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV2); menu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV3); + + PopupMenu v4SubMenu; + v4SubMenu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV4Dark); + v4SubMenu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV4Midnight); + v4SubMenu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV4Grey); + v4SubMenu.addCommandItem (commandManager, MainAppWindow::useLookAndFeelV4Light); + + menu.addSubMenu ("Use LookAndFeel_V4", v4SubMenu); + menu.addSeparator(); menu.addCommandItem (commandManager, MainAppWindow::useNativeTitleBar); @@ -1371,6 +1394,10 @@ public: tabs->setOrientation (o); } } + else if (menuItemID >= 12298 && menuItemID <= 12305) + { + sendChangeMessage(); + } } private: @@ -1466,26 +1493,35 @@ private: }; //============================================================================== -class DemoTabbedComponent : public TabbedComponent +class DemoTabbedComponent : public TabbedComponent, + private ChangeListener { public: DemoTabbedComponent() : TabbedComponent (TabbedButtonBar::TabsAtTop) { - addTab ("Menus", getRandomTabBackgroundColour(), new MenusDemo(), true); - addTab ("Buttons", getRandomTabBackgroundColour(), new ButtonsPage(), true); - addTab ("Sliders", getRandomTabBackgroundColour(), new SlidersPage(), true); - addTab ("Toolbars", getRandomTabBackgroundColour(), new ToolbarDemoComp(), true); - addTab ("Misc", getRandomTabBackgroundColour(), new MiscPage(), true); - addTab ("Tables", getRandomTabBackgroundColour(), new TableDemoComponent(), true); - addTab ("Drag & Drop", getRandomTabBackgroundColour(), new DragAndDropDemo(), true); + // Register this class as a ChangeListener to the menus demo so we can update the tab colours when the LookAndFeel is changed + menusDemo = new MenusDemo(); + menusDemo->addChangeListener (this); + + const Colour c; + addTab ("Menus", c, menusDemo, true); + addTab ("Buttons", c, new ButtonsPage(), true); + addTab ("Sliders", c, new SlidersPage(), true); + addTab ("Toolbars", c, new ToolbarDemoComp(), true); + addTab ("Misc", c, new MiscPage(), true); + addTab ("Tables", c, new TableDemoComponent(), true); + addTab ("Drag & Drop", c, new DragAndDropDemo(), true); + + updateTabColours(); getTabbedButtonBar().getTabButton (5)->setExtraComponent (new CustomTabButton(), TabBarButton::afterText); } - static Colour getRandomTabBackgroundColour() + void changeListenerCallback (ChangeBroadcaster* source) override { - return Colour (Random::getSystemRandom().nextFloat(), 0.1f, 0.97f, 1.0f); + if (dynamic_cast (source) != nullptr) + updateTabColours(); } // This is a small star button that is put inside one of the tabs. You can @@ -1519,12 +1555,26 @@ public: private: ScopedPointer bubbleMessage; }; + +private: + ScopedPointer menusDemo; //need to have keep a pointer around to register this class as a ChangeListener + + void updateTabColours() + { + bool randomiseColours = ! dynamic_cast (&LookAndFeel::getDefaultLookAndFeel()); + for (int i = 0; i < getNumTabs(); ++i) + { + if (randomiseColours) + setTabBackgroundColour (i, Colour (Random::getSystemRandom().nextFloat(), 0.1f, 0.97f, 1.0f)); + else + setTabBackgroundColour (i, getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + } + } }; //============================================================================== -class WidgetsDemo : public Component +struct WidgetsDemo : public Component { -public: WidgetsDemo() { setOpaque (true); @@ -1541,7 +1591,6 @@ public: tabs.setBounds (getLocalBounds().reduced (4)); } -private: DemoTabbedComponent tabs; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WidgetsDemo) diff --git a/examples/Demo/Source/Demos/WindowsDemo.cpp b/examples/Demo/Source/Demos/WindowsDemo.cpp index 81b2a448d6..1e57e04f64 100644 --- a/examples/Demo/Source/Demos/WindowsDemo.cpp +++ b/examples/Demo/Source/Demos/WindowsDemo.cpp @@ -229,7 +229,8 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::grey); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground, + Colours::grey)); } void resized() override diff --git a/examples/Demo/Source/Demos/XMLandJSONDemo.cpp b/examples/Demo/Source/Demos/XMLandJSONDemo.cpp index b31a182441..d2a9468bf5 100644 --- a/examples/Demo/Source/Demos/XMLandJSONDemo.cpp +++ b/examples/Demo/Source/Demos/XMLandJSONDemo.cpp @@ -254,7 +254,7 @@ public: void paint (Graphics& g) override { - fillStandardDemoBackground (g); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override diff --git a/examples/Demo/Source/IntroScreen.cpp b/examples/Demo/Source/IntroScreen.cpp index 6ea74ad8f9..f6671fdff7 100644 --- a/examples/Demo/Source/IntroScreen.cpp +++ b/examples/Demo/Source/IntroScreen.cpp @@ -30,7 +30,6 @@ class IntroScreen : public Component { public: IntroScreen() - : linkButton ("www.juce.com", URL ("http://www.juce.com")) { setOpaque (true); @@ -38,7 +37,7 @@ public: addAndMakeVisible (linkButton); addAndMakeVisible (logo); - versionLabel.setColour (Label::textColourId, Colours::white); +// versionLabel.setColour (Label::textColourId, Colours::white); versionLabel.setText (String ("{version} built on {date}") .replace ("{version}", SystemStats::getJUCEVersion()) .replace ("{date}", String (__DATE__).replace (" ", " ")), @@ -49,12 +48,12 @@ public: void paint (Graphics& g) override { - g.fillAll (Colour (0xff4d4d4d)); + g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground)); } void resized() override { - Rectangle area (getLocalBounds().reduced (10)); + auto area = getLocalBounds().reduced (10); logo.setBounds (area); area = area.removeFromBottom (24); linkButton.setBounds (area.removeFromRight (getWidth() / 4)); @@ -63,13 +62,13 @@ public: private: Label versionLabel; - HyperlinkButton linkButton; + HyperlinkButton linkButton { "www.juce.com", URL ("http://www.juce.com") }; //============================================================================== struct LogoDrawComponent : public Component, private Timer { - LogoDrawComponent() : logoPath (MainAppWindow::getJUCELogoPath()), elapsed (0.0f) + LogoDrawComponent() { startTimerHz (30); // repaint at 30 fps } @@ -103,20 +102,18 @@ private: getLocalBounds().reduced (20, getHeight() / 4).toFloat())); } - private: void timerCallback() override { repaint(); elapsed += 0.02f; } - Path logoPath; - float elapsed; + Path logoPath { MainAppWindow::getJUCELogoPath() }; + float elapsed = 0; }; LogoDrawComponent logo; - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (IntroScreen) }; diff --git a/examples/Demo/Source/Main.cpp b/examples/Demo/Source/Main.cpp index eb9ad42640..e42b0edda8 100644 --- a/examples/Demo/Source/Main.cpp +++ b/examples/Demo/Source/Main.cpp @@ -36,6 +36,7 @@ public: //============================================================================== void initialise (const String& commandLine) override { + // (This function call is for one of the demos, which involves launching a child process) if (invokeChildProcessDemo (commandLine)) return; diff --git a/examples/Demo/Source/MainWindow.cpp b/examples/Demo/Source/MainWindow.cpp index 90795ffad8..295dc2ace7 100644 --- a/examples/Demo/Source/MainWindow.cpp +++ b/examples/Demo/Source/MainWindow.cpp @@ -55,10 +55,9 @@ Array& JuceDemoTypeBase::getDemoTypeList() #if JUCE_WINDOWS || JUCE_LINUX || JUCE_MAC // Just add a simple icon to the Window system tray area or Mac menu bar.. -class DemoTaskbarComponent : public SystemTrayIconComponent, - private Timer +struct DemoTaskbarComponent : public SystemTrayIconComponent, + private Timer { -public: DemoTaskbarComponent() { setIconImage (ImageCache::getFromMemory (BinaryData::juce_icon_png, BinaryData::juce_icon_pngSize)); @@ -83,7 +82,6 @@ public: JUCEApplication::getInstance()->systemRequestedQuit(); } -private: void timerCallback() override { stopTimer(); @@ -113,13 +111,17 @@ public: lookAndFeelV3.setColour (Label::textColourId, Colours::white); lookAndFeelV3.setColour (Label::textColourId, Colours::white); lookAndFeelV3.setColour (ToggleButton::textColourId, Colours::white); - LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV3); + + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV4); demoList.setModel (this); - demoList.setColour (ListBox::backgroundColourId, Colour::greyLevel (0.2f)); + updateDemoListColours(); demoList.selectRow (0); - addAndMakeVisible (demoList); + if (Desktop::getInstance().getMainMouseSource().isTouch()) + demoList.getViewport()->setScrollOnDragEnabled (true); + + addAndMakeVisible (demoList); } void clearCurrentDemo() @@ -129,7 +131,7 @@ public: void resized() override { - Rectangle r (getLocalBounds()); + auto r = getLocalBounds(); if (r.getWidth() > 600) { @@ -156,9 +158,9 @@ public: if (rowIsSelected) g.fillAll (Colours::deepskyblue); - if (JuceDemoTypeBase* type = JuceDemoTypeBase::getDemoTypeList() [rowNumber]) + if (auto* type = JuceDemoTypeBase::getDemoTypeList() [rowNumber]) { - String name (type->name.trimCharactersAtStart ("0123456789").trimStart()); + auto name = type->name.trimCharactersAtStart ("0123456789").trimStart(); AttributedString a; a.setJustification (Justification::centredLeft); @@ -176,10 +178,13 @@ public: category << " "; } + auto categoryColour = demoList.findColour (ListBox::outlineColourId); + auto nameColour = demoList.findColour (ListBox::textColourId); + if (category.isNotEmpty()) - a.append (category, Font (10.0f), Colour::greyLevel (0.5f)); + a.append (category, Font (10.0f), categoryColour); - a.append (name, Font (13.0f), Colours::white.withAlpha (0.9f)); + a.append (name, Font (13.0f), nameColour); a.draw (g, Rectangle (width + 10, height).reduced (6, 0).toFloat()); } @@ -187,7 +192,7 @@ public: void selectedRowsChanged (int lastRowSelected) override { - if (JuceDemoTypeBase* selectedDemoType = JuceDemoTypeBase::getDemoTypeList() [lastRowSelected]) + if (auto* selectedDemoType = JuceDemoTypeBase::getDemoTypeList() [lastRowSelected]) { currentDemo = nullptr; addAndMakeVisible (currentDemo = selectedDemoType->createComponent()); @@ -206,7 +211,7 @@ public: if (currentDemo == nullptr) return -1; - Array& demos (JuceDemoTypeBase::getDemoTypeList()); + auto& demos = JuceDemoTypeBase::getDemoTypeList(); for (int i = demos.size(); --i >= 0;) if (demos.getUnchecked (i)->name == currentDemo->getName()) @@ -217,10 +222,8 @@ public: void moveDemoPages (int numPagesToMove) { - const int newIndex = negativeAwareModulo (getCurrentPageIndex() + numPagesToMove, - JuceDemoTypeBase::getDemoTypeList().size()); - demoList.selectRow (newIndex); - // we have to go through our demo list here or it won't be updated to reflect the current demo + demoList.selectRow (negativeAwareModulo (getCurrentPageIndex() + numPagesToMove, + JuceDemoTypeBase::getDemoTypeList().size())); } bool isShowingOpenGLDemo() const @@ -242,6 +245,7 @@ private: LookAndFeel_V1 lookAndFeelV1; LookAndFeel_V2 lookAndFeelV2; LookAndFeel_V3 lookAndFeelV3; + LookAndFeel_V4 lookAndFeelV4; //============================================================================== // The following methods implement the ApplicationCommandTarget interface, allowing @@ -272,6 +276,10 @@ private: MainAppWindow::useLookAndFeelV1, MainAppWindow::useLookAndFeelV2, MainAppWindow::useLookAndFeelV3, + MainAppWindow::useLookAndFeelV4Dark, + MainAppWindow::useLookAndFeelV4Midnight, + MainAppWindow::useLookAndFeelV4Grey, + MainAppWindow::useLookAndFeelV4Light, MainAppWindow::toggleRepaintDebugging, #if ! JUCE_LINUX MainAppWindow::goToKioskMode, @@ -285,7 +293,7 @@ private: MainAppWindow::renderingEngineTwo, MainAppWindow::renderingEngineThree }; - StringArray renderingEngines (MainAppWindow::getMainAppWindow()->getRenderingEngines()); + auto renderingEngines = MainAppWindow::getMainAppWindow()->getRenderingEngines(); commands.addArray (engineIDs, renderingEngines.size()); } @@ -355,8 +363,8 @@ private: case MainAppWindow::renderingEngineTwo: case MainAppWindow::renderingEngineThree: { - MainAppWindow& mainWindow = *MainAppWindow::getMainAppWindow(); - const StringArray engines (mainWindow.getRenderingEngines()); + auto& mainWindow = *MainAppWindow::getMainAppWindow(); + auto engines = mainWindow.getRenderingEngines(); const int index = commandID - MainAppWindow::renderingEngineOne; result.setInfo ("Use " + engines[index], "Uses the " + engines[index] + " engine to render the UI", generalCategory, 0); @@ -384,6 +392,27 @@ private: result.setTicked (isLookAndFeelSelected()); break; + case MainAppWindow::useLookAndFeelV4Dark: + result.setInfo ("Use LookAndFeel_V4 Dark", String(), generalCategory, 0); + result.addDefaultKeypress ('k', ModifierKeys::commandModifier); + result.setTicked (isColourSchemeActive (LookAndFeel_V4::getDarkColourScheme())); + break; + + case MainAppWindow::useLookAndFeelV4Midnight: + result.setInfo ("Use LookAndFeel_V4 Midnight", String(), generalCategory, 0); + result.setTicked (isColourSchemeActive (LookAndFeel_V4::getMidnightColourScheme())); + break; + + case MainAppWindow::useLookAndFeelV4Grey: + result.setInfo ("Use LookAndFeel_V4 Grey", String(), generalCategory, 0); + result.setTicked (isColourSchemeActive (LookAndFeel_V4::getGreyColourScheme())); + break; + + case MainAppWindow::useLookAndFeelV4Light: + result.setInfo ("Use LookAndFeel_V4 Light", String(), generalCategory, 0); + result.setTicked (isColourSchemeActive (LookAndFeel_V4::getLightColourScheme())); + break; + case MainAppWindow::toggleRepaintDebugging: result.setInfo ("Toggle repaint display", String(), generalCategory, 0); result.addDefaultKeypress ('r', ModifierKeys()); @@ -396,8 +425,8 @@ private: result.addDefaultKeypress ('n', ModifierKeys::commandModifier); bool nativeTitlebar = false; - if (MainAppWindow* map = MainAppWindow::getMainAppWindow()) - nativeTitlebar = map->isUsingNativeTitleBar(); + if (auto* mainWindow = MainAppWindow::getMainAppWindow()) + nativeTitlebar = mainWindow->isUsingNativeTitleBar(); result.setTicked (nativeTitlebar); break; @@ -418,63 +447,90 @@ private: bool perform (const InvocationInfo& info) override { - MainAppWindow* mainWindow = MainAppWindow::getMainAppWindow(); - - if (mainWindow == nullptr) - return true; - - switch (info.commandID) + if (auto* mainWindow = MainAppWindow::getMainAppWindow()) { - case MainAppWindow::showPreviousDemo: moveDemoPages (-1); break; - case MainAppWindow::showNextDemo: moveDemoPages ( 1); break; - - case MainAppWindow::welcome: - case MainAppWindow::componentsAnimation: - case MainAppWindow::componentsDialogBoxes: - case MainAppWindow::componentsKeyMappings: - case MainAppWindow::componentsMDI: - case MainAppWindow::componentsPropertyEditors: - case MainAppWindow::componentsTransforms: - case MainAppWindow::componentsWebBrowsers: - case MainAppWindow::componentsWidgets: - demoList.selectRow (info.commandID - MainAppWindow::welcome); - break; + switch (info.commandID) + { + case MainAppWindow::showPreviousDemo: moveDemoPages (-1); break; + case MainAppWindow::showNextDemo: moveDemoPages ( 1); break; + + case MainAppWindow::welcome: + case MainAppWindow::componentsAnimation: + case MainAppWindow::componentsDialogBoxes: + case MainAppWindow::componentsKeyMappings: + case MainAppWindow::componentsMDI: + case MainAppWindow::componentsPropertyEditors: + case MainAppWindow::componentsTransforms: + case MainAppWindow::componentsWebBrowsers: + case MainAppWindow::componentsWidgets: + demoList.selectRow (info.commandID - MainAppWindow::welcome); + break; - case MainAppWindow::renderingEngineOne: - case MainAppWindow::renderingEngineTwo: - case MainAppWindow::renderingEngineThree: - mainWindow->setRenderingEngine (info.commandID - MainAppWindow::renderingEngineOne); - break; + case MainAppWindow::renderingEngineOne: + case MainAppWindow::renderingEngineTwo: + case MainAppWindow::renderingEngineThree: + mainWindow->setRenderingEngine (info.commandID - MainAppWindow::renderingEngineOne); + break; - case MainAppWindow::useLookAndFeelV1: LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV1); break; - case MainAppWindow::useLookAndFeelV2: LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV2); break; - case MainAppWindow::useLookAndFeelV3: LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV3); break; + case MainAppWindow::useLookAndFeelV1: + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV1); + updateDemoListColours(); + break; + case MainAppWindow::useLookAndFeelV2: + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV2); + updateDemoListColours(); + break; + case MainAppWindow::useLookAndFeelV3: + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV3); + updateDemoListColours(); + break; + case MainAppWindow::useLookAndFeelV4Dark: + lookAndFeelV4.setColourScheme (LookAndFeel_V4::getDarkColourScheme()); + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV4); + updateDemoListColours(); + break; + case MainAppWindow::useLookAndFeelV4Midnight: + lookAndFeelV4.setColourScheme (LookAndFeel_V4::getMidnightColourScheme()); + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV4); + updateDemoListColours(); + break; + case MainAppWindow::useLookAndFeelV4Grey: + lookAndFeelV4.setColourScheme (LookAndFeel_V4::getGreyColourScheme()); + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV4); + updateDemoListColours(); + break; + case MainAppWindow::useLookAndFeelV4Light: + lookAndFeelV4.setColourScheme (LookAndFeel_V4::getLightColourScheme()); + LookAndFeel::setDefaultLookAndFeel (&lookAndFeelV4); + updateDemoListColours(); + break; - case MainAppWindow::toggleRepaintDebugging: - juceDemoRepaintDebuggingActive = ! juceDemoRepaintDebuggingActive; - mainWindow->repaint(); - break; + case MainAppWindow::toggleRepaintDebugging: + juceDemoRepaintDebuggingActive = ! juceDemoRepaintDebuggingActive; + mainWindow->repaint(); + break; - case MainAppWindow::useNativeTitleBar: - mainWindow->setUsingNativeTitleBar (! mainWindow->isUsingNativeTitleBar()); - break; + case MainAppWindow::useNativeTitleBar: + mainWindow->setUsingNativeTitleBar (! mainWindow->isUsingNativeTitleBar()); + break; - #if ! JUCE_LINUX - case MainAppWindow::goToKioskMode: - { - Desktop& desktop = Desktop::getInstance(); + #if ! JUCE_LINUX + case MainAppWindow::goToKioskMode: + { + auto& desktop = Desktop::getInstance(); - if (desktop.getKioskModeComponent() == nullptr) - desktop.setKioskModeComponent (getTopLevelComponent()); - else - desktop.setKioskModeComponent (nullptr); + if (desktop.getKioskModeComponent() == nullptr) + desktop.setKioskModeComponent (getTopLevelComponent()); + else + desktop.setKioskModeComponent (nullptr); - break; - } - #endif + break; + } + #endif - default: - return false; + default: + return false; + } } return true; @@ -486,6 +542,28 @@ private: LookAndFeel& lf = getLookAndFeel(); return typeid (LookAndFeelType) == typeid (lf); } + + bool isColourSchemeActive (LookAndFeel_V4::ColourScheme scheme) + { + if (auto* v4 = dynamic_cast (&LookAndFeel::getDefaultLookAndFeel())) + if (v4->getCurrentColourScheme() == scheme) + return true; + + return false; + } + + + void updateDemoListColours() + { + demoList.setColour (ListBox::backgroundColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::widgetBackground, Colour::greyLevel (0.2f))); + demoList.setColour (ListBox::textColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colours::white.withAlpha (0.9f))); + demoList.setColour (ListBox::outlineColourId, + getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText, + Colour::greyLevel (0.5f)).interpolatedWith (Colours::red, 0.4f)); + } }; //============================================================================== @@ -494,7 +572,7 @@ static ScopedPointer sharedAudioDeviceManager; MainAppWindow::MainAppWindow() : DocumentWindow (JUCEApplication::getInstance()->getApplicationName(), - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); @@ -574,7 +652,7 @@ void MainAppWindow::runtimePermissionsCallback (bool wasGranted) MainAppWindow* MainAppWindow::getMainAppWindow() { for (int i = TopLevelWindow::getNumTopLevelWindows(); --i >= 0;) - if (MainAppWindow* maw = dynamic_cast (TopLevelWindow::getTopLevelWindow (i))) + if (auto* maw = dynamic_cast (TopLevelWindow::getTopLevelWindow (i))) return maw; return nullptr; @@ -584,7 +662,8 @@ void MainAppWindow::handleAsyncUpdate() { // This registers all of our commands with the command manager but has to be done after the window has // been created so we can find the number of rendering engines available - ApplicationCommandManager& commandManager = MainAppWindow::getApplicationCommandManager(); + auto& commandManager = MainAppWindow::getApplicationCommandManager(); + commandManager.registerAllCommandsForTarget (contentComponent); commandManager.registerAllCommandsForTarget (JUCEApplication::getInstance()); } @@ -597,7 +676,7 @@ void MainAppWindow::showMessageBubble (const String& text) AttributedString attString; attString.append (text, Font (15.0f)); - currentBubbleMessage->showAt (Rectangle (getLocalBounds().getCentreX(), 10, 1, 1), + currentBubbleMessage->showAt ({ getLocalBounds().getCentreX(), 10, 1, 1 }, attString, 500, // numMillisecondsBeforeRemoving true, // removeWhenMouseClicked @@ -610,7 +689,7 @@ StringArray MainAppWindow::getRenderingEngines() const { StringArray renderingEngines; - if (ComponentPeer* peer = getPeer()) + if (auto* peer = getPeer()) renderingEngines = peer->getAvailableRenderingEngines(); #if JUCE_OPENGL @@ -636,7 +715,7 @@ void MainAppWindow::setRenderingEngine (int index) openGLContext.detach(); #endif - if (ComponentPeer* peer = getPeer()) + if (auto* peer = getPeer()) peer->setCurrentRenderingEngine (index); } @@ -652,7 +731,7 @@ int MainAppWindow::getActiveRenderingEngine() const return getRenderingEngines().indexOf (openGLRendererName); #endif - if (ComponentPeer* peer = getPeer()) + if (auto* peer = getPeer()) return peer->getCurrentRenderingEngine(); return 0; diff --git a/examples/Demo/Source/MainWindow.h b/examples/Demo/Source/MainWindow.h index c8416ec130..618e4bceed 100644 --- a/examples/Demo/Source/MainWindow.h +++ b/examples/Demo/Source/MainWindow.h @@ -81,11 +81,15 @@ public: renderingEngineTwo = 0x2301, renderingEngineThree = 0x2302, // these must be contiguous! - useLookAndFeelV1 = 0x200b, - useLookAndFeelV2 = 0x200c, - useLookAndFeelV3 = 0x200d, - - toggleRepaintDebugging = 0x200e, + useLookAndFeelV1 = 0x300a, + useLookAndFeelV2 = 0x300b, + useLookAndFeelV3 = 0x300c, + useLookAndFeelV4Dark = 0x300d, + useLookAndFeelV4Midnight = 0x300e, + useLookAndFeelV4Grey = 0x300f, + useLookAndFeelV4Light = 0x3010, + + toggleRepaintDebugging = 0x201a, useNativeTitleBar = 0x201d, goToKioskMode = 0x200f diff --git a/examples/HelloWorld/Source/Main.cpp b/examples/HelloWorld/Source/Main.cpp index ce1e40177f..848cbed341 100644 --- a/examples/HelloWorld/Source/Main.cpp +++ b/examples/HelloWorld/Source/Main.cpp @@ -22,7 +22,7 @@ public: //============================================================================== HelloWorldWindow() : DocumentWindow ("JUCE Hello World!", - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons, true) { diff --git a/examples/MPETest/Source/Main.cpp b/examples/MPETest/Source/Main.cpp index a858eb7a26..3da570f838 100644 --- a/examples/MPETest/Source/Main.cpp +++ b/examples/MPETest/Source/Main.cpp @@ -70,7 +70,10 @@ public: { public: MainWindow (String name) - : DocumentWindow (name, Colours::lightgrey, DocumentWindow::allButtons) + : DocumentWindow (name, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), + DocumentWindow::allButtons) { setUsingNativeTitleBar (true); setContentOwned (new MPETestClasses::MainComponent(), true); diff --git a/examples/MPETest/Source/MainComponent.h b/examples/MPETest/Source/MainComponent.h index da2d55a0b5..2add7f6aaa 100644 --- a/examples/MPETest/Source/MainComponent.h +++ b/examples/MPETest/Source/MainComponent.h @@ -38,7 +38,6 @@ public: zoneLayoutComp (colourPicker), visualiserComp (colourPicker) { - setLookAndFeel (&lookAndFeel); setSize (880, 720); audioDeviceManager.initialise (0, 2, 0, true, String(), 0); audioDeviceManager.addMidiInputCallback (String(), this); @@ -175,7 +174,6 @@ private: } //============================================================================== - LookAndFeel_V3 lookAndFeel; AudioDeviceManager audioDeviceManager; MPEZoneLayout zoneLayout; diff --git a/examples/MidiTest/Source/Main.cpp b/examples/MidiTest/Source/Main.cpp index 67e4b3688c..407e6119a3 100644 --- a/examples/MidiTest/Source/Main.cpp +++ b/examples/MidiTest/Source/Main.cpp @@ -76,7 +76,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/MidiTest/Source/MainComponent.cpp b/examples/MidiTest/Source/MainComponent.cpp index 881da46aa5..79c6ddffed 100644 --- a/examples/MidiTest/Source/MainComponent.cpp +++ b/examples/MidiTest/Source/MainComponent.cpp @@ -72,13 +72,13 @@ public: void paintListBoxItem (int rowNumber, Graphics &g, int width, int height, bool rowIsSelected) override { + const auto textColour = getLookAndFeel().findColour (ListBox::textColourId); + if (rowIsSelected) - g.fillAll (Colours::lightblue); - else if (rowNumber % 2) - g.fillAll (Colour (0xffeeeeee)); + g.fillAll (textColour.interpolatedWith (getLookAndFeel().findColour (ListBox::backgroundColourId), 0.5)); - g.setColour (Colours::black); + g.setColour (textColour); g.setFont (height * 0.7f); if (isInput) @@ -209,9 +209,8 @@ MainContentComponent::~MainContentComponent() } //============================================================================== -void MainContentComponent::paint (Graphics& g) +void MainContentComponent::paint (Graphics&) { - g.fillAll (Colours::white); } //============================================================================== diff --git a/examples/OSCMonitor/Source/Main.cpp b/examples/OSCMonitor/Source/Main.cpp index 58e5ee7a43..5825c80fc1 100644 --- a/examples/OSCMonitor/Source/Main.cpp +++ b/examples/OSCMonitor/Source/Main.cpp @@ -64,7 +64,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/OSCReceiver/Source/Main.cpp b/examples/OSCReceiver/Source/Main.cpp index 87ec3e54d0..4d3856cab3 100644 --- a/examples/OSCReceiver/Source/Main.cpp +++ b/examples/OSCReceiver/Source/Main.cpp @@ -64,7 +64,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/OSCSender/Source/Main.cpp b/examples/OSCSender/Source/Main.cpp index 1d1e0bfa87..0c9d179826 100644 --- a/examples/OSCSender/Source/Main.cpp +++ b/examples/OSCSender/Source/Main.cpp @@ -64,7 +64,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/OpenGLAppExample/Source/Main.cpp b/examples/OpenGLAppExample/Source/Main.cpp index 3dd6a83bfe..c2793d08b9 100644 --- a/examples/OpenGLAppExample/Source/Main.cpp +++ b/examples/OpenGLAppExample/Source/Main.cpp @@ -63,7 +63,8 @@ public: { public: MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/OpenGLAppExample/Source/MainComponent.cpp b/examples/OpenGLAppExample/Source/MainComponent.cpp index e5e3636752..6a93e39bcb 100644 --- a/examples/OpenGLAppExample/Source/MainComponent.cpp +++ b/examples/OpenGLAppExample/Source/MainComponent.cpp @@ -60,11 +60,10 @@ public: void render() override { - jassert (OpenGLHelpers::isContextActive()); const float desktopScale = (float) openGLContext.getRenderingScale(); - OpenGLHelpers::clear (Colour::greyLevel (0.1f)); + OpenGLHelpers::clear (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -92,7 +91,7 @@ public: // You can add your component specific drawing code here! // This will draw over the top of the openGL background. - g.setColour(Colours::white); + g.setColour (getLookAndFeel().findColour (Label::textColourId)); g.setFont (20); g.drawText ("OpenGL Example", 25, 20, 300, 30, Justification::left); g.drawLine (20, 20, 170, 20); diff --git a/examples/PluckedStringsDemo/Source/Main.cpp b/examples/PluckedStringsDemo/Source/Main.cpp index d3c2d71c8e..8ed4a87a45 100644 --- a/examples/PluckedStringsDemo/Source/Main.cpp +++ b/examples/PluckedStringsDemo/Source/Main.cpp @@ -52,7 +52,8 @@ public: { public: MainWindow() : DocumentWindow (ProjectInfo::projectName, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/PluckedStringsDemo/Source/StringDemoComponent.h b/examples/PluckedStringsDemo/Source/StringDemoComponent.h index 61ca15a198..9d3904a656 100644 --- a/examples/PluckedStringsDemo/Source/StringDemoComponent.h +++ b/examples/PluckedStringsDemo/Source/StringDemoComponent.h @@ -64,7 +64,6 @@ public: //============================================================================== void paint (Graphics& g) override { - g.fillAll (Colours::black); } void resized() override diff --git a/examples/PlugInSamples/GenericEditor.h b/examples/PlugInSamples/GenericEditor.h index 8bf7aedb79..480e9fb31d 100644 --- a/examples/PlugInSamples/GenericEditor.h +++ b/examples/PlugInSamples/GenericEditor.h @@ -96,7 +96,7 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::white); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); } //============================================================================== diff --git a/examples/PlugInSamples/InterAppAudioEffect/Source/IAAEffectEditor.h b/examples/PlugInSamples/InterAppAudioEffect/Source/IAAEffectEditor.h index 7f44b4e87c..18a6f7b398 100644 --- a/examples/PlugInSamples/InterAppAudioEffect/Source/IAAEffectEditor.h +++ b/examples/PlugInSamples/InterAppAudioEffect/Source/IAAEffectEditor.h @@ -30,7 +30,6 @@ public: // Configure all the graphics for the transport control. - transportText.setColour (Label::textColourId, Colours::white); transportText.setFont (Font (Font::getDefaultMonospacedFontName(), 18.0f, Font::plain)); transportText.setJustificationType (Justification::topLeft); addChildComponent (transportText); @@ -56,7 +55,6 @@ public: // Configure the switch to host button. - switchToHostButtonLabel.setColour (Label::textColourId, Colours::white); switchToHostButtonLabel.setFont (Font (Font::getDefaultMonospacedFontName(), 18.0f, Font::plain)); switchToHostButtonLabel.setJustificationType (Justification::centredRight); switchToHostButtonLabel.setText ("Switch to\nhost app:", dontSendNotification); @@ -76,12 +74,12 @@ public: //============================================================================== void paint (Graphics& g) override { - g.fillAll (Colours::darkgrey); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); } void resized() override { - auto area = getBounds().reduced (10); + auto area = getBounds().reduced (20); gainSlider.setBounds (area.removeFromLeft (60)); @@ -254,7 +252,7 @@ private: AudioProcessorValueTreeState& parameters; const int buttonSize = 30; - const Colour defaultButtonColour = Colours::lightgrey; + const Colour defaultButtonColour = Colours::darkgrey; ShapeButton rewindButton {"Rewind", defaultButtonColour, defaultButtonColour, defaultButtonColour}; ShapeButton playButton {"Play", defaultButtonColour, defaultButtonColour, defaultButtonColour}; ShapeButton recordButton {"Record", defaultButtonColour, defaultButtonColour, defaultButtonColour}; diff --git a/examples/PlugInSamples/InterAppAudioEffect/Source/SimpleMeter.h b/examples/PlugInSamples/InterAppAudioEffect/Source/SimpleMeter.h index 9547193536..27ae56d366 100644 --- a/examples/PlugInSamples/InterAppAudioEffect/Source/SimpleMeter.h +++ b/examples/PlugInSamples/InterAppAudioEffect/Source/SimpleMeter.h @@ -16,17 +16,17 @@ public: //============================================================================== void paint (Graphics& g) override { - g.fillAll(Colours::transparentBlack); + g.fillAll (Colours::transparentBlack); auto area = g.getClipBounds(); - g.setColour (Colours::skyblue); - g.fillRoundedRectangle(area.toFloat(), 6.0); + g.setColour (getLookAndFeel().findColour (Slider::thumbColourId)); + g.fillRoundedRectangle (area.toFloat(), 6.0); auto unfilledHeight = area.getHeight() * (1.0 - level); g.reduceClipRegion (area.getX(), area.getY(), area.getWidth(), (int) unfilledHeight); - g.setColour (Colours::grey); - g.fillRoundedRectangle(area.toFloat(), 6.0); + g.setColour (getLookAndFeel().findColour (Slider::trackColourId)); + g.fillRoundedRectangle (area.toFloat(), 6.0); } void resized() override {} diff --git a/examples/PlugInSamples/Surround/Source/SurroundEditor.h b/examples/PlugInSamples/Surround/Source/SurroundEditor.h index cde04a5288..0d760b0636 100644 --- a/examples/PlugInSamples/Surround/Source/SurroundEditor.h +++ b/examples/PlugInSamples/Surround/Source/SurroundEditor.h @@ -74,7 +74,7 @@ public: void paint (Graphics& g) override { - g.fillAll (Colours::white); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); } void buttonClicked (Button* btn) override @@ -127,11 +127,14 @@ public: if (ChannelClickListener* listener = dynamic_cast (getAudioProcessor())) { + const auto activeColour = getLookAndFeel().findColour (Slider::thumbColourId); + const auto inactiveColour = getLookAndFeel().findColour (Slider::trackColourId); + for (int i = 0; i < activeChannels.size(); ++i) { bool isActive = listener->isChannelActive (i); activeChannels.getReference (i) = isActive; - channelButtons [i]->setColour (TextButton::buttonColourId, isActive ? Colours::lightsalmon : Colours::lightgrey); + channelButtons [i]->setColour (TextButton::buttonColourId, isActive ? activeColour : inactiveColour); channelButtons [i]->repaint(); } } @@ -159,13 +162,16 @@ private: { if (ChannelClickListener* listener = dynamic_cast (getAudioProcessor())) { + const auto activeColour = getLookAndFeel().findColour (Slider::thumbColourId); + const auto inactiveColour = getLookAndFeel().findColour (Slider::trackColourId); + for (int i = 0; i < activeChannels.size(); ++i) { bool isActive = listener->isChannelActive (i); if (activeChannels.getReference (i) != isActive) { activeChannels.getReference (i) = isActive; - channelButtons [i]->setColour (TextButton::buttonColourId, isActive ? Colours::lightsalmon : Colours::lightgrey); + channelButtons [i]->setColour (TextButton::buttonColourId, isActive ? activeColour : inactiveColour); channelButtons [i]->repaint(); } } diff --git a/examples/SimpleFFTExample/Source/Main.cpp b/examples/SimpleFFTExample/Source/Main.cpp index 2ba0d3e3cd..abc9df1f96 100644 --- a/examples/SimpleFFTExample/Source/Main.cpp +++ b/examples/SimpleFFTExample/Source/Main.cpp @@ -49,7 +49,8 @@ public: { public: MainWindow() : DocumentWindow (ProjectInfo::projectName, - Colours::lightgrey, + LookAndFeel::getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { setUsingNativeTitleBar (true); diff --git a/examples/audio plugin demo/Source/PluginEditor.cpp b/examples/audio plugin demo/Source/PluginEditor.cpp index 8639737b64..108d00fe09 100644 --- a/examples/audio plugin demo/Source/PluginEditor.cpp +++ b/examples/audio plugin demo/Source/PluginEditor.cpp @@ -82,7 +82,6 @@ JuceDemoPluginAudioProcessorEditor::JuceDemoPluginAudioProcessorEditor (JuceDemo // add a label that will display the current timecode and status.. addAndMakeVisible (timecodeDisplayLabel); - timecodeDisplayLabel.setColour (Label::textColourId, Colours::blue); timecodeDisplayLabel.setFont (Font (Font::getDefaultMonospacedFontName(), 15.0f, Font::plain)); // set resize limits for this plug-in @@ -103,8 +102,7 @@ JuceDemoPluginAudioProcessorEditor::~JuceDemoPluginAudioProcessorEditor() //============================================================================== void JuceDemoPluginAudioProcessorEditor::paint (Graphics& g) { - g.setGradientFill (ColourGradient (Colours::white, 0, 0, - Colours::lightgrey, 0, (float) getHeight(), false)); + g.setColour (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); g.fillAll(); } @@ -117,8 +115,8 @@ void JuceDemoPluginAudioProcessorEditor::resized() timecodeDisplayLabel.setBounds (r.removeFromTop (26)); midiKeyboard.setBounds (r.removeFromBottom (70)); - r.removeFromTop (30); - Rectangle sliderArea (r.removeFromTop (50)); + r.removeFromTop (20); + Rectangle sliderArea (r.removeFromTop (60)); gainSlider->setBounds (sliderArea.removeFromLeft (jmin (180, sliderArea.getWidth() / 2))); delaySlider->setBounds (sliderArea.removeFromLeft (jmin (180, sliderArea.getWidth()))); diff --git a/examples/audio plugin host/Source/GraphEditorPanel.cpp b/examples/audio plugin host/Source/GraphEditorPanel.cpp index f67b1bc765..0491b36c87 100644 --- a/examples/audio plugin host/Source/GraphEditorPanel.cpp +++ b/examples/audio plugin host/Source/GraphEditorPanel.cpp @@ -36,7 +36,8 @@ static Array activePluginWindows; PluginWindow::PluginWindow (Component* const pluginEditor, AudioProcessorGraph::Node* const o, WindowFormatType t) - : DocumentWindow (pluginEditor->getName(), Colours::lightblue, + : DocumentWindow (pluginEditor->getName(), + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::minimiseButton | DocumentWindow::closeButton), owner (o), type (t) @@ -440,7 +441,7 @@ public: void paint (Graphics& g) override { - g.setColour (Colours::lightgrey); + g.setColour (findColour (TextEditor::backgroundColourId)); const int x = 4; const int y = pinSize; @@ -449,12 +450,9 @@ public: g.fillRect (x, y, w, h); - g.setColour (Colours::black); + g.setColour (findColour (TextEditor::textColourId)); g.setFont (font); g.drawFittedText (getName(), getLocalBounds().reduced (4, 2), Justification::centred, 2); - - g.setColour (Colours::grey); - g.drawRect (x, y, w, h); } void resized() override @@ -839,7 +837,7 @@ GraphEditorPanel::~GraphEditorPanel() void GraphEditorPanel::paint (Graphics& g) { - g.fillAll (Colours::white); + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); } void GraphEditorPanel::mouseDown (const MouseEvent& e) diff --git a/examples/audio plugin host/Source/HostStartup.cpp b/examples/audio plugin host/Source/HostStartup.cpp index 30a489b068..75a47279f8 100644 --- a/examples/audio plugin host/Source/HostStartup.cpp +++ b/examples/audio plugin host/Source/HostStartup.cpp @@ -50,8 +50,6 @@ public: appProperties = new ApplicationProperties(); appProperties->setStorageParameters (options); - LookAndFeel::setDefaultLookAndFeel (&lookAndFeel); - mainWindow = new MainHostWindow(); mainWindow->setUsingNativeTitleBar (true); @@ -119,7 +117,6 @@ public: ApplicationCommandManager commandManager; ScopedPointer appProperties; - LookAndFeel_V3 lookAndFeel; private: ScopedPointer mainWindow; diff --git a/examples/audio plugin host/Source/MainHostWindow.cpp b/examples/audio plugin host/Source/MainHostWindow.cpp index 63cbe225c6..c893bafd5f 100644 --- a/examples/audio plugin host/Source/MainHostWindow.cpp +++ b/examples/audio plugin host/Source/MainHostWindow.cpp @@ -32,7 +32,8 @@ class MainHostWindow::PluginListWindow : public DocumentWindow { public: PluginListWindow (MainHostWindow& owner_, AudioPluginFormatManager& pluginFormatManager) - : DocumentWindow ("Available Plugins", Colours::white, + : DocumentWindow ("Available Plugins", + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::minimiseButton | DocumentWindow::closeButton), owner (owner_) { @@ -72,7 +73,8 @@ private: //============================================================================== MainHostWindow::MainHostWindow() - : DocumentWindow (JUCEApplication::getInstance()->getApplicationName(), Colours::lightgrey, + : DocumentWindow (JUCEApplication::getInstance()->getApplicationName(), + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), DocumentWindow::allButtons) { formatManager.addDefaultFormats(); @@ -502,7 +504,7 @@ void MainHostWindow::showAudioSettings() o.content.setNonOwned (&audioSettingsComp); o.dialogTitle = "Audio Settings"; o.componentToCentreAround = this; - o.dialogBackgroundColour = Colours::azure; + o.dialogBackgroundColour = getLookAndFeel().findColour (ResizableWindow::backgroundColourId); o.escapeKeyTriggersCloseButton = true; o.useNativeTitleBar = false; o.resizable = false; diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.cpp b/extras/Projucer/JuceLibraryCode/BinaryData.cpp index 3021884ad7..e1e3b42ba4 100644 --- a/extras/Projucer/JuceLibraryCode/BinaryData.cpp +++ b/extras/Projucer/JuceLibraryCode/BinaryData.cpp @@ -1269,8 +1269,7 @@ static const unsigned char temp_binary_data_4[] = " void paint (Graphics& g) override\r\n" " {\r\n" " // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" -" g.fillAll (Colours::black);\r\n" -"\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" "\r\n" " // You can add your drawing code here!\r\n" " }\r\n" @@ -1368,8 +1367,7 @@ static const unsigned char temp_binary_data_5[] = " void paint (Graphics& g) override\r\n" " {\r\n" " // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" -" g.fillAll (Colours::black);\r\n" -"\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" "\r\n" " // You can add your drawing code here!\r\n" " }\r\n" @@ -1428,9 +1426,10 @@ static const unsigned char temp_binary_data_6[] = "//==============================================================================\r\n" "void EDITORCLASSNAME::paint (Graphics& g)\r\n" "{\r\n" -" g.fillAll (Colours::white);\r\n" +" // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" "\r\n" -" g.setColour (Colours::black);\r\n" +" g.setColour (Colours::white);\r\n" " g.setFont (15.0f);\r\n" " g.drawFittedText (\"Hello World!\", getLocalBounds(), Justification::centred, 1);\r\n" "}\r\n" @@ -1901,7 +1900,8 @@ static const unsigned char temp_binary_data_12[] = "\r\n" "void CONTENTCOMPCLASS::paint (Graphics& g)\r\n" "{\r\n" -" g.fillAll (Colour (0xff001F36));\r\n" +" // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" "\r\n" " g.setFont (Font (16.0f));\r\n" " g.setColour (Colours::white);\r\n" @@ -1975,12 +1975,12 @@ static const unsigned char temp_binary_data_14[] = " {\r\n" " // You should replace everything in this method with your own drawing code..\r\n" "\r\n" -" g.fillAll (Colours::white); // clear the background\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // clear the background\r\n" "\r\n" " g.setColour (Colours::grey);\r\n" " g.drawRect (getLocalBounds(), 1); // draw an outline around the component\r\n" "\r\n" -" g.setColour (Colours::lightblue);\r\n" +" g.setColour (Colours::white);\r\n" " g.setFont (14.0f);\r\n" " g.drawText (\"COMPONENTCLASS\", getLocalBounds(),\r\n" " Justification::centred, true); // draw some placeholder text\r\n" @@ -2333,12 +2333,12 @@ static const unsigned char temp_binary_data_19[] = " drawing code..\r\n" " */\r\n" "\r\n" -" g.fillAll (Colours::white); // clear the background\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // clear the background\r\n" "\r\n" " g.setColour (Colours::grey);\r\n" " g.drawRect (getLocalBounds(), 1); // draw an outline around the component\r\n" "\r\n" -" g.setColour (Colours::lightblue);\r\n" +" g.setColour (Colours::white);\r\n" " g.setFont (14.0f);\r\n" " g.drawText (\"COMPONENTCLASS\", getLocalBounds(),\r\n" " Justification::centred, true); // draw some placeholder text\r\n" @@ -2461,12 +2461,12 @@ static const unsigned char temp_binary_data_23[] = " drawing code..\r\n" " */\r\n" "\r\n" -" g.fillAll (Colours::white); // clear the background\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // clear the background\r\n" "\r\n" " g.setColour (Colours::grey);\r\n" " g.drawRect (getLocalBounds(), 1); // draw an outline around the component\r\n" "\r\n" -" g.setColour (Colours::lightblue);\r\n" +" g.setColour (Colours::white);\r\n" " g.setFont (14.0f);\r\n" " g.drawText (\"COMPONENTCLASS\", getLocalBounds(),\r\n" " Justification::centred, true); // draw some placeholder text\r\n" @@ -5235,26 +5235,26 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw case 0x10b04d10: numBytes = 4971; return gradlew; case 0x76cff066: numBytes = 2404; return gradlew_bat; case 0x34bc1021: numBytes = 11325; return LICENSE; - case 0x6cf2645e: numBytes = 1838; return jucer_AnimatedComponentTemplate_cpp; - case 0xafccbd3f: numBytes = 3092; return jucer_AudioComponentTemplate_cpp; - case 0x27c5a93a: numBytes = 1162; return jucer_AudioPluginEditorTemplate_cpp; + case 0x6cf2645e: numBytes = 1887; return jucer_AnimatedComponentTemplate_cpp; + case 0xafccbd3f: numBytes = 3141; return jucer_AudioComponentTemplate_cpp; + case 0x27c5a93a: numBytes = 1310; return jucer_AudioPluginEditorTemplate_cpp; case 0x4d0721bf: numBytes = 938; return jucer_AudioPluginEditorTemplate_h; case 0x51b49ac5: numBytes = 5469; return jucer_AudioPluginFilterTemplate_cpp; case 0x488afa0a: numBytes = 2203; return jucer_AudioPluginFilterTemplate_h; case 0xabad7041: numBytes = 2151; return jucer_ComponentTemplate_cpp; case 0xfc72fe86: numBytes = 2064; return jucer_ComponentTemplate_h; - case 0x0b66646c: numBytes = 886; return jucer_ContentCompTemplate_cpp; + case 0x0b66646c: numBytes = 1029; return jucer_ContentCompTemplate_cpp; case 0x6fa10171: numBytes = 886; return jucer_ContentCompTemplate_h; - case 0x28d496ad: numBytes = 1161; return jucer_InlineComponentTemplate_h; + case 0x28d496ad: numBytes = 1208; return jucer_InlineComponentTemplate_h; case 0x8905395b: numBytes = 470; return jucer_MainConsoleAppTemplate_cpp; case 0x5e5ea047: numBytes = 1992; return jucer_MainTemplate_NoWindow_cpp; case 0xda2391f8: numBytes = 4001; return jucer_MainTemplate_SimpleWindow_cpp; case 0x400bc026: numBytes = 3913; return jucer_MainTemplate_Window_cpp; - case 0xf4842835: numBytes = 1389; return jucer_NewComponentTemplate_cpp; + case 0xf4842835: numBytes = 1436; return jucer_NewComponentTemplate_cpp; case 0xe7bf237a: numBytes = 610; return jucer_NewComponentTemplate_h; case 0x02a2a077: numBytes = 262; return jucer_NewCppFileTemplate_cpp; case 0x0842c43c: numBytes = 246; return jucer_NewCppFileTemplate_h; - case 0x36e634a1: numBytes = 1588; return jucer_NewInlineComponentTemplate_h; + case 0x36e634a1: numBytes = 1635; return jucer_NewInlineComponentTemplate_h; case 0x7fbac252: numBytes = 1716; return jucer_OpenGLComponentTemplate_cpp; case 0x406db5c1: numBytes = 3117; return background_logo_svg; case 0x4a0cfd09: numBytes = 151; return background_tile_png; diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.h b/extras/Projucer/JuceLibraryCode/BinaryData.h index 52b16aa3a9..f3500410de 100644 --- a/extras/Projucer/JuceLibraryCode/BinaryData.h +++ b/extras/Projucer/JuceLibraryCode/BinaryData.h @@ -21,13 +21,13 @@ namespace BinaryData const int LICENSESize = 11325; extern const char* jucer_AnimatedComponentTemplate_cpp; - const int jucer_AnimatedComponentTemplate_cppSize = 1838; + const int jucer_AnimatedComponentTemplate_cppSize = 1887; extern const char* jucer_AudioComponentTemplate_cpp; - const int jucer_AudioComponentTemplate_cppSize = 3092; + const int jucer_AudioComponentTemplate_cppSize = 3141; extern const char* jucer_AudioPluginEditorTemplate_cpp; - const int jucer_AudioPluginEditorTemplate_cppSize = 1162; + const int jucer_AudioPluginEditorTemplate_cppSize = 1310; extern const char* jucer_AudioPluginEditorTemplate_h; const int jucer_AudioPluginEditorTemplate_hSize = 938; @@ -45,13 +45,13 @@ namespace BinaryData const int jucer_ComponentTemplate_hSize = 2064; extern const char* jucer_ContentCompTemplate_cpp; - const int jucer_ContentCompTemplate_cppSize = 886; + const int jucer_ContentCompTemplate_cppSize = 1029; extern const char* jucer_ContentCompTemplate_h; const int jucer_ContentCompTemplate_hSize = 886; extern const char* jucer_InlineComponentTemplate_h; - const int jucer_InlineComponentTemplate_hSize = 1161; + const int jucer_InlineComponentTemplate_hSize = 1208; extern const char* jucer_MainConsoleAppTemplate_cpp; const int jucer_MainConsoleAppTemplate_cppSize = 470; @@ -66,7 +66,7 @@ namespace BinaryData const int jucer_MainTemplate_Window_cppSize = 3913; extern const char* jucer_NewComponentTemplate_cpp; - const int jucer_NewComponentTemplate_cppSize = 1389; + const int jucer_NewComponentTemplate_cppSize = 1436; extern const char* jucer_NewComponentTemplate_h; const int jucer_NewComponentTemplate_hSize = 610; @@ -78,7 +78,7 @@ namespace BinaryData const int jucer_NewCppFileTemplate_hSize = 246; extern const char* jucer_NewInlineComponentTemplate_h; - const int jucer_NewInlineComponentTemplate_hSize = 1588; + const int jucer_NewInlineComponentTemplate_hSize = 1635; extern const char* jucer_OpenGLComponentTemplate_cpp; const int jucer_OpenGLComponentTemplate_cppSize = 1716; diff --git a/extras/Projucer/Source/BinaryData/jucer_AnimatedComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/jucer_AnimatedComponentTemplate.cpp index aab6d82fd1..0c9f65808d 100644 --- a/extras/Projucer/Source/BinaryData/jucer_AnimatedComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/jucer_AnimatedComponentTemplate.cpp @@ -36,8 +36,7 @@ public: void paint (Graphics& g) override { // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); - + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // You can add your drawing code here! } diff --git a/extras/Projucer/Source/BinaryData/jucer_AudioComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/jucer_AudioComponentTemplate.cpp index b059a510b6..86d2161ebd 100644 --- a/extras/Projucer/Source/BinaryData/jucer_AudioComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/jucer_AudioComponentTemplate.cpp @@ -65,8 +65,7 @@ public: void paint (Graphics& g) override { // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); - + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // You can add your drawing code here! } diff --git a/extras/Projucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp b/extras/Projucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp index a8a8e29899..09953b65b2 100644 --- a/extras/Projucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp @@ -27,9 +27,10 @@ EDITORCLASSNAME::~EDITORCLASSNAME() //============================================================================== void EDITORCLASSNAME::paint (Graphics& g) { - g.fillAll (Colours::white); + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); - g.setColour (Colours::black); + g.setColour (Colours::white); g.setFont (15.0f); g.drawFittedText ("Hello World!", getLocalBounds(), Justification::centred, 1); } diff --git a/extras/Projucer/Source/BinaryData/jucer_ContentCompTemplate.cpp b/extras/Projucer/Source/BinaryData/jucer_ContentCompTemplate.cpp index e26f687afd..030e4b6965 100644 --- a/extras/Projucer/Source/BinaryData/jucer_ContentCompTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/jucer_ContentCompTemplate.cpp @@ -21,7 +21,8 @@ CONTENTCOMPCLASS::~CONTENTCOMPCLASS() void CONTENTCOMPCLASS::paint (Graphics& g) { - g.fillAll (Colour (0xff001F36)); + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); g.setFont (Font (16.0f)); g.setColour (Colours::white); diff --git a/extras/Projucer/Source/BinaryData/jucer_InlineComponentTemplate.h b/extras/Projucer/Source/BinaryData/jucer_InlineComponentTemplate.h index 63454b83d8..00d51b0835 100644 --- a/extras/Projucer/Source/BinaryData/jucer_InlineComponentTemplate.h +++ b/extras/Projucer/Source/BinaryData/jucer_InlineComponentTemplate.h @@ -17,12 +17,12 @@ public: { // You should replace everything in this method with your own drawing code.. - g.fillAll (Colours::white); // clear the background + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // clear the background g.setColour (Colours::grey); g.drawRect (getLocalBounds(), 1); // draw an outline around the component - g.setColour (Colours::lightblue); + g.setColour (Colours::white); g.setFont (14.0f); g.drawText ("COMPONENTCLASS", getLocalBounds(), Justification::centred, true); // draw some placeholder text diff --git a/extras/Projucer/Source/BinaryData/jucer_NewComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/jucer_NewComponentTemplate.cpp index e4e47c8b43..bbbaae0270 100644 --- a/extras/Projucer/Source/BinaryData/jucer_NewComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/jucer_NewComponentTemplate.cpp @@ -32,12 +32,12 @@ void COMPONENTCLASS::paint (Graphics& g) drawing code.. */ - g.fillAll (Colours::white); // clear the background + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // clear the background g.setColour (Colours::grey); g.drawRect (getLocalBounds(), 1); // draw an outline around the component - g.setColour (Colours::lightblue); + g.setColour (Colours::white); g.setFont (14.0f); g.drawText ("COMPONENTCLASS", getLocalBounds(), Justification::centred, true); // draw some placeholder text diff --git a/extras/Projucer/Source/BinaryData/jucer_NewInlineComponentTemplate.h b/extras/Projucer/Source/BinaryData/jucer_NewInlineComponentTemplate.h index bd58dc0965..32d8cf2b7d 100644 --- a/extras/Projucer/Source/BinaryData/jucer_NewInlineComponentTemplate.h +++ b/extras/Projucer/Source/BinaryData/jucer_NewInlineComponentTemplate.h @@ -38,12 +38,12 @@ public: drawing code.. */ - g.fillAll (Colours::white); // clear the background + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); // clear the background g.setColour (Colours::grey); g.drawRect (getLocalBounds(), 1); // draw an outline around the component - g.setColour (Colours::lightblue); + g.setColour (Colours::white); g.setFont (14.0f); g.drawText ("COMPONENTCLASS", getLocalBounds(), Justification::centred, true); // draw some placeholder text diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp index 490de16807..56c219ac9a 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterApp.cpp @@ -79,7 +79,10 @@ public: virtual StandaloneFilterWindow* createWindow() { - return new StandaloneFilterWindow (getApplicationName(), Colours::white, appProperties.getUserSettings(), false); + return new StandaloneFilterWindow (getApplicationName(), + LookAndFeel::getDefaultLookAndFeel().findColour (ResizableWindow::backgroundColourId), + appProperties.getUserSettings(), + false); } //============================================================================== diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h index 6c4509a953..392067ae87 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h @@ -212,7 +212,7 @@ public: o.content->setSize (500, 450); o.dialogTitle = TRANS("Audio/MIDI Settings"); - o.dialogBackgroundColour = Colour (0xfff0f0f0); + o.dialogBackgroundColour = o.content->getLookAndFeel().findColour (ResizableWindow::backgroundColourId); o.escapeKeyTriggersCloseButton = true; o.useNativeTitleBar = true; o.resizable = false; @@ -396,7 +396,7 @@ public: const String& preferredDefaultDeviceName = String(), const AudioDeviceManager::AudioDeviceSetup* preferredSetupOptions = nullptr) : DocumentWindow (title, backgroundColour, DocumentWindow::minimiseButton | DocumentWindow::closeButton), - optionsButton ("options") + optionsButton ("Options") { setTitleBarButtonsRequired (DocumentWindow::minimiseButton | DocumentWindow::closeButton, false); diff --git a/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp b/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp index 790ee1e17b..698d127bf7 100644 --- a/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp +++ b/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp @@ -34,8 +34,11 @@ public: void paintRowBackground (Graphics& g, int /*rowNumber*/, int /*width*/, int /*height*/, bool rowIsSelected) override { - if (rowIsSelected) - g.fillAll (owner.findColour (TextEditor::highlightColourId)); + const auto defaultColour = owner.findColour (ListBox::backgroundColourId); + const auto c = rowIsSelected ? defaultColour.interpolatedWith (owner.findColour (ListBox::textColourId), 0.5f) + : defaultColour; + + g.fillAll (c); } enum @@ -75,9 +78,10 @@ public: if (text.isNotEmpty()) { + const auto defaultTextColour = owner.findColour (ListBox::textColourId); g.setColour (isBlacklisted ? Colours::red - : columnId == nameCol ? Colours::black - : Colours::grey); + : columnId == nameCol ? defaultTextColour + : defaultTextColour.interpolatedWith (Colours::transparentBlack, 0.3f)); g.setFont (Font (height * 0.7f, Font::bold)); g.drawFittedText (text, 4, 0, width - 6, height, Justification::centredLeft, 1, 0.9f); } diff --git a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp index 9b28baf3d6..1793787e06 100644 --- a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp +++ b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp @@ -770,13 +770,11 @@ public: return items.size(); } - void paintListBoxItem (int row, Graphics& g, int width, int height, bool rowIsSelected) override + void paintListBoxItem (int row, Graphics& g, int width, int height, bool) override { if (isPositiveAndBelow (row, items.size())) { - if (rowIsSelected) - g.fillAll (findColour (TextEditor::highlightColourId) - .withMultipliedAlpha (0.3f)); + g.fillAll (findColour (ListBox::backgroundColourId)); const String item (items [row]); bool enabled = false; diff --git a/modules/juce_gui_basics/components/juce_Desktop.cpp b/modules/juce_gui_basics/components/juce_Desktop.cpp index ee49d413b5..3336b1f0ae 100644 --- a/modules/juce_gui_basics/components/juce_Desktop.cpp +++ b/modules/juce_gui_basics/components/juce_Desktop.cpp @@ -93,7 +93,7 @@ LookAndFeel& Desktop::getDefaultLookAndFeel() noexcept if (currentLookAndFeel == nullptr) { if (defaultLookAndFeel == nullptr) - defaultLookAndFeel = new LookAndFeel_V3(); + defaultLookAndFeel = new LookAndFeel_V4(); currentLookAndFeel = defaultLookAndFeel; } diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp index 72223c99ac..3beb851b11 100644 --- a/modules/juce_gui_basics/juce_gui_basics.cpp +++ b/modules/juce_gui_basics/juce_gui_basics.cpp @@ -206,6 +206,7 @@ extern bool juce_areThereAnyAlwaysOnTopWindows(); #include "lookandfeel/juce_LookAndFeel_V2.cpp" #include "lookandfeel/juce_LookAndFeel_V1.cpp" #include "lookandfeel/juce_LookAndFeel_V3.cpp" +#include "lookandfeel/juce_LookAndFeel_V4.cpp" #include "menus/juce_MenuBarComponent.cpp" #include "menus/juce_MenuBarModel.cpp" #include "menus/juce_PopupMenu.cpp" diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h index 4e7795a18a..dbcdc05922 100644 --- a/modules/juce_gui_basics/juce_gui_basics.h +++ b/modules/juce_gui_basics/juce_gui_basics.h @@ -282,6 +282,7 @@ class FlexBox; #include "lookandfeel/juce_LookAndFeel_V2.h" #include "lookandfeel/juce_LookAndFeel_V1.h" #include "lookandfeel/juce_LookAndFeel_V3.h" +#include "lookandfeel/juce_LookAndFeel_V4.h" #if JUCE_LINUX #include "native/juce_linux_X11.h" diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp new file mode 100644 index 0000000000..355aba3323 --- /dev/null +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp @@ -0,0 +1,1432 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2015 - ROLI Ltd. + + Permission is granted to use this software under the terms of either: + a) the GPL v2 (or any later version) + b) the Affero GPL v3 + + Details of these licenses can be found at: www.gnu.org/licenses + + JUCE is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + ------------------------------------------------------------------------------ + + To release a closed-source product which uses JUCE, commercial licenses are + available: visit www.juce.com for more information. + + ============================================================================== +*/ + + +Colour LookAndFeel_V4::ColourScheme::getUIColour (UIColour index) const noexcept +{ + if (isPositiveAndBelow (index, numColours)) + return palette[index]; + + jassertfalse; + return {}; +} + +void LookAndFeel_V4::ColourScheme::setUIColour (UIColour index, Colour newColour) noexcept +{ + if (isPositiveAndBelow (index, numColours)) + palette[index] = newColour; + else + jassertfalse; +} + +bool LookAndFeel_V4::ColourScheme::operator== (const ColourScheme& other) const noexcept +{ + for (int i = 0; i < numColours; ++i) + if (palette[i] != other.palette[i]) + return false; + + return true; +} + +bool LookAndFeel_V4::ColourScheme::operator!= (const ColourScheme& other) const noexcept +{ + return ! operator== (other); +} + +//============================================================================== +LookAndFeel_V4::LookAndFeel_V4() : currentColourScheme (getDarkColourScheme()) +{ + initialiseColours(); +} + +LookAndFeel_V4::LookAndFeel_V4 (ColourScheme scheme) : currentColourScheme (scheme) +{ + initialiseColours(); +} + +LookAndFeel_V4::~LookAndFeel_V4() {} + +//============================================================================== +void LookAndFeel_V4::setColourScheme (ColourScheme newColourScheme) +{ + currentColourScheme = newColourScheme; + initialiseColours(); +} + +LookAndFeel_V4::ColourScheme LookAndFeel_V4::getDarkColourScheme() +{ + return { 0xff323e44, 0xff263238, 0xff323e44, + 0xff8e989b, 0xffffffff, 0xff42a2c8, + 0xffffffff, 0xff181f22, 0xffffffff }; +} + +LookAndFeel_V4::ColourScheme LookAndFeel_V4::getMidnightColourScheme() +{ + return { 0xff2f2f3a, 0xff191926, 0xffd0d0d0, + 0xff66667c, 0xc8ffffff, 0xffd8d8d8, + 0xffffffff, 0xff606073, 0xff000000 }; +} + +LookAndFeel_V4::ColourScheme LookAndFeel_V4::getGreyColourScheme() +{ + return { 0xff505050, 0xff424242, 0xff606060, + 0xffa6a6a6, 0xffffffff, 0xff21ba90, + 0xff000000, 0xffffffff, 0xffffffff }; +} + +LookAndFeel_V4::ColourScheme LookAndFeel_V4::getLightColourScheme() +{ + return { 0xffefefef, 0xffffffff, 0xffffffff, + 0xffdddddd, 0xff000000, 0xffa9a9a9, + 0xffffffff, 0xff42a2c8, 0xff000000 }; +} + +//============================================================================== +class LookAndFeel_V4_DocumentWindowButton : public Button +{ +public: + LookAndFeel_V4_DocumentWindowButton (const String& name, Colour c, const Path& normal, const Path& toggled) + : Button (name), colour (c), normalShape (normal), toggledShape (toggled) + { + } + + void paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown) override + { + auto background = Colours::grey; + + if (auto* rw = findParentComponentOfClass()) + if (auto lf = dynamic_cast (&rw->getLookAndFeel())) + background = lf->getCurrentColourScheme().getUIColour (LookAndFeel_V4::ColourScheme::widgetBackground); + + g.fillAll (background); + + g.setColour ((! isEnabled() || isButtonDown) ? colour.withAlpha (0.6f) + : colour); + + if (isMouseOverButton) + { + g.fillAll(); + g.setColour (background); + } + + auto& p = getToggleState() ? toggledShape : normalShape; + + auto reducedRect = Justification (Justification::centred) + .appliedToRectangle (Rectangle (getHeight(), getHeight()), getLocalBounds()) + .toFloat() + .reduced (getHeight() * 0.3f); + + g.fillPath (p, p.getTransformToScaleToFit (reducedRect, true)); + } + +private: + Colour colour; + Path normalShape, toggledShape; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LookAndFeel_V4_DocumentWindowButton) +}; + +Button* LookAndFeel_V4::createDocumentWindowButton (int buttonType) +{ + Path shape; + const float crossThickness = 0.15f; + + if (buttonType == DocumentWindow::closeButton) + { + shape.addLineSegment ({ 0.0f, 0.0f, 1.0f, 1.0f }, crossThickness); + shape.addLineSegment ({ 1.0f, 0.0f, 0.0f, 1.0f }, crossThickness); + + return new LookAndFeel_V4_DocumentWindowButton ("close", Colour (0xff9A131D), shape, shape); + } + + if (buttonType == DocumentWindow::minimiseButton) + { + shape.addLineSegment ({ 0.0f, 0.5f, 1.0f, 0.5f }, crossThickness); + + return new LookAndFeel_V4_DocumentWindowButton ("minimise", Colour (0xffaa8811), shape, shape); + } + + if (buttonType == DocumentWindow::maximiseButton) + { + shape.addLineSegment ({ 0.5f, 0.0f, 0.5f, 1.0f }, crossThickness); + shape.addLineSegment ({ 0.0f, 0.5f, 1.0f, 0.5f }, crossThickness); + + Path fullscreenShape; + fullscreenShape.startNewSubPath (45.0f, 100.0f); + fullscreenShape.lineTo (0.0f, 100.0f); + fullscreenShape.lineTo (0.0f, 0.0f); + fullscreenShape.lineTo (100.0f, 0.0f); + fullscreenShape.lineTo (100.0f, 45.0f); + fullscreenShape.addRectangle (45.0f, 45.0f, 100.0f, 100.0f); + PathStrokeType (30.0f).createStrokedPath (fullscreenShape, fullscreenShape); + + return new LookAndFeel_V4_DocumentWindowButton ("maximise", Colour (0xff0A830A), shape, fullscreenShape); + } + + jassertfalse; + return nullptr; +} + +void LookAndFeel_V4::positionDocumentWindowButtons (DocumentWindow&, + int titleBarX, int titleBarY, + int titleBarW, int titleBarH, + Button* minimiseButton, + Button* maximiseButton, + Button* closeButton, + bool positionTitleBarButtonsOnLeft) +{ + const int buttonW = (int) (titleBarH * 1.2); + + int x = positionTitleBarButtonsOnLeft ? titleBarX + : titleBarX + titleBarW - buttonW; + + if (closeButton != nullptr) + { + closeButton->setBounds (x, titleBarY, buttonW, titleBarH); + x += positionTitleBarButtonsOnLeft ? buttonW : -buttonW; + } + + if (positionTitleBarButtonsOnLeft) + std::swap (minimiseButton, maximiseButton); + + if (maximiseButton != nullptr) + { + maximiseButton->setBounds (x, titleBarY, buttonW, titleBarH); + x += positionTitleBarButtonsOnLeft ? buttonW : -buttonW; + } + + if (minimiseButton != nullptr) + minimiseButton->setBounds (x, titleBarY, buttonW, titleBarH); +} + +void LookAndFeel_V4::drawDocumentWindowTitleBar (DocumentWindow& window, Graphics& g, + int w, int h, int titleSpaceX, int titleSpaceW, + const Image* icon, bool drawTitleTextOnLeft) +{ + if (w * h == 0) + return; + + const bool isActive = window.isActiveWindow(); + + g.setColour (getCurrentColourScheme().getUIColour (ColourScheme::widgetBackground)); + g.fillAll(); + + Font font (h * 0.65f, Font::plain); + g.setFont (font); + + int textW = font.getStringWidth (window.getName()); + int iconW = 0; + int iconH = 0; + + if (icon != nullptr) + { + iconH = (int) font.getHeight(); + iconW = icon->getWidth() * iconH / icon->getHeight() + 4; + } + + textW = jmin (titleSpaceW, textW + iconW); + int textX = drawTitleTextOnLeft ? titleSpaceX + : jmax (titleSpaceX, (w - textW) / 2); + + if (textX + textW > titleSpaceX + titleSpaceW) + textX = titleSpaceX + titleSpaceW - textW; + + if (icon != nullptr) + { + g.setOpacity (isActive ? 1.0f : 0.6f); + g.drawImageWithin (*icon, textX, (h - iconH) / 2, iconW, iconH, + RectanglePlacement::centred, false); + textX += iconW; + textW -= iconW; + } + + if (window.isColourSpecified (DocumentWindow::textColourId) || isColourSpecified (DocumentWindow::textColourId)) + g.setColour (window.findColour (DocumentWindow::textColourId)); + else + g.setColour (getCurrentColourScheme().getUIColour (ColourScheme::defaultText)); + + g.drawText (window.getName(), textX, 0, textW, h, Justification::centredLeft, true); +} + +//============================================================================== +void LookAndFeel_V4::drawButtonBackground (Graphics& g, + Button& button, + const Colour& backgroundColour, + bool isMouseOverButton, + bool isButtonDown) +{ + const auto cornerSize = 6.0f; + const auto bounds = button.getLocalBounds().toFloat().reduced (0.5f, 0.5f); + + auto baseColour = backgroundColour.withMultipliedSaturation (button.hasKeyboardFocus (true) ? 1.3f : 0.9f) + .withMultipliedAlpha (button.isEnabled() ? 1.0f : 0.5f); + + if (isButtonDown || isMouseOverButton) + baseColour = baseColour.contrasting (isButtonDown ? 0.2f : 0.05f); + + g.setColour (baseColour); + + if (button.isConnectedOnLeft() || button.isConnectedOnRight()) + { + Path path; + path.addRoundedRectangle (bounds.getX(), bounds.getY(), + bounds.getWidth(), bounds.getHeight(), + cornerSize, cornerSize, + ! button.isConnectedOnLeft(), + ! button.isConnectedOnRight(), + ! button.isConnectedOnLeft(), + ! button.isConnectedOnRight()); + + g.fillPath (path); + + g.setColour (button.findColour (ComboBox::outlineColourId)); + g.strokePath (path, PathStrokeType (1.0f)); + } + else + { + g.fillRoundedRectangle (bounds, cornerSize); + + g.setColour (button.findColour (ComboBox::outlineColourId)); + g.drawRoundedRectangle (bounds, cornerSize, 1.0f); + } +} + +void LookAndFeel_V4::drawToggleButton (Graphics& g, ToggleButton& button, + bool isMouseOverButton, bool isButtonDown) +{ + const auto fontSize = jmin (15.0f, button.getHeight() * 0.75f); + const auto tickWidth = fontSize * 1.1f; + + drawTickBox (g, button, 4.0f, (button.getHeight() - tickWidth) * 0.5f, + tickWidth, tickWidth, + button.getToggleState(), + button.isEnabled(), + isMouseOverButton, + isButtonDown); + + g.setColour (button.findColour (ToggleButton::textColourId)); + g.setFont (fontSize); + + if (! button.isEnabled()) + g.setOpacity (0.5f); + + const auto textX = roundToInt (tickWidth) + 10; + + g.drawFittedText (button.getButtonText(), + textX, 0, + button.getWidth() - textX - 2, button.getHeight(), + Justification::centredLeft, 10); +} + +void LookAndFeel_V4::drawTickBox (Graphics& g, Component& component, + float x, float y, float w, float h, + const bool ticked, + const bool isEnabled, + const bool isMouseOverButton, + const bool isButtonDown) +{ + ignoreUnused (isEnabled, isMouseOverButton, isButtonDown); + + Rectangle tickBounds (x, y, w, h); + + g.setColour (component.findColour (ToggleButton::tickDisabledColourId)); + g.drawRoundedRectangle (tickBounds, 4.0f, 1.0f); + + if (ticked) + { + g.setColour (component.findColour (ToggleButton::tickColourId)); + const auto tick = getTickShape (0.75f); + g.fillPath (tick, tick.getTransformToScaleToFit (tickBounds.reduced (4, 5).toFloat(), false)); + } +} + +//============================================================================== +AlertWindow* LookAndFeel_V4::createAlertWindow (const String& title, const String& message, + const String& button1, const String& button2, const String& button3, + AlertWindow::AlertIconType iconType, + int numButtons, Component* associatedComponent) +{ + const auto boundsOffset = 50; + + auto* aw = LookAndFeel_V2::createAlertWindow (title, message, button1, button2, button3, + iconType, numButtons, associatedComponent); + + auto bounds = aw->getBounds(); + bounds = bounds.withSizeKeepingCentre (bounds.getWidth() + boundsOffset, bounds.getHeight() + boundsOffset); + aw->setBounds (bounds); + + for (int i = 0, maxI = aw->getNumChildComponents(); i < maxI; ++i) + if (auto button = dynamic_cast (aw->getChildComponent(i))) + button->setBounds (button->getBounds().withPosition (button->getX() + 25, button->getY() + 40)); + + return aw; +} + +void LookAndFeel_V4::drawAlertBox (Graphics& g, AlertWindow& alert, + const Rectangle& textArea, TextLayout& textLayout) +{ + const auto cornerSize = 4.0f; + + g.setColour (alert.findColour (AlertWindow::outlineColourId)); + g.drawRoundedRectangle (alert.getLocalBounds().toFloat(), cornerSize, 2.0f); + + const auto bounds = alert.getLocalBounds().reduced (1); + g.reduceClipRegion (bounds); + + g.setColour (alert.findColour (AlertWindow::backgroundColourId)); + g.fillRoundedRectangle (bounds.toFloat(), cornerSize); + + auto iconSpaceUsed = 0; + + const auto iconWidth = 80; + auto iconSize = jmin (iconWidth + 50, bounds.getHeight() + 20); + + if (alert.containsAnyExtraComponents() || alert.getNumButtons() > 2) + iconSize = jmin (iconSize, textArea.getHeight() + 50); + + const Rectangle iconRect (iconSize / -10, iconSize / -10, + iconSize, iconSize); + + if (alert.getAlertType() != AlertWindow::NoIcon) + { + Path icon; + char character; + uint32 colour; + + if (alert.getAlertType() == AlertWindow::WarningIcon) + { + character = '!'; + + icon.addTriangle (iconRect.getX() + iconRect.getWidth() * 0.5f, (float) iconRect.getY(), + (float) iconRect.getRight(), (float) iconRect.getBottom(), + (float) iconRect.getX(), (float) iconRect.getBottom()); + + icon = icon.createPathWithRoundedCorners (5.0f); + colour = 0x66ff2a00; + } + else + { + colour = Colour (0xff00b0b9).withAlpha (0.4f).getARGB(); + character = alert.getAlertType() == AlertWindow::InfoIcon ? 'i' : '?'; + + icon.addEllipse (iconRect.toFloat()); + } + + GlyphArrangement ga; + ga.addFittedText (Font (iconRect.getHeight() * 0.9f, Font::bold), + String::charToString ((juce_wchar) (uint8) character), + (float) iconRect.getX(), (float) iconRect.getY(), + (float) iconRect.getWidth(), (float) iconRect.getHeight(), + Justification::centred, false); + ga.createPath (icon); + + icon.setUsingNonZeroWinding (false); + g.setColour (Colour (colour)); + g.fillPath (icon); + + iconSpaceUsed = iconSize; + } + + g.setColour (alert.findColour (AlertWindow::textColourId)); + + const Rectangle alertBounds (bounds.getX() + iconSpaceUsed, + 30, + bounds.getWidth(), + bounds.getHeight() - getAlertWindowButtonHeight() - 20); + + textLayout.draw (g, alertBounds.toFloat()); +} + +int LookAndFeel_V4::getAlertWindowButtonHeight() { return 40; } +Font LookAndFeel_V4::getAlertWindowTitleFont() { return Font (18.0f, Font::FontStyleFlags::bold); } +Font LookAndFeel_V4::getAlertWindowMessageFont() { return Font (16.0f); } +Font LookAndFeel_V4::getAlertWindowFont() { return Font (14.0f); } + +//============================================================================== +void LookAndFeel_V4::drawProgressBar (Graphics& g, ProgressBar& progressBar, + int width, int height, double progress, const String& textToShow) +{ + if (width == height) + drawCircularProgressBar (g, progressBar, textToShow); + else + drawLinearProgressBar (g, progressBar, width, height, progress); +} + +void LookAndFeel_V4::drawLinearProgressBar (Graphics& g, ProgressBar& progressBar, int width, int height, double progress) +{ + const auto background = progressBar.findColour (ProgressBar::backgroundColourId); + const auto foreground = progressBar.findColour (ProgressBar::foregroundColourId); + + auto barBounds = progressBar.getLocalBounds().toFloat(); + + g.setColour (background); + g.fillRoundedRectangle (barBounds, progressBar.getHeight() * 0.5f); + + if (progress >= 0.0f && progress <= 1.0f) + { + Path p; + p.addRoundedRectangle (barBounds, progressBar.getHeight() * 0.5f); + g.reduceClipRegion (p); + + barBounds.setWidth (barBounds.getWidth() * (float) progress); + g.setColour (foreground); + g.fillRoundedRectangle (barBounds, progressBar.getHeight() * 0.5f); + } + else + { + // spinning bar.. + g.setColour (background); + + const auto stripeWidth = height * 2; + const auto position = (int) (Time::getMillisecondCounter() / 15) % stripeWidth; + + Path p; + + for (auto x = (float) (-position); x < width + stripeWidth; x += stripeWidth) + p.addQuadrilateral (x, 0.0f, + x + stripeWidth * 0.5f, 0.0f, + x, (float) height, + x - stripeWidth * 0.5f, (float) height); + + Image im (Image::ARGB, width, height, true); + + { + Graphics g2 (im); + g2.setColour (foreground); + g2.fillRoundedRectangle (barBounds, progressBar.getHeight() * 0.5f); + } + + g.setTiledImageFill (im, 0, 0, 0.85f); + g.fillPath (p); + } +} + +void LookAndFeel_V4::drawCircularProgressBar (Graphics& g, ProgressBar& progressBar, const String& progressText) +{ + const auto background = progressBar.findColour (ProgressBar::backgroundColourId); + const auto foreground = progressBar.findColour (ProgressBar::foregroundColourId); + + auto barBounds = progressBar.getLocalBounds().reduced (2, 2).toFloat(); + + auto rotationInDegrees = static_cast ((Time::getMillisecondCounter() / 10) % 360); + auto normalisedRotation = rotationInDegrees / 360.0f; + + const auto rotationOffset = 22.5f; + const auto maxRotation = 315.0f; + + auto startInDegrees = rotationInDegrees; + auto endInDegrees = startInDegrees + rotationOffset; + + if (normalisedRotation >= 0.25f && normalisedRotation < 0.5f) + { + const auto rescaledRotation = (normalisedRotation * 4.0f) - 1.0f; + endInDegrees = startInDegrees + rotationOffset + (maxRotation * rescaledRotation); + } + else if (normalisedRotation >= 0.5f && normalisedRotation <= 1.0f) + { + endInDegrees = startInDegrees + rotationOffset + maxRotation; + const auto rescaledRotation = 1.0f - ((normalisedRotation * 2.0f) - 1.0f); + startInDegrees = endInDegrees - rotationOffset - (maxRotation * rescaledRotation); + } + + g.setColour (background); + Path arcPath2; + arcPath2.addCentredArc (barBounds.getCentreX(), + barBounds.getCentreY(), + barBounds.getWidth() * 0.5f, + barBounds.getHeight() * 0.5f, 0.0f, + 0.0f, + 2.0f * float_Pi, + true); + g.strokePath (arcPath2, PathStrokeType (4.0f)); + + g.setColour (foreground); + Path arcPath; + arcPath.addCentredArc (barBounds.getCentreX(), + barBounds.getCentreY(), + barBounds.getWidth() * 0.5f, + barBounds.getHeight() * 0.5f, + 0.0f, + degreesToRadians (startInDegrees), + degreesToRadians (endInDegrees), + true); + + arcPath.applyTransform (AffineTransform::rotation (normalisedRotation * float_Pi * 2.25f, barBounds.getCentreX(), barBounds.getCentreY())); + g.strokePath (arcPath, PathStrokeType (4.0f)); + + if (progressText.isNotEmpty()) + { + g.setColour (progressBar.findColour (TextButton::textColourOffId)); + g.setFont (Font (12.0f, 2)); + g.drawText (progressText, barBounds, Justification::centred, false); + } +} + +//============================================================================== +int LookAndFeel_V4::getDefaultScrollbarWidth() +{ + return 8; +} + +void LookAndFeel_V4::drawScrollbar (Graphics& g, ScrollBar& scrollbar, int x, int y, int width, int height, + bool isScrollbarVertical, int thumbStartPosition, int thumbSize, bool isMouseOver, bool isMouseDown) +{ + ignoreUnused (isMouseDown); + + Rectangle thumbBounds; + + if (isScrollbarVertical) + thumbBounds = { x, thumbStartPosition, width, thumbSize }; + else + thumbBounds = { thumbStartPosition, y, thumbSize, height }; + + const auto c = scrollbar.findColour (ScrollBar::ColourIds::thumbColourId); + g.setColour (isMouseOver ? c.brighter (0.25f) : c); + g.fillRoundedRectangle (thumbBounds.reduced (1).toFloat(), 4.0f); +} + +//============================================================================== +Path LookAndFeel_V4::getTickShape (float height) +{ + static const unsigned char pathData[] = { 110,109,32,210,202,64,126,183,148,64,108,39,244,247,64,245,76,124,64,108,178,131,27,65,246,76,252,64,108,175,242,4,65,246,76,252, + 64,108,236,5,68,65,0,0,160,180,108,240,150,90,65,21,136,52,63,108,48,59,16,65,0,0,32,65,108,32,210,202,64,126,183,148,64, 99,101,0,0 }; + + Path path; + path.loadPathFromData (pathData, sizeof (pathData)); + path.scaleToFit (0, 0, height * 2.0f, height, true); + + return path; +} + +Path LookAndFeel_V4::getCrossShape (float height) +{ + static const unsigned char pathData[] = { 110,109,51,51,255,66,0,0,0,0,108,205,204,13,67,51,51,99,65,108,0,0,170,66,205,204,141,66,108,51,179,13,67,52,51,255,66,108,0,0,255, + 66,205,204,13,67,108,205,204,141,66,0,0,170,66,108,52,51,99,65,51,179,13,67,108,0,0,0,0,51,51,255,66,108,205,204,98,66, 204,204,141,66,108,0,0,0,0,51,51,99,65,108,51,51, + 99,65,0,0,0,0,108,205,204,141,66,205,204,98,66,108,51,51,255,66,0,0,0,0,99,101,0,0 }; + + Path path; + path.loadPathFromData (pathData, sizeof (pathData)); + path.scaleToFit (0, 0, height * 2.0f, height, true); + + return path; +} + +//============================================================================== +void LookAndFeel_V4::fillTextEditorBackground (Graphics& g, int width, int height, TextEditor& textEditor) +{ + if (dynamic_cast (textEditor.getParentComponent()) != nullptr) + { + g.setColour (textEditor.findColour (TextEditor::backgroundColourId)); + g.fillRect (0, 0, width, height); + + g.setColour (textEditor.findColour (TextEditor::outlineColourId)); + g.drawHorizontalLine (height - 1, 0.0f, static_cast (width)); + } + else + { + LookAndFeel_V2::fillTextEditorBackground (g, width, height, textEditor); + } +} + +void LookAndFeel_V4::drawTextEditorOutline (Graphics& g, int width, int height, TextEditor& textEditor) +{ + if (dynamic_cast (textEditor.getParentComponent()) == nullptr) + { + if (textEditor.isEnabled()) + { + if (textEditor.hasKeyboardFocus (true) && ! textEditor.isReadOnly()) + { + g.setColour (textEditor.findColour (TextEditor::focusedOutlineColourId)); + g.drawRect (0, 0, width, height, 2); + } + else + { + g.setColour (textEditor.findColour (TextEditor::outlineColourId)); + g.drawRect (0, 0, width, height); + } + } + } +} + +//============================================================================== +Button* LookAndFeel_V4::createFileBrowserGoUpButton() +{ + auto* goUpButton = new DrawableButton ("up", DrawableButton::ImageOnButtonBackground); + + Path arrowPath; + arrowPath.addArrow ({ 50.0f, 100.0f, 50.0f, 0.0f }, 40.0f, 100.0f, 50.0f); + + DrawablePath arrowImage; + arrowImage.setFill (goUpButton->findColour (TextButton::textColourOffId)); + arrowImage.setPath (arrowPath); + + goUpButton->setImages (&arrowImage); + + return goUpButton; +} + +void LookAndFeel_V4::layoutFileBrowserComponent (FileBrowserComponent& browserComp, + DirectoryContentsDisplayComponent* fileListComponent, + FilePreviewComponent* previewComp, + ComboBox* currentPathBox, + TextEditor* filenameBox, + Button* goUpButton) +{ + const auto sectionHeight = 22; + const auto buttonWidth = 50; + + auto b = browserComp.getLocalBounds().reduced (20, 5); + + auto topSlice = b.removeFromTop (sectionHeight); + auto bottomSlice = b.removeFromBottom (sectionHeight); + + currentPathBox->setBounds (topSlice.removeFromLeft (topSlice.getWidth() - buttonWidth)); + currentPathBox->setColour (ComboBox::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuBackground)); + currentPathBox->setColour (ComboBox::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuText)); + currentPathBox->setColour (ComboBox::arrowColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuText)); + + topSlice.removeFromLeft (6); + goUpButton->setBounds (topSlice); + + bottomSlice.removeFromLeft (20); + filenameBox->setBounds (bottomSlice); + filenameBox->setColour (TextEditor::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuBackground)); + filenameBox->setColour (TextEditor::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuText)); + + if (previewComp != nullptr) + previewComp->setBounds (b.removeFromRight (b.getWidth() / 3)); + + if (auto listAsComp = dynamic_cast (fileListComponent)) + listAsComp->setBounds (b.reduced (0, 10)); +} + +void LookAndFeel_V4::drawFileBrowserRow (Graphics& g, int width, int height, + const String& filename, Image* icon, + const String& fileSizeDescription, + const String& fileTimeDescription, + const bool isDirectory, const bool isItemSelected, + const int itemIndex, DirectoryContentsDisplayComponent& dcc) +{ + if (auto fileListComp = dynamic_cast (&dcc)) + fileListComp->setColour (DirectoryContentsDisplayComponent::textColourId, + currentColourScheme.getUIColour (isItemSelected ? ColourScheme::UIColour::highlightedText + : ColourScheme::UIColour::menuText)); + + LookAndFeel_V2::drawFileBrowserRow (g, width, height, filename, icon, + fileSizeDescription, fileTimeDescription, + isDirectory, isItemSelected, itemIndex, dcc); +} + +//============================================================================== +void LookAndFeel_V4::drawPopupMenuItem (Graphics& g, const Rectangle& area, + const bool isSeparator, const bool isActive, + const bool isHighlighted, const bool isTicked, + const bool hasSubMenu, const String& text, + const String& shortcutKeyText, + const Drawable* icon, const Colour* const textColourToUse) +{ + if (isSeparator) + { + auto r = area.reduced (5, 0); + r.removeFromTop (roundToInt ((r.getHeight() * 0.5f) - 0.5f)); + + g.setColour (findColour (PopupMenu::textColourId).withAlpha (0.3f)); + g.fillRect (r.removeFromTop (1)); + } + else + { + auto textColour = (textColourToUse == nullptr ? findColour (PopupMenu::textColourId) + : *textColourToUse); + + auto r = area.reduced (1); + + if (isHighlighted && isActive) + { + g.setColour (findColour (PopupMenu::highlightedBackgroundColourId)); + g.fillRect (r); + + g.setColour (findColour (PopupMenu::highlightedTextColourId)); + } + else + { + g.setColour (textColour.withMultipliedAlpha (isActive ? 1.0f : 0.5f)); + } + + r.reduce (jmin (5, area.getWidth() / 20), 0); + + auto font = getPopupMenuFont(); + + const auto maxFontHeight = r.getHeight() / 1.3f; + + if (font.getHeight() > maxFontHeight) + font.setHeight (maxFontHeight); + + g.setFont (font); + + auto iconArea = r.removeFromLeft (roundToInt (maxFontHeight)).toFloat(); + + if (icon != nullptr) + { + icon->drawWithin (g, iconArea, RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, 1.0f); + } + else if (isTicked) + { + const auto tick = getTickShape (1.0f); + g.fillPath (tick, tick.getTransformToScaleToFit (iconArea.reduced (iconArea.getWidth() / 5, 0).toFloat(), true)); + } + + if (hasSubMenu) + { + const auto arrowH = 0.6f * getPopupMenuFont().getAscent(); + + const auto x = (float) r.removeFromRight ((int) arrowH).getX(); + const auto halfH = (float) r.getCentreY(); + + Path path; + path.startNewSubPath (x, halfH - arrowH * 0.5f); + path.lineTo (x + arrowH * 0.6f, halfH); + path.lineTo (x, halfH + arrowH * 0.5f); + + g.strokePath (path, PathStrokeType (2.0f)); + } + + r.removeFromRight (3); + g.drawFittedText (text, r, Justification::centredLeft, 1); + + if (shortcutKeyText.isNotEmpty()) + { + auto f2 = font; + f2.setHeight (f2.getHeight() * 0.75f); + f2.setHorizontalScale (0.95f); + g.setFont (f2); + + g.drawText (shortcutKeyText, r, Justification::centredRight, true); + } + } +} + +void LookAndFeel_V4::getIdealPopupMenuItemSize (const String& text, const bool isSeparator, + int standardMenuItemHeight, int& idealWidth, int& idealHeight) +{ + if (isSeparator) + { + idealWidth = 50; + idealHeight = standardMenuItemHeight > 0 ? standardMenuItemHeight / 10 : 10; + } + else + { + auto font = getPopupMenuFont(); + + if (standardMenuItemHeight > 0 && font.getHeight() > standardMenuItemHeight / 1.3f) + font.setHeight (standardMenuItemHeight / 1.3f); + + idealHeight = standardMenuItemHeight > 0 ? standardMenuItemHeight : roundToInt (font.getHeight() * 1.3f); + idealWidth = font.getStringWidth (text) + idealHeight * 2; + } +} + +void LookAndFeel_V4::drawMenuBarBackground (Graphics& g, int width, int height, + bool, MenuBarComponent& menuBar) +{ + const auto colour = menuBar.findColour (TextButton::buttonColourId).withAlpha (0.4f); + + Rectangle r (width, height); + + g.setColour (colour.contrasting (0.15f)); + g.fillRect (r.removeFromTop (1)); + g.fillRect (r.removeFromBottom (1)); + + g.setGradientFill (ColourGradient (colour, 0, 0, colour.darker (0.2f), 0, (float) height, false)); + g.fillRect (r); +} + +void LookAndFeel_V4::drawMenuBarItem (Graphics& g, int width, int height, + int itemIndex, const String& itemText, + bool isMouseOverItem, bool isMenuOpen, + bool /*isMouseOverBar*/, MenuBarComponent& menuBar) +{ + if (! menuBar.isEnabled()) + { + g.setColour (menuBar.findColour (TextButton::textColourOffId) + .withMultipliedAlpha (0.5f)); + } + else if (isMenuOpen || isMouseOverItem) + { + g.fillAll (menuBar.findColour (TextButton::buttonOnColourId)); + g.setColour (menuBar.findColour (TextButton::textColourOnId)); + } + else + { + g.setColour (menuBar.findColour (TextButton::textColourOffId)); + } + + g.setFont (getMenuBarFont (menuBar, itemIndex, itemText)); + g.drawFittedText (itemText, 0, 0, width, height, Justification::centred, 1); +} + +//============================================================================== +void LookAndFeel_V4::drawComboBox (Graphics& g, int width, int height, bool, + int, int, int, int, ComboBox& box) +{ + const auto cornerSize = box.findParentComponentOfClass() != nullptr ? 0.0f : 3.0f; + const Rectangle boxBounds (0, 0, width, height); + + g.setColour (box.findColour (ComboBox::backgroundColourId)); + g.fillRoundedRectangle (boxBounds.toFloat(), cornerSize); + + g.setColour (box.findColour (ComboBox::outlineColourId)); + g.drawRoundedRectangle (boxBounds.toFloat().reduced (0.5f, 0.5f), cornerSize, 1.0f); + + Rectangle arrowZone (width - 30, 0, 20, height); + Path path; + path.startNewSubPath (arrowZone.getX() + 3.0f, arrowZone.getCentreY() - 2.0f); + path.lineTo (static_cast (arrowZone.getCentreX()), arrowZone.getCentreY() + 3.0f); + path.lineTo (arrowZone.getRight() - 3.0f, arrowZone.getCentreY() - 2.0f); + + g.setColour (box.findColour (ComboBox::arrowColourId).withAlpha ((box.isEnabled() ? 0.9f : 0.2f))); + g.strokePath (path, PathStrokeType (2.0f)); +} + +Font LookAndFeel_V4::getComboBoxFont (ComboBox& box) +{ + return Font (jmin (16.0f, box.getHeight() * 0.85f)); +} + +void LookAndFeel_V4::positionComboBoxText (ComboBox& box, Label& label) +{ + label.setBounds (1, 1, + box.getWidth() - 30, + box.getHeight() - 2); + + label.setFont (getComboBoxFont (box)); + label.setJustificationType (Justification::centredLeft); +} + +//============================================================================== +void LookAndFeel_V4::drawLinearSlider (Graphics& g, int x, int y, int width, int height, + float sliderPos, + float minSliderPos, + float maxSliderPos, + const Slider::SliderStyle style, Slider& slider) +{ + if (slider.isBar()) + { + g.setColour (slider.findColour (Slider::trackColourId)); + g.fillRect (slider.isHorizontal() ? Rectangle (static_cast (x), y + 0.5f, sliderPos - x, height - 1.0f) + : Rectangle (x + 0.5f, sliderPos, width - 1.0f, y + (height - sliderPos))); + } + else + { + const auto isTwoVal = (style == Slider::SliderStyle::TwoValueVertical || style == Slider::SliderStyle::TwoValueHorizontal); + const auto isThreeVal = (style == Slider::SliderStyle::ThreeValueVertical || style == Slider::SliderStyle::ThreeValueHorizontal); + + const auto trackWidth = jmin (6.0f, slider.isHorizontal() ? height * 0.25f : width * 0.25f); + + const Point startPoint (slider.isHorizontal() ? x : width * 0.5f, + slider.isHorizontal() ? height * 0.5f : height + y); + + const Point endPoint (slider.isHorizontal() ? width + x : startPoint.x, + slider.isHorizontal() ? startPoint.y : y); + + Path backgroundTrack; + backgroundTrack.startNewSubPath (startPoint); + backgroundTrack.lineTo (endPoint); + g.setColour (slider.findColour (Slider::backgroundColourId)); + g.strokePath (backgroundTrack, PathStrokeType (trackWidth, PathStrokeType::curved, PathStrokeType::rounded)); + + Path valueTrack; + Point minPoint, maxPoint, thumbPoint; + + if (isTwoVal || isThreeVal) + { + minPoint = { slider.isHorizontal() ? minSliderPos : width * 0.5f, + slider.isHorizontal() ? height * 0.5f : minSliderPos }; + + if (isThreeVal) + thumbPoint = { slider.isHorizontal() ? sliderPos : width * 0.5f, + slider.isHorizontal() ? height * 0.5f : sliderPos }; + + maxPoint = { slider.isHorizontal() ? maxSliderPos : width * 0.5f, + slider.isHorizontal() ? height * 0.5f : maxSliderPos }; + } + else + { + const auto kx = slider.isHorizontal() ? sliderPos : (x + width * 0.5f); + const auto ky = slider.isHorizontal() ? (y + height * 0.5f) : sliderPos; + + minPoint = startPoint; + maxPoint = { kx, ky }; + } + + const auto thumbWidth = trackWidth * 2.0f; + + valueTrack.startNewSubPath (minPoint); + valueTrack.lineTo (isThreeVal ? thumbPoint : maxPoint); + g.setColour (slider.findColour (Slider::trackColourId)); + g.strokePath (valueTrack, PathStrokeType (trackWidth, PathStrokeType::curved, PathStrokeType::rounded)); + + if (! isTwoVal) + { + g.setColour (slider.findColour (Slider::thumbColourId)); + g.fillEllipse (Rectangle (thumbWidth, thumbWidth).withCentre (isThreeVal ? thumbPoint : maxPoint)); + } + + if (isTwoVal || isThreeVal) + { + const auto sr = jmin (trackWidth, (slider.isHorizontal() ? height : width) * 0.4f); + const auto pointerColour = slider.findColour (Slider::thumbColourId); + + if (slider.isHorizontal()) + { + drawPointer (g, minSliderPos - sr, + jmax (0.0f, y + height * 0.5f - trackWidth * 2.0f), + trackWidth * 2.0f, pointerColour, 2); + + drawPointer (g, maxSliderPos - trackWidth, + jmin (y + height - trackWidth * 2.0f, y + height * 0.5f), + trackWidth * 2.0f, pointerColour, 4); + } + else + { + drawPointer (g, jmax (0.0f, x + width * 0.5f - trackWidth * 2.0f), + minSliderPos - trackWidth, + trackWidth * 2.0f, pointerColour, 1); + + drawPointer (g, jmin (x + width - trackWidth * 2.0f, x + width * 0.5f), maxSliderPos - sr, + trackWidth * 2.0f, pointerColour, 3); + } + } + } +} + +void LookAndFeel_V4::drawRotarySlider (Graphics& g, int x, int y, int width, int height, float sliderPos, + const float rotaryStartAngle, const float rotaryEndAngle, Slider& slider) +{ + const auto outline = slider.findColour (Slider::rotarySliderOutlineColourId); + const auto fill = slider.findColour (Slider::rotarySliderFillColourId); + + const auto bounds = Rectangle (x, y, width, height).toFloat().reduced (10); + + auto radius = jmin (bounds.getWidth(), bounds.getHeight()) / 2.0f; + const auto toAngle = rotaryStartAngle + sliderPos * (rotaryEndAngle - rotaryStartAngle); + auto lineW = jmin (8.0f, radius * 0.5f); + auto arcRadius = radius - lineW * 0.5f; + + Path backgroundArc; + backgroundArc.addCentredArc (bounds.getCentreX(), + bounds.getCentreY(), + arcRadius, + arcRadius, + 0.0f, + rotaryStartAngle, + rotaryEndAngle, + true); + + g.setColour (outline); + g.strokePath (backgroundArc, PathStrokeType (lineW, PathStrokeType::curved, PathStrokeType::rounded)); + + if (slider.isEnabled()) + { + Path valueArc; + valueArc.addCentredArc (bounds.getCentreX(), + bounds.getCentreY(), + arcRadius, + arcRadius, + 0.0f, + rotaryStartAngle, + toAngle, + true); + + g.setColour (fill); + g.strokePath (valueArc, PathStrokeType (lineW, PathStrokeType::curved, PathStrokeType::rounded)); + } + + const auto thumbWidth = lineW * 2.0f; + const Point thumbPoint (bounds.getCentreX() + arcRadius * std::cos (toAngle - float_Pi * 0.5f), + bounds.getCentreY() + arcRadius * std::sin (toAngle - float_Pi * 0.5f)); + + g.setColour (slider.findColour (Slider::thumbColourId)); + g.fillEllipse (Rectangle (thumbWidth, thumbWidth).withCentre (thumbPoint)); +} + +void LookAndFeel_V4::drawPointer (Graphics& g, const float x, const float y, const float diameter, + const Colour& colour, const int direction) noexcept +{ + Path p; + p.startNewSubPath (x + diameter * 0.5f, y); + p.lineTo (x + diameter, y + diameter * 0.6f); + p.lineTo (x + diameter, y + diameter); + p.lineTo (x, y + diameter); + p.lineTo (x, y + diameter * 0.6f); + p.closeSubPath(); + + p.applyTransform (AffineTransform::rotation (direction * (float_Pi * 0.5f), x + diameter * 0.5f, y + diameter * 0.5f)); + + g.setColour (colour); + g.fillPath (p); +} + +//============================================================================== +void LookAndFeel_V4::drawTooltip (Graphics& g, const String& text, int width, int height) +{ + Rectangle bounds (width, height); + const auto cornerSize = 5.0f; + + g.setColour (findColour (TooltipWindow::backgroundColourId)); + g.fillRoundedRectangle (bounds.toFloat(), cornerSize); + + g.setColour (findColour (TooltipWindow::outlineColourId)); + g.drawRoundedRectangle (bounds.toFloat().reduced (0.5f, 0.5f), cornerSize, 1.0f); + + LookAndFeelHelpers::layoutTooltipText (text, findColour (TooltipWindow::textColourId)) + .draw (g, Rectangle ((float) width, (float) height)); +} + +//============================================================================== +void LookAndFeel_V4::drawConcertinaPanelHeader (Graphics& g, const Rectangle& area, + bool isMouseOver, bool /*isMouseDown*/, + ConcertinaPanel& concertina, Component& panel) +{ + auto bounds = area.toFloat().reduced (0.5f); + const auto cornerSize = 4.0f; + auto isTopPanel = (concertina.getPanel (0) == &panel); + + Path p; + p.addRoundedRectangle (bounds.getX(), bounds.getY(), bounds.getWidth(), bounds.getHeight(), + cornerSize, cornerSize, isTopPanel, isTopPanel, false, false); + + const auto bkg = Colours::grey; + + g.setGradientFill (ColourGradient (Colours::white.withAlpha (isMouseOver ? 0.4f : 0.2f), 0, (float) area.getY(), + Colours::darkgrey.withAlpha (0.1f), 0, (float) area.getBottom(), false)); + g.fillPath (p); +} + +//============================================================================== +void LookAndFeel_V4::drawLevelMeter (Graphics& g, int width, int height, float level) +{ + const auto outerCornerSize = 3.0f; + const auto outerBorderWidth = 2.0f; + const auto totalBlocks = 7; + const auto spacingFraction = 0.03f; + + g.setColour (findColour (ResizableWindow::backgroundColourId)); + g.fillRoundedRectangle (0.0f, 0.0f, (float) width, (float) height, outerCornerSize); + + const auto doubleOuterBorderWidth = 2.0f * outerBorderWidth; + const auto numBlocks = roundToInt (totalBlocks * level); + + const auto blockWidth = (width - doubleOuterBorderWidth) / (float) totalBlocks; + const auto blockHeight = height - doubleOuterBorderWidth; + + const auto blockRectWidth = (1.0f - 2.0f * spacingFraction) * blockWidth; + const auto blockRectSpacing = spacingFraction * blockWidth; + + const auto blockCornerSize = 0.1f * blockWidth; + + const auto c = findColour (Slider::thumbColourId); + + for (int i = 0; i < totalBlocks; ++i) + { + if (i >= numBlocks) + g.setColour (c.withAlpha (0.5f)); + else + g.setColour (i < totalBlocks - 1 ? c : Colours::red); + + g.fillRoundedRectangle (outerBorderWidth + (i * blockWidth) + blockRectSpacing, + outerBorderWidth, + blockRectWidth, + blockHeight, + blockCornerSize); + } +} + +//============================================================================== +void LookAndFeel_V4::paintToolbarBackground (Graphics& g, int w, int h, Toolbar& toolbar) +{ + const auto background = toolbar.findColour (Toolbar::backgroundColourId); + + g.setGradientFill (ColourGradient (background, 0.0f, 0.0f, + background.darker (0.2f), + toolbar.isVertical() ? w - 1.0f : 0.0f, + toolbar.isVertical() ? 0.0f : h - 1.0f, + false)); + g.fillAll(); +} + +void LookAndFeel_V4::paintToolbarButtonLabel (Graphics& g, int x, int y, int width, int height, + const String& text, ToolbarItemComponent& component) +{ + auto baseTextColour = component.findParentComponentOfClass() != nullptr + ? component.findColour (PopupMenu::textColourId) + : component.findColour (Toolbar::labelTextColourId); + + g.setColour (baseTextColour.withAlpha (component.isEnabled() ? 1.0f : 0.25f)); + + const auto fontHeight = jmin (14.0f, height * 0.85f); + g.setFont (fontHeight); + + g.drawFittedText (text, + x, y, width, height, + Justification::centred, + jmax (1, height / (int) fontHeight)); +} + +//============================================================================== +void LookAndFeel_V4::drawPropertyPanelSectionHeader (Graphics& g, const String& name, + bool isOpen, int width, int height) +{ + const auto buttonSize = height * 0.75f; + const auto buttonIndent = (height - buttonSize) * 0.5f; + + drawTreeviewPlusMinusBox (g, Rectangle (buttonIndent, buttonIndent, buttonSize, buttonSize), + findColour (ResizableWindow::backgroundColourId), isOpen, false); + + const auto textX = (int) (buttonIndent * 2.0f + buttonSize + 2.0f); + + g.setColour (findColour (PropertyComponent::labelTextColourId)); + + g.setFont (Font (height * 0.7f, Font::bold)); + g.drawText (name, textX, 0, width - textX - 4, height, Justification::centredLeft, true); +} + +void LookAndFeel_V4::drawPropertyComponentBackground (Graphics& g, int width, int height, PropertyComponent& component) +{ + g.setColour (component.findColour (PropertyComponent::backgroundColourId)); + g.fillRect (0, 0, width, height - 1); +} + +void LookAndFeel_V4::drawPropertyComponentLabel (Graphics& g, int width, int height, PropertyComponent& component) +{ + ignoreUnused (width); + + const auto indent = getPropertyComponentIndent (component); + + g.setColour (component.findColour (PropertyComponent::labelTextColourId) + .withMultipliedAlpha (component.isEnabled() ? 1.0f : 0.6f)); + + g.setFont (jmin (height, 24) * 0.65f); + + auto r = getPropertyComponentContentPosition (component); + + g.drawFittedText (component.getName(), + indent, r.getY(), r.getX() - 5, r.getHeight(), + Justification::centredLeft, 2); +} + +int LookAndFeel_V4::getPropertyComponentIndent (PropertyComponent& component) +{ + return jmin (10, component.getWidth() / 10); +} + +Rectangle LookAndFeel_V4::getPropertyComponentContentPosition (PropertyComponent& component) +{ + const auto textW = jmin (200, component.getWidth() / 2); + return { textW, 0, component.getWidth() - textW, component.getHeight() - 1 }; +} + +//============================================================================== +void LookAndFeel_V4::drawCallOutBoxBackground (CallOutBox& box, Graphics& g, + const Path& path, Image& cachedImage) +{ + if (cachedImage.isNull()) + { + cachedImage = Image (Image::ARGB, box.getWidth(), box.getHeight(), true); + Graphics g2 (cachedImage); + + DropShadow (Colours::black.withAlpha (0.7f), 8, Point (0, 2)).drawForPath (g2, path); + } + + g.setColour (Colours::black); + g.drawImageAt (cachedImage, 0, 0); + + g.setColour (currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).withAlpha (0.8f)); + g.fillPath (path); + + g.setColour (currentColourScheme.getUIColour (ColourScheme::UIColour::outline).withAlpha (0.8f)); + g.strokePath (path, PathStrokeType (2.0f)); +} + +//============================================================================== +void LookAndFeel_V4::drawStretchableLayoutResizerBar (Graphics& g, int /*w*/, int /*h*/, bool /*isVerticalBar*/, + bool isMouseOver, bool isMouseDragging) +{ + if (isMouseOver || isMouseDragging) + g.fillAll (currentColourScheme.getUIColour (ColourScheme::UIColour::defaultFill).withAlpha (0.5f)); +} + +//============================================================================== +void LookAndFeel_V4::initialiseColours() +{ + const uint32 transparent = 0x00000000; + + const uint32 coloursToUse[] = + { + TextButton::buttonColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + TextButton::buttonOnColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + TextButton::textColourOnId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedText).getARGB(), + TextButton::textColourOffId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + ToggleButton::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + ToggleButton::tickColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + ToggleButton::tickDisabledColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).withAlpha (0.5f).getARGB(), + + TextEditor::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + TextEditor::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + TextEditor::highlightColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + TextEditor::highlightedTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedText).getARGB(), + TextEditor::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + TextEditor::focusedOutlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + TextEditor::shadowColourId, transparent, + + CaretComponent::caretColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultFill).getARGB(), + + Label::backgroundColourId, transparent, + Label::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + Label::outlineColourId, transparent, + Label::textWhenEditingColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + ScrollBar::backgroundColourId, transparent, + ScrollBar::thumbColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultFill).getARGB(), + ScrollBar::trackColourId, transparent, + + TreeView::linesColourId, transparent, + TreeView::backgroundColourId, transparent, + TreeView::dragAndDropIndicatorColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + TreeView::selectedItemBackgroundColourId, transparent, + TreeView::oddItemsColourId, transparent, + TreeView::evenItemsColourId, transparent, + + PopupMenu::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuBackground).getARGB(), + PopupMenu::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuText).getARGB(), + PopupMenu::headerTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuText).getARGB(), + PopupMenu::highlightedTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedText).getARGB(), + PopupMenu::highlightedBackgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + + ComboBox::buttonColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + ComboBox::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + ComboBox::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + ComboBox::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + ComboBox::arrowColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + PropertyComponent::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + PropertyComponent::labelTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + TextPropertyComponent::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + TextPropertyComponent::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + TextPropertyComponent::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + BooleanPropertyComponent::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + BooleanPropertyComponent::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + ListBox::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + ListBox::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + ListBox::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + Slider::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + Slider::thumbColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultFill).getARGB(), + Slider::trackColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + Slider::rotarySliderFillColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + Slider::rotarySliderOutlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + Slider::textBoxTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + Slider::textBoxBackgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).withAlpha (0.0f).getARGB(), + Slider::textBoxHighlightColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + Slider::textBoxOutlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + ResizableWindow::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::windowBackground).getARGB(), + + DocumentWindow::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + AlertWindow::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + AlertWindow::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + AlertWindow::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + ProgressBar::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + ProgressBar::foregroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + + TooltipWindow::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + TooltipWindow::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedText).getARGB(), + TooltipWindow::outlineColourId, transparent, + + TabbedComponent::backgroundColourId, transparent, + TabbedComponent::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + TabbedButtonBar::tabOutlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).withAlpha (0.5f).getARGB(), + TabbedButtonBar::frontOutlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + Toolbar::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).withAlpha (0.4f).getARGB(), + Toolbar::separatorColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + Toolbar::buttonMouseOverBackgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).contrasting (0.2f).getARGB(), + Toolbar::buttonMouseDownBackgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).contrasting (0.5f).getARGB(), + Toolbar::labelTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + Toolbar::editingModeOutlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + DrawableButton::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + DrawableButton::textColourOnId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedText).getARGB(), + DrawableButton::backgroundColourId, transparent, + DrawableButton::backgroundOnColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + + HyperlinkButton::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).interpolatedWith (Colours::blue, 0.4f).getARGB(), + + GroupComponent::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + GroupComponent::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + BubbleComponent::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + BubbleComponent::outlineColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + DirectoryContentsDisplayComponent::highlightColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + DirectoryContentsDisplayComponent::textColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuText).getARGB(), + + 0x1000440, /*LassoComponent::lassoFillColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::defaultFill).getARGB(), + 0x1000441, /*LassoComponent::lassoOutlineColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::outline).getARGB(), + + 0x1005000, /*MidiKeyboardComponent::whiteNoteColourId*/ 0xffffffff, + 0x1005001, /*MidiKeyboardComponent::blackNoteColourId*/ 0xff000000, + 0x1005002, /*MidiKeyboardComponent::keySeparatorLineColourId*/ 0x66000000, + 0x1005003, /*MidiKeyboardComponent::mouseOverKeyOverlayColourId*/ 0x80ffff00, + 0x1005004, /*MidiKeyboardComponent::keyDownOverlayColourId*/ 0xffb6b600, + 0x1005005, /*MidiKeyboardComponent::textLabelColourId*/ 0xff000000, + 0x1005006, /*MidiKeyboardComponent::upDownButtonBackgroundColourId*/ 0xffd3d3d3, + 0x1005007, /*MidiKeyboardComponent::upDownButtonArrowColourId*/ 0xff000000, + 0x1005008, /*MidiKeyboardComponent::shadowColourId*/ 0x4c000000, + + 0x1004500, /*CodeEditorComponent::backgroundColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + 0x1004502, /*CodeEditorComponent::highlightColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).getARGB(), + 0x1004503, /*CodeEditorComponent::defaultTextColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + 0x1004504, /*CodeEditorComponent::lineNumberBackgroundId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::highlightedFill).withAlpha (0.5f).getARGB(), + 0x1004505, /*CodeEditorComponent::lineNumberTextId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::defaultFill).getARGB(), + + 0x1007000, /*ColourSelector::backgroundColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + 0x1007001, /*ColourSelector::labelTextColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + 0x100ad00, /*KeyMappingEditorComponent::backgroundColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::widgetBackground).getARGB(), + 0x100ad01, /*KeyMappingEditorComponent::textColourId*/ currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + + FileSearchPathListComponent::backgroundColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::menuBackground).getARGB(), + + FileChooserDialogBox::titleTextColourId, currentColourScheme.getUIColour (ColourScheme::UIColour::defaultText).getARGB(), + }; + + for (int i = 0; i < numElementsInArray (coloursToUse); i += 2) + setColour ((int) coloursToUse [i], Colour ((uint32) coloursToUse [i + 1])); +} diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h new file mode 100644 index 0000000000..dd784797af --- /dev/null +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h @@ -0,0 +1,238 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2015 - ROLI Ltd. + + Permission is granted to use this software under the terms of either: + a) the GPL v2 (or any later version) + b) the Affero GPL v3 + + Details of these licenses can be found at: www.gnu.org/licenses + + JUCE is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + ------------------------------------------------------------------------------ + + To release a closed-source product which uses JUCE, commercial licenses are + available: visit www.juce.com for more information. + + ============================================================================== +*/ + +#pragma once + + +class JUCE_API LookAndFeel_V4 : public LookAndFeel_V3 +{ +public: + /** + A struct containing the set of colours to apply to the GUI + */ + class ColourScheme + { + public: + /** The standard set of colours to use. */ + enum UIColour + { + windowBackground = 0, + widgetBackground, + menuBackground, + outline, + defaultText, + defaultFill, + highlightedText, + highlightedFill, + menuText, + + numColours + }; + + template + ColourScheme (ItemColours... coloursToUse) + { + static_assert (sizeof... (coloursToUse) == numColours, "Must supply one colour for each UIColour item"); + const Colour c[] = { Colour (coloursToUse)... }; + + for (int i = 0; i < numColours; ++i) + palette[i] = c[i]; + } + + ColourScheme (const ColourScheme&) = default; + ColourScheme& operator= (const ColourScheme&) = default; + + /** Returns a colour from the scheme */ + Colour getUIColour (UIColour colourToGet) const noexcept; + + /** Sets a scheme colour. */ + void setUIColour (UIColour colourToSet, Colour newColour) noexcept; + + /** Returns true if two ColourPalette objects contain the same colours. */ + bool operator== (const ColourScheme&) const noexcept; + /** Returns false if two ColourPalette objects contain the same colours. */ + bool operator!= (const ColourScheme&) const noexcept; + + private: + Colour palette[numColours]; + }; + + //============================================================================== + /** Creates a LookAndFeel_V4 object with a default colour scheme. */ + LookAndFeel_V4(); + + /** Creates a LookAndFeel_V4 object with a given colour scheme. */ + LookAndFeel_V4 (ColourScheme); + + /** Destructor. */ + ~LookAndFeel_V4(); + + //============================================================================== + void setColourScheme (ColourScheme); + ColourScheme& getCurrentColourScheme() noexcept { return currentColourScheme; } + + static ColourScheme getDarkColourScheme(); + static ColourScheme getMidnightColourScheme(); + static ColourScheme getGreyColourScheme(); + static ColourScheme getLightColourScheme(); + + //============================================================================== + Button* createDocumentWindowButton (int) override; + void positionDocumentWindowButtons (DocumentWindow&, int, int, int, int, Button*, Button*, Button*, bool) override; + void drawDocumentWindowTitleBar (DocumentWindow&, Graphics&, int, int, int, int, const Image*, bool) override; + + //============================================================================== + void drawButtonBackground (Graphics&, Button&, const Colour& backgroundColour, + bool isMouseOverButton, bool isButtonDown) override; + + void drawToggleButton (Graphics&, ToggleButton&, bool isMouseOverButton, bool isButtonDown) override; + void drawTickBox (Graphics&, Component&, + float x, float y, float w, float h, + bool ticked, bool isEnabled, bool isMouseOverButton, bool isButtonDown) override; + + //============================================================================== + AlertWindow* createAlertWindow (const String& title, const String& message, + const String& button1, + const String& button2, + const String& button3, + AlertWindow::AlertIconType iconType, + int numButtons, Component* associatedComponent) override; + void drawAlertBox (Graphics&, AlertWindow&, const Rectangle& textArea, TextLayout&) override; + + int getAlertWindowButtonHeight() override; + Font getAlertWindowTitleFont() override; + Font getAlertWindowMessageFont() override; + Font getAlertWindowFont() override; + + //============================================================================== + void drawProgressBar (Graphics&, ProgressBar&, int width, int height, double progress, const String& textToShow) override; + bool isProgressBarOpaque (ProgressBar&) override { return false; } + + //============================================================================== + int getDefaultScrollbarWidth() override; + void drawScrollbar (Graphics&, ScrollBar&, int x, int y, int width, int height, bool isScrollbarVertical, + int thumbStartPosition, int thumbSize, bool isMouseOver, bool isMouseDown) override; + + //============================================================================== + Path getTickShape (float height) override; + Path getCrossShape (float height) override; + + //============================================================================== + void fillTextEditorBackground (Graphics&, int width, int height, TextEditor&) override; + void drawTextEditorOutline (Graphics&, int width, int height, TextEditor&) override; + + //============================================================================== + Button* createFileBrowserGoUpButton() override; + + void layoutFileBrowserComponent (FileBrowserComponent&, + DirectoryContentsDisplayComponent*, + FilePreviewComponent*, + ComboBox* currentPathBox, + TextEditor* filenameBox, + Button* goUpButton) override; + + void drawFileBrowserRow (Graphics&, int width, int height, + const String& filename, Image* icon, + const String& fileSizeDescription, const String& fileTimeDescription, + bool isDirectory, bool isItemSelected, int itemIndex, + DirectoryContentsDisplayComponent&) override; + + //============================================================================== + void drawPopupMenuItem (Graphics&, const Rectangle& area, + bool isSeparator, bool isActive, bool isHighlighted, bool isTicked, bool hasSubMenu, + const String& text, const String& shortcutKeyText, + const Drawable* icon, const Colour* textColour) override; + + void getIdealPopupMenuItemSize (const String& text, bool isSeparator, int standardMenuItemHeight, + int& idealWidth, int& idealHeight) override; + + void drawMenuBarBackground (Graphics&, int width, int height, bool isMouseOverBar, MenuBarComponent&) override; + + void drawMenuBarItem (Graphics&, int width, int height, + int itemIndex, const String& itemText, + bool isMouseOverItem, bool isMenuOpen, bool isMouseOverBar, + MenuBarComponent&) override; + + //============================================================================== + void drawComboBox (Graphics&, int width, int height, bool isButtonDown, + int buttonX, int buttonY, int buttonW, int buttonH, + ComboBox&) override; + Font getComboBoxFont (ComboBox&) override; + void positionComboBoxText (ComboBox&, Label&) override; + + //============================================================================== + void drawLinearSlider (Graphics&, int x, int y, int width, int height, + float sliderPos, float minSliderPos, float maxSliderPos, + const Slider::SliderStyle, Slider&) override; + + void drawRotarySlider (Graphics&, int x, int y, int width, int height, + float sliderPosProportional, float rotaryStartAngle, + float rotaryEndAngle, Slider&) override; + + void drawPointer (Graphics&, float x, float y, float diameter, + const Colour&, int direction) noexcept; + + //============================================================================== + void drawTooltip (Graphics&, const String& text, int width, int height) override; + + //============================================================================== + void drawConcertinaPanelHeader (Graphics&, const Rectangle& area, + bool isMouseOver, bool isMouseDown, + ConcertinaPanel&, Component& panel) override; + + //============================================================================== + void drawLevelMeter (Graphics&, int, int, float) override; + + //============================================================================== + void paintToolbarBackground (Graphics&, int width, int height, Toolbar&) override; + + void paintToolbarButtonLabel (Graphics&, int x, int y, int width, int height, + const String& text, ToolbarItemComponent&) override; + + //============================================================================== + void drawPropertyPanelSectionHeader (Graphics&, const String& name, bool isOpen, int width, int height) override; + void drawPropertyComponentBackground (Graphics&, int width, int height, PropertyComponent&) override; + void drawPropertyComponentLabel (Graphics&, int width, int height, PropertyComponent&) override; + Rectangle getPropertyComponentContentPosition (PropertyComponent&) override; + + //============================================================================== + void drawCallOutBoxBackground (CallOutBox&, Graphics&, const Path&, Image&) override; + + //============================================================================== + void drawStretchableLayoutResizerBar (Graphics&, int, int, bool, bool, bool) override; + +private: + //============================================================================== + void drawLinearProgressBar (Graphics&, ProgressBar&, int width, int height, double progress); + void drawCircularProgressBar (Graphics&, ProgressBar&, const String&); + + int getPropertyComponentIndent (PropertyComponent&); + + //============================================================================== + void initialiseColours(); + ColourScheme currentColourScheme; + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LookAndFeel_V4) +};