diff --git a/.gitignore b/.gitignore index aa848ec71d..9f5e35a36c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,44 +15,56 @@ *.manifest.res *.o *.d +xcuserdata +contents.xcworkspacedata .DS_Store .svn profile -extras/juce demo/Builds/MacOSX/build -extras/juce demo/Builds/Linux/build -extras/juce demo/Builds/VisualStudio2005/Debug -extras/juce demo/Builds/VisualStudio2005/Release -extras/juce demo/Builds/VisualStudio2008/Debug -extras/juce demo/Builds/VisualStudio2008/Release -extras/juce demo/Builds/iPhone/build -extras/audio plugins/demo/Builds/MacOSX/build -extras/audio plugins/demo/Builds/Linux/build -extras/audio plugins/demo/Builds/VisualStudio2005/Debug -extras/audio plugins/demo/Builds/VisualStudio2005/Release -extras/audio plugins/demo/Builds/VisualStudio2008/Debug -extras/audio plugins/demo/Builds/VisualStudio2008/Release +extras/JuceDemo/Builds/MacOSX/build +extras/JuceDemo/Builds/Linux/build +extras/JuceDemo/Builds/VisualStudio2005/Debug +extras/JuceDemo/Builds/VisualStudio2005/Release +extras/JuceDemo/Builds/VisualStudio2008/Debug +extras/JuceDemo/Builds/VisualStudio2008/Release +extras/JuceDemo/Builds/VisualStudio2010/Debug +extras/JuceDemo/Builds/VisualStudio2010/Release +extras/JuceDemo/Builds/Android/bin +extras/JuceDemo/Builds/Android/src/com +extras/JuceDemo/Builds/iPhone/build +extras/audio plugin demo/Builds/MacOSX/build +extras/audio plugin demo/Builds/Linux/build +extras/audio plugin demo/Builds/VisualStudio2005/Debug +extras/audio plugin demo/Builds/VisualStudio2005/Release +extras/audio plugin demo/Builds/VisualStudio2008/Debug +extras/audio plugin demo/Builds/VisualStudio2008/Release extras/audio plugin host/Builds/MacOSX/build extras/audio plugin host/Builds/Linux/build extras/audio plugin host/Builds/VisualStudio2005/Debug extras/audio plugin host/Builds/VisualStudio2005/Release extras/audio plugin host/Builds/VisualStudio2008/Debug extras/audio plugin host/Builds/VisualStudio2008/Release -extras/Jucer (experimental)/Builds/MacOSX/build -extras/Jucer (experimental)/Builds/Linux/build -extras/Jucer (experimental)/Builds/VisualStudio2005/Debug -extras/Jucer (experimental)/Builds/VisualStudio2005/Release -extras/Jucer (experimental)/Builds/VisualStudio2008/Debug -extras/Jucer (experimental)/Builds/VisualStudio2008/Release -extras/Jucer (experimental)/Builds/iPhone/build +extras/Introjucer/Builds/MacOSX/build +extras/Introjucer/Builds/Linux/build +extras/Introjucer/Builds/VisualStudio2005/Debug +extras/Introjucer/Builds/VisualStudio2005/Release +extras/Introjucer/Builds/VisualStudio2008/Debug +extras/Introjucer/Builds/VisualStudio2008/Release +extras/Introjucer/Builds/VisualStudio2010/Debug +extras/Introjucer/Builds/VisualStudio2010/Release extras/the jucer/build/mac/build extras/audio plugin host/build/mac/build -extras/binarybuilder/mac/build -extras/prebuilt/Jucer.app -extras/prebuilt/jucedemo.app -extras/prebuilt/PluginHost.app -bin/intermediate* -bin/lib* -bin/jucelib* -bin/JUCE* -Builds/VisualStudio2008_DLL/Debug -Builds/VisualStudio2008_DLL/Release +extras/binarybuilder/Builds/MacOSX/build +extras/binarybuilder/Builds/Linux/build +extras/binarybuilder/Builds/VisualStudio2005/Debug +extras/binarybuilder/Builds/VisualStudio2005/Release +extras/binarybuilder/Builds/VisualStudio2008/Debug +extras/binarybuilder/Builds/VisualStudio2008/Release +extras/binarybuilder/Builds/VisualStudio2010/Debug +extras/binarybuilder/Builds/VisualStudio2010/Release +extras/static library/Builds/MacOSX/build +extras/static library/Builds/VisualStudio2008/Debug +extras/static library/Builds/VisualStudio2008/Release +extras/static library/Builds/VisualStudio2010/Debug +extras/static library/Builds/VisualStudio2010/Release +extras/windows dll/Builds/VisualStudio2008/Debug +extras/windows dll/Builds/VisualStudio2008/Release diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile deleted file mode 100644 index 44d6a96386..0000000000 --- a/Builds/Linux/Makefile +++ /dev/null @@ -1,2056 +0,0 @@ -# Automatically generated makefile, created by the Jucer -# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project! - -ifndef CONFIG - CONFIG=Debug -endif - -# (this disables dependency generation if multiple architectures are set) -DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) - -ifeq ($(CONFIG),Debug) - BINDIR := build - LIBDIR := build - OBJDIR := build/intermediate/Debug - OUTDIR := ../../bin - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" - CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - CXXFLAGS += $(CFLAGS) - LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../.././bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound - LDDEPS := - RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" - TARGET := libjucedebug.a - BLDCMD = ar -rcs $(OUTDIR)/$(TARGET) $(OBJECTS) $(TARGET_ARCH) -endif - -ifeq ($(CONFIG),Release) - BINDIR := build - LIBDIR := build - OBJDIR := build/intermediate/Release - OUTDIR := ../../bin - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" - CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -Os - CXXFLAGS += $(CFLAGS) - LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../.././bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound - LDDEPS := - RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" - TARGET := libjuce.a - BLDCMD = ar -rcs $(OUTDIR)/$(TARGET) $(OBJECTS) $(TARGET_ARCH) -endif - -OBJECTS := \ - $(OBJDIR)/juce_Application_2817465d.o \ - $(OBJDIR)/juce_ApplicationCommandInfo_80671406.o \ - $(OBJDIR)/juce_ApplicationCommandManager_5aac95f.o \ - $(OBJDIR)/juce_ApplicationCommandTarget_90a89aa9.o \ - $(OBJDIR)/juce_ApplicationProperties_a76b5c30.o \ - $(OBJDIR)/juce_AiffAudioFormat_ffbda971.o \ - $(OBJDIR)/juce_AudioCDReader_c730f7a6.o \ - $(OBJDIR)/juce_AudioFormat_6605d0f9.o \ - $(OBJDIR)/juce_AudioFormatManager_949148fe.o \ - $(OBJDIR)/juce_AudioFormatReader_36f0295c.o \ - $(OBJDIR)/juce_AudioFormatWriter_11461d0c.o \ - $(OBJDIR)/juce_AudioSubsectionReader_65f61a0a.o \ - $(OBJDIR)/juce_AudioThumbnail_cb99b4b4.o \ - $(OBJDIR)/juce_AudioThumbnailCache_89a7c678.o \ - $(OBJDIR)/juce_CoreAudioFormat_1ce243da.o \ - $(OBJDIR)/juce_FlacAudioFormat_19c048f1.o \ - $(OBJDIR)/juce_OggVorbisAudioFormat_3f214fc9.o \ - $(OBJDIR)/juce_QuickTimeAudioFormat_8ad67271.o \ - $(OBJDIR)/juce_WavAudioFormat_4ff23a5f.o \ - $(OBJDIR)/juce_AudioFormatReaderSource_13d4af92.o \ - $(OBJDIR)/juce_AudioSourcePlayer_42464899.o \ - $(OBJDIR)/juce_AudioTransportSource_f3e60751.o \ - $(OBJDIR)/juce_BufferingAudioSource_58721b72.o \ - $(OBJDIR)/juce_ChannelRemappingAudioSource_e17f93c0.o \ - $(OBJDIR)/juce_IIRFilterAudioSource_807ee8aa.o \ - $(OBJDIR)/juce_MixerAudioSource_bc6f772b.o \ - $(OBJDIR)/juce_ResamplingAudioSource_8511875e.o \ - $(OBJDIR)/juce_ReverbAudioSource_3ae42aa6.o \ - $(OBJDIR)/juce_ToneGeneratorAudioSource_77f504b3.o \ - $(OBJDIR)/juce_AudioDeviceManager_c24db832.o \ - $(OBJDIR)/juce_AudioIODevice_f7da876b.o \ - $(OBJDIR)/juce_AudioIODeviceType_e5d402c5.o \ - $(OBJDIR)/juce_AudioDataConverters_dc0ece28.o \ - $(OBJDIR)/juce_AudioSampleBuffer_af6ff195.o \ - $(OBJDIR)/juce_IIRFilter_9a31e47f.o \ - $(OBJDIR)/juce_MidiBuffer_fa4db7fe.o \ - $(OBJDIR)/juce_MidiFile_3bdbc97a.o \ - $(OBJDIR)/juce_MidiKeyboardState_28313976.o \ - $(OBJDIR)/juce_MidiMessage_5b1f5753.o \ - $(OBJDIR)/juce_MidiMessageCollector_108abdc4.o \ - $(OBJDIR)/juce_MidiMessageSequence_a577dcb4.o \ - $(OBJDIR)/juce_MidiOutput_3cc0f43f.o \ - $(OBJDIR)/juce_VSTPluginFormat_af341d6.o \ - $(OBJDIR)/juce_AudioPluginFormat_5dc1eec2.o \ - $(OBJDIR)/juce_AudioPluginFormatManager_c336c715.o \ - $(OBJDIR)/juce_KnownPluginList_cadece16.o \ - $(OBJDIR)/juce_PluginDescription_d9c0f10b.o \ - $(OBJDIR)/juce_PluginDirectoryScanner_c7652cec.o \ - $(OBJDIR)/juce_PluginListComponent_f08a630e.o \ - $(OBJDIR)/juce_AudioProcessor_babd0919.o \ - $(OBJDIR)/juce_AudioProcessorEditor_82a32d26.o \ - $(OBJDIR)/juce_AudioProcessorGraph_76dcb4ff.o \ - $(OBJDIR)/juce_AudioProcessorPlayer_5c53cc9a.o \ - $(OBJDIR)/juce_GenericAudioProcessorEditor_2e8ec30d.o \ - $(OBJDIR)/juce_Sampler_98f716a4.o \ - $(OBJDIR)/juce_Synthesiser_2bffa1dd.o \ - $(OBJDIR)/juce_AbstractFifo_dfc0bd23.o \ - $(OBJDIR)/juce_DynamicObject_69d02ab3.o \ - $(OBJDIR)/juce_NamedValueSet_6b0793df.o \ - $(OBJDIR)/juce_PropertySet_914b5922.o \ - $(OBJDIR)/juce_Value_16231646.o \ - $(OBJDIR)/juce_ValueTree_f822be84.o \ - $(OBJDIR)/juce_Variant_4f31c35a.o \ - $(OBJDIR)/juce_FileLogger_7858478e.o \ - $(OBJDIR)/juce_Logger_4f4f7f72.o \ - $(OBJDIR)/juce_PerformanceCounter_6422080e.o \ - $(OBJDIR)/juce_RelativeTime_bc5ef35b.o \ - $(OBJDIR)/juce_Result_d8f437f.o \ - $(OBJDIR)/juce_SystemStats_c00d8758.o \ - $(OBJDIR)/juce_Time_16acdd6f.o \ - $(OBJDIR)/juce_Uuid_f277575d.o \ - $(OBJDIR)/juce_BlowFish_5d22a7d9.o \ - $(OBJDIR)/juce_MD5_56896819.o \ - $(OBJDIR)/juce_Primes_32e6603.o \ - $(OBJDIR)/juce_RSAKey_b60982ae.o \ - $(OBJDIR)/juce_SHA256_cb4da0d6.o \ - $(OBJDIR)/juce_ActionBroadcaster_7f997786.o \ - $(OBJDIR)/juce_AsyncUpdater_a7e1cb89.o \ - $(OBJDIR)/juce_ChangeBroadcaster_3eb8fecc.o \ - $(OBJDIR)/juce_InterprocessConnection_13086b6d.o \ - $(OBJDIR)/juce_InterprocessConnectionServer_a4d7b350.o \ - $(OBJDIR)/juce_Message_ac79f635.o \ - $(OBJDIR)/juce_MessageListener_93e51509.o \ - $(OBJDIR)/juce_MessageManager_c7e00842.o \ - $(OBJDIR)/juce_MultiTimer_d4d9eca8.o \ - $(OBJDIR)/juce_Timer_77c098b3.o \ - $(OBJDIR)/juce_Component_49f01dfa.o \ - $(OBJDIR)/juce_ComponentListener_e0eda7ce.o \ - $(OBJDIR)/juce_Desktop_e3b47b99.o \ - $(OBJDIR)/juce_ModalComponentManager_b87bddba.o \ - $(OBJDIR)/juce_ArrowButton_ebac7066.o \ - $(OBJDIR)/juce_Button_886d3491.o \ - $(OBJDIR)/juce_DrawableButton_e03899cf.o \ - $(OBJDIR)/juce_HyperlinkButton_af0a8983.o \ - $(OBJDIR)/juce_ImageButton_c4dda738.o \ - $(OBJDIR)/juce_ShapeButton_2359adfe.o \ - $(OBJDIR)/juce_TextButton_8cf49c9e.o \ - $(OBJDIR)/juce_ToggleButton_f69cb85.o \ - $(OBJDIR)/juce_ToolbarButton_884113d8.o \ - $(OBJDIR)/juce_CodeDocument_fdd87805.o \ - $(OBJDIR)/juce_CodeEditorComponent_6fe4a170.o \ - $(OBJDIR)/juce_CPlusPlusCodeTokeniser_6b8548a9.o \ - $(OBJDIR)/juce_ComboBox_bcb5e365.o \ - $(OBJDIR)/juce_ImageComponent_1f90572a.o \ - $(OBJDIR)/juce_Label_7af0aab6.o \ - $(OBJDIR)/juce_ListBox_d4a8704f.o \ - $(OBJDIR)/juce_ProgressBar_38bc3ba8.o \ - $(OBJDIR)/juce_Slider_8a0d91a9.o \ - $(OBJDIR)/juce_TableHeaderComponent_2228124a.o \ - $(OBJDIR)/juce_TableListBox_588d027.o \ - $(OBJDIR)/juce_TextEditor_abe7dfc2.o \ - $(OBJDIR)/juce_Toolbar_29fa8c7d.o \ - $(OBJDIR)/juce_ToolbarItemComponent_7fab8ff7.o \ - $(OBJDIR)/juce_ToolbarItemPalette_250807b5.o \ - $(OBJDIR)/juce_TreeView_f1a8d26b.o \ - $(OBJDIR)/juce_DirectoryContentsDisplayComponent_97e43c62.o \ - $(OBJDIR)/juce_DirectoryContentsList_31e06025.o \ - $(OBJDIR)/juce_FileBrowserComponent_1332771b.o \ - $(OBJDIR)/juce_FileChooser_c439271f.o \ - $(OBJDIR)/juce_FileChooserDialogBox_50a36f4e.o \ - $(OBJDIR)/juce_FileFilter_de71639e.o \ - $(OBJDIR)/juce_FileListComponent_3f41b6a3.o \ - $(OBJDIR)/juce_FilenameComponent_921ef5f6.o \ - $(OBJDIR)/juce_FileSearchPathListComponent_85ed8576.o \ - $(OBJDIR)/juce_FileTreeComponent_8cb2d3a3.o \ - $(OBJDIR)/juce_ImagePreviewComponent_a108ea50.o \ - $(OBJDIR)/juce_WildcardFileFilter_9337b18.o \ - $(OBJDIR)/juce_CaretComponent_26bf4433.o \ - $(OBJDIR)/juce_KeyboardFocusTraverser_6325fc08.o \ - $(OBJDIR)/juce_KeyListener_631ada24.o \ - $(OBJDIR)/juce_KeyMappingEditorComponent_a0183a92.o \ - $(OBJDIR)/juce_KeyPress_47fcc29d.o \ - $(OBJDIR)/juce_KeyPressMappingSet_26212371.o \ - $(OBJDIR)/juce_ModifierKeys_eea16d64.o \ - $(OBJDIR)/juce_ComponentAnimator_ad5663d2.o \ - $(OBJDIR)/juce_ComponentBoundsConstrainer_a33c10ae.o \ - $(OBJDIR)/juce_ComponentBuilder_2aa6c5a.o \ - $(OBJDIR)/juce_ComponentMovementWatcher_cbb3e7cc.o \ - $(OBJDIR)/juce_GroupComponent_456e237a.o \ - $(OBJDIR)/juce_MultiDocumentPanel_50e05aac.o \ - $(OBJDIR)/juce_ResizableBorderComponent_7f4f2182.o \ - $(OBJDIR)/juce_ResizableCornerComponent_1cac2df9.o \ - $(OBJDIR)/juce_ResizableEdgeComponent_b9c9291.o \ - $(OBJDIR)/juce_ScrollBar_89666ad4.o \ - $(OBJDIR)/juce_StretchableLayoutManager_6bf5d800.o \ - $(OBJDIR)/juce_StretchableLayoutResizerBar_a720084c.o \ - $(OBJDIR)/juce_StretchableObjectResizer_2edcfadc.o \ - $(OBJDIR)/juce_TabbedButtonBar_a760aaa3.o \ - $(OBJDIR)/juce_TabbedComponent_d618721f.o \ - $(OBJDIR)/juce_Viewport_6c983422.o \ - $(OBJDIR)/juce_LookAndFeel_d4e838ec.o \ - $(OBJDIR)/juce_OldSchoolLookAndFeel_5ece559f.o \ - $(OBJDIR)/juce_MenuBarComponent_c68c8dbb.o \ - $(OBJDIR)/juce_MenuBarModel_ede42267.o \ - $(OBJDIR)/juce_PopupMenu_ec4cf9a3.o \ - $(OBJDIR)/juce_ComponentDragger_fb3bdbe6.o \ - $(OBJDIR)/juce_DragAndDropContainer_553e412.o \ - $(OBJDIR)/juce_MouseCursor_afb68802.o \ - $(OBJDIR)/juce_MouseEvent_f6ca6078.o \ - $(OBJDIR)/juce_MouseInputSource_8904aa23.o \ - $(OBJDIR)/juce_MouseListener_eb73f8a0.o \ - $(OBJDIR)/juce_MarkerList_2fbb4ef.o \ - $(OBJDIR)/juce_RelativeCoordinate_ab2eee5b.o \ - $(OBJDIR)/juce_RelativeCoordinatePositioner_c1352791.o \ - $(OBJDIR)/juce_RelativeParallelogram_5d17dbe6.o \ - $(OBJDIR)/juce_RelativePoint_9d2cc957.o \ - $(OBJDIR)/juce_RelativePointPath_a4fed61c.o \ - $(OBJDIR)/juce_RelativeRectangle_cc5440b6.o \ - $(OBJDIR)/juce_BooleanPropertyComponent_92b54aa5.o \ - $(OBJDIR)/juce_ButtonPropertyComponent_3675d6bb.o \ - $(OBJDIR)/juce_ChoicePropertyComponent_b9b44bac.o \ - $(OBJDIR)/juce_PropertyComponent_df1eaecd.o \ - $(OBJDIR)/juce_PropertyPanel_c640c5d4.o \ - $(OBJDIR)/juce_SliderPropertyComponent_ba2eb86c.o \ - $(OBJDIR)/juce_TextPropertyComponent_977e6fa0.o \ - $(OBJDIR)/juce_AudioDeviceSelectorComponent_64b1a089.o \ - $(OBJDIR)/juce_BubbleComponent_5f51c164.o \ - $(OBJDIR)/juce_BubbleMessageComponent_22f737f9.o \ - $(OBJDIR)/juce_ColourSelector_ac8bb1e2.o \ - $(OBJDIR)/juce_DropShadower_5903f9f3.o \ - $(OBJDIR)/juce_MidiKeyboardComponent_896e2ac8.o \ - $(OBJDIR)/juce_OpenGLComponent_73944221.o \ - $(OBJDIR)/juce_PreferencesPanel_dbc7d503.o \ - $(OBJDIR)/juce_SystemTrayIconComponent_fa664512.o \ - $(OBJDIR)/juce_AlertWindow_94d8d1f5.o \ - $(OBJDIR)/juce_CallOutBox_61f42d7c.o \ - $(OBJDIR)/juce_ComponentPeer_1e4b4b08.o \ - $(OBJDIR)/juce_DialogWindow_535b27b9.o \ - $(OBJDIR)/juce_DocumentWindow_3cb9d4cc.o \ - $(OBJDIR)/juce_ResizableWindow_d2110a84.o \ - $(OBJDIR)/juce_SplashScreen_a0940094.o \ - $(OBJDIR)/juce_ThreadWithProgressWindow_d711ee6e.o \ - $(OBJDIR)/juce_TooltipWindow_45074edc.o \ - $(OBJDIR)/juce_TopLevelWindow_717cf1e0.o \ - $(OBJDIR)/juce_Colour_453f3d5.o \ - $(OBJDIR)/juce_ColourGradient_c63d0725.o \ - $(OBJDIR)/juce_Colours_89de9488.o \ - $(OBJDIR)/juce_EdgeTable_6a5fefda.o \ - $(OBJDIR)/juce_FillType_5805677e.o \ - $(OBJDIR)/juce_GraphicsContext_119e43ed.o \ - $(OBJDIR)/juce_Justification_dc284c3b.o \ - $(OBJDIR)/juce_LowLevelGraphicsPostScriptRenderer_2e8a92a.o \ - $(OBJDIR)/juce_LowLevelGraphicsSoftwareRenderer_97263906.o \ - $(OBJDIR)/juce_RectanglePlacement_5fc90ed7.o \ - $(OBJDIR)/juce_Drawable_8c1eccc6.o \ - $(OBJDIR)/juce_DrawableComposite_4cd2d2ab.o \ - $(OBJDIR)/juce_DrawableImage_53f04eff.o \ - $(OBJDIR)/juce_DrawablePath_fb538a0b.o \ - $(OBJDIR)/juce_DrawableRectangle_5f2f5993.o \ - $(OBJDIR)/juce_DrawableShape_26926245.o \ - $(OBJDIR)/juce_DrawableText_75eda713.o \ - $(OBJDIR)/juce_SVGParser_b79416c5.o \ - $(OBJDIR)/juce_DropShadowEffect_da52d75.o \ - $(OBJDIR)/juce_GlowEffect_c0959893.o \ - $(OBJDIR)/juce_CustomTypeface_b93a3eff.o \ - $(OBJDIR)/juce_Font_fa88db26.o \ - $(OBJDIR)/juce_GlyphArrangement_f0797295.o \ - $(OBJDIR)/juce_TextLayout_d18f700e.o \ - $(OBJDIR)/juce_Typeface_34b3026e.o \ - $(OBJDIR)/juce_AffineTransform_4a320188.o \ - $(OBJDIR)/juce_Path_dcdd4594.o \ - $(OBJDIR)/juce_PathIterator_4e116c22.o \ - $(OBJDIR)/juce_PathStrokeType_506dcb86.o \ - $(OBJDIR)/juce_RectangleList_b6ae7ee8.o \ - $(OBJDIR)/juce_GIFLoader_61887b90.o \ - $(OBJDIR)/juce_JPEGLoader_412d2ccc.o \ - $(OBJDIR)/juce_PNGLoader_7f80a3b5.o \ - $(OBJDIR)/juce_Image_790c9a1a.o \ - $(OBJDIR)/juce_ImageCache_e74a50d2.o \ - $(OBJDIR)/juce_ImageConvolutionKernel_4e9e7945.o \ - $(OBJDIR)/juce_ImageFileFormat_161e770d.o \ - $(OBJDIR)/juce_DirectoryIterator_24c60d54.o \ - $(OBJDIR)/juce_File_8244d8d.o \ - $(OBJDIR)/juce_FileInputStream_e14097a7.o \ - $(OBJDIR)/juce_FileOutputStream_d151050e.o \ - $(OBJDIR)/juce_FileSearchPath_30e3d71a.o \ - $(OBJDIR)/juce_NamedPipe_b3a205e0.o \ - $(OBJDIR)/juce_TemporaryFile_935f3fc6.o \ - $(OBJDIR)/juce_ZipFile_16fbb396.o \ - $(OBJDIR)/juce_MACAddress_b81987ed.o \ - $(OBJDIR)/juce_Socket_cf39c63b.o \ - $(OBJDIR)/juce_URL_d6b7cff1.o \ - $(OBJDIR)/juce_BufferedInputStream_c71b2b68.o \ - $(OBJDIR)/juce_FileInputSource_2a374046.o \ - $(OBJDIR)/juce_GZIPCompressorOutputStream_4409282d.o \ - $(OBJDIR)/juce_GZIPDecompressorInputStream_b026ffc7.o \ - $(OBJDIR)/juce_InputStream_5314e647.o \ - $(OBJDIR)/juce_MemoryInputStream_c5db0106.o \ - $(OBJDIR)/juce_MemoryOutputStream_8003c78f.o \ - $(OBJDIR)/juce_OutputStream_9a068a6e.o \ - $(OBJDIR)/juce_SubregionStream_9156f331.o \ - $(OBJDIR)/juce_BigInteger_b44f43d6.o \ - $(OBJDIR)/juce_Expression_6f910d50.o \ - $(OBJDIR)/juce_Random_a529cb7b.o \ - $(OBJDIR)/juce_MemoryBlock_52f17c52.o \ - $(OBJDIR)/juce_posix_NamedPipe_aa308c65.o \ - $(OBJDIR)/juce_linux_Audio_18d7e8b6.o \ - $(OBJDIR)/juce_linux_AudioCDReader_1263363a.o \ - $(OBJDIR)/juce_linux_Clipboard_44a6bcf6.o \ - $(OBJDIR)/juce_linux_FileChooser_3b3f403f.o \ - $(OBJDIR)/juce_linux_Files_c036ced7.o \ - $(OBJDIR)/juce_linux_Fonts_b2e303e4.o \ - $(OBJDIR)/juce_linux_JackAudio_15353e17.o \ - $(OBJDIR)/juce_linux_Messaging_daefaf64.o \ - $(OBJDIR)/juce_linux_Midi_4bad86cb.o \ - $(OBJDIR)/juce_linux_NativeCode_8a61cd0e.o \ - $(OBJDIR)/juce_linux_Network_f47a1c4e.o \ - $(OBJDIR)/juce_linux_OpenGLComponent_ba2f042e.o \ - $(OBJDIR)/juce_linux_SystemStats_9f6d6b50.o \ - $(OBJDIR)/juce_linux_Threads_dc4a4049.o \ - $(OBJDIR)/juce_linux_WebBrowserComponent_358c0a49.o \ - $(OBJDIR)/juce_linux_Windowing_abe04752.o \ - $(OBJDIR)/juce_ios_Audio_40e86914.o \ - $(OBJDIR)/juce_mac_CoreAudio_faf8c177.o \ - $(OBJDIR)/juce_mac_CoreMidi_e79e11ea.o \ - $(OBJDIR)/juce_win32_ActiveXComponent_7590131d.o \ - $(OBJDIR)/juce_win32_ASIO_60eb61ca.o \ - $(OBJDIR)/juce_win32_AudioCDReader_66c7252.o \ - $(OBJDIR)/juce_win32_CameraDevice_ea35306d.o \ - $(OBJDIR)/juce_win32_Direct2DGraphicsContext_9f1b6be1.o \ - $(OBJDIR)/juce_win32_DirectShowComponent_e4030c4f.o \ - $(OBJDIR)/juce_win32_DirectSound_3462415e.o \ - $(OBJDIR)/juce_win32_FileChooser_18a257.o \ - $(OBJDIR)/juce_win32_Files_f3e9a2ef.o \ - $(OBJDIR)/juce_win32_Fonts_e695d7fc.o \ - $(OBJDIR)/juce_win32_Messaging_926ab77c.o \ - $(OBJDIR)/juce_win32_Midi_fac3cfb3.o \ - $(OBJDIR)/juce_win32_NativeCode_c247c7f6.o \ - $(OBJDIR)/juce_win32_Network_6c84a66.o \ - $(OBJDIR)/juce_win32_OpenGLComponent_d0d99a46.o \ - $(OBJDIR)/juce_win32_QuickTimeMovieComponent_be08e5f.o \ - $(OBJDIR)/juce_win32_Registry_86da784f.o \ - $(OBJDIR)/juce_win32_SystemStats_6446cd68.o \ - $(OBJDIR)/juce_win32_Threads_ee986e61.o \ - $(OBJDIR)/juce_win32_WASAPI_c7c6c3c3.o \ - $(OBJDIR)/juce_win32_WebBrowserComponent_2a4dd461.o \ - $(OBJDIR)/juce_win32_Windowing_635b4f6a.o \ - $(OBJDIR)/juce_android_Audio_93f83bd6.o \ - $(OBJDIR)/juce_android_CameraDevice_d2743865.o \ - $(OBJDIR)/juce_android_FileChooser_205cbb5f.o \ - $(OBJDIR)/juce_android_Files_3b5721f7.o \ - $(OBJDIR)/juce_android_Fonts_2e035704.o \ - $(OBJDIR)/juce_android_GraphicsContext_d0fb27e4.o \ - $(OBJDIR)/juce_android_Messaging_59717284.o \ - $(OBJDIR)/juce_android_Midi_4fa64fab.o \ - $(OBJDIR)/juce_android_Misc_68ea73f6.o \ - $(OBJDIR)/juce_android_NativeCode_dc186dee.o \ - $(OBJDIR)/juce_android_Network_28d2276e.o \ - $(OBJDIR)/juce_android_OpenGLComponent_8fd9ef4e.o \ - $(OBJDIR)/juce_android_SystemStats_848ae670.o \ - $(OBJDIR)/juce_android_Threads_10a24b69.o \ - $(OBJDIR)/juce_android_WebBrowserComponent_178c6569.o \ - $(OBJDIR)/juce_android_Windowing_2a620a72.o \ - $(OBJDIR)/juce_CharacterFunctions_b1a5ac62.o \ - $(OBJDIR)/juce_Identifier_e99ee619.o \ - $(OBJDIR)/juce_JSON_bbf64af8.o \ - $(OBJDIR)/juce_LocalisedStrings_3ddfa55e.o \ - $(OBJDIR)/juce_String_80587b01.o \ - $(OBJDIR)/juce_StringArray_4aaa67a2.o \ - $(OBJDIR)/juce_StringPairArray_37130fe8.o \ - $(OBJDIR)/juce_StringPool_9e8d033d.o \ - $(OBJDIR)/juce_XmlDocument_6b9b0c2c.o \ - $(OBJDIR)/juce_XmlElement_51daa55.o \ - $(OBJDIR)/juce_ReadWriteLock_7acf3cc8.o \ - $(OBJDIR)/juce_Thread_69734d40.o \ - $(OBJDIR)/juce_ThreadPool_fd669dfc.o \ - $(OBJDIR)/juce_TimeSliceThread_e9db3803.o \ - $(OBJDIR)/juce_DeletedAtShutdown_b9105375.o \ - $(OBJDIR)/juce_FileBasedDocument_d507d0a5.o \ - $(OBJDIR)/juce_PropertiesFile_8faca026.o \ - $(OBJDIR)/juce_RecentlyOpenedFilesList_f791257.o \ - $(OBJDIR)/juce_UndoManager_33b197fc.o \ - $(OBJDIR)/juce_UnitTest_4a02c10d.o \ - -.PHONY: clean - -$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES) - @echo Linking Juce - -@mkdir -p $(BINDIR) - -@mkdir -p $(LIBDIR) - -@mkdir -p $(OUTDIR) - @$(BLDCMD) - -clean: - @echo Cleaning Juce - -@rm -f $(OUTDIR)/$(TARGET) - -@rm -rf $(OBJDIR)/* - -@rm -rf $(OBJDIR) - -$(OBJDIR)/juce_Application_2817465d.o: ../../src/application/juce_Application.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Application.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ApplicationCommandInfo_80671406.o: ../../src/application/juce_ApplicationCommandInfo.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ApplicationCommandInfo.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ApplicationCommandManager_5aac95f.o: ../../src/application/juce_ApplicationCommandManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ApplicationCommandManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ApplicationCommandTarget_90a89aa9.o: ../../src/application/juce_ApplicationCommandTarget.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ApplicationCommandTarget.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ApplicationProperties_a76b5c30.o: ../../src/application/juce_ApplicationProperties.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ApplicationProperties.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AiffAudioFormat_ffbda971.o: ../../src/audio/audio_file_formats/juce_AiffAudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AiffAudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioCDReader_c730f7a6.o: ../../src/audio/audio_file_formats/juce_AudioCDReader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioCDReader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioFormat_6605d0f9.o: ../../src/audio/audio_file_formats/juce_AudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioFormatManager_949148fe.o: ../../src/audio/audio_file_formats/juce_AudioFormatManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioFormatManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioFormatReader_36f0295c.o: ../../src/audio/audio_file_formats/juce_AudioFormatReader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioFormatReader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioFormatWriter_11461d0c.o: ../../src/audio/audio_file_formats/juce_AudioFormatWriter.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioFormatWriter.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioSubsectionReader_65f61a0a.o: ../../src/audio/audio_file_formats/juce_AudioSubsectionReader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioSubsectionReader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioThumbnail_cb99b4b4.o: ../../src/audio/audio_file_formats/juce_AudioThumbnail.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioThumbnail.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioThumbnailCache_89a7c678.o: ../../src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioThumbnailCache.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CoreAudioFormat_1ce243da.o: ../../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CoreAudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FlacAudioFormat_19c048f1.o: ../../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FlacAudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_OggVorbisAudioFormat_3f214fc9.o: ../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_OggVorbisAudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_QuickTimeAudioFormat_8ad67271.o: ../../src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_QuickTimeAudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_WavAudioFormat_4ff23a5f.o: ../../src/audio/audio_file_formats/juce_WavAudioFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_WavAudioFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioFormatReaderSource_13d4af92.o: ../../src/audio/audio_sources/juce_AudioFormatReaderSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioFormatReaderSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioSourcePlayer_42464899.o: ../../src/audio/audio_sources/juce_AudioSourcePlayer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioSourcePlayer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioTransportSource_f3e60751.o: ../../src/audio/audio_sources/juce_AudioTransportSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioTransportSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BufferingAudioSource_58721b72.o: ../../src/audio/audio_sources/juce_BufferingAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BufferingAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ChannelRemappingAudioSource_e17f93c0.o: ../../src/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ChannelRemappingAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_IIRFilterAudioSource_807ee8aa.o: ../../src/audio/audio_sources/juce_IIRFilterAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_IIRFilterAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MixerAudioSource_bc6f772b.o: ../../src/audio/audio_sources/juce_MixerAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MixerAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ResamplingAudioSource_8511875e.o: ../../src/audio/audio_sources/juce_ResamplingAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ResamplingAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ReverbAudioSource_3ae42aa6.o: ../../src/audio/audio_sources/juce_ReverbAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ReverbAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ToneGeneratorAudioSource_77f504b3.o: ../../src/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ToneGeneratorAudioSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioDeviceManager_c24db832.o: ../../src/audio/devices/juce_AudioDeviceManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioDeviceManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioIODevice_f7da876b.o: ../../src/audio/devices/juce_AudioIODevice.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioIODevice.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioIODeviceType_e5d402c5.o: ../../src/audio/devices/juce_AudioIODeviceType.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioIODeviceType.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioDataConverters_dc0ece28.o: ../../src/audio/dsp/juce_AudioDataConverters.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioDataConverters.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioSampleBuffer_af6ff195.o: ../../src/audio/dsp/juce_AudioSampleBuffer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioSampleBuffer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_IIRFilter_9a31e47f.o: ../../src/audio/dsp/juce_IIRFilter.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_IIRFilter.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiBuffer_fa4db7fe.o: ../../src/audio/midi/juce_MidiBuffer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiBuffer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiFile_3bdbc97a.o: ../../src/audio/midi/juce_MidiFile.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiFile.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiKeyboardState_28313976.o: ../../src/audio/midi/juce_MidiKeyboardState.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiKeyboardState.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiMessage_5b1f5753.o: ../../src/audio/midi/juce_MidiMessage.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiMessage.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiMessageCollector_108abdc4.o: ../../src/audio/midi/juce_MidiMessageCollector.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiMessageCollector.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiMessageSequence_a577dcb4.o: ../../src/audio/midi/juce_MidiMessageSequence.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiMessageSequence.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiOutput_3cc0f43f.o: ../../src/audio/midi/juce_MidiOutput.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiOutput.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_VSTPluginFormat_af341d6.o: ../../src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_VSTPluginFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioPluginFormat_5dc1eec2.o: ../../src/audio/plugin_host/juce_AudioPluginFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioPluginFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioPluginFormatManager_c336c715.o: ../../src/audio/plugin_host/juce_AudioPluginFormatManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioPluginFormatManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_KnownPluginList_cadece16.o: ../../src/audio/plugin_host/juce_KnownPluginList.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_KnownPluginList.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PluginDescription_d9c0f10b.o: ../../src/audio/plugin_host/juce_PluginDescription.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PluginDescription.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PluginDirectoryScanner_c7652cec.o: ../../src/audio/plugin_host/juce_PluginDirectoryScanner.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PluginDirectoryScanner.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PluginListComponent_f08a630e.o: ../../src/audio/plugin_host/juce_PluginListComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PluginListComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioProcessor_babd0919.o: ../../src/audio/processors/juce_AudioProcessor.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioProcessor.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioProcessorEditor_82a32d26.o: ../../src/audio/processors/juce_AudioProcessorEditor.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioProcessorEditor.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioProcessorGraph_76dcb4ff.o: ../../src/audio/processors/juce_AudioProcessorGraph.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioProcessorGraph.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioProcessorPlayer_5c53cc9a.o: ../../src/audio/processors/juce_AudioProcessorPlayer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioProcessorPlayer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GenericAudioProcessorEditor_2e8ec30d.o: ../../src/audio/processors/juce_GenericAudioProcessorEditor.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GenericAudioProcessorEditor.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Sampler_98f716a4.o: ../../src/audio/synthesisers/juce_Sampler.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Sampler.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Synthesiser_2bffa1dd.o: ../../src/audio/synthesisers/juce_Synthesiser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Synthesiser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AbstractFifo_dfc0bd23.o: ../../src/containers/juce_AbstractFifo.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AbstractFifo.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DynamicObject_69d02ab3.o: ../../src/containers/juce_DynamicObject.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DynamicObject.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_NamedValueSet_6b0793df.o: ../../src/containers/juce_NamedValueSet.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_NamedValueSet.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PropertySet_914b5922.o: ../../src/containers/juce_PropertySet.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PropertySet.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Value_16231646.o: ../../src/containers/juce_Value.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Value.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ValueTree_f822be84.o: ../../src/containers/juce_ValueTree.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ValueTree.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Variant_4f31c35a.o: ../../src/containers/juce_Variant.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Variant.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileLogger_7858478e.o: ../../src/core/juce_FileLogger.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileLogger.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Logger_4f4f7f72.o: ../../src/core/juce_Logger.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Logger.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PerformanceCounter_6422080e.o: ../../src/core/juce_PerformanceCounter.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PerformanceCounter.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativeTime_bc5ef35b.o: ../../src/core/juce_RelativeTime.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativeTime.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Result_d8f437f.o: ../../src/core/juce_Result.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Result.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SystemStats_c00d8758.o: ../../src/core/juce_SystemStats.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SystemStats.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Time_16acdd6f.o: ../../src/core/juce_Time.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Time.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Uuid_f277575d.o: ../../src/core/juce_Uuid.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Uuid.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BlowFish_5d22a7d9.o: ../../src/cryptography/juce_BlowFish.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BlowFish.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MD5_56896819.o: ../../src/cryptography/juce_MD5.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MD5.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Primes_32e6603.o: ../../src/cryptography/juce_Primes.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Primes.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RSAKey_b60982ae.o: ../../src/cryptography/juce_RSAKey.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RSAKey.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SHA256_cb4da0d6.o: ../../src/cryptography/juce_SHA256.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SHA256.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ActionBroadcaster_7f997786.o: ../../src/events/juce_ActionBroadcaster.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ActionBroadcaster.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AsyncUpdater_a7e1cb89.o: ../../src/events/juce_AsyncUpdater.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AsyncUpdater.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ChangeBroadcaster_3eb8fecc.o: ../../src/events/juce_ChangeBroadcaster.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ChangeBroadcaster.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_InterprocessConnection_13086b6d.o: ../../src/events/juce_InterprocessConnection.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_InterprocessConnection.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_InterprocessConnectionServer_a4d7b350.o: ../../src/events/juce_InterprocessConnectionServer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_InterprocessConnectionServer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Message_ac79f635.o: ../../src/events/juce_Message.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Message.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MessageListener_93e51509.o: ../../src/events/juce_MessageListener.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MessageListener.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MessageManager_c7e00842.o: ../../src/events/juce_MessageManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MessageManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MultiTimer_d4d9eca8.o: ../../src/events/juce_MultiTimer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MultiTimer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Timer_77c098b3.o: ../../src/events/juce_Timer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Timer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Component_49f01dfa.o: ../../src/gui/components/juce_Component.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Component.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentListener_e0eda7ce.o: ../../src/gui/components/juce_ComponentListener.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentListener.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Desktop_e3b47b99.o: ../../src/gui/components/juce_Desktop.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Desktop.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ModalComponentManager_b87bddba.o: ../../src/gui/components/juce_ModalComponentManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ModalComponentManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ArrowButton_ebac7066.o: ../../src/gui/components/buttons/juce_ArrowButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ArrowButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Button_886d3491.o: ../../src/gui/components/buttons/juce_Button.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Button.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawableButton_e03899cf.o: ../../src/gui/components/buttons/juce_DrawableButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawableButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_HyperlinkButton_af0a8983.o: ../../src/gui/components/buttons/juce_HyperlinkButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_HyperlinkButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ImageButton_c4dda738.o: ../../src/gui/components/buttons/juce_ImageButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ImageButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ShapeButton_2359adfe.o: ../../src/gui/components/buttons/juce_ShapeButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ShapeButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TextButton_8cf49c9e.o: ../../src/gui/components/buttons/juce_TextButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TextButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ToggleButton_f69cb85.o: ../../src/gui/components/buttons/juce_ToggleButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ToggleButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ToolbarButton_884113d8.o: ../../src/gui/components/buttons/juce_ToolbarButton.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ToolbarButton.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CodeDocument_fdd87805.o: ../../src/gui/components/code_editor/juce_CodeDocument.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CodeDocument.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CodeEditorComponent_6fe4a170.o: ../../src/gui/components/code_editor/juce_CodeEditorComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CodeEditorComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CPlusPlusCodeTokeniser_6b8548a9.o: ../../src/gui/components/code_editor/juce_CPlusPlusCodeTokeniser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CPlusPlusCodeTokeniser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComboBox_bcb5e365.o: ../../src/gui/components/controls/juce_ComboBox.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComboBox.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ImageComponent_1f90572a.o: ../../src/gui/components/controls/juce_ImageComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ImageComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Label_7af0aab6.o: ../../src/gui/components/controls/juce_Label.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Label.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ListBox_d4a8704f.o: ../../src/gui/components/controls/juce_ListBox.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ListBox.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ProgressBar_38bc3ba8.o: ../../src/gui/components/controls/juce_ProgressBar.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ProgressBar.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Slider_8a0d91a9.o: ../../src/gui/components/controls/juce_Slider.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Slider.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TableHeaderComponent_2228124a.o: ../../src/gui/components/controls/juce_TableHeaderComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TableHeaderComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TableListBox_588d027.o: ../../src/gui/components/controls/juce_TableListBox.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TableListBox.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TextEditor_abe7dfc2.o: ../../src/gui/components/controls/juce_TextEditor.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TextEditor.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Toolbar_29fa8c7d.o: ../../src/gui/components/controls/juce_Toolbar.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Toolbar.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ToolbarItemComponent_7fab8ff7.o: ../../src/gui/components/controls/juce_ToolbarItemComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ToolbarItemComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ToolbarItemPalette_250807b5.o: ../../src/gui/components/controls/juce_ToolbarItemPalette.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ToolbarItemPalette.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TreeView_f1a8d26b.o: ../../src/gui/components/controls/juce_TreeView.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TreeView.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DirectoryContentsDisplayComponent_97e43c62.o: ../../src/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DirectoryContentsDisplayComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DirectoryContentsList_31e06025.o: ../../src/gui/components/filebrowser/juce_DirectoryContentsList.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DirectoryContentsList.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileBrowserComponent_1332771b.o: ../../src/gui/components/filebrowser/juce_FileBrowserComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileBrowserComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileChooser_c439271f.o: ../../src/gui/components/filebrowser/juce_FileChooser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileChooser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileChooserDialogBox_50a36f4e.o: ../../src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileChooserDialogBox.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileFilter_de71639e.o: ../../src/gui/components/filebrowser/juce_FileFilter.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileFilter.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileListComponent_3f41b6a3.o: ../../src/gui/components/filebrowser/juce_FileListComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileListComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FilenameComponent_921ef5f6.o: ../../src/gui/components/filebrowser/juce_FilenameComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FilenameComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileSearchPathListComponent_85ed8576.o: ../../src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileSearchPathListComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileTreeComponent_8cb2d3a3.o: ../../src/gui/components/filebrowser/juce_FileTreeComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileTreeComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ImagePreviewComponent_a108ea50.o: ../../src/gui/components/filebrowser/juce_ImagePreviewComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ImagePreviewComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_WildcardFileFilter_9337b18.o: ../../src/gui/components/filebrowser/juce_WildcardFileFilter.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_WildcardFileFilter.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CaretComponent_26bf4433.o: ../../src/gui/components/keyboard/juce_CaretComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CaretComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_KeyboardFocusTraverser_6325fc08.o: ../../src/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_KeyboardFocusTraverser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_KeyListener_631ada24.o: ../../src/gui/components/keyboard/juce_KeyListener.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_KeyListener.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_KeyMappingEditorComponent_a0183a92.o: ../../src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_KeyMappingEditorComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_KeyPress_47fcc29d.o: ../../src/gui/components/keyboard/juce_KeyPress.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_KeyPress.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_KeyPressMappingSet_26212371.o: ../../src/gui/components/keyboard/juce_KeyPressMappingSet.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_KeyPressMappingSet.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ModifierKeys_eea16d64.o: ../../src/gui/components/keyboard/juce_ModifierKeys.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ModifierKeys.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentAnimator_ad5663d2.o: ../../src/gui/components/layout/juce_ComponentAnimator.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentAnimator.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentBoundsConstrainer_a33c10ae.o: ../../src/gui/components/layout/juce_ComponentBoundsConstrainer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentBoundsConstrainer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentBuilder_2aa6c5a.o: ../../src/gui/components/layout/juce_ComponentBuilder.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentBuilder.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentMovementWatcher_cbb3e7cc.o: ../../src/gui/components/layout/juce_ComponentMovementWatcher.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentMovementWatcher.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GroupComponent_456e237a.o: ../../src/gui/components/layout/juce_GroupComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GroupComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MultiDocumentPanel_50e05aac.o: ../../src/gui/components/layout/juce_MultiDocumentPanel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MultiDocumentPanel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ResizableBorderComponent_7f4f2182.o: ../../src/gui/components/layout/juce_ResizableBorderComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ResizableBorderComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ResizableCornerComponent_1cac2df9.o: ../../src/gui/components/layout/juce_ResizableCornerComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ResizableCornerComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ResizableEdgeComponent_b9c9291.o: ../../src/gui/components/layout/juce_ResizableEdgeComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ResizableEdgeComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ScrollBar_89666ad4.o: ../../src/gui/components/layout/juce_ScrollBar.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ScrollBar.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_StretchableLayoutManager_6bf5d800.o: ../../src/gui/components/layout/juce_StretchableLayoutManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_StretchableLayoutManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_StretchableLayoutResizerBar_a720084c.o: ../../src/gui/components/layout/juce_StretchableLayoutResizerBar.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_StretchableLayoutResizerBar.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_StretchableObjectResizer_2edcfadc.o: ../../src/gui/components/layout/juce_StretchableObjectResizer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_StretchableObjectResizer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TabbedButtonBar_a760aaa3.o: ../../src/gui/components/layout/juce_TabbedButtonBar.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TabbedButtonBar.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TabbedComponent_d618721f.o: ../../src/gui/components/layout/juce_TabbedComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TabbedComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Viewport_6c983422.o: ../../src/gui/components/layout/juce_Viewport.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Viewport.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_LookAndFeel_d4e838ec.o: ../../src/gui/components/lookandfeel/juce_LookAndFeel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_LookAndFeel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_OldSchoolLookAndFeel_5ece559f.o: ../../src/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_OldSchoolLookAndFeel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MenuBarComponent_c68c8dbb.o: ../../src/gui/components/menus/juce_MenuBarComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MenuBarComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MenuBarModel_ede42267.o: ../../src/gui/components/menus/juce_MenuBarModel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MenuBarModel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PopupMenu_ec4cf9a3.o: ../../src/gui/components/menus/juce_PopupMenu.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PopupMenu.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentDragger_fb3bdbe6.o: ../../src/gui/components/mouse/juce_ComponentDragger.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentDragger.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DragAndDropContainer_553e412.o: ../../src/gui/components/mouse/juce_DragAndDropContainer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DragAndDropContainer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MouseCursor_afb68802.o: ../../src/gui/components/mouse/juce_MouseCursor.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MouseCursor.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MouseEvent_f6ca6078.o: ../../src/gui/components/mouse/juce_MouseEvent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MouseEvent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MouseInputSource_8904aa23.o: ../../src/gui/components/mouse/juce_MouseInputSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MouseInputSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MouseListener_eb73f8a0.o: ../../src/gui/components/mouse/juce_MouseListener.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MouseListener.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MarkerList_2fbb4ef.o: ../../src/gui/components/positioning/juce_MarkerList.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MarkerList.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativeCoordinate_ab2eee5b.o: ../../src/gui/components/positioning/juce_RelativeCoordinate.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativeCoordinate.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativeCoordinatePositioner_c1352791.o: ../../src/gui/components/positioning/juce_RelativeCoordinatePositioner.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativeCoordinatePositioner.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativeParallelogram_5d17dbe6.o: ../../src/gui/components/positioning/juce_RelativeParallelogram.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativeParallelogram.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativePoint_9d2cc957.o: ../../src/gui/components/positioning/juce_RelativePoint.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativePoint.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativePointPath_a4fed61c.o: ../../src/gui/components/positioning/juce_RelativePointPath.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativePointPath.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RelativeRectangle_cc5440b6.o: ../../src/gui/components/positioning/juce_RelativeRectangle.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RelativeRectangle.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BooleanPropertyComponent_92b54aa5.o: ../../src/gui/components/properties/juce_BooleanPropertyComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BooleanPropertyComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ButtonPropertyComponent_3675d6bb.o: ../../src/gui/components/properties/juce_ButtonPropertyComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ButtonPropertyComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ChoicePropertyComponent_b9b44bac.o: ../../src/gui/components/properties/juce_ChoicePropertyComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ChoicePropertyComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PropertyComponent_df1eaecd.o: ../../src/gui/components/properties/juce_PropertyComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PropertyComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PropertyPanel_c640c5d4.o: ../../src/gui/components/properties/juce_PropertyPanel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PropertyPanel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SliderPropertyComponent_ba2eb86c.o: ../../src/gui/components/properties/juce_SliderPropertyComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SliderPropertyComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TextPropertyComponent_977e6fa0.o: ../../src/gui/components/properties/juce_TextPropertyComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TextPropertyComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AudioDeviceSelectorComponent_64b1a089.o: ../../src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AudioDeviceSelectorComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BubbleComponent_5f51c164.o: ../../src/gui/components/special/juce_BubbleComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BubbleComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BubbleMessageComponent_22f737f9.o: ../../src/gui/components/special/juce_BubbleMessageComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BubbleMessageComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ColourSelector_ac8bb1e2.o: ../../src/gui/components/special/juce_ColourSelector.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ColourSelector.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DropShadower_5903f9f3.o: ../../src/gui/components/special/juce_DropShadower.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DropShadower.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MidiKeyboardComponent_896e2ac8.o: ../../src/gui/components/special/juce_MidiKeyboardComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MidiKeyboardComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_OpenGLComponent_73944221.o: ../../src/gui/components/special/juce_OpenGLComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_OpenGLComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PreferencesPanel_dbc7d503.o: ../../src/gui/components/special/juce_PreferencesPanel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PreferencesPanel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SystemTrayIconComponent_fa664512.o: ../../src/gui/components/special/juce_SystemTrayIconComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SystemTrayIconComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AlertWindow_94d8d1f5.o: ../../src/gui/components/windows/juce_AlertWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AlertWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CallOutBox_61f42d7c.o: ../../src/gui/components/windows/juce_CallOutBox.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CallOutBox.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ComponentPeer_1e4b4b08.o: ../../src/gui/components/windows/juce_ComponentPeer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ComponentPeer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DialogWindow_535b27b9.o: ../../src/gui/components/windows/juce_DialogWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DialogWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DocumentWindow_3cb9d4cc.o: ../../src/gui/components/windows/juce_DocumentWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DocumentWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ResizableWindow_d2110a84.o: ../../src/gui/components/windows/juce_ResizableWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ResizableWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SplashScreen_a0940094.o: ../../src/gui/components/windows/juce_SplashScreen.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SplashScreen.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ThreadWithProgressWindow_d711ee6e.o: ../../src/gui/components/windows/juce_ThreadWithProgressWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ThreadWithProgressWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TooltipWindow_45074edc.o: ../../src/gui/components/windows/juce_TooltipWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TooltipWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TopLevelWindow_717cf1e0.o: ../../src/gui/components/windows/juce_TopLevelWindow.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TopLevelWindow.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Colour_453f3d5.o: ../../src/gui/graphics/colour/juce_Colour.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Colour.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ColourGradient_c63d0725.o: ../../src/gui/graphics/colour/juce_ColourGradient.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ColourGradient.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Colours_89de9488.o: ../../src/gui/graphics/colour/juce_Colours.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Colours.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_EdgeTable_6a5fefda.o: ../../src/gui/graphics/contexts/juce_EdgeTable.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_EdgeTable.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FillType_5805677e.o: ../../src/gui/graphics/contexts/juce_FillType.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FillType.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GraphicsContext_119e43ed.o: ../../src/gui/graphics/contexts/juce_GraphicsContext.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GraphicsContext.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Justification_dc284c3b.o: ../../src/gui/graphics/contexts/juce_Justification.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Justification.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_LowLevelGraphicsPostScriptRenderer_2e8a92a.o: ../../src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_LowLevelGraphicsPostScriptRenderer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_LowLevelGraphicsSoftwareRenderer_97263906.o: ../../src/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_LowLevelGraphicsSoftwareRenderer.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RectanglePlacement_5fc90ed7.o: ../../src/gui/graphics/contexts/juce_RectanglePlacement.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RectanglePlacement.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Drawable_8c1eccc6.o: ../../src/gui/graphics/drawables/juce_Drawable.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Drawable.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawableComposite_4cd2d2ab.o: ../../src/gui/graphics/drawables/juce_DrawableComposite.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawableComposite.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawableImage_53f04eff.o: ../../src/gui/graphics/drawables/juce_DrawableImage.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawableImage.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawablePath_fb538a0b.o: ../../src/gui/graphics/drawables/juce_DrawablePath.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawablePath.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawableRectangle_5f2f5993.o: ../../src/gui/graphics/drawables/juce_DrawableRectangle.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawableRectangle.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawableShape_26926245.o: ../../src/gui/graphics/drawables/juce_DrawableShape.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawableShape.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DrawableText_75eda713.o: ../../src/gui/graphics/drawables/juce_DrawableText.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DrawableText.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SVGParser_b79416c5.o: ../../src/gui/graphics/drawables/juce_SVGParser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SVGParser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DropShadowEffect_da52d75.o: ../../src/gui/graphics/effects/juce_DropShadowEffect.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DropShadowEffect.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GlowEffect_c0959893.o: ../../src/gui/graphics/effects/juce_GlowEffect.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GlowEffect.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CustomTypeface_b93a3eff.o: ../../src/gui/graphics/fonts/juce_CustomTypeface.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CustomTypeface.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Font_fa88db26.o: ../../src/gui/graphics/fonts/juce_Font.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Font.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GlyphArrangement_f0797295.o: ../../src/gui/graphics/fonts/juce_GlyphArrangement.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GlyphArrangement.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TextLayout_d18f700e.o: ../../src/gui/graphics/fonts/juce_TextLayout.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TextLayout.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Typeface_34b3026e.o: ../../src/gui/graphics/fonts/juce_Typeface.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Typeface.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_AffineTransform_4a320188.o: ../../src/gui/graphics/geometry/juce_AffineTransform.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_AffineTransform.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Path_dcdd4594.o: ../../src/gui/graphics/geometry/juce_Path.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Path.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PathIterator_4e116c22.o: ../../src/gui/graphics/geometry/juce_PathIterator.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PathIterator.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PathStrokeType_506dcb86.o: ../../src/gui/graphics/geometry/juce_PathStrokeType.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PathStrokeType.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RectangleList_b6ae7ee8.o: ../../src/gui/graphics/geometry/juce_RectangleList.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RectangleList.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GIFLoader_61887b90.o: ../../src/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GIFLoader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_JPEGLoader_412d2ccc.o: ../../src/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_JPEGLoader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PNGLoader_7f80a3b5.o: ../../src/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PNGLoader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Image_790c9a1a.o: ../../src/gui/graphics/imaging/juce_Image.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Image.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ImageCache_e74a50d2.o: ../../src/gui/graphics/imaging/juce_ImageCache.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ImageCache.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ImageConvolutionKernel_4e9e7945.o: ../../src/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ImageConvolutionKernel.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ImageFileFormat_161e770d.o: ../../src/gui/graphics/imaging/juce_ImageFileFormat.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ImageFileFormat.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DirectoryIterator_24c60d54.o: ../../src/io/files/juce_DirectoryIterator.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DirectoryIterator.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_File_8244d8d.o: ../../src/io/files/juce_File.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_File.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileInputStream_e14097a7.o: ../../src/io/files/juce_FileInputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileInputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileOutputStream_d151050e.o: ../../src/io/files/juce_FileOutputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileOutputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileSearchPath_30e3d71a.o: ../../src/io/files/juce_FileSearchPath.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileSearchPath.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_NamedPipe_b3a205e0.o: ../../src/io/files/juce_NamedPipe.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_NamedPipe.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TemporaryFile_935f3fc6.o: ../../src/io/files/juce_TemporaryFile.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TemporaryFile.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ZipFile_16fbb396.o: ../../src/io/files/juce_ZipFile.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ZipFile.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MACAddress_b81987ed.o: ../../src/io/network/juce_MACAddress.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MACAddress.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Socket_cf39c63b.o: ../../src/io/network/juce_Socket.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Socket.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_URL_d6b7cff1.o: ../../src/io/network/juce_URL.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_URL.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BufferedInputStream_c71b2b68.o: ../../src/io/streams/juce_BufferedInputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BufferedInputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileInputSource_2a374046.o: ../../src/io/streams/juce_FileInputSource.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileInputSource.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GZIPCompressorOutputStream_4409282d.o: ../../src/io/streams/juce_GZIPCompressorOutputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GZIPCompressorOutputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_GZIPDecompressorInputStream_b026ffc7.o: ../../src/io/streams/juce_GZIPDecompressorInputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_GZIPDecompressorInputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_InputStream_5314e647.o: ../../src/io/streams/juce_InputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_InputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MemoryInputStream_c5db0106.o: ../../src/io/streams/juce_MemoryInputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MemoryInputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MemoryOutputStream_8003c78f.o: ../../src/io/streams/juce_MemoryOutputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MemoryOutputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_OutputStream_9a068a6e.o: ../../src/io/streams/juce_OutputStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_OutputStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_SubregionStream_9156f331.o: ../../src/io/streams/juce_SubregionStream.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_SubregionStream.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_BigInteger_b44f43d6.o: ../../src/maths/juce_BigInteger.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BigInteger.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Expression_6f910d50.o: ../../src/maths/juce_Expression.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Expression.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Random_a529cb7b.o: ../../src/maths/juce_Random.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Random.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MemoryBlock_52f17c52.o: ../../src/memory/juce_MemoryBlock.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MemoryBlock.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_posix_NamedPipe_aa308c65.o: ../../src/native/common/juce_posix_NamedPipe.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_posix_NamedPipe.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Audio_18d7e8b6.o: ../../src/native/linux/juce_linux_Audio.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Audio.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_AudioCDReader_1263363a.o: ../../src/native/linux/juce_linux_AudioCDReader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_AudioCDReader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Clipboard_44a6bcf6.o: ../../src/native/linux/juce_linux_Clipboard.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Clipboard.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_FileChooser_3b3f403f.o: ../../src/native/linux/juce_linux_FileChooser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_FileChooser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Files_c036ced7.o: ../../src/native/linux/juce_linux_Files.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Files.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Fonts_b2e303e4.o: ../../src/native/linux/juce_linux_Fonts.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Fonts.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_JackAudio_15353e17.o: ../../src/native/linux/juce_linux_JackAudio.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_JackAudio.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Messaging_daefaf64.o: ../../src/native/linux/juce_linux_Messaging.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Messaging.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Midi_4bad86cb.o: ../../src/native/linux/juce_linux_Midi.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Midi.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_NativeCode_8a61cd0e.o: ../../src/native/linux/juce_linux_NativeCode.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_NativeCode.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Network_f47a1c4e.o: ../../src/native/linux/juce_linux_Network.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Network.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_OpenGLComponent_ba2f042e.o: ../../src/native/linux/juce_linux_OpenGLComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_OpenGLComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_SystemStats_9f6d6b50.o: ../../src/native/linux/juce_linux_SystemStats.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_SystemStats.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Threads_dc4a4049.o: ../../src/native/linux/juce_linux_Threads.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Threads.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_WebBrowserComponent_358c0a49.o: ../../src/native/linux/juce_linux_WebBrowserComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_WebBrowserComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_linux_Windowing_abe04752.o: ../../src/native/linux/juce_linux_Windowing.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_linux_Windowing.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ios_Audio_40e86914.o: ../../src/native/mac/juce_ios_Audio.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ios_Audio.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_mac_CoreAudio_faf8c177.o: ../../src/native/mac/juce_mac_CoreAudio.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_mac_CoreAudio.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_mac_CoreMidi_e79e11ea.o: ../../src/native/mac/juce_mac_CoreMidi.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_mac_CoreMidi.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_ActiveXComponent_7590131d.o: ../../src/native/windows/juce_win32_ActiveXComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_ActiveXComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_ASIO_60eb61ca.o: ../../src/native/windows/juce_win32_ASIO.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_ASIO.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_AudioCDReader_66c7252.o: ../../src/native/windows/juce_win32_AudioCDReader.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_AudioCDReader.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_CameraDevice_ea35306d.o: ../../src/native/windows/juce_win32_CameraDevice.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_CameraDevice.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Direct2DGraphicsContext_9f1b6be1.o: ../../src/native/windows/juce_win32_Direct2DGraphicsContext.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Direct2DGraphicsContext.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_DirectShowComponent_e4030c4f.o: ../../src/native/windows/juce_win32_DirectShowComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_DirectShowComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_DirectSound_3462415e.o: ../../src/native/windows/juce_win32_DirectSound.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_DirectSound.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_FileChooser_18a257.o: ../../src/native/windows/juce_win32_FileChooser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_FileChooser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Files_f3e9a2ef.o: ../../src/native/windows/juce_win32_Files.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Files.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Fonts_e695d7fc.o: ../../src/native/windows/juce_win32_Fonts.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Fonts.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Messaging_926ab77c.o: ../../src/native/windows/juce_win32_Messaging.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Messaging.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Midi_fac3cfb3.o: ../../src/native/windows/juce_win32_Midi.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Midi.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_NativeCode_c247c7f6.o: ../../src/native/windows/juce_win32_NativeCode.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_NativeCode.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Network_6c84a66.o: ../../src/native/windows/juce_win32_Network.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Network.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_OpenGLComponent_d0d99a46.o: ../../src/native/windows/juce_win32_OpenGLComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_OpenGLComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_QuickTimeMovieComponent_be08e5f.o: ../../src/native/windows/juce_win32_QuickTimeMovieComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_QuickTimeMovieComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Registry_86da784f.o: ../../src/native/windows/juce_win32_Registry.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Registry.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_SystemStats_6446cd68.o: ../../src/native/windows/juce_win32_SystemStats.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_SystemStats.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Threads_ee986e61.o: ../../src/native/windows/juce_win32_Threads.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Threads.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_WASAPI_c7c6c3c3.o: ../../src/native/windows/juce_win32_WASAPI.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_WASAPI.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_WebBrowserComponent_2a4dd461.o: ../../src/native/windows/juce_win32_WebBrowserComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_WebBrowserComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_win32_Windowing_635b4f6a.o: ../../src/native/windows/juce_win32_Windowing.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_win32_Windowing.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Audio_93f83bd6.o: ../../src/native/android/juce_android_Audio.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Audio.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_CameraDevice_d2743865.o: ../../src/native/android/juce_android_CameraDevice.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_CameraDevice.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_FileChooser_205cbb5f.o: ../../src/native/android/juce_android_FileChooser.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_FileChooser.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Files_3b5721f7.o: ../../src/native/android/juce_android_Files.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Files.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Fonts_2e035704.o: ../../src/native/android/juce_android_Fonts.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Fonts.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_GraphicsContext_d0fb27e4.o: ../../src/native/android/juce_android_GraphicsContext.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_GraphicsContext.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Messaging_59717284.o: ../../src/native/android/juce_android_Messaging.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Messaging.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Midi_4fa64fab.o: ../../src/native/android/juce_android_Midi.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Midi.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Misc_68ea73f6.o: ../../src/native/android/juce_android_Misc.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Misc.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_NativeCode_dc186dee.o: ../../src/native/android/juce_android_NativeCode.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_NativeCode.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Network_28d2276e.o: ../../src/native/android/juce_android_Network.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Network.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_OpenGLComponent_8fd9ef4e.o: ../../src/native/android/juce_android_OpenGLComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_OpenGLComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_SystemStats_848ae670.o: ../../src/native/android/juce_android_SystemStats.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_SystemStats.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Threads_10a24b69.o: ../../src/native/android/juce_android_Threads.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Threads.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_WebBrowserComponent_178c6569.o: ../../src/native/android/juce_android_WebBrowserComponent.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_WebBrowserComponent.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_android_Windowing_2a620a72.o: ../../src/native/android/juce_android_Windowing.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_android_Windowing.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_CharacterFunctions_b1a5ac62.o: ../../src/text/juce_CharacterFunctions.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_CharacterFunctions.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Identifier_e99ee619.o: ../../src/text/juce_Identifier.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Identifier.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_JSON_bbf64af8.o: ../../src/text/juce_JSON.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_JSON.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_LocalisedStrings_3ddfa55e.o: ../../src/text/juce_LocalisedStrings.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_LocalisedStrings.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_String_80587b01.o: ../../src/text/juce_String.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_String.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_StringArray_4aaa67a2.o: ../../src/text/juce_StringArray.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_StringArray.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_StringPairArray_37130fe8.o: ../../src/text/juce_StringPairArray.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_StringPairArray.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_StringPool_9e8d033d.o: ../../src/text/juce_StringPool.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_StringPool.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_XmlDocument_6b9b0c2c.o: ../../src/text/juce_XmlDocument.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_XmlDocument.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_XmlElement_51daa55.o: ../../src/text/juce_XmlElement.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_XmlElement.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ReadWriteLock_7acf3cc8.o: ../../src/threads/juce_ReadWriteLock.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ReadWriteLock.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Thread_69734d40.o: ../../src/threads/juce_Thread.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Thread.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_ThreadPool_fd669dfc.o: ../../src/threads/juce_ThreadPool.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_ThreadPool.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_TimeSliceThread_e9db3803.o: ../../src/threads/juce_TimeSliceThread.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_TimeSliceThread.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_DeletedAtShutdown_b9105375.o: ../../src/utilities/juce_DeletedAtShutdown.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_DeletedAtShutdown.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_FileBasedDocument_d507d0a5.o: ../../src/utilities/juce_FileBasedDocument.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_FileBasedDocument.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_PropertiesFile_8faca026.o: ../../src/utilities/juce_PropertiesFile.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_PropertiesFile.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_RecentlyOpenedFilesList_f791257.o: ../../src/utilities/juce_RecentlyOpenedFilesList.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_RecentlyOpenedFilesList.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_UndoManager_33b197fc.o: ../../src/utilities/juce_UndoManager.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_UndoManager.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_UnitTest_4a02c10d.o: ../../src/utilities/juce_UnitTest.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_UnitTest.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - --include $(OBJECTS:%.o=%.d) diff --git a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj deleted file mode 100644 index 1a13dbaecb..0000000000 --- a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2442 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - - 0F4BA87762766B98D5B58AD0 = { isa = PBXBuildFile; fileRef = 144F56FCF3DF9EC922765901; }; - 50933337E6C3CC5B82540F8B = { isa = PBXBuildFile; fileRef = 36A407F2BE4A625184B5CCFD; }; - 04CB2DA89A71A183CEFEB7C0 = { isa = PBXBuildFile; fileRef = 21E1DBFAB3FB75875EA35280; }; - CD59C8E60146B04575CD61E6 = { isa = PBXBuildFile; fileRef = 415BD77DF4B2F4760D138735; }; - 76890501626BFFF310A94F15 = { isa = PBXBuildFile; fileRef = BA97FEDA576503A21D971F1E; }; - 46151070FA7D3426EC35280F = { isa = PBXBuildFile; fileRef = 1AA8BE2D76E153874FB08197; }; - 983FCD60625A60993546F850 = { isa = PBXBuildFile; fileRef = 0877D5750D6F21C5231687CA; }; - 416D6F00E88DC74879B4DF2B = { isa = PBXBuildFile; fileRef = 7D85530D76756C33795ECCE9; }; - 9C709BC2F4F0EE60BF52FACA = { isa = PBXBuildFile; fileRef = 93006D32B18174D9FE0A5E9E; }; - 992F46189ABF711A047186A4 = { isa = PBXBuildFile; fileRef = 9349E14552FEA0371553E808; }; - 5C312E6678456C8293633E0F = { isa = PBXBuildFile; fileRef = 2AD64F53E12B20011B7A0DB7; }; - FB21B7E6A7CE55D3C0E3C37E = { isa = PBXBuildFile; fileRef = 59597FA0A88A08937801D198; }; - C1147D03F1F4D697CC30DD22 = { isa = PBXBuildFile; fileRef = 27C3C51DF2519B519B76E2EE; }; - C5CFF5508299C26380465290 = { isa = PBXBuildFile; fileRef = CB32D4EE59D5CA9DB12F944D; }; - 0ACCAC5ABDE686B0CA42BFED = { isa = PBXBuildFile; fileRef = 203AC66FFB20EAD2E7A594BD; }; - 2171BD82DA3A6744260CDE58 = { isa = PBXBuildFile; fileRef = E00781B15E47C9CB9E94869D; }; - 3C22C15ACEEF0454171D231B = { isa = PBXBuildFile; fileRef = DA868174D4D2059AC1BE7E71; }; - 6D421F7B7EE3A149389653C2 = { isa = PBXBuildFile; fileRef = 7CF036906034FABB44D2108F; }; - 4ED0A649C320BA53718501CE = { isa = PBXBuildFile; fileRef = D5D2FD212300E7D49ED74823; }; - 5D3EC9BA6BA37694CB371ABB = { isa = PBXBuildFile; fileRef = 7AE5295A472723B26537FAEC; }; - 4CF5FB501CB800D4485B08DB = { isa = PBXBuildFile; fileRef = FBB2EEF0E5EC5EB6F89E9066; }; - 3747D91BE3C6A2E641BB133D = { isa = PBXBuildFile; fileRef = 74AD63909D3EE09D63256A76; }; - 4CFEE72495007A62F78C1B8E = { isa = PBXBuildFile; fileRef = 5D6E837F124C347B3C1CAE23; }; - BF7E18A49525915A0E1928C5 = { isa = PBXBuildFile; fileRef = 1511366CAD437989DAA30CF2; }; - 6DC6DEEE8A1A6092830A79C8 = { isa = PBXBuildFile; fileRef = D86718CE7E5DEF2071AC3D17; }; - 2862E190ECA33D2CE1458B51 = { isa = PBXBuildFile; fileRef = 9A8053936C35A19B9E98623A; }; - 0791EB173E6A9F959E692AA2 = { isa = PBXBuildFile; fileRef = E2A56C23BF2BB466BB273E3E; }; - 3B64EF7F57EAC5C51460059D = { isa = PBXBuildFile; fileRef = 5403C2A4DEE7B9B3B34235F8; }; - 16D537EB6D3BFAB3AAB54B11 = { isa = PBXBuildFile; fileRef = 3988438157D4B75177703F8A; }; - 0C22446F12486AD139A640CB = { isa = PBXBuildFile; fileRef = 6841D6AC927D02113F3AEBD4; }; - 95CF50482DC7139FCB40EB1C = { isa = PBXBuildFile; fileRef = C7DB1BB9AF7FE0A2AA38D767; }; - D66B0BC466522CD4C5F1335B = { isa = PBXBuildFile; fileRef = EAFD034BB1721BFBF9A3795E; }; - F20E960CAA933102A0F0225C = { isa = PBXBuildFile; fileRef = 5DB9D903D24646B0C2356A5D; }; - 9CDC242CC037F1D00BFD6157 = { isa = PBXBuildFile; fileRef = A1D687AE613A8B61EB63923D; }; - FB0C4D926F00644C6435F0B4 = { isa = PBXBuildFile; fileRef = E68EB4BC75216B5B56E3F937; }; - 3AA8CE85F8CEA9D4B8063E52 = { isa = PBXBuildFile; fileRef = B457515938E7141D5E79B671; }; - DDD4E27CA174F32412F71093 = { isa = PBXBuildFile; fileRef = 891E0B1AD09C0EA44297E0F2; }; - DC89A29962945F69CE38658B = { isa = PBXBuildFile; fileRef = 0731C60911E6985F51325484; }; - 78E7EF1759BA0AACCCE37533 = { isa = PBXBuildFile; fileRef = DF3833AF6E38E55218FDF23F; }; - 573BF08B2CACCC317F3D7603 = { isa = PBXBuildFile; fileRef = 0D3A77572C7256CE4C115FD7; }; - 8376B6E3DB141DDF5EFF6327 = { isa = PBXBuildFile; fileRef = 78D29BB5C76CCF7C21EC0DAF; }; - B579C891B16F4B219CD751B5 = { isa = PBXBuildFile; fileRef = 01712FF0A160032FA1DAA8C2; }; - 43FA6F0FD4DDEBA6427E730D = { isa = PBXBuildFile; fileRef = 50FAF92038EBD0127900AAA1; }; - BAB3164372A6C31A1A7DA58F = { isa = PBXBuildFile; fileRef = FCBB1DC14311D099809B21F7; }; - D71FEEEA440682B04E024BB7 = { isa = PBXBuildFile; fileRef = 2EBF36FAAF019B6F811D1C84; }; - B331EE2C23176373F2D52C1E = { isa = PBXBuildFile; fileRef = 1C8211DFB558D740EF4B173A; }; - 79D8E372BA77018BDA956D92 = { isa = PBXBuildFile; fileRef = DA4820727D6DDC75561A262C; }; - 3688819F98EFF0AABDD79029 = { isa = PBXBuildFile; fileRef = 3110B983ACE956D6A24F8C8C; }; - 84F9FCAE9DF003DC6FC3C941 = { isa = PBXBuildFile; fileRef = B6E20AE45813C0CA9B1014DD; }; - E1046147432EB115A68D6C43 = { isa = PBXBuildFile; fileRef = AF47BC3796A74CC15A192E8B; }; - 5CEE2D7E55DA99C1D310CDC2 = { isa = PBXBuildFile; fileRef = 9C5C0BCB2A298160025B15FC; }; - B154245927BCB4F87ABEAF17 = { isa = PBXBuildFile; fileRef = AB554593165FE8C8B40F4447; }; - 52ADF1419B058963EE32B7C3 = { isa = PBXBuildFile; fileRef = BC2A50B0B01128E394E9DE9C; }; - 31D36C32211754E793B9FF81 = { isa = PBXBuildFile; fileRef = D141C024A3F5A6748B0E9ED7; }; - 2D46CF2B0350A442E08EC355 = { isa = PBXBuildFile; fileRef = 08EBC2152F45FB2B839FCCC1; }; - D1407BB28C169F5E1CAC3CC7 = { isa = PBXBuildFile; fileRef = 096CF2243648F17E1BF5421B; }; - 07E6E11A658930554FF0C56A = { isa = PBXBuildFile; fileRef = ED5966B95F865C586A3CE08F; }; - E8DFABC1603D55B97429A8E4 = { isa = PBXBuildFile; fileRef = 35668D8EEA19957C6C9AC83A; }; - 1F905F44E5FA23A2D5CCDA0A = { isa = PBXBuildFile; fileRef = 4F22276689685D839BD252EA; }; - 4AB5E55BDF79028F82F83D8E = { isa = PBXBuildFile; fileRef = F77C9170829579FABA5679AD; }; - 9D2D1BA65C27BDA1F7C44769 = { isa = PBXBuildFile; fileRef = 70E5409425A76782B6188B31; }; - 43B3119E2F1B559263AE956C = { isa = PBXBuildFile; fileRef = 9BD379D2F7995BFE0B3E5369; }; - 4A7952C0A4EEE13296EEED5E = { isa = PBXBuildFile; fileRef = 1809284DD05B56309D7EA24F; }; - A230949FF8848D5E923F9083 = { isa = PBXBuildFile; fileRef = 5D27EE211D9BFF6A58C4DC42; }; - 11162E9812CFB0E738A7E2E6 = { isa = PBXBuildFile; fileRef = 4DF9D333038A442870668D31; }; - C682BEA7DB70FDC7C6BA2D6E = { isa = PBXBuildFile; fileRef = D66C00E06B06EAD3B5257DD6; }; - 6A53DA58B55E2DE7241BF2C8 = { isa = PBXBuildFile; fileRef = 4555F03DBD059EEDECEF9F85; }; - 0FF71870483AC46D5B7AC5B0 = { isa = PBXBuildFile; fileRef = DF6CAC67C0F2D379BDA03062; }; - FA01B3EABA192AE041D4FE4D = { isa = PBXBuildFile; fileRef = CFAECB6551F48A1695DEC243; }; - 43047D78351C2D7047F4F81E = { isa = PBXBuildFile; fileRef = 0AD73B8EA0D60D9927B36624; }; - 5BF44F954E56B7C2DD15EAEA = { isa = PBXBuildFile; fileRef = 18B170E96511BBA1019C66F8; }; - B14EB5F3829CA26DA906D5C0 = { isa = PBXBuildFile; fileRef = 8D2DE1F3CB15D003C90042E7; }; - D75943C2812EA68CA74D9FDA = { isa = PBXBuildFile; fileRef = CEF91E0C9CBB3EBFF9500FDA; }; - 6DEA630BFFF638BBBC8FDC00 = { isa = PBXBuildFile; fileRef = E3C548295935D26121D5D823; }; - 708060ED04ADF4E4FB8E2171 = { isa = PBXBuildFile; fileRef = EAFD8FAF365DFB32DC42D0E7; }; - 12E3CC31875A202D6B30F778 = { isa = PBXBuildFile; fileRef = E9E692847C14AD33CD5FB40B; }; - CF51988743ED2CD823DFE0B5 = { isa = PBXBuildFile; fileRef = 7AE9331938549244E27A5D0E; }; - 4AAFC135B170CF02A40F0D51 = { isa = PBXBuildFile; fileRef = 4CBD301A08E9C3762F861FC3; }; - 659D9CD58B6914EB420E6AEC = { isa = PBXBuildFile; fileRef = 31D985CB8646B78460E9D5A7; }; - 55737E2F1817DE642AA7DA05 = { isa = PBXBuildFile; fileRef = 1617348BBF5D103619D76911; }; - 6D2C50B0A69855A7F8C062E7 = { isa = PBXBuildFile; fileRef = B80F8CD026033ACCCE11A1A4; }; - 70EE7A1273945B62B013DB43 = { isa = PBXBuildFile; fileRef = AE68ECB6E063BD8D4984C0B3; }; - 9DF800566462E24A14246EAE = { isa = PBXBuildFile; fileRef = 843A7B398E9411F0AF28D65D; }; - 89F0DA39878F8A41E60B8C67 = { isa = PBXBuildFile; fileRef = 9CF077D3ED7B7B56F351AAF6; }; - 12E1174518BE1063E506CE5C = { isa = PBXBuildFile; fileRef = E594F70DC2F292FF1EF65CB6; }; - EC0B67A801316FBA35A04356 = { isa = PBXBuildFile; fileRef = E2D07ED5E1A4A460E0DEF59C; }; - 86EDB250B9F5C8FF3045ADEB = { isa = PBXBuildFile; fileRef = 1F2CFBF13ADCA05C0DC2D7D4; }; - 8F7CC7DDA1E07A392CAD82A3 = { isa = PBXBuildFile; fileRef = C818B558D6D5B62A80621281; }; - 621B7B0B518E63E69122C13E = { isa = PBXBuildFile; fileRef = D0D9267E200BD462361810F7; }; - 97982824572C18827047D92A = { isa = PBXBuildFile; fileRef = E13F33E386E1A0D5FC546521; }; - 927E7250FCE62E838599DF83 = { isa = PBXBuildFile; fileRef = 621B3A4B154182F69DDE2989; }; - 9AE6891C35CE161CB1707B4B = { isa = PBXBuildFile; fileRef = 2FFF9AFE4BD9437CE096E52B; }; - 06994A713C38F415C4E8A009 = { isa = PBXBuildFile; fileRef = 18EE6576A9ED098632CE5155; }; - 98F737B7459895BFCDC7965E = { isa = PBXBuildFile; fileRef = 8B1C747E63EEF036AD9AF3D8; }; - 7033A0968B1C81A821CCC296 = { isa = PBXBuildFile; fileRef = 1C3D15546065C1A9AA5AA0C6; }; - 14E5A383C70731C60911E698 = { isa = PBXBuildFile; fileRef = BA415BD77DF4B2F4760D1387; }; - 3A10CF09C41F8F55B7529E68 = { isa = PBXBuildFile; fileRef = 6930E651AEE97FD47E185EC9; }; - 5482BFF6CAD3B6CDFB09FBA1 = { isa = PBXBuildFile; fileRef = E927E4A58A84B21AA6B38A44; }; - FC3299637EACD8B5CBEC391F = { isa = PBXBuildFile; fileRef = 09AE2C7E2573204A7A35452B; }; - 5C245C1A77B96A1425323A1C = { isa = PBXBuildFile; fileRef = 9846D4523B3425BBB04107EE; }; - 05DFD3AF416CA6FDDDDC4C74 = { isa = PBXBuildFile; fileRef = F750738F398054AB38250780; }; - 78DEB64D3F38269C62EB1C7F = { isa = PBXBuildFile; fileRef = A3CB18F915377AC3FFA2E5F4; }; - DA5DA96B9D1A26342D9278B6 = { isa = PBXBuildFile; fileRef = 04F48B09426293224576DA9A; }; - CA49EF43B1478B146ADBBF62 = { isa = PBXBuildFile; fileRef = 346CC505FAFEE9451040108D; }; - FE6F6A4946B7E4F6C9F44C4A = { isa = PBXBuildFile; fileRef = ADC16C18C8237A7F8E35E37A; }; - 28254F1E6E686CF6F29AE56A = { isa = PBXBuildFile; fileRef = 0D3FA24FF38399E0EDA80860; }; - 9EA7FEF4CAD2BF46DD3596DA = { isa = PBXBuildFile; fileRef = 7330A9643F50DE8BEACDBB61; }; - D1400B3D9D07FA9E8BAA21CB = { isa = PBXBuildFile; fileRef = 1BC6C010045A06BDB4C684F6; }; - 716823F3B5437A20FCADA50E = { isa = PBXBuildFile; fileRef = 71B6CE03D6DB07BB293C8206; }; - 7CAB8DEBF6B93C845AEF11E5 = { isa = PBXBuildFile; fileRef = 3CE16163A43A6E67428385EE; }; - BBE24BE654237ACD381A97E4 = { isa = PBXBuildFile; fileRef = 6BB68B37C7B0BB4DA8326647; }; - 6F38AFBC749040844076FD4F = { isa = PBXBuildFile; fileRef = 76E073B2A3F59A3ACD20CC87; }; - B35BFCD19569A9F91A3CCCF5 = { isa = PBXBuildFile; fileRef = A4E66D702028A22D8157241C; }; - 7C7B33BC2E2F245C8AFC9879 = { isa = PBXBuildFile; fileRef = 53EB02EEDF5E7971EAB9E795; }; - 110285CA29B28DDC018D2BF0 = { isa = PBXBuildFile; fileRef = 37E48B8F8AD2BC448E5935C7; }; - ECF05C68A4DF71A10F8E8BA4 = { isa = PBXBuildFile; fileRef = D317D4B5BA40A5754EE56F47; }; - 50CE14D31986BA1BC81B0869 = { isa = PBXBuildFile; fileRef = BC209F6862D5923B8F9E3080; }; - E421EC41CB492F58BF1D9C4E = { isa = PBXBuildFile; fileRef = B60FE8BFA252E3EF2D60B77A; }; - E3CDB77EF18430879925E6A3 = { isa = PBXBuildFile; fileRef = D3B56583D4F60069296DB959; }; - 55E5B76FB1649B60DBE16B89 = { isa = PBXBuildFile; fileRef = B1DEB4E0BBFE7E2D052165BD; }; - 6D1A45ED50BAFAE4F4E403AC = { isa = PBXBuildFile; fileRef = 102BAE57AAA43A7685FCBD9A; }; - 70D519927F38B21BE572201A = { isa = PBXBuildFile; fileRef = 730CAA344708954DE271072C; }; - E4EFC5F8828526CE4518F1E6 = { isa = PBXBuildFile; fileRef = D54308F25AEE3110A166F2BE; }; - 835F7FDCAD027B4E96AB407C = { isa = PBXBuildFile; fileRef = 9A9D8C524A070162517620E5; }; - D027C0131892DA25CE716DDE = { isa = PBXBuildFile; fileRef = CA1B41922D8094982F967DBD; }; - A65EBA33900ED91BE522DBF7 = { isa = PBXBuildFile; fileRef = 29DFAA512171B967D687A945; }; - 0D91D36C2195315FE534F304 = { isa = PBXBuildFile; fileRef = A418FC3BDDBF1CE9F2903490; }; - A1E82F70796B8611D7323247 = { isa = PBXBuildFile; fileRef = 949854EDE6B5B16CEFB6108F; }; - BC1856E0B20406DDCE5EBF94 = { isa = PBXBuildFile; fileRef = 8A67B45A2BA1D19D1AC43315; }; - FF3A28F88174E10CB478931E = { isa = PBXBuildFile; fileRef = 912C419859C9C56BC96AA6FB; }; - C39AE37828718E9A45589A24 = { isa = PBXBuildFile; fileRef = 5ABC6616473BA4791AA8101E; }; - 4400B0595B35F919291C1A01 = { isa = PBXBuildFile; fileRef = 29A79478AE8567250972ED43; }; - BB1DAC0CA8D7B3DEEDEE76C6 = { isa = PBXBuildFile; fileRef = 7F5A271EAB78C7CF8B2341DE; }; - 56F347211337C9229BA06AA7 = { isa = PBXBuildFile; fileRef = A00C6593BFBFA76043BC0C06; }; - 75EAEC54BA3A8BD7F317C7E4 = { isa = PBXBuildFile; fileRef = F1A33029252D29A6ADF171B0; }; - 5FFFA4B8857D64FE36B4B125 = { isa = PBXBuildFile; fileRef = B1E8FF009812F29C2620E6BB; }; - 1D406F33F6B9FE7F92A71438 = { isa = PBXBuildFile; fileRef = 921B616E2229AEB6390D2B57; }; - 806FF2617B7CC21609927A11 = { isa = PBXBuildFile; fileRef = 07191E1A9805FA6E6F253FF6; }; - 9AA76460DA7D34CE6A69E2B1 = { isa = PBXBuildFile; fileRef = 45E5EE9E0173683D721FABDA; }; - 4E81BC4A50CF1883F529E152 = { isa = PBXBuildFile; fileRef = F8FCCCE06D31FEF697FCD80D; }; - 8FBB6BF0C5406E1BA481CFEF = { isa = PBXBuildFile; fileRef = A6AD7357F905309D1B461EB7; }; - F5F3F25D9F377128DC74D95B = { isa = PBXBuildFile; fileRef = FF046140CCF1EDB0DFF80178; }; - C64A2BF05224582134872415 = { isa = PBXBuildFile; fileRef = A95F42C5CB0C2E5052B31568; }; - 0A9C9486A6B31F21B1472D2B = { isa = PBXBuildFile; fileRef = A31221E2A50CCE9DF06B5F4B; }; - ED9F9A6CB4F8BB7FEA5384B7 = { isa = PBXBuildFile; fileRef = 3D8B0E86C98E2EE49AE868C8; }; - DE0BAD16BD5A6568EB4D228B = { isa = PBXBuildFile; fileRef = B116FEC4D544DB8E38CB571E; }; - AF6FEC311B9FDA112CEEBE03 = { isa = PBXBuildFile; fileRef = F1F65C9E7394E04E073A57A4; }; - 3795ECCE9D98F872F5BCAE64 = { isa = PBXBuildFile; fileRef = 993C90B10202DA78FA31CC58; }; - 723CFE5184B20B12ECABEB41 = { isa = PBXBuildFile; fileRef = 079CFB5DEF6F2B71E2910A22; }; - DB6098F004F6D7F19605002E = { isa = PBXBuildFile; fileRef = 143F36BCDE7A65EBA33900ED; }; - 757AC60B8BA481E592FFE6FF = { isa = PBXBuildFile; fileRef = F2C653BA4552E6838DFA4F87; }; - FC659F15D298558D9553B643 = { isa = PBXBuildFile; fileRef = D41423657626ACA672A9DED9; }; - C090ACD462D9431C8B64CAD1 = { isa = PBXBuildFile; fileRef = FD004BDDCEDB7E324983F70C; }; - D894FBF1CF62C5F126213616 = { isa = PBXBuildFile; fileRef = B92ACF027E63D1C788DEC893; }; - 3D80F7AE3D65EE0BB607F252 = { isa = PBXBuildFile; fileRef = 218D7D73C086866E587FFD01; }; - 2F33C392A0DD205A865955DE = { isa = PBXBuildFile; fileRef = 1DDE0A8E4C5857715D9B5FAE; }; - 36615B7CB2BE96B624C4ADC0 = { isa = PBXBuildFile; fileRef = 6AACD2FD239E39F87B666C6F; }; - 4F2AAD8318402F8C23A9EA54 = { isa = PBXBuildFile; fileRef = 9E4B3BAB9BDB06B60D28DF48; }; - E6971F06B78AE76C35E1A19C = { isa = PBXBuildFile; fileRef = 3D74B30C63465C32E26D8E33; }; - 6629D535AE1ABE35A0D53C69 = { isa = PBXBuildFile; fileRef = 944BC51C440C167C5B2A23E3; }; - DD4599D0A8117B025B477DE1 = { isa = PBXBuildFile; fileRef = 067D84F9291770240D1AB5B4; }; - E064E329741F36C329989203 = { isa = PBXBuildFile; fileRef = 441257DD380138C03568FCBD; }; - 61E659ADBF9D832ED8F24540 = { isa = PBXBuildFile; fileRef = 2886656DF7ACC9DDC888827F; }; - 9379C833B875207E5DFC5A3F = { isa = PBXBuildFile; fileRef = 82DFF1BD3665DC32672FCCE8; }; - F1A6C2E3226F87860BFC4EBC = { isa = PBXBuildFile; fileRef = D39C0B853C3EBBBD11E7C71E; }; - 144872E56AED1981C0973B24 = { isa = PBXBuildFile; fileRef = D31704DAB806B6AF3ED52DC7; }; - 95648DF5676EBEF57009D09A = { isa = PBXBuildFile; fileRef = 243EF1A31A779413BC2D5B98; }; - 2FE59D80851A0A392EF2F923 = { isa = PBXBuildFile; fileRef = 36BB6DDF702EC9B3DAC851FF; }; - 621D2E6CDA267030405166C2 = { isa = PBXBuildFile; fileRef = 9DA988F1D7CE29E0DFED7EF0; }; - 90347B7C32ACE8A11FC1B708 = { isa = PBXBuildFile; fileRef = 072D77C3834B1B3FB77F277B; }; - FAC87D81FE5168E37645A113 = { isa = PBXBuildFile; fileRef = 1C3FFBA02AE51EDD72A6250B; }; - E5BB4B5EBFE206E09D0E6E10 = { isa = PBXBuildFile; fileRef = C45E7E6B6E45DEFBF80940DD; }; - 1906C642BF6CA67821512855 = { isa = PBXBuildFile; fileRef = ECCBF2452804ECB2D5B4BC50; }; - 6F41A81F269BCBB912C6AFBC = { isa = PBXBuildFile; fileRef = E2C948680009D1744CEDBC25; }; - 7BB45CEB3B0913F98FC817F5 = { isa = PBXBuildFile; fileRef = 0984A4BA00D6AAFB463657F4; }; - F41D6061AD873C619D7436FB = { isa = PBXBuildFile; fileRef = 3451124EC2809C9BB591DF93; }; - 1FC0972EFBE39C7CDEB73A3D = { isa = PBXBuildFile; fileRef = 84311C1F5A8ACC8DF4D6FF34; }; - E63E64BFF5FDCEF5B53AE304 = { isa = PBXBuildFile; fileRef = DED871B1C7458B15DE7C9234; }; - E162F83B5F038092E2C70FC0 = { isa = PBXBuildFile; fileRef = 11F1658A055C45FE824FD2DB; }; - 710BF477DE534CF18BD68959 = { isa = PBXBuildFile; fileRef = 4C3C3AFC3D97C1378B7D7435; }; - E5DA150E966B948C4CB4EFDB = { isa = PBXBuildFile; fileRef = 0A20E7E561633610A76A34AB; }; - E96B477EB51FC152AC2EA6BD = { isa = PBXBuildFile; fileRef = 9C1D5CDA61FB51F657DA8B22; }; - CF36EF39EEAB7A4744C5D310 = { isa = PBXBuildFile; fileRef = 3C8C1AAF32DFECB89EB83271; }; - 372B6FF28C49018F5191C517 = { isa = PBXBuildFile; fileRef = 1317F0BE5EC80371F744967B; }; - D9AAB4AE220010CD526C87D2 = { isa = PBXBuildFile; fileRef = A34C0E63D41CFF5E55FD1D9E; }; - C732ADB05901619B14F1D6BB = { isa = PBXBuildFile; fileRef = CC04F253CB70B20B774801A9; }; - 075D5995E41FDD670ED35E17 = { isa = PBXBuildFile; fileRef = A5AAF4475138358F33D4904A; }; - BBE02E8719411C8A7D43A401 = { isa = PBXBuildFile; fileRef = 8AEF18EE9B12D4677F96B709; }; - 35E3B9684ED968BAC0BC8021 = { isa = PBXBuildFile; fileRef = 2FFDC7636EFC2D7F74590A31; }; - 736AC4A9DA6515B92644FA02 = { isa = PBXBuildFile; fileRef = 929FEA5458430B7AE23BBB46; }; - DFFBADCBC9C7E31B391BA560 = { isa = PBXBuildFile; fileRef = 090907E4FE95EE2B11C1A0E1; }; - A24A946371D566E02BCC95A5 = { isa = PBXBuildFile; fileRef = 2E4A5F7128313C23AD0356F7; }; - D390CCB01BD9BD132F04E0A6 = { isa = PBXBuildFile; fileRef = 87E57C8F3448D615271CD9F6; }; - 26E2FB6533B5700FA9780E00 = { isa = PBXBuildFile; fileRef = D7772BC5E4E455AE2916A87D; }; - AF5593DEC14D551C38CCB50D = { isa = PBXBuildFile; fileRef = 6C33842C52B61407CACCA858; }; - 0B830401EA0E883CCAAAC696 = { isa = PBXBuildFile; fileRef = A24990B395323FBAC0BEFB5A; }; - 3897B36CC1D89C5755CE1B90 = { isa = PBXBuildFile; fileRef = EF18D0073BE50E572ADD9A1C; }; - C55B00378E784DE4B428E934 = { isa = PBXBuildFile; fileRef = D36EFC4421056277BA87387E; }; - 82A9E0388C9BF3A698DCEF69 = { isa = PBXBuildFile; fileRef = 41AF663E626B8F6D319B9966; }; - 7F6749BFCF2F134468825D45 = { isa = PBXBuildFile; fileRef = 3EC800323255128D69539BAE; }; - 277CF246D5EE48868E38E625 = { isa = PBXBuildFile; fileRef = B7251E779500BA77F5522CC7; }; - 4D285D9D3F5955F2FD574D04 = { isa = PBXBuildFile; fileRef = EF50EEDCAB08F842AB8DE6DA; }; - 30F9B53BD00228406F6477DF = { isa = PBXBuildFile; fileRef = 2E03ADF975A126C1F2F7B667; }; - 759633D5CDB35874FD37DD7F = { isa = PBXBuildFile; fileRef = ED3ED8389001D55FBDCF1087; }; - E0F309D93E9A7F0CC71C4503 = { isa = PBXBuildFile; fileRef = 835CC2A1E67E7B19E41F8FBD; }; - F246AADF8E531BC2244A1D38 = { isa = PBXBuildFile; fileRef = FF052647D2EFA985D05C8E83; }; - F78940DAEB8BE98A9AA4B0BE = { isa = PBXBuildFile; fileRef = 504730C9B9F60192C2577979; }; - 00FE118356919D0BA97AE853 = { isa = PBXBuildFile; fileRef = 85B7BCACB40E02815844F71D; }; - 18D8A96CCD34E41A5E162AD5 = { isa = PBXBuildFile; fileRef = A54BC72C899A2AF82E1E37F8; }; - CEB8A9B9A37EBBA79A6478D4 = { isa = PBXBuildFile; fileRef = 582DCC2F948F1DEA0D450B0D; }; - D6D48B2CC53FAE2BD126B0DE = { isa = PBXBuildFile; fileRef = E0694CD7C814AA99E5A84799; }; - C384A89F786FDE8426F657D5 = { isa = PBXBuildFile; fileRef = 62967D33232C5A86D88084B4; }; - 3D324F656EEF8F1FB2B437AC = { isa = PBXBuildFile; fileRef = C17613C202D8E1C366F21D3C; }; - 645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; }; - 38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; }; - E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; }; - 60E1742796432D042C59B9B3 = { isa = PBXBuildFile; fileRef = BA17B023595ECD8166A231D1; }; - B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; }; - EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; }; - 803FFCA3DAC0C004A80143B4 = { isa = PBXBuildFile; fileRef = 91CB423DBC5F3CBEDD9CF2EF; }; - F0556B3AD9D388177E26B90D = { isa = PBXBuildFile; fileRef = AF66A9951377E2D04C54CADD; }; - 0558FFF11AED944C6B3E5FB5 = { isa = PBXBuildFile; fileRef = 2ED8CC539A9D9BE611F67A9A; }; - CF73FAC91E319C464F07C966 = { isa = PBXBuildFile; fileRef = 29BC53FEE9BC27F44534C909; }; - B6D3EDA0F2E3516F3922F23F = { isa = PBXBuildFile; fileRef = 312F208B501E0D7764C6B613; }; - E7C9FAA5F8A4AEDAD8A8CC1D = { isa = PBXBuildFile; fileRef = 9D3F1BAB1D48DDECB9F35916; }; - 084C9F2D4F78134CB1EFE676 = { isa = PBXBuildFile; fileRef = 1B170F70AF8AA0A39074F671; }; - 4DAD08CD3A688747C9CA237B = { isa = PBXBuildFile; fileRef = 0F1C5770B363EF7DF64A876A; }; - 60FE8BFA252E3EF2D60B77AD = { isa = PBXBuildFile; fileRef = 6619D27E74F623B1E8CE8F71; }; - C592CC923C5495467EF05D48 = { isa = PBXBuildFile; fileRef = EAF0F2EAB230F7539B91A7FB; }; - E12096E92D3D43DD7926E063 = { isa = PBXBuildFile; fileRef = 7904C2A3C52959748C46D54F; }; - F4567E6C9ABFB13FF24797DE = { isa = PBXBuildFile; fileRef = 94D3EBE6E0D9AFE555226A88; }; - 0B0996F97D926609C23E5F90 = { isa = PBXBuildFile; fileRef = 67F4F9E1F6B9B4D1C1A668E5; }; - FB5900FB9E071EDC2542B846 = { isa = PBXBuildFile; fileRef = 6E4DF7338364956EF42C4493; }; - EDE605169F0AF038FE5097B3 = { isa = PBXBuildFile; fileRef = 3FD3FA96955DD648494E76A4; }; - D78C3DA6505CE8CC3F17C070 = { isa = PBXBuildFile; fileRef = 692A95B19D9C32094A1E07B9; }; - B23EE989379EB2F075D6F587 = { isa = PBXBuildFile; fileRef = 058702E8697667AEA38254C1; }; - ED7C62DE10250FCC07CF17B2 = { isa = PBXBuildFile; fileRef = 6FFB38088C11BAE68368A3E7; }; - 1535D49C24E8A9FA5F6DCF6E = { isa = PBXBuildFile; fileRef = 59B2FFF817679AEA84375E1B; }; - BBCA4C01CEF1EDA75625D6DC = { isa = PBXBuildFile; fileRef = D9B3C04F8EB4228DD59002E7; }; - 136FB9588C834E6F4A1EEBFB = { isa = PBXBuildFile; fileRef = 17C3AF03FF7AE88AE0C73311; }; - 274415D1C0AE9BF56FAAE791 = { isa = PBXBuildFile; fileRef = 4035C867821E9B5887AA25FB; }; - CBAD975785BD26A0DA9417B6 = { isa = PBXBuildFile; fileRef = EFA58F646B69B227AEF14140; }; - 2A8F78D412AC7EC0C2998A1A = { isa = PBXBuildFile; fileRef = 06B06C420341B005DFF951D2; }; - 2DD969525DEF4AD408E9BB59 = { isa = PBXBuildFile; fileRef = AD7A1C2C82EE714EBDD52EFC; }; - 059B694C912BE81023D5240D = { isa = PBXBuildFile; fileRef = D4211E697F43821CDBCE4F24; }; - 4387EB80C5795FACBE753A7F = { isa = PBXBuildFile; fileRef = BE5DCD603F7E21A1F66CDF33; }; - B2C41D39730EB3AC75D55949 = { isa = PBXBuildFile; fileRef = AE363A1FE2F403F7CE2FDF7F; }; - F045E8F977C00016F6EBB1B7 = { isa = PBXBuildFile; fileRef = A10A63E2098A85B5CA9265B1; }; - B89FE5AB44DDEBCC050F8D7A = { isa = PBXBuildFile; fileRef = 3F60563DEC7941B88163A50E; }; - 2EA320797BD7D2137F133681 = { isa = PBXBuildFile; fileRef = 39C0783ED515AAA82F9CA37F; }; - 1008A8A446B9BCADBB853056 = { isa = PBXBuildFile; fileRef = B3F5E7A708350F72E7C77153; }; - 0FB1AED6E5AB5CEA95E70950 = { isa = PBXBuildFile; fileRef = BBE79494A818EF83F52A4C7B; }; - 103A3B11DFE35E9088ECE933 = { isa = PBXBuildFile; fileRef = AE5A7EC70F288E7EA682081D; }; - DAC7AB8D9EA70D99A1C1287E = { isa = PBXBuildFile; fileRef = 7A039686F4F852E26936CA53; }; - B3D08D9E24CC369E4838E6FF = { isa = PBXBuildFile; fileRef = 868E43A4BB7015579789E4F8; }; - 15932C8039A59B0431FBB93E = { isa = PBXBuildFile; fileRef = D99C977ACCD09262F06F6624; }; - 3BBC410C79D2F53D32ED7466 = { isa = PBXBuildFile; fileRef = AD655AA04981173716022D8D; }; - 88A4D0443DFD6BA1A1B32AB9 = { isa = PBXBuildFile; fileRef = 21B2342B75097AB93CFF7E97; }; - 06F1BEB9AB97F33305B8F816 = { isa = PBXBuildFile; fileRef = 7A51D8B81F390A4CABF25C73; }; - 6CB4FA2797FBEA5C4C342EED = { isa = PBXBuildFile; fileRef = 76DB94CC776536F5D05B9445; }; - 150C16E65ADC7E3359C88510 = { isa = PBXBuildFile; fileRef = AA698DD5A82F91CF84A29666; }; - 9C547F4DC4FC50F9C3382ACE = { isa = PBXBuildFile; fileRef = FABA493FEE07E6373DD8EB41; }; - 5D1B2A14239B0351261D832E = { isa = PBXBuildFile; fileRef = 595EBA8A689DA899986314D8; }; - 0AFD6B2B694302A62C7C9DD1 = { isa = PBXBuildFile; fileRef = EACFC12E665283EB7926E9EC; }; - 3CE21931FC5A59ED7C23144B = { isa = PBXBuildFile; fileRef = BAE5CE629DF9D286293E616F; }; - DB7E8E984F9BEF4C84B887B1 = { isa = PBXBuildFile; fileRef = D4C499CB25F043FE667BC5E1; }; - 07645D91AFD4F8512ECD48ED = { isa = PBXBuildFile; fileRef = 4366712140FBEBEDBCBDCE9B; }; - D132232A4A404A7C08D10928 = { isa = PBXBuildFile; fileRef = E0A2C24581917DD090186333; }; - 83B488D64AB9828CFFBC55A9 = { isa = PBXBuildFile; fileRef = 3F3D429025A92B6F0FB6F8EF; }; - 8305C5E01476E99FBB1A0315 = { isa = PBXBuildFile; fileRef = 275F2210628D9E9968B1B258; }; - FF613B604C2333F4A4ACEDDA = { isa = PBXBuildFile; fileRef = 5DEA687D261C59CBABB782E9; }; - CECE3D66B19693E41850C30D = { isa = PBXBuildFile; fileRef = 5593DEC14D551C38CCB50D70; }; - DF419EBD05F13A0D2073D47A = { isa = PBXBuildFile; fileRef = B8E47498C7C6D5ECF41F0EAB; }; - C9FB7884928BF0D6140AF881 = { isa = PBXBuildFile; fileRef = 9DC2C10B16A645EEB82220D8; }; - 5C9628DB3E0C0BA8809AE45D = { isa = PBXBuildFile; fileRef = EE5F18DF1DED7617C4A41FF3; }; - 724DA2BCA5ABC5772604C3B4 = { isa = PBXBuildFile; fileRef = B2BCE9DDC8F0F54CA3D913E7; }; - 035B1F7B1505ABF24455690E = { isa = PBXBuildFile; fileRef = 5249EFBE3B22E6FC1A7B6D42; }; - 3C71EA297D7418FEBB52F9DD = { isa = PBXBuildFile; fileRef = A257B76FCE9D594EAD41414C; }; - 7A86E411B55E15DA7AF1FE67 = { isa = PBXBuildFile; fileRef = 8280AA34B23B4D366711A9E7; }; - BD86381924AE45021246ABA3 = { isa = PBXBuildFile; fileRef = C9561A66310DAD5EEB4A9462; }; - 306AB64E97A05B800349E7E2 = { isa = PBXBuildFile; fileRef = B62991F8AEE7327BA8A5070F; }; - E7A5418175B23C794421441C = { isa = PBXBuildFile; fileRef = 013F753639A6350C8DC602AD; }; - 51F5844EAE455D51BDB17228 = { isa = PBXBuildFile; fileRef = 72524FE185FF48DC1F954341; }; - C99F35ABEC13F58C27C1D303 = { isa = PBXBuildFile; fileRef = BF5307F364AC9250D8625168; }; - 3D9B5EDBECAA680B0A067F5C = { isa = PBXBuildFile; fileRef = AA4823F2F2A78C43D7A039D0; }; - 724B03672FC7862B671969BC = { isa = PBXBuildFile; fileRef = 87A5A064CC3CD55BA5D7617D; }; - 8B31099030792C554BD51211 = { isa = PBXBuildFile; fileRef = 641638A0466CEC1BDEAFB476; }; - D04EEEC7EAE7C806E95ED41C = { isa = PBXBuildFile; fileRef = 7DB37383434F45D8A7B674C3; }; - 7EA440527972D6B7322EC307 = { isa = PBXBuildFile; fileRef = CB16B2438EDCC10C499645E6; }; - CB9FE1DA1AFE5FBA9FF06061 = { isa = PBXBuildFile; fileRef = BEB35C6173793C1CB7AB6311; }; - 26454A5DB5BAFD7901F17DA7 = { isa = PBXBuildFile; fileRef = BA58B49B820A47F6F55CDACB; }; - F41B46F970BA78762DCE67D1 = { isa = PBXBuildFile; fileRef = 930E58E13FC92BF70AC20EEF; }; - B7A8CF6F889840BED05C8C27 = { isa = PBXBuildFile; fileRef = 9113CDD122D2790E147A8CF5; }; - 3EBF23F390FC0227260CF7CB = { isa = PBXBuildFile; fileRef = EE56999A85AF18015C540183; }; - 1906FDEEDAE61C88A59BC271 = { isa = PBXBuildFile; fileRef = 189F69E0B926C73B654D6951; }; - F51142C2CF336FC4A4FAACC6 = { isa = PBXBuildFile; fileRef = AE9A7A0775FA806126A74E16; }; - 1021132FAC7870AC18C040DE = { isa = PBXBuildFile; fileRef = 4F5D1AA83981FBCD33CE234F; }; - 05C8FA821C64B69BFF8FAF2C = { isa = PBXBuildFile; fileRef = E6A7BFB0FCD17A9B133CDFA4; }; - 5E330E219B2D2944BCE95174 = { isa = PBXBuildFile; fileRef = FE6E3F911679B0D7547577A3; }; - 275FBC09BE58E708A73B88C1 = { isa = PBXBuildFile; fileRef = 8BCE60CBC91DBAAB089958A1; }; - 6DA99BA218FB45568258841C = { isa = PBXBuildFile; fileRef = 3F11593DC3A168A52FCC2DD9; }; - 32F1C95EDEE7722797B8CEE8 = { isa = PBXBuildFile; fileRef = FC2C82760E717788B5A6E691; }; - 029A0E8B44DC17211722677D = { isa = PBXBuildFile; fileRef = 42059626955C547DA6AD3196; }; - 4B4E17467BC41E2166549998 = { isa = PBXBuildFile; fileRef = 8F383A785B4876198C5B0194; }; - 9686F29C29D1C26E353DE68A = { isa = PBXBuildFile; fileRef = F3B50EE3939E9F16D13C3C7C; }; - 79B4C2F1C0CF592ACE8093C0 = { isa = PBXBuildFile; fileRef = 3A37CD82212075940421CE4F; }; - 88A87D28B3809665F28DC16E = { isa = PBXBuildFile; fileRef = 7F3EF672D07ECE3E13AAF267; }; - 6BDBEFD97E643E5BB27637FF = { isa = PBXBuildFile; fileRef = 249959E338D7750E56A9F2F8; }; - BC3C22F5350ED7433D303A04 = { isa = PBXBuildFile; fileRef = 58B70C726D186B4E770300BC; }; - 0B41EC4D7839F8CBCB8F9A0D = { isa = PBXBuildFile; fileRef = DCD09B6EF4A4A109DE01F152; }; - B420CD4B589C08EAFA6E3DA4 = { isa = PBXBuildFile; fileRef = 7527A5E8F4F39581159D3E5B; }; - D4A05D7CA67B6F0527C9BD81 = { isa = PBXBuildFile; fileRef = 1DBF9DAAD0690CB2CA4E9960; }; - 0D7547577A31512EDCEDC42C = { isa = PBXBuildFile; fileRef = BA561E64C6400CFB1DE013F6; }; - E2FDC7D3E3DC4C1423FA0C5B = { isa = PBXBuildFile; fileRef = 061B492EABD6B1C995D581A8; }; - A46B0025A68136ED993E0D85 = { isa = PBXBuildFile; fileRef = 50159A5B7A552A6C1EB557F3; }; - B99678E919BF547A3A3F5D6E = { isa = PBXBuildFile; fileRef = CDA5FCC51F6C1E84D7DC3274; }; - 5B714CDD0082419BFED7D2D4 = { isa = PBXBuildFile; fileRef = B14735381ADB00741166E330; }; - 2DD498313DA488A5063C4C1B = { isa = PBXBuildFile; fileRef = 09AE0882D58BE1715219556A; }; - 5B33FFE120A47EF42CBC05E4 = { isa = PBXBuildFile; fileRef = 0EB41C0AB478EE02D8C851F9; }; - 552D45FB250C62F86CD02A57 = { isa = PBXBuildFile; fileRef = FBE07C5CC622A5D36BDAB9E1; }; - 0E8E9829E95E32163F45482D = { isa = PBXBuildFile; fileRef = B07C853EB60D8D8691BC1B4B; }; - 6801797B247CB3A6890C0AB0 = { isa = PBXBuildFile; fileRef = 5D32C8856093B33438AEB758; }; - B0B82AB2D9B0950F67B11BEA = { isa = PBXBuildFile; fileRef = 8758E6857070D7E5406FDE3F; }; - 379B4A89E5403B57A2009E76 = { isa = PBXBuildFile; fileRef = 8E8BE2F1C182E418BBA6903C; }; - 6ED121D4FEE575408B9612AB = { isa = PBXBuildFile; fileRef = 03B9D3D9042E85BDD691325E; }; - 9ADE436BC62FB84E297C1CA0 = { isa = PBXBuildFile; fileRef = 13C661B79E1E9508512A6B21; }; - 03D534E5B18011C3E03CDD40 = { isa = PBXBuildFile; fileRef = F2F68E50F42BD0F124E89E2C; }; - 06E2ED69E9FAC199D559F276 = { isa = PBXBuildFile; fileRef = 59C46E289F86C80D4341EAA3; }; - 9801CCC32F01818B39CFD88E = { isa = PBXBuildFile; fileRef = FA82460758BDCB2DCCE1EAAA; }; - FE553DDF4F83DABF13DF4A2B = { isa = PBXBuildFile; fileRef = CE06EEED7426AA45C27B629C; }; - 68DB48B0EC9E5E37C6B5281C = { isa = PBXBuildFile; fileRef = 1D74C9567283836ECC70E48B; }; - 96E9017FBE104E9EADC586B1 = { isa = PBXBuildFile; fileRef = 40216CE846A54CE706131A23; }; - BA6C6EF4C88D49C640DA7BF6 = { isa = PBXBuildFile; fileRef = E646726910F110DC34DD1662; }; - 0B124D9CE361014F815A5958 = { isa = PBXBuildFile; fileRef = 9AF9F1C0D766D4F894E4A7B0; }; - C701E3FCB168A3B4A31C4242 = { isa = PBXBuildFile; fileRef = A404CD721E2A0F0CAE9326C5; }; - 04F6D85CCF26A7F6DE589876 = { isa = PBXBuildFile; fileRef = 32B7C3609BDA01AA09740139; }; - 62912A2DA2F01212517938E7 = { isa = PBXBuildFile; fileRef = CEF7210E311274F1DFAB6882; }; - 36D770FCDAC86084A495B96E = { isa = PBXBuildFile; fileRef = 755C440534C0EB494572B3F3; }; - DA2A4714F1A6957A4F2B8D48 = { isa = PBXBuildFile; fileRef = EE855319AF344A05C92580C7; }; - CE9A64287FCEF00DD2BA6AEE = { isa = PBXBuildFile; fileRef = FCD02A40985242A8A6648311; }; - 2AC6F3BFAAA21E21076A9F8D = { isa = PBXBuildFile; fileRef = 76E2084D2148068F9138A816; }; - B8DD4DB0BD1A6B38BBF92413 = { isa = PBXBuildFile; fileRef = 8273A206FB309671284959DD; }; - 1C0B1362E81C8B073BF0DCEC = { isa = PBXBuildFile; fileRef = 644FD6155385BC3AA270FB5D; }; - 63BEC07A51CB8E516B38ECD4 = { isa = PBXBuildFile; fileRef = 4A97C8D2FF6454DDD3AF4BE5; }; - C8F81E843F446868FAD88197 = { isa = PBXBuildFile; fileRef = B507B4A8712A54D7A8C03223; }; - 50D91A2EC0ABF894E612D936 = { isa = PBXBuildFile; fileRef = 23252E4C97AEFAE0C5EEAA77; }; - 82568CF438EF4C950E4A42DF = { isa = PBXBuildFile; fileRef = 81B36E7C56DF1A777AA04F71; }; - B2E9D0C534DDE9F96921A054 = { isa = PBXBuildFile; fileRef = 0EC7DE81A516F4130AC59557; }; - C8D06AE9C68A675A87DC9C99 = { isa = PBXBuildFile; fileRef = 5715BC14D93D61D71206FCB2; }; - FE2999972FE3D6E251DA6653 = { isa = PBXBuildFile; fileRef = 95F21C2733BD5932372E4157; }; - 8B2193898D3465B5995EE98A = { isa = PBXBuildFile; fileRef = 8E78623B2D21CFE68DEC0483; }; - 4FB3EE200AEA14C7218D7034 = { isa = PBXBuildFile; fileRef = 4D60F7F748CF6702D1E45960; }; - 81E79D9217773BF0E39F7812 = { isa = PBXBuildFile; fileRef = EF06213027EA3F7C54EE0F18; }; - 2A360CDF2B5A46B282CEA2C4 = { isa = PBXBuildFile; fileRef = 60F21CB42270ACE2241544A8; }; - 01FD07AB480226E84D52F591 = { isa = PBXBuildFile; fileRef = B4435D42216365FA97651272; }; - D8B9941A1375579D6CE7C1C4 = { isa = PBXBuildFile; fileRef = 599F5C47BB9B5898E0E88CF3; }; - 0DE731ED3EC994B9227C2741 = { isa = PBXBuildFile; fileRef = 4BE2727CCD2CD7603402C8FE; }; - A124FE5709D9324B5BAFFE53 = { isa = PBXBuildFile; fileRef = A618FC3255ECE14EC9259E6B; }; - A84A5CA4654AE87192A6A096 = { isa = PBXBuildFile; fileRef = A59A5DCFCCAAEA79D03C2B27; }; - 55EDB4D9B702B469DB4655C3 = { isa = PBXBuildFile; fileRef = ADE5F12AA5AD969E2C7002B3; }; - 389351359BA78C682E1931A6 = { isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjucedebug.a; sourceTree = "BUILT_PRODUCTS_DIR"; }; - 144F56FCF3DF9EC922765901 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../src/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; - F6A490BA93AC3558E9A6FBB0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../src/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; - CB9766F7A9C612B326D808CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../src/application/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; - 36A407F2BE4A625184B5CCFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../src/application/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4E74130693EE120D905818AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../src/application/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; - 21E1DBFAB3FB75875EA35280 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../src/application/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - EDF52AB382E80530E8FED9A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../src/application/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; - 415BD77DF4B2F4760D138735 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../src/application/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8422E662212FA2082644A942 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../src/application/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; - BA97FEDA576503A21D971F1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../src/application/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; - E03C84620DCB004172C09B28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../src/application/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; - 1AA8BE2D76E153874FB08197 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 05C5C546E12C6422D865D864 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 1F5A667524FB005D872340E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../src/audio/audio_file_formats/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; - 0877D5750D6F21C5231687CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1BBE03BB0D71FEEEA440682B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../src/audio/audio_file_formats/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; - 7D85530D76756C33795ECCE9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 013E8938EE1C6B4F63016B55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 93006D32B18174D9FE0A5E9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 41070806F82EC9C6D1C67689 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; - 9349E14552FEA0371553E808 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 27356F5E93CEA4D472D83D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; - 2AD64F53E12B20011B7A0DB7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8BD38C2507C0F8E28930A4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; - 59597FA0A88A08937801D198 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - AE7F7F0D959C2E3CF5989C88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../src/audio/audio_file_formats/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; - 27C3C51DF2519B519B76E2EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7B34E897026857C84399A09C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; - CB32D4EE59D5CA9DB12F944D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3442FA257104DC3F43E7F870 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; - 203AC66FFB20EAD2E7A594BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - C9F1015CA457A61082398E34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - E00781B15E47C9CB9E94869D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7C06BD13BF7E0097EB0A8D08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - DA868174D4D2059AC1BE7E71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 25B1AC1A6767AAD9E9515A18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 7CF036906034FABB44D2108F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - DB5CAB7BC2973ABFF0867BCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - D5D2FD212300E7D49ED74823 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 87A18C425F53C2098B1D42FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 7AE5295A472723B26537FAEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../src/audio/audio_sources/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 51287E236C749092458BA2DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../src/audio/audio_sources/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; - 4C3258A1978AF3D357D196C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../src/audio/audio_sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - FBB2EEF0E5EC5EB6F89E9066 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../src/audio/audio_sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; - AE9C08108699C71A289462B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../src/audio/audio_sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; - 74AD63909D3EE09D63256A76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../src/audio/audio_sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 67A8F408B1EC63407C9241B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../src/audio/audio_sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; - 5D6E837F124C347B3C1CAE23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - E1EA83B7EF928DC88D069AEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../src/audio/audio_sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 1511366CAD437989DAA30CF2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - EA630BFFF638BBBC8FDC0018 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../src/audio/audio_sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - D86718CE7E5DEF2071AC3D17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 76BB7F75A7F9930ED5A0CDB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../src/audio/audio_sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 9A8053936C35A19B9E98623A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9CB1126A9FBFF1D6D6469AF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../src/audio/audio_sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - C63D6EC0555C13C1B79A6AAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../src/audio/audio_sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - E2A56C23BF2BB466BB273E3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - BE5DB55285441D501FED3C00 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../src/audio/audio_sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 5403C2A4DEE7B9B3B34235F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0F70C4D118AC7625B4C42CD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../src/audio/audio_sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 3988438157D4B75177703F8A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6AC857F51FD805D7BD3EF712 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../src/audio/audio_sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 6841D6AC927D02113F3AEBD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../src/audio/devices/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - E668D9C7FF084E59405A2A9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../src/audio/devices/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; - C7DB1BB9AF7FE0A2AA38D767 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../src/audio/devices/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - 95CA8EE24AFBB1F2F29A5394 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../src/audio/devices/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; - EAFD034BB1721BFBF9A3795E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../src/audio/devices/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; - EFAFC937377A21E9AC0F9776 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../src/audio/devices/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; - 5DB9D903D24646B0C2356A5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../src/audio/dsp/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; - EBA6B46F7B3C11CA3744A4D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../src/audio/dsp/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; - A1D687AE613A8B61EB63923D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../src/audio/dsp/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 812620B53BE820D26A63B65D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../src/audio/dsp/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; - 11C1A96A35A2F03F8C34BD43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../src/audio/dsp/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; - E68EB4BC75216B5B56E3F937 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../src/audio/dsp/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; - EE2259D9768027C2C001EEAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../src/audio/dsp/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; - 2C55CE1674244DB199C3033F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../src/audio/dsp/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; - B457515938E7141D5E79B671 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../src/audio/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0604C2E17F0E0DFEFDA19F8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../src/audio/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; - 891E0B1AD09C0EA44297E0F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../src/audio/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - EBACA038DBB50817BE80E8C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../src/audio/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; - C376B06C58C5D3C972583BBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../src/audio/midi/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; - 0731C60911E6985F51325484 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../src/audio/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; - 062F7ACF5282C5B2D4BF5EE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../src/audio/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; - DF3833AF6E38E55218FDF23F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../src/audio/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; - C627F9E9EC160055D65D81CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../src/audio/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; - 0D3A77572C7256CE4C115FD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../src/audio/midi/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; - A22A0F77C15B1E4A8F2EB42A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../src/audio/midi/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; - 78D29BB5C76CCF7C21EC0DAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../src/audio/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; - DD3886D45B5988B4DAC2D049 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../src/audio/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; - 01712FF0A160032FA1DAA8C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../src/audio/midi/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; - 899BD7E18BE1EF7CDF53784C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../src/audio/midi/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; - 7B88F6B8E3A10CEAD9B0EE88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AU_Wrapper.mm"; path = "../../src/audio/plugin_client/AU/juce_AU_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; }; - 1101E8CB676FDEEF0A89D921 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RTAS_DigiCode_Header.h"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = "SOURCE_ROOT"; }; - F222E5825D83E711C9F1B789 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode1.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = "SOURCE_ROOT"; }; - CEAA2B84462EF0B5026EAB0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode2.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9A3151864FB90A6A4BCCAE9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode3.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = "SOURCE_ROOT"; }; - BCE37F0D994C0ADF2CCFF796 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_RTAS_MacUtilities.mm"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = "SOURCE_ROOT"; }; - F52ECCD6C02108A2D7F672F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_WinUtilities.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = "SOURCE_ROOT"; }; - 833C3F205F05BA4ADC883E53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_Wrapper.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; }; - 69C4FF0DD888BA25477561C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST_Wrapper.cpp"; path = "../../src/audio/plugin_client/VST/juce_VST_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; }; - 37E1FC756833849B8C7C1215 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_VST_Wrapper.mm"; path = "../../src/audio/plugin_client/VST/juce_VST_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; }; - 2741189DF800566462E24A14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StandaloneFilterWindow.cpp"; path = "../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - FAC43251D74E5140740BEF60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandaloneFilterWindow.h"; path = "../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 2E96F55074F4EB74171EE6B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IncludeCharacteristics.h"; path = "../../src/audio/plugin_client/juce_IncludeCharacteristics.h"; sourceTree = "SOURCE_ROOT"; }; - 13F64389F0E25731A98E92CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginHeaders.h"; path = "../../src/audio/plugin_client/juce_PluginHeaders.h"; sourceTree = "SOURCE_ROOT"; }; - 7CDC2FA849B7ED73A2638A11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginHostType.h"; path = "../../src/audio/plugin_client/juce_PluginHostType.h"; sourceTree = "SOURCE_ROOT"; }; - D76BDCCF9E1A1F26A8F578F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 50FAF92038EBD0127900AAA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; - 2073E1A497363200233CD34E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectXPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_DirectXPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - F800E47459B2FE9DEF56F312 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - B4291F2CEEC78CFEDEFC360E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../src/audio/plugin_host/formats/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; - FCBB1DC14311D099809B21F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 723EBD80931754F4DD77DD53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 2EBF36FAAF019B6F811D1C84 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_VSTPluginFormat.mm"; path = "../../src/audio/plugin_host/formats/juce_VSTPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; - 1C8211DFB558D740EF4B173A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../src/audio/plugin_host/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 28534632DF76A1EA837BD0D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../src/audio/plugin_host/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - DA4820727D6DDC75561A262C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../src/audio/plugin_host/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - A6415104D1E3E5CE7031C0C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../src/audio/plugin_host/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; - E5BA7B8913271E935A1DA487 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../src/audio/plugin_host/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; - 3110B983ACE956D6A24F8C8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../src/audio/plugin_host/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; - A3FE51C7DD706F536273AB0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../src/audio/plugin_host/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; - B6E20AE45813C0CA9B1014DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../src/audio/plugin_host/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4AE3A448D79602BE793BB5AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../src/audio/plugin_host/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; - AF47BC3796A74CC15A192E8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../src/audio/plugin_host/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3D170AC8FD8E403C54E08F9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../src/audio/plugin_host/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; - 9C5C0BCB2A298160025B15FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../src/audio/plugin_host/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 08C65C3EB60FE8BFA252E3EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../src/audio/plugin_host/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 4CF107951746567DB63880A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../src/audio/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; - AB554593165FE8C8B40F4447 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../src/audio/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3F260C24341E58745AC5BE79 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../src/audio/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; - BC2A50B0B01128E394E9DE9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../src/audio/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - EC0F8FAA7EACE0D275064D60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../src/audio/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; - D141C024A3F5A6748B0E9ED7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../src/audio/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; - 19C9509EC7DD00DA7443DEFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../src/audio/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; - ABDE16ABC1784B0FD3887A8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../src/audio/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; - 08EBC2152F45FB2B839FCCC1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../src/audio/processors/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 350428D4D70AAB88B2B84790 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../src/audio/processors/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; - 096CF2243648F17E1BF5421B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../src/audio/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - CAD3312170E5DBE8AA8348BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../src/audio/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; - ED5966B95F865C586A3CE08F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../src/audio/synthesisers/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6C6C1C360138D9BD4B27588B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../src/audio/synthesisers/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; - 35668D8EEA19957C6C9AC83A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../src/audio/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9E6C206F95245BCDE38FB2B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../src/audio/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; - 4F22276689685D839BD252EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../src/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9584B84F23A4251755D49213 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../src/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; - 839BE8047CF2F8EBE43ED34F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../src/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; - EDF52FDF87ACD33FE933142C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../src/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; - F77C9170829579FABA5679AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../src/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; - 34C402EF9ADCAD34FB657D43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../src/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; - 7DA9AC75A4D9227C8FC4B2F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../src/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; - 2767E1D082874D301D5D5F43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../src/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; - 9289A1E6B141F24C57FF0927 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../src/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; - 70E5409425A76782B6188B31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../src/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB4A73064B0FC74ECCA19116 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../src/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; - C1913C90ED7BE51E823887CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../src/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; - 9BD379D2F7995BFE0B3E5369 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../src/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; - C8F0F54CA3D913E7B8D559CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../src/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; - D7612CE51ED4F9D3F960F922 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../src/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; - F95BC2FA7861CFF968D661ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../src/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; - 2F5FD1DEFAE549553A8BE3B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../src/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; - 989E03031D341649B4A296F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../src/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; - 1809284DD05B56309D7EA24F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../src/containers/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; - 69F58BF234EDF6328F624E0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../src/containers/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; - 5D27EE211D9BFF6A58C4DC42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../src/containers/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7CABDD863B47D8ADC900A4D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../src/containers/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; - 4DF9D333038A442870668D31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../src/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; - A81B4FC81A75E21E5B96E506 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../src/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; - D66C00E06B06EAD3B5257DD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../src/core/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; - C8441B7B3E4CCD4A257B4BFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../src/core/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; - 92ACFFCCCD1C85A0F8C6F80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../src/core/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; - 4555F03DBD059EEDECEF9F85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../src/core/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; - 63F44EC0485FCA050814967E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../src/core/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; - DF6CAC67C0F2D379BDA03062 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../src/core/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1159C6BB0D33EE8E1A96B083 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../src/core/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; - 8292AE37F99FCC1E5BF63A28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../src/core/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; - CFAECB6551F48A1695DEC243 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../src/core/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; - B4137E4612C1D161894D0D27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../src/core/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; - 0AD73B8EA0D60D9927B36624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../src/core/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; - F51969AF328D2C7D52D7436D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../src/core/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; - C25D6136DF9CE441D6EB4C42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../src/core/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; - CA66415F6EAA172B83755954 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../src/core/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; - 18B170E96511BBA1019C66F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../src/core/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - 45D14EF360BDA1F5692E583D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../src/core/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; - 956A1C30D5FE98DBB154204D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../src/core/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; - 8D2DE1F3CB15D003C90042E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../src/core/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; - 872020C1EC3997ED744BF1BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../src/core/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; - CEF91E0C9CBB3EBFF9500FDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../src/core/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; - 297B664E9AB86DFE7DCAFF22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../src/core/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; - E3C548295935D26121D5D823 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../src/cryptography/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7A4B0E6FD686BCF0B8CC771E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../src/cryptography/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; - EAFD8FAF365DFB32DC42D0E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../src/cryptography/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6E4345FEEB1DC732A16134A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../src/cryptography/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; - E9E692847C14AD33CD5FB40B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../src/cryptography/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; - 22612DBDC6C689B605CC6B48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../src/cryptography/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; - 7AE9331938549244E27A5D0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../src/cryptography/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; - 16335266AFB4D19F25410E1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../src/cryptography/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; - 4CBD301A08E9C3762F861FC3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../src/cryptography/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; - 02CD7BA1750DE36237369F78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../src/cryptography/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; - 31D985CB8646B78460E9D5A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../src/events/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; - 09F7685D1EFF472ECB1F5EF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../src/events/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; - 4EF8BD4BF46C4BCB39F96609 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../src/events/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; - 5EB7BD94A754E88D076D777A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../src/events/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; - 1617348BBF5D103619D76911 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../src/events/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; - 44DB44953945417F76199479 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../src/events/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; - D04B6E43A037F985434B2F5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../src/events/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; - B80F8CD026033ACCCE11A1A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../src/events/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5F454A6B5A82ECE2396C5716 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../src/events/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; - B2D08C8EEE3E22026533D2EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../src/events/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; - AE68ECB6E063BD8D4984C0B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../src/events/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4B935D7360C9F166C80A158D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../src/events/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; - 843A7B398E9411F0AF28D65D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../src/events/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 57DD8EEE88C0D366E0354478 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../src/events/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; - 80633D64E9EFA1433454669B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../src/events/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; - 9CF077D3ED7B7B56F351AAF6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Message.cpp"; path = "../../src/events/juce_Message.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7A1219C6560BDBE2E170D2A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../src/events/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; - E594F70DC2F292FF1EF65CB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../src/events/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - BE17B7279B4BF40E51C12F47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../src/events/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; - E2D07ED5E1A4A460E0DEF59C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../src/events/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2EBDE3FF4894D72C310C9F84 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../src/events/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; - 1F2CFBF13ADCA05C0DC2D7D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../src/events/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; - C51E9973A6FAB635081B9FDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../src/events/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; - C818B558D6D5B62A80621281 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../src/events/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 32C0312A5D246D41AAD98A11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../src/events/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; - D0D9267E200BD462361810F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../src/gui/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; - 17A21B31FD41D00A4088FADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../src/gui/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; - E13F33E386E1A0D5FC546521 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../src/gui/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - A0D6308567AAA50D1163D9D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../src/gui/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; - 621B3A4B154182F69DDE2989 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../src/gui/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; - A1F58C1A972425C2B43DD1B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../src/gui/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; - 2FFF9AFE4BD9437CE096E52B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../src/gui/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 41C8C324F13ADA3423FC3B0F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../src/gui/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; - 18EE6576A9ED098632CE5155 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../src/gui/components/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - EB182DC4124FEFFFC87D12C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../src/gui/components/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; - 8B1C747E63EEF036AD9AF3D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../src/gui/components/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; - ECA97019B42083AD879B5B97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../src/gui/components/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; - 1C3D15546065C1A9AA5AA0C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../src/gui/components/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - B2032A24364695450A5E6A76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../src/gui/components/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; - BA415BD77DF4B2F4760D1387 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../src/gui/components/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - B72C0FB8DDC0F1102DF42943 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../src/gui/components/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; - 6930E651AEE97FD47E185EC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../src/gui/components/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - 96FD3A02BA915E460520A0B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../src/gui/components/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; - E927E4A58A84B21AA6B38A44 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../src/gui/components/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - F2212B7F42E26C3DD86800F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../src/gui/components/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; - 09AE2C7E2573204A7A35452B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../src/gui/components/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - B394145555DCB9E0FAA5522C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../src/gui/components/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; - 9846D4523B3425BBB04107EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../src/gui/components/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - 455176F8EDBA7A9DCEAA1367 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../src/gui/components/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; - F750738F398054AB38250780 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../src/gui/components/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - DFF08DC68372AEE17EAA9CC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../src/gui/components/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; - A3CB18F915377AC3FFA2E5F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../src/gui/components/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - B28C2EBD0846A09DAEDDFF4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../src/gui/components/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; - 04F48B09426293224576DA9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../src/gui/components/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - DF6B4E787E39CD446ED2EEEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../src/gui/components/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - C992FDA4396430392CFAD150 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../src/gui/components/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; - 346CC505FAFEE9451040108D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../src/gui/components/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3384A91143018ED9346E4118 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../src/gui/components/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; - ADC16C18C8237A7F8E35E37A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../src/gui/components/controls/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - D8EB3EA456D9FCC211CD1ED5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../src/gui/components/controls/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; - 0D3FA24FF38399E0EDA80860 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../src/gui/components/controls/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CA3454A9B6F80A2F4735C37E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../src/gui/components/controls/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 7330A9643F50DE8BEACDBB61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../src/gui/components/controls/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; - C0CC0FA84A4F7AA76C1611CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../src/gui/components/controls/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; - 1BC6C010045A06BDB4C684F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../src/gui/components/controls/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3FFCAECECC0D469A010F7AF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../src/gui/components/controls/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; - 71B6CE03D6DB07BB293C8206 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../src/gui/components/controls/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1DB68310EA4D6180FF948AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../src/gui/components/controls/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; - 3CE16163A43A6E67428385EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../src/gui/components/controls/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; - E698677EEC8E88CAFF542764 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../src/gui/components/controls/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; - 6BB68B37C7B0BB4DA8326647 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../src/gui/components/controls/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1EA844F7CC5377A14B0FD21C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../src/gui/components/controls/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 76E073B2A3F59A3ACD20CC87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../src/gui/components/controls/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8BA30F0AFF5EA0E1A0203ACB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../src/gui/components/controls/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; - A4E66D702028A22D8157241C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../src/gui/components/controls/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - CB6BF5E15522D8A272032AE9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../src/gui/components/controls/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; - 53EB02EEDF5E7971EAB9E795 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../src/gui/components/controls/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 82FEB35063C3559D2F46AA6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../src/gui/components/controls/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; - 37E48B8F8AD2BC448E5935C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../src/gui/components/controls/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - A77096E86054F70AC0A3B69E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../src/gui/components/controls/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 981BACFF7892B83828313D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../src/gui/components/controls/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; - D317D4B5BA40A5754EE56F47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../src/gui/components/controls/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8400CA0D3C2AB7A60A7329FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../src/gui/components/controls/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; - BC209F6862D5923B8F9E3080 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../src/gui/components/controls/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; - B0D261D42091AAD1560A0D63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../src/gui/components/controls/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; - B60FE8BFA252E3EF2D60B77A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 79ABAD7BB654030EF29B8B9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; - D3B56583D4F60069296DB959 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3A4ABC7E24F155A8CAF027B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; - B1DEB4E0BBFE7E2D052165BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - F9FEE6DAB2B2752AC13D7286 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 85F0A0454489E4AF1F80AC83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../src/gui/components/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; - 102BAE57AAA43A7685FCBD9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../src/gui/components/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - F631A108CB5015BFA2E25E00 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../src/gui/components/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; - 730CAA344708954DE271072C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 295793C7AA1A57DC4BBCBBC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../src/gui/components/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; - D54308F25AEE3110A166F2BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../src/gui/components/filebrowser/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3AF50EADB5B2C973E0C8EE9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../src/gui/components/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; - 9A9D8C524A070162517620E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CD6C610A843822A7FA53E9D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; - CA1B41922D8094982F967DBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - E9E66775B2F13ACD0B751E69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../src/gui/components/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; - B689E250203DE38D6D4F39F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../src/gui/components/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 29DFAA512171B967D687A945 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0AB8288D92FDFA00F30FB8DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A418FC3BDDBF1CE9F2903490 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0EAD906B617A1A17305CB9F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 949854EDE6B5B16CEFB6108F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - F39059E72B927A700010851B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../src/gui/components/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 8A67B45A2BA1D19D1AC43315 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../src/gui/components/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; - ECDD0F8397F3EE4E7FA7ACCC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../src/gui/components/filebrowser/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; - 912C419859C9C56BC96AA6FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../src/gui/components/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 717295136FD426125079F78C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../src/gui/components/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 5ABC6616473BA4791AA8101E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../src/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; - F61C34EE417006881D0869F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../src/gui/components/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; - 29A79478AE8567250972ED43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../src/gui/components/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - FB080C47434A8FAB73B8F486 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../src/gui/components/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; - 7F5A271EAB78C7CF8B2341DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 92EDE6EA48F94DC5A0BCB24A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../src/gui/components/keyboard/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A00C6593BFBFA76043BC0C06 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../src/gui/components/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; - 02982EB6A81020D3D421AED3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../src/gui/components/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; - F1A33029252D29A6ADF171B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../src/gui/components/keyboard/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; - 15C6FD019B274AA51B4E2D76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../src/gui/components/keyboard/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; - B1E8FF009812F29C2620E6BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../src/gui/components/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; - FAEEA3536AD17B2667A1BB94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../src/gui/components/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; - D64DD9F41E4598606855DFCF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../src/gui/components/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; - 7356F5E93CEA4D472D83D8E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../src/gui/components/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; - 921B616E2229AEB6390D2B57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../src/gui/components/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; - FE1072B5FB77E8FEE1BEBDFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../src/gui/components/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; - 07191E1A9805FA6E6F253FF6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../src/gui/components/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2EC173A08676F6E592A7B347 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../src/gui/components/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; - 45E5EE9E0173683D721FABDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../src/gui/components/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2D3A362DD3833B9E70B10FD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../src/gui/components/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; - F8FCCCE06D31FEF697FCD80D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../src/gui/components/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; - 44CDA79090B115C3B62A2168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../src/gui/components/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; - A6AD7357F905309D1B461EB7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../src/gui/components/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - E9242E8425497D889C764C66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../src/gui/components/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; - FF046140CCF1EDB0DFF80178 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../src/gui/components/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; - B6A223FB5B4A9388C83D6FC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../src/gui/components/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; - A95F42C5CB0C2E5052B31568 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../src/gui/components/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 600B2FDBBBE812784CB49A69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../src/gui/components/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A31221E2A50CCE9DF06B5F4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../src/gui/components/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CB54AC3D311C44A1F3B463A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../src/gui/components/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 3D8B0E86C98E2EE49AE868C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../src/gui/components/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 238965266F88730956D776DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../src/gui/components/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; - B116FEC4D544DB8E38CB571E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../src/gui/components/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 797C94BB7F42CBBAACCFFB87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../src/gui/components/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; - F1F65C9E7394E04E073A57A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../src/gui/components/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - F64E8284F142600B9F519B07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../src/gui/components/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; - 993C90B10202DA78FA31CC58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../src/gui/components/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8C0FFF811E06D162050CAB14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../src/gui/components/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; - 079CFB5DEF6F2B71E2910A22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../src/gui/components/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; - D5F5282BE0F43A5E16824749 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../src/gui/components/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; - 143F36BCDE7A65EBA33900ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../src/gui/components/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 093E54DECB8191CA74D79176 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../src/gui/components/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; - F2C653BA4552E6838DFA4F87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../src/gui/components/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C42D9251031A81B5CF2C843B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../src/gui/components/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; - D41423657626ACA672A9DED9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../src/gui/components/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; - 811149E18993F029165D330D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../src/gui/components/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; - FD004BDDCEDB7E324983F70C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../src/gui/components/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7B991020107EC0D54965BCA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../src/gui/components/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; - B92ACF027E63D1C788DEC893 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../src/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3C739F61EE232C75546D4DCF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OldSchoolLookAndFeel.h"; path = "../../src/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; - 218D7D73C086866E587FFD01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../src/gui/components/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB93D3C283731C0B25B7AAAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../src/gui/components/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 1DDE0A8E4C5857715D9B5FAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../src/gui/components/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 502B3625329816EA6330465F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../src/gui/components/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; - 6AACD2FD239E39F87B666C6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../src/gui/components/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; - A563BC883D801CF5956DC4BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../src/gui/components/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; - 9E4B3BAB9BDB06B60D28DF48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../src/gui/components/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; - BCDD702ED33BADF3FC19384C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../src/gui/components/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; - 3D74B30C63465C32E26D8E33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../src/gui/components/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; - D4993649A93B73052C8045EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../src/gui/components/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; - 31EE71EA61B4ED293481EB97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../src/gui/components/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; - A08313B5F112579D130373BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../src/gui/components/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; - E1CA0B04EDE60771B81B9700 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../src/gui/components/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 944BC51C440C167C5B2A23E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../src/gui/components/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; - 136109B3076DDA7B2E01CF90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../src/gui/components/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; - 067D84F9291770240D1AB5B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../src/gui/components/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 50C02B44D0CB18898F575B1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../src/gui/components/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; - 441257DD380138C03568FCBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../src/gui/components/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 07CF9AF337779EB486AC92BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../src/gui/components/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; - 2886656DF7ACC9DDC888827F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../src/gui/components/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0C28F27F9D1CE6CD65185760 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../src/gui/components/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; - 89AA49DD2A63D80E90A56768 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../src/gui/components/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; - 82DFF1BD3665DC32672FCCE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../src/gui/components/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5B6CD1833A98F9844B7E3FF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../src/gui/components/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; - D39C0B853C3EBBBD11E7C71E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../src/gui/components/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; - 657546D70AB7B2709619E07A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../src/gui/components/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; - D31704DAB806B6AF3ED52DC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../src/gui/components/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; - 574EC603B2B1189687851319 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../src/gui/components/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; - 243EF1A31A779413BC2D5B98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../src/gui/components/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; - 72EFFDE39C7255D50F926944 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../src/gui/components/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; - 36BB6DDF702EC9B3DAC851FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../src/gui/components/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; - A3B6342C6207D452F6AD985C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../src/gui/components/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; - 9DA988F1D7CE29E0DFED7EF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../src/gui/components/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; - C1A3232DDB617A20D9C26526 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../src/gui/components/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; - 072D77C3834B1B3FB77F277B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../src/gui/components/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; - 749CA35420339A25BA4E500F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../src/gui/components/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; - 1C3FFBA02AE51EDD72A6250B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - B422688E380911F3C21E3F04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../src/gui/components/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - C45E7E6B6E45DEFBF80940DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C1F662CED371C843E4EE03B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../src/gui/components/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - ECCBF2452804ECB2D5B4BC50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C6B318D6930A05FF86AD97DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../src/gui/components/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - E2C948680009D1744CEDBC25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5B9E9460EAA932889DDC4873 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../src/gui/components/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 0984A4BA00D6AAFB463657F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../src/gui/components/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 02685CE4575D6E9B8CCC7738 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../src/gui/components/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; - 3451124EC2809C9BB591DF93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - B568DEC2B352281BC63B33CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../src/gui/components/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 84311C1F5A8ACC8DF4D6FF34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3641ABC17D67038746897FA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../src/gui/components/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - E748C93240CDD61473B0107F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../src/gui/components/special/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; - DED871B1C7458B15DE7C9234 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 26E787FFC68224BF8EB5A458 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../src/gui/components/special/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 11F1658A055C45FE824FD2DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../src/gui/components/special/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4DFF179AFD87D34C7E23B1E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../src/gui/components/special/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 4C3C3AFC3D97C1378B7D7435 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../src/gui/components/special/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C25DFA2F2B673EB0146412BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../src/gui/components/special/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 0A20E7E561633610A76A34AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../src/gui/components/special/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; - CD9F817B7EF0DA080668A3A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../src/gui/components/special/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; - 4BF7A01BCE61A5068CA13D8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../src/gui/components/special/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 9C1D5CDA61FB51F657DA8B22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../src/gui/components/special/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7DB8CFB77EA690ACF54C63B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../src/gui/components/special/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; - 3C8C1AAF32DFECB89EB83271 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../src/gui/components/special/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 127FC743FE67E6EEF2531BD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../src/gui/components/special/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 4387C6496C7079FB0032B99D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../src/gui/components/special/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 1317F0BE5EC80371F744967B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLComponent.cpp"; path = "../../src/gui/components/special/juce_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 826CC87E9E280F46B6D62B64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLComponent.h"; path = "../../src/gui/components/special/juce_OpenGLComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A34C0E63D41CFF5E55FD1D9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../src/gui/components/special/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6BE989C709D2D1D017548447 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../src/gui/components/special/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; - 529CB909220344AD55944372 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../src/gui/components/special/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A9DB12F944D9DC336AD0A78B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../src/gui/components/special/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; - CC04F253CB70B20B774801A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../src/gui/components/special/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - D9847FECA6801E9A61007D50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../src/gui/components/special/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 740D1808DB934123F05A1598 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../src/gui/components/special/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A5AAF4475138358F33D4904A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../src/gui/components/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 72C4FDDDB8602591DD4F7B3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../src/gui/components/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 8AEF18EE9B12D4677F96B709 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../src/gui/components/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8F54431CD3A672B1EB8335BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../src/gui/components/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; - 2FFDC7636EFC2D7F74590A31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../src/gui/components/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 12C66C90F3192AFFD6BCEDB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../src/gui/components/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; - 929FEA5458430B7AE23BBB46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../src/gui/components/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - C286C779DD52C29F86E3DBE9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../src/gui/components/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 090907E4FE95EE2B11C1A0E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../src/gui/components/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6E522DF13EC47755234A5D57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../src/gui/components/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 3FC6FC331B4E104D1DC223D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../src/gui/components/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; - 2E4A5F7128313C23AD0356F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../src/gui/components/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 207CDD87107EAC8ED17DD601 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../src/gui/components/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 87E57C8F3448D615271CD9F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../src/gui/components/windows/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7C06FF93D655B9987000ECA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../src/gui/components/windows/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; - D7772BC5E4E455AE2916A87D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../src/gui/components/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2FC449D291A603E26E938F52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../src/gui/components/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 6C33842C52B61407CACCA858 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../src/gui/components/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6165F485E931EF9F69D2145F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../src/gui/components/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; - A24990B395323FBAC0BEFB5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../src/gui/components/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - C7C882D550E3B72FA5EFA88A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../src/gui/components/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; - EF18D0073BE50E572ADD9A1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../src/gui/graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8F6F9E1FD31E1A6268CFD3F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../src/gui/graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; - D36EFC4421056277BA87387E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../src/gui/graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3AE0BD116486BCE37F0D994C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../src/gui/graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; - 41AF663E626B8F6D319B9966 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../src/gui/graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; - C913994AAA448C9F22ACF100 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../src/gui/graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; - 112017AA0A061CF080DBD504 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../src/gui/graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; - 3EC800323255128D69539BAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../src/gui/graphics/contexts/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; - BD52C1CCEAF6FEC311B9FDA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../src/gui/graphics/contexts/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; - B7251E779500BA77F5522CC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../src/gui/graphics/contexts/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1F0DB4B2825AF638183B50D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../src/gui/graphics/contexts/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; - EF50EEDCAB08F842AB8DE6DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../src/gui/graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6320F9BAFA094B5C0C828C58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../src/gui/graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; - 2E03ADF975A126C1F2F7B667 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../src/gui/graphics/contexts/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; }; - 36268DD78D00323D391ECAAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../src/gui/graphics/contexts/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; - D6B4FED1F1D9FB82C6424438 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; - ED3ED8389001D55FBDCF1087 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5792CC17E9DFB966371CBEE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; - 835CC2A1E67E7B19E41F8FBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; - A7A8BE6B30C70701A10B5BD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; - FF052647D2EFA985D05C8E83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../src/gui/graphics/contexts/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2B90FAFBC65FB79A5D74E816 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../src/gui/graphics/contexts/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; - 504730C9B9F60192C2577979 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../src/gui/graphics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; - B6A249ADEC5400011AA671D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../src/gui/graphics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; - 85B7BCACB40E02815844F71D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; - 00B5FB5ABF4F13EC5D28E34D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../src/gui/graphics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; - A54BC72C899A2AF82E1E37F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; - 849E645981CA10B8D5576462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../src/gui/graphics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; - 582DCC2F948F1DEA0D450B0D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; - 17EBDF689C731DA257B243C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../src/gui/graphics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; - E0694CD7C814AA99E5A84799 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0FA9E378EBD7EE63EF72124F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../src/gui/graphics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; - 62967D33232C5A86D88084B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2FBD6F49349E7CC8FC2051EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../src/gui/graphics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; - C17613C202D8E1C366F21D3C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1FA43B2E4244CD74B551DAD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../src/gui/graphics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; - 2BFC199D03DEEC329D6A7CB1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../src/gui/graphics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 32EA297812F1C88B42099501 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../src/gui/graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; - 85D4043F9E25047E07496DAC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../src/gui/graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; - CB649686575473223C859482 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../src/gui/graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; - FD1FA4ABB4226372235643E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../src/gui/graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; - 18DB9BD10F140F132A3279C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../src/gui/graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; - BA17B023595ECD8166A231D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../src/gui/graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6B4E90767D784246EC4E1944 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../src/gui/graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; - 78068AA59A5DCFCCAAEA79D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../src/gui/graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0401EA0E883CCAAAC6960A27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../src/gui/graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; - 61D06B694603F608CDA0703B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../src/gui/graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8117D400F45F1DF157634824 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../src/gui/graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; - 91CB423DBC5F3CBEDD9CF2EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../src/gui/graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4284BA7A26C7F6DEB00B4366 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../src/gui/graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; - AF66A9951377E2D04C54CADD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../src/gui/graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; - 932024E0F2A2CC22B7657691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../src/gui/graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; - 2ED8CC539A9D9BE611F67A9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../src/gui/graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5CD42FFF9F1A509D117BD0CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../src/gui/graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; - C18F342C087F69D141B3FAF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../src/gui/graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; - 4011751B9EFCA7B9345D7D7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../src/gui/graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; - 29BC53FEE9BC27F44534C909 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../src/gui/graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; - 795E2BD2D39A3A6E36C26CBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../src/gui/graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; - 312F208B501E0D7764C6B613 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../src/gui/graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; - ADB84942A96B6B9A0F5D7590 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../src/gui/graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; - 9D3F1BAB1D48DDECB9F35916 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../src/gui/graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; - C2700BB57B9EED7BFE975564 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../src/gui/graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; - 132E3C38B4F0C6229EDF7000 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../src/gui/graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; - F8C44FF03700F6140950F373 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../src/gui/graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; - 1B170F70AF8AA0A39074F671 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../src/gui/graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8B7D7435287A20CB2D8E3704 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../src/gui/graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; - 0F1C5770B363EF7DF64A876A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../src/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6619D27E74F623B1E8CE8F71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../src/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; - EAF0F2EAB230F7539B91A7FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../src/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0337723C9D607B82CF8AA682 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../src/gui/graphics/imaging/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; - 7904C2A3C52959748C46D54F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../src/gui/graphics/imaging/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; - D1BBA8F348C6DA2852A68221 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../src/gui/graphics/imaging/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; - 94D3EBE6E0D9AFE555226A88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../src/gui/graphics/imaging/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; - 16CAB09D19F1A7379506310A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../src/gui/graphics/imaging/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; - 67F4F9E1F6B9B4D1C1A668E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../src/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 35A9146C03FC33B577817E9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../src/gui/graphics/imaging/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; - 6E4DF7338364956EF42C4493 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../src/gui/graphics/imaging/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - BC2326E1A85025E700B1DE3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../src/gui/graphics/imaging/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 3FD3FA96955DD648494E76A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../src/io/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; - 974C3A59CC78DB4302B3552A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../src/io/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; - 692A95B19D9C32094A1E07B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../src/io/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; - DC51AF61DC4B345E5E4153E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../src/io/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; - 058702E8697667AEA38254C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../src/io/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 090490A1C3B0002DFAD78C7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../src/io/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - 6FFB38088C11BAE68368A3E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../src/io/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4EEF0B0BB4C3D1956B04122B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../src/io/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - 59B2FFF817679AEA84375E1B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../src/io/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; - 49BF2B02A6D7B4438FC24839 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../src/io/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; - 00B348FA35A7F691AEF84FBA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../src/io/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; - D9B3C04F8EB4228DD59002E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../src/io/files/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; - 42DA88264F768BAACD0414A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../src/io/files/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; - 17C3AF03FF7AE88AE0C73311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../src/io/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 75D6F1C676E178DEA8B86849 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../src/io/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; - 4035C867821E9B5887AA25FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../src/io/files/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4D005659935C7DE99C2C01E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../src/io/files/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; - EFA58F646B69B227AEF14140 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../src/io/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7241B187AA9B0217838B6052 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../src/io/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; - 06B06C420341B005DFF951D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../src/io/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; - 286206E754AC14DEAF88FD43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../src/io/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; - AD7A1C2C82EE714EBDD52EFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../src/io/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; - 21215569A0DCB6ACADD32401 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../src/io/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; - D4211E697F43821CDBCE4F24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../src/io/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7D593A29CAB138BD9AE950BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../src/io/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - BE5DCD603F7E21A1F66CDF33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../src/io/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 304FD4FD5771F00C8EA46C10 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../src/io/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; - AE363A1FE2F403F7CE2FDF7F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../src/io/streams/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 770082A38CF6071E5CFA563D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../src/io/streams/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - A10A63E2098A85B5CA9265B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../src/io/streams/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8932FA0AA37E1E04CBA55B23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../src/io/streams/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - AC183DCFAF18C9CEB88EEB1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../src/io/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; - 3F60563DEC7941B88163A50E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../src/io/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB059F528EC362F86E4B4278 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../src/io/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; - 39C0783ED515AAA82F9CA37F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../src/io/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - BD4388D88F2F02195AC73AD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../src/io/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - B3F5E7A708350F72E7C77153 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../src/io/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - DFE9A08C4AC8E1809018B5F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../src/io/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - BBE79494A818EF83F52A4C7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../src/io/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5F27172FD963C1A748AA625A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../src/io/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - AE5A7EC70F288E7EA682081D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../src/io/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6F7CA1B3AD09C76271FED3D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../src/io/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; - 7A039686F4F852E26936CA53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../src/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; - 161894D0D279595D88F470A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../src/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; - 868E43A4BB7015579789E4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../src/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8E0874D93125C2DC34255EDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../src/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; - 7C2A4084A267F57F2E27F3F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../src/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; - D99C977ACCD09262F06F6624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../src/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; - A978BD4031CAE24FB0FE26E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../src/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; - 1A656E62C071C54D28343AC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../src/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; - 252632F3F97DF57C0781BEAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../src/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; - 8FB80383DF3BAD7227DF465A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../src/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; - FE76B46873DE20DFDC5A94BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../src/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; - 28C4C81039B42A399F5B7320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../src/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; - 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../src/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; - AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../src/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; - F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../src/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; - 58654C2630387C4A336A5BFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../src/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; - 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../src/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; - E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../src/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; - 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../src/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; - 213F0A7BF38AF6AB34414A45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../src/native/common/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; - 21B2342B75097AB93CFF7E97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../src/native/common/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2C48BB1A286C6A63174E5798 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../src/native/common/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; - 7A51D8B81F390A4CABF25C73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Audio.cpp"; path = "../../src/native/linux/juce_linux_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; - 76DB94CC776536F5D05B9445 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../src/native/linux/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - AA698DD5A82F91CF84A29666 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../src/native/linux/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; - FABA493FEE07E6373DD8EB41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../src/native/linux/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 595EBA8A689DA899986314D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../src/native/linux/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; - EACFC12E665283EB7926E9EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../src/native/linux/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; - BAE5CE629DF9D286293E616F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../src/native/linux/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; - D4C499CB25F043FE667BC5E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../src/native/linux/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4366712140FBEBEDBCBDCE9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../src/native/linux/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; - E0A2C24581917DD090186333 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_NativeCode.cpp"; path = "../../src/native/linux/juce_linux_NativeCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - E61B485B10F8D4A3986953CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_linux_NativeIncludes.h"; path = "../../src/native/linux/juce_linux_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - 3F3D429025A92B6F0FB6F8EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../src/native/linux/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - 275F2210628D9E9968B1B258 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_OpenGLComponent.cpp"; path = "../../src/native/linux/juce_linux_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5DEA687D261C59CBABB782E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../src/native/linux/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5593DEC14D551C38CCB50D70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../src/native/linux/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; - B8E47498C7C6D5ECF41F0EAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../src/native/linux/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9DC2C10B16A645EEB82220D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../src/native/linux/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; - EE5F18DF1DED7617C4A41FF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../src/native/mac/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; - B2BCE9DDC8F0F54CA3D913E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../src/native/mac/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; - 5249EFBE3B22E6FC1A7B6D42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../src/native/mac/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; - A257B76FCE9D594EAD41414C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../src/native/mac/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; - 8280AA34B23B4D366711A9E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../src/native/mac/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; - C9561A66310DAD5EEB4A9462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../src/native/mac/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; - B62991F8AEE7327BA8A5070F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../src/native/mac/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; - 013F753639A6350C8DC602AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../src/native/mac/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; - 6B46AB1931E43DAFB278D23D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../src/native/mac/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 72524FE185FF48DC1F954341 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../src/native/mac/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; - BF5307F364AC9250D8625168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../src/native/mac/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; - AA4823F2F2A78C43D7A039D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../src/native/mac/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; - 87A5A064CC3CD55BA5D7617D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../src/native/mac/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; - 641638A0466CEC1BDEAFB476 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../src/native/mac/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; - 7DB37383434F45D8A7B674C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../src/native/mac/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; - CB16B2438EDCC10C499645E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../src/native/mac/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; - BEB35C6173793C1CB7AB6311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../src/native/mac/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; - BA58B49B820A47F6F55CDACB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../src/native/mac/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; - 930E58E13FC92BF70AC20EEF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NativeCode.mm"; path = "../../src/native/mac/juce_mac_NativeCode.mm"; sourceTree = "SOURCE_ROOT"; }; - 2F1812B26076D9CC1495D452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_NativeIncludes.h"; path = "../../src/native/mac/juce_mac_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - 9113CDD122D2790E147A8CF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../src/native/mac/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; - EE56999A85AF18015C540183 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../src/native/mac/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - 189F69E0B926C73B654D6951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../src/native/mac/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; - B9E16F4636FF8C0A1FC8BEFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ObjCSuffix.h"; path = "../../src/native/mac/juce_mac_ObjCSuffix.h"; sourceTree = "SOURCE_ROOT"; }; - AE9A7A0775FA806126A74E16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_OpenGLComponent.mm"; path = "../../src/native/mac/juce_mac_OpenGLComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - 4F5D1AA83981FBCD33CE234F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../src/native/mac/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - E6A7BFB0FCD17A9B133CDFA4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../src/native/mac/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; - FE6E3F911679B0D7547577A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../src/native/mac/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; - 8BCE60CBC91DBAAB089958A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../src/native/mac/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; - 3F11593DC3A168A52FCC2DD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../src/native/mac/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - FC2C82760E717788B5A6E691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../src/native/mac/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; - AB0F3F5A622CBB251F64945A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../src/native/mac/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; - AD495FA1991295C722B46843 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../src/native/mac/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 42059626955C547DA6AD3196 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../src/native/windows/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8F383A785B4876198C5B0194 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../src/native/windows/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; - F3B50EE3939E9F16D13C3C7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../src/native/windows/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9C4D1018ECC0BA07346453EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_AutoLinkLibraries.h"; path = "../../src/native/windows/juce_win32_AutoLinkLibraries.h"; sourceTree = "SOURCE_ROOT"; }; - 3A37CD82212075940421CE4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../src/native/windows/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - B296F736C0CD6AC15BE6424B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../src/native/windows/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; - 7F3EF672D07ECE3E13AAF267 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../src/native/windows/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; - 249959E338D7750E56A9F2F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../src/native/windows/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 58B70C726D186B4E770300BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../src/native/windows/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; - DCD09B6EF4A4A109DE01F152 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../src/native/windows/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7527A5E8F4F39581159D3E5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../src/native/windows/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1DBF9DAAD0690CB2CA4E9960 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../src/native/windows/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; - E9B203E963EB1AB566061AC1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../src/native/windows/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; - BA561E64C6400CFB1DE013F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../src/native/windows/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; - 061B492EABD6B1C995D581A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../src/native/windows/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; - 50159A5B7A552A6C1EB557F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_NativeCode.cpp"; path = "../../src/native/windows/juce_win32_NativeCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - E7625D7A06CBC11F40A56A70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_NativeIncludes.h"; path = "../../src/native/windows/juce_win32_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - CDA5FCC51F6C1E84D7DC3274 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../src/native/windows/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - B14735381ADB00741166E330 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_OpenGLComponent.cpp"; path = "../../src/native/windows/juce_win32_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 09AE0882D58BE1715219556A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../src/native/windows/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0EB41C0AB478EE02D8C851F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../src/native/windows/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; - FBE07C5CC622A5D36BDAB9E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../src/native/windows/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - B07C853EB60D8D8691BC1B4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../src/native/windows/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5D32C8856093B33438AEB758 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../src/native/windows/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8758E6857070D7E5406FDE3F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../src/native/windows/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8E8BE2F1C182E418BBA6903C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../src/native/windows/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; - 03B9D3D9042E85BDD691325E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../src/native/android/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; - 13C661B79E1E9508512A6B21 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../src/native/android/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - F2F68E50F42BD0F124E89E2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../src/native/android/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 59C46E289F86C80D4341EAA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../src/native/android/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; - FA82460758BDCB2DCCE1EAAA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../src/native/android/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; - CE06EEED7426AA45C27B629C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../src/native/android/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; - F439E6C4B2D2AF19645252C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../src/native/android/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 1D74C9567283836ECC70E48B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../src/native/android/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; - 40216CE846A54CE706131A23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../src/native/android/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; - E646726910F110DC34DD1662 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../src/native/android/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9AF9F1C0D766D4F894E4A7B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_NativeCode.cpp"; path = "../../src/native/android/juce_android_NativeCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - 902C32F471DA6C435E80372B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_NativeIncludes.h"; path = "../../src/native/android/juce_android_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - A404CD721E2A0F0CAE9326C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../src/native/android/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - 32B7C3609BDA01AA09740139 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenGLComponent.cpp"; path = "../../src/native/android/juce_android_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CEF7210E311274F1DFAB6882 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../src/native/android/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - 755C440534C0EB494572B3F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../src/native/android/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; - EE855319AF344A05C92580C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../src/native/android/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - FCD02A40985242A8A6648311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../src/native/android/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; - 76E2084D2148068F9138A816 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../src/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; - 33F16EE4F38C9B76E7FAEF78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../src/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; - 72F5ED2E8B945988C37EA9CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../src/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; - 663746215E9BA6C761172B85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../src/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; - C3FD9D93626F80A45F9B6DDE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../src/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; - 4007410FACA2F865FD8EF769 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../src/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; - 8273A206FB309671284959DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../src/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; - BF888BC540B64D5C61E46A34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../src/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; - 644FD6155385BC3AA270FB5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../src/text/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; - CB092FB152F43900272F8E43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../src/text/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; - 4A97C8D2FF6454DDD3AF4BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../src/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2AA21CDC91EA122266EBD780 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../src/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; - 35DA3E75DDB03BB35794289B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../src/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; - B507B4A8712A54D7A8C03223 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../src/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1EE2A763E06AF4951024950F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../src/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; - 23252E4C97AEFAE0C5EEAA77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../src/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; - D4FED84C92ADC4B2C41A4275 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../src/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; - 81B36E7C56DF1A777AA04F71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../src/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; - E5458BE2F33DBBF5AF834BB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../src/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; - 0EC7DE81A516F4130AC59557 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../src/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; - C972C24A7D2FC817362E1FD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../src/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; - 5715BC14D93D61D71206FCB2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../src/text/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - B4575FEE10C67D45C9532540 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../src/text/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; - 95F21C2733BD5932372E4157 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../src/text/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4EF8C44FF03700F6140950F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../src/text/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; - 40282E23D43D86D122CA5C54 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../src/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; - EC240B4379FB70C8A8AC2855 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../src/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; - 5508D42FCF7A1C8A8CD78BF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../src/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; - 90E4999A78655A238AF42BC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../src/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; - 8E78623B2D21CFE68DEC0483 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../src/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9E622C38E4BD511B6ABBF7AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../src/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; - 6734838B47EF0D9ACEE571CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../src/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; - F00BDEF5CE2B281CBE2E89A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../src/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; - C5F20B02D7843F3C5ABEDFD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../src/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; - 1FD1C9A3D2DB64C825FDAC8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../src/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; - 4D60F7F748CF6702D1E45960 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../src/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; - EFE26D4E1E2B92828DBA3A99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../src/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; - EF06213027EA3F7C54EE0F18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../src/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; - C25E5F90524645D684C674CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../src/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; - 60F21CB42270ACE2241544A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../src/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; - ED84C92ADC4B2C41A4275F92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../src/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; - 3268C8DBAB23CF503BF30935 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../src/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; - B4435D42216365FA97651272 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../src/utilities/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; - CE216F2485CD5EFEA91554F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../src/utilities/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; - 599F5C47BB9B5898E0E88CF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../src/utilities/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9620E4769876FC01ECE885D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../src/utilities/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; - 4BE2727CCD2CD7603402C8FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../src/utilities/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7FDACEA80794451691A12703 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../src/utilities/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; - A618FC3255ECE14EC9259E6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../src/utilities/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; - A2D6317BEEC77A62E8F834AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../src/utilities/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; - 7F1AC20BE8A18CA6BB7403EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../src/utilities/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; - FA833EFA9E93C7DBE6624676 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../src/utilities/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; - EECE464606AE845BFC4B941B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../src/utilities/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; - A59A5DCFCCAAEA79D03C2B27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../src/utilities/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3C9E6597968358B57374502C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../src/utilities/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; - ADE5F12AA5AD969E2C7002B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../src/utilities/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; - 75700D13513346310CEAC30D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../src/utilities/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; - AAC585C4648559DD713F28FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../src/utilities/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; - 2FD5C998952BE08F8ED3F262 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce.h; path = ../../juce.h; sourceTree = "SOURCE_ROOT"; }; - 01778F26212AECCBF2452804 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Config.h"; path = "../../juce_Config.h"; sourceTree = "SOURCE_ROOT"; }; - D443FD24B52106986FC8A531 = { isa = PBXGroup; children = ( - 144F56FCF3DF9EC922765901, - F6A490BA93AC3558E9A6FBB0, - CB9766F7A9C612B326D808CB, - 36A407F2BE4A625184B5CCFD, - 4E74130693EE120D905818AC, - 21E1DBFAB3FB75875EA35280, - EDF52AB382E80530E8FED9A0, - 415BD77DF4B2F4760D138735, - 8422E662212FA2082644A942, - BA97FEDA576503A21D971F1E, - E03C84620DCB004172C09B28 ); name = application; sourceTree = ""; }; - 2038F3EDCC94040C77D7620C = { isa = PBXGroup; children = ( - 1AA8BE2D76E153874FB08197, - 05C5C546E12C6422D865D864, - 1F5A667524FB005D872340E1, - 0877D5750D6F21C5231687CA, - 1BBE03BB0D71FEEEA440682B, - 7D85530D76756C33795ECCE9, - 013E8938EE1C6B4F63016B55, - 93006D32B18174D9FE0A5E9E, - 41070806F82EC9C6D1C67689, - 9349E14552FEA0371553E808, - 27356F5E93CEA4D472D83D8E, - 2AD64F53E12B20011B7A0DB7, - 8BD38C2507C0F8E28930A4F8, - 59597FA0A88A08937801D198, - AE7F7F0D959C2E3CF5989C88, - 27C3C51DF2519B519B76E2EE, - 7B34E897026857C84399A09C, - CB32D4EE59D5CA9DB12F944D, - 3442FA257104DC3F43E7F870, - 203AC66FFB20EAD2E7A594BD, - C9F1015CA457A61082398E34, - E00781B15E47C9CB9E94869D, - 7C06BD13BF7E0097EB0A8D08, - DA868174D4D2059AC1BE7E71, - 25B1AC1A6767AAD9E9515A18, - 7CF036906034FABB44D2108F, - DB5CAB7BC2973ABFF0867BCB, - D5D2FD212300E7D49ED74823, - 87A18C425F53C2098B1D42FE ); name = "audio_file_formats"; sourceTree = ""; }; - A319A40925DF075E2C31C2FC = { isa = PBXGroup; children = ( - 7AE5295A472723B26537FAEC, - 51287E236C749092458BA2DD, - 4C3258A1978AF3D357D196C6, - FBB2EEF0E5EC5EB6F89E9066, - AE9C08108699C71A289462B7, - 74AD63909D3EE09D63256A76, - 67A8F408B1EC63407C9241B2, - 5D6E837F124C347B3C1CAE23, - E1EA83B7EF928DC88D069AEC, - 1511366CAD437989DAA30CF2, - EA630BFFF638BBBC8FDC0018, - D86718CE7E5DEF2071AC3D17, - 76BB7F75A7F9930ED5A0CDB6, - 9A8053936C35A19B9E98623A, - 9CB1126A9FBFF1D6D6469AF9, - C63D6EC0555C13C1B79A6AAD, - E2A56C23BF2BB466BB273E3E, - BE5DB55285441D501FED3C00, - 5403C2A4DEE7B9B3B34235F8, - 0F70C4D118AC7625B4C42CD4, - 3988438157D4B75177703F8A, - 6AC857F51FD805D7BD3EF712 ); name = "audio_sources"; sourceTree = ""; }; - BF8F3D00CE4E97468E8BBC55 = { isa = PBXGroup; children = ( - 6841D6AC927D02113F3AEBD4, - E668D9C7FF084E59405A2A9E, - C7DB1BB9AF7FE0A2AA38D767, - 95CA8EE24AFBB1F2F29A5394, - EAFD034BB1721BFBF9A3795E, - EFAFC937377A21E9AC0F9776 ); name = devices; sourceTree = ""; }; - 53C441C8EEF2860715CC6599 = { isa = PBXGroup; children = ( - 5DB9D903D24646B0C2356A5D, - EBA6B46F7B3C11CA3744A4D0, - A1D687AE613A8B61EB63923D, - 812620B53BE820D26A63B65D, - 11C1A96A35A2F03F8C34BD43, - E68EB4BC75216B5B56E3F937, - EE2259D9768027C2C001EEAD, - 2C55CE1674244DB199C3033F ); name = dsp; sourceTree = ""; }; - 99B60B012D5CCF0BD861011D = { isa = PBXGroup; children = ( - B457515938E7141D5E79B671, - 0604C2E17F0E0DFEFDA19F8D, - 891E0B1AD09C0EA44297E0F2, - EBACA038DBB50817BE80E8C5, - C376B06C58C5D3C972583BBB, - 0731C60911E6985F51325484, - 062F7ACF5282C5B2D4BF5EE1, - DF3833AF6E38E55218FDF23F, - C627F9E9EC160055D65D81CB, - 0D3A77572C7256CE4C115FD7, - A22A0F77C15B1E4A8F2EB42A, - 78D29BB5C76CCF7C21EC0DAF, - DD3886D45B5988B4DAC2D049, - 01712FF0A160032FA1DAA8C2, - 899BD7E18BE1EF7CDF53784C ); name = midi; sourceTree = ""; }; - 844109733F09B5915AF75797 = { isa = PBXGroup; children = ( - 7B88F6B8E3A10CEAD9B0EE88 ); name = AU; sourceTree = ""; }; - FAA6189E385BD13EFEFE2E08 = { isa = PBXGroup; children = ( - 1101E8CB676FDEEF0A89D921, - F222E5825D83E711C9F1B789, - CEAA2B84462EF0B5026EAB0A, - 9A3151864FB90A6A4BCCAE9B, - BCE37F0D994C0ADF2CCFF796, - F52ECCD6C02108A2D7F672F5, - 833C3F205F05BA4ADC883E53 ); name = RTAS; sourceTree = ""; }; - EBF4EE8E84A562DE2EBAE6BB = { isa = PBXGroup; children = ( - 69C4FF0DD888BA25477561C8, - 37E1FC756833849B8C7C1215 ); name = VST; sourceTree = ""; }; - 0F0D49D13522C94A0F37D4AB = { isa = PBXGroup; children = ( - 2741189DF800566462E24A14, - FAC43251D74E5140740BEF60 ); name = Standalone; sourceTree = ""; }; - 2805C9C796CD7D77C2D662BF = { isa = PBXGroup; children = ( - 844109733F09B5915AF75797, - FAA6189E385BD13EFEFE2E08, - EBF4EE8E84A562DE2EBAE6BB, - 0F0D49D13522C94A0F37D4AB, - 2E96F55074F4EB74171EE6B6, - 13F64389F0E25731A98E92CD, - 7CDC2FA849B7ED73A2638A11 ); name = "plugin_client"; sourceTree = ""; }; - B1F82C796B56FCD97D211D8E = { isa = PBXGroup; children = ( - D76BDCCF9E1A1F26A8F578F0, - 50FAF92038EBD0127900AAA1, - 2073E1A497363200233CD34E, - F800E47459B2FE9DEF56F312, - B4291F2CEEC78CFEDEFC360E, - FCBB1DC14311D099809B21F7, - 723EBD80931754F4DD77DD53, - 2EBF36FAAF019B6F811D1C84 ); name = formats; sourceTree = ""; }; - 7AA82894558E047D7D5111E1 = { isa = PBXGroup; children = ( - B1F82C796B56FCD97D211D8E, - 1C8211DFB558D740EF4B173A, - 28534632DF76A1EA837BD0D7, - DA4820727D6DDC75561A262C, - A6415104D1E3E5CE7031C0C1, - E5BA7B8913271E935A1DA487, - 3110B983ACE956D6A24F8C8C, - A3FE51C7DD706F536273AB0E, - B6E20AE45813C0CA9B1014DD, - 4AE3A448D79602BE793BB5AA, - AF47BC3796A74CC15A192E8B, - 3D170AC8FD8E403C54E08F9D, - 9C5C0BCB2A298160025B15FC, - 08C65C3EB60FE8BFA252E3EF ); name = "plugin_host"; sourceTree = ""; }; - 231431F8B23F01DC6ECD4214 = { isa = PBXGroup; children = ( - 4CF107951746567DB63880A3, - AB554593165FE8C8B40F4447, - 3F260C24341E58745AC5BE79, - BC2A50B0B01128E394E9DE9C, - EC0F8FAA7EACE0D275064D60, - D141C024A3F5A6748B0E9ED7, - 19C9509EC7DD00DA7443DEFC, - ABDE16ABC1784B0FD3887A8F, - 08EBC2152F45FB2B839FCCC1, - 350428D4D70AAB88B2B84790, - 096CF2243648F17E1BF5421B, - CAD3312170E5DBE8AA8348BA ); name = processors; sourceTree = ""; }; - DC641C77950A335A20FD4532 = { isa = PBXGroup; children = ( - ED5966B95F865C586A3CE08F, - 6C6C1C360138D9BD4B27588B, - 35668D8EEA19957C6C9AC83A, - 9E6C206F95245BCDE38FB2B5 ); name = synthesisers; sourceTree = ""; }; - F2B0E44A08E127FD31184241 = { isa = PBXGroup; children = ( - 2038F3EDCC94040C77D7620C, - A319A40925DF075E2C31C2FC, - BF8F3D00CE4E97468E8BBC55, - 53C441C8EEF2860715CC6599, - 99B60B012D5CCF0BD861011D, - 2805C9C796CD7D77C2D662BF, - 7AA82894558E047D7D5111E1, - 231431F8B23F01DC6ECD4214, - DC641C77950A335A20FD4532 ); name = audio; sourceTree = ""; }; - 1CC2889DB696E12FC34E3F50 = { isa = PBXGroup; children = ( - 4F22276689685D839BD252EA, - 9584B84F23A4251755D49213, - 839BE8047CF2F8EBE43ED34F, - EDF52FDF87ACD33FE933142C, - F77C9170829579FABA5679AD, - 34C402EF9ADCAD34FB657D43, - 7DA9AC75A4D9227C8FC4B2F7, - 2767E1D082874D301D5D5F43, - 9289A1E6B141F24C57FF0927, - 70E5409425A76782B6188B31, - BB4A73064B0FC74ECCA19116, - C1913C90ED7BE51E823887CD, - 9BD379D2F7995BFE0B3E5369, - C8F0F54CA3D913E7B8D559CF, - D7612CE51ED4F9D3F960F922, - F95BC2FA7861CFF968D661ED, - 2F5FD1DEFAE549553A8BE3B1, - 989E03031D341649B4A296F5, - 1809284DD05B56309D7EA24F, - 69F58BF234EDF6328F624E0A, - 5D27EE211D9BFF6A58C4DC42, - 7CABDD863B47D8ADC900A4D8, - 4DF9D333038A442870668D31, - A81B4FC81A75E21E5B96E506 ); name = containers; sourceTree = ""; }; - 1AF37A533ABDD889670F9349 = { isa = PBXGroup; children = ( - D66C00E06B06EAD3B5257DD6, - C8441B7B3E4CCD4A257B4BFE, - 92ACFFCCCD1C85A0F8C6F80F, - 4555F03DBD059EEDECEF9F85, - 63F44EC0485FCA050814967E, - DF6CAC67C0F2D379BDA03062, - 1159C6BB0D33EE8E1A96B083, - 8292AE37F99FCC1E5BF63A28, - CFAECB6551F48A1695DEC243, - B4137E4612C1D161894D0D27, - 0AD73B8EA0D60D9927B36624, - F51969AF328D2C7D52D7436D, - C25D6136DF9CE441D6EB4C42, - CA66415F6EAA172B83755954, - 18B170E96511BBA1019C66F8, - 45D14EF360BDA1F5692E583D, - 956A1C30D5FE98DBB154204D, - 8D2DE1F3CB15D003C90042E7, - 872020C1EC3997ED744BF1BD, - CEF91E0C9CBB3EBFF9500FDA, - 297B664E9AB86DFE7DCAFF22 ); name = core; sourceTree = ""; }; - 2B74AFA66B37B748487152F4 = { isa = PBXGroup; children = ( - E3C548295935D26121D5D823, - 7A4B0E6FD686BCF0B8CC771E, - EAFD8FAF365DFB32DC42D0E7, - 6E4345FEEB1DC732A16134A4, - E9E692847C14AD33CD5FB40B, - 22612DBDC6C689B605CC6B48, - 7AE9331938549244E27A5D0E, - 16335266AFB4D19F25410E1D, - 4CBD301A08E9C3762F861FC3, - 02CD7BA1750DE36237369F78 ); name = cryptography; sourceTree = ""; }; - 89F308FD85F378E278C98884 = { isa = PBXGroup; children = ( - 31D985CB8646B78460E9D5A7, - 09F7685D1EFF472ECB1F5EF1, - 4EF8BD4BF46C4BCB39F96609, - 5EB7BD94A754E88D076D777A, - 1617348BBF5D103619D76911, - 44DB44953945417F76199479, - D04B6E43A037F985434B2F5A, - B80F8CD026033ACCCE11A1A4, - 5F454A6B5A82ECE2396C5716, - B2D08C8EEE3E22026533D2EA, - AE68ECB6E063BD8D4984C0B3, - 4B935D7360C9F166C80A158D, - 843A7B398E9411F0AF28D65D, - 57DD8EEE88C0D366E0354478, - 80633D64E9EFA1433454669B, - 9CF077D3ED7B7B56F351AAF6, - 7A1219C6560BDBE2E170D2A9, - E594F70DC2F292FF1EF65CB6, - BE17B7279B4BF40E51C12F47, - E2D07ED5E1A4A460E0DEF59C, - 2EBDE3FF4894D72C310C9F84, - 1F2CFBF13ADCA05C0DC2D7D4, - C51E9973A6FAB635081B9FDC, - C818B558D6D5B62A80621281, - 32C0312A5D246D41AAD98A11 ); name = events; sourceTree = ""; }; - 2DB55F83F4310F0C4E4E03AA = { isa = PBXGroup; children = ( - 18EE6576A9ED098632CE5155, - EB182DC4124FEFFFC87D12C4, - 8B1C747E63EEF036AD9AF3D8, - ECA97019B42083AD879B5B97, - 1C3D15546065C1A9AA5AA0C6, - B2032A24364695450A5E6A76, - BA415BD77DF4B2F4760D1387, - B72C0FB8DDC0F1102DF42943, - 6930E651AEE97FD47E185EC9, - 96FD3A02BA915E460520A0B7, - E927E4A58A84B21AA6B38A44, - F2212B7F42E26C3DD86800F2, - 09AE2C7E2573204A7A35452B, - B394145555DCB9E0FAA5522C, - 9846D4523B3425BBB04107EE, - 455176F8EDBA7A9DCEAA1367, - F750738F398054AB38250780, - DFF08DC68372AEE17EAA9CC7 ); name = buttons; sourceTree = ""; }; - 17B11D96CDB313ED60D8CFE0 = { isa = PBXGroup; children = ( - A3CB18F915377AC3FFA2E5F4, - B28C2EBD0846A09DAEDDFF4E, - 04F48B09426293224576DA9A, - DF6B4E787E39CD446ED2EEEE, - C992FDA4396430392CFAD150, - 346CC505FAFEE9451040108D, - 3384A91143018ED9346E4118 ); name = "code_editor"; sourceTree = ""; }; - BCB2FFE7C2A4084A267F57F2 = { isa = PBXGroup; children = ( - ADC16C18C8237A7F8E35E37A, - D8EB3EA456D9FCC211CD1ED5, - 0D3FA24FF38399E0EDA80860, - CA3454A9B6F80A2F4735C37E, - 7330A9643F50DE8BEACDBB61, - C0CC0FA84A4F7AA76C1611CB, - 1BC6C010045A06BDB4C684F6, - 3FFCAECECC0D469A010F7AF1, - 71B6CE03D6DB07BB293C8206, - 1DB68310EA4D6180FF948AA0, - 3CE16163A43A6E67428385EE, - E698677EEC8E88CAFF542764, - 6BB68B37C7B0BB4DA8326647, - 1EA844F7CC5377A14B0FD21C, - 76E073B2A3F59A3ACD20CC87, - 8BA30F0AFF5EA0E1A0203ACB, - A4E66D702028A22D8157241C, - CB6BF5E15522D8A272032AE9, - 53EB02EEDF5E7971EAB9E795, - 82FEB35063C3559D2F46AA6F, - 37E48B8F8AD2BC448E5935C7, - A77096E86054F70AC0A3B69E, - 981BACFF7892B83828313D8E, - D317D4B5BA40A5754EE56F47, - 8400CA0D3C2AB7A60A7329FB, - BC209F6862D5923B8F9E3080, - B0D261D42091AAD1560A0D63 ); name = controls; sourceTree = ""; }; - 2FE3729520998304E4B05FBA = { isa = PBXGroup; children = ( - B60FE8BFA252E3EF2D60B77A, - 79ABAD7BB654030EF29B8B9C, - D3B56583D4F60069296DB959, - 3A4ABC7E24F155A8CAF027B3, - B1DEB4E0BBFE7E2D052165BD, - F9FEE6DAB2B2752AC13D7286, - 85F0A0454489E4AF1F80AC83, - 102BAE57AAA43A7685FCBD9A, - F631A108CB5015BFA2E25E00, - 730CAA344708954DE271072C, - 295793C7AA1A57DC4BBCBBC4, - D54308F25AEE3110A166F2BE, - 3AF50EADB5B2C973E0C8EE9F, - 9A9D8C524A070162517620E5, - CD6C610A843822A7FA53E9D7, - CA1B41922D8094982F967DBD, - E9E66775B2F13ACD0B751E69, - B689E250203DE38D6D4F39F9, - 29DFAA512171B967D687A945, - 0AB8288D92FDFA00F30FB8DE, - A418FC3BDDBF1CE9F2903490, - 0EAD906B617A1A17305CB9F4, - 949854EDE6B5B16CEFB6108F, - F39059E72B927A700010851B, - 8A67B45A2BA1D19D1AC43315, - ECDD0F8397F3EE4E7FA7ACCC ); name = filebrowser; sourceTree = ""; }; - 558A664D5D1ECEC607F4775D = { isa = PBXGroup; children = ( - 912C419859C9C56BC96AA6FB, - 717295136FD426125079F78C, - 5ABC6616473BA4791AA8101E, - F61C34EE417006881D0869F4, - 29A79478AE8567250972ED43, - FB080C47434A8FAB73B8F486, - 7F5A271EAB78C7CF8B2341DE, - 92EDE6EA48F94DC5A0BCB24A, - A00C6593BFBFA76043BC0C06, - 02982EB6A81020D3D421AED3, - F1A33029252D29A6ADF171B0, - 15C6FD019B274AA51B4E2D76, - B1E8FF009812F29C2620E6BB, - FAEEA3536AD17B2667A1BB94, - D64DD9F41E4598606855DFCF, - 7356F5E93CEA4D472D83D8E5 ); name = keyboard; sourceTree = ""; }; - D75AAB3AB61247E962C00692 = { isa = PBXGroup; children = ( - 921B616E2229AEB6390D2B57, - FE1072B5FB77E8FEE1BEBDFE, - 07191E1A9805FA6E6F253FF6, - 2EC173A08676F6E592A7B347, - 45E5EE9E0173683D721FABDA, - 2D3A362DD3833B9E70B10FD3, - F8FCCCE06D31FEF697FCD80D, - 44CDA79090B115C3B62A2168, - A6AD7357F905309D1B461EB7, - E9242E8425497D889C764C66, - FF046140CCF1EDB0DFF80178, - B6A223FB5B4A9388C83D6FC7, - A95F42C5CB0C2E5052B31568, - 600B2FDBBBE812784CB49A69, - A31221E2A50CCE9DF06B5F4B, - CB54AC3D311C44A1F3B463A5, - 3D8B0E86C98E2EE49AE868C8, - 238965266F88730956D776DB, - B116FEC4D544DB8E38CB571E, - 797C94BB7F42CBBAACCFFB87, - F1F65C9E7394E04E073A57A4, - F64E8284F142600B9F519B07, - 993C90B10202DA78FA31CC58, - 8C0FFF811E06D162050CAB14, - 079CFB5DEF6F2B71E2910A22, - D5F5282BE0F43A5E16824749, - 143F36BCDE7A65EBA33900ED, - 093E54DECB8191CA74D79176, - F2C653BA4552E6838DFA4F87, - C42D9251031A81B5CF2C843B, - D41423657626ACA672A9DED9, - 811149E18993F029165D330D ); name = layout; sourceTree = ""; }; - EAE72EDE682D52DF77747660 = { isa = PBXGroup; children = ( - FD004BDDCEDB7E324983F70C, - 7B991020107EC0D54965BCA2, - B92ACF027E63D1C788DEC893, - 3C739F61EE232C75546D4DCF ); name = lookandfeel; sourceTree = ""; }; - 870DE7235866DA3B81B683B8 = { isa = PBXGroup; children = ( - 218D7D73C086866E587FFD01, - BB93D3C283731C0B25B7AAAE, - 1DDE0A8E4C5857715D9B5FAE, - 502B3625329816EA6330465F, - 6AACD2FD239E39F87B666C6F, - A563BC883D801CF5956DC4BC ); name = menus; sourceTree = ""; }; - 4F37E36BA5E052B3BD4B87AD = { isa = PBXGroup; children = ( - 9E4B3BAB9BDB06B60D28DF48, - BCDD702ED33BADF3FC19384C, - 3D74B30C63465C32E26D8E33, - D4993649A93B73052C8045EF, - 31EE71EA61B4ED293481EB97, - A08313B5F112579D130373BF, - E1CA0B04EDE60771B81B9700, - 944BC51C440C167C5B2A23E3, - 136109B3076DDA7B2E01CF90, - 067D84F9291770240D1AB5B4, - 50C02B44D0CB18898F575B1E, - 441257DD380138C03568FCBD, - 07CF9AF337779EB486AC92BF, - 2886656DF7ACC9DDC888827F, - 0C28F27F9D1CE6CD65185760, - 89AA49DD2A63D80E90A56768 ); name = mouse; sourceTree = ""; }; - 362862B72D7FF7997C44CECF = { isa = PBXGroup; children = ( - 82DFF1BD3665DC32672FCCE8, - 5B6CD1833A98F9844B7E3FF4, - D39C0B853C3EBBBD11E7C71E, - 657546D70AB7B2709619E07A, - D31704DAB806B6AF3ED52DC7, - 574EC603B2B1189687851319, - 243EF1A31A779413BC2D5B98, - 72EFFDE39C7255D50F926944, - 36BB6DDF702EC9B3DAC851FF, - A3B6342C6207D452F6AD985C, - 9DA988F1D7CE29E0DFED7EF0, - C1A3232DDB617A20D9C26526, - 072D77C3834B1B3FB77F277B, - 749CA35420339A25BA4E500F ); name = positioning; sourceTree = ""; }; - 0F03F34FC3542EF0CF8B31E6 = { isa = PBXGroup; children = ( - 1C3FFBA02AE51EDD72A6250B, - B422688E380911F3C21E3F04, - C45E7E6B6E45DEFBF80940DD, - C1F662CED371C843E4EE03B2, - ECCBF2452804ECB2D5B4BC50, - C6B318D6930A05FF86AD97DA, - E2C948680009D1744CEDBC25, - 5B9E9460EAA932889DDC4873, - 0984A4BA00D6AAFB463657F4, - 02685CE4575D6E9B8CCC7738, - 3451124EC2809C9BB591DF93, - B568DEC2B352281BC63B33CD, - 84311C1F5A8ACC8DF4D6FF34, - 3641ABC17D67038746897FA7 ); name = properties; sourceTree = ""; }; - 5C03BF1C4CF3DEE1E0D6A3A1 = { isa = PBXGroup; children = ( - E748C93240CDD61473B0107F, - DED871B1C7458B15DE7C9234, - 26E787FFC68224BF8EB5A458, - 11F1658A055C45FE824FD2DB, - 4DFF179AFD87D34C7E23B1E5, - 4C3C3AFC3D97C1378B7D7435, - C25DFA2F2B673EB0146412BB, - 0A20E7E561633610A76A34AB, - CD9F817B7EF0DA080668A3A8, - 4BF7A01BCE61A5068CA13D8F, - 9C1D5CDA61FB51F657DA8B22, - 7DB8CFB77EA690ACF54C63B4, - 3C8C1AAF32DFECB89EB83271, - 127FC743FE67E6EEF2531BD5, - 4387C6496C7079FB0032B99D, - 1317F0BE5EC80371F744967B, - 826CC87E9E280F46B6D62B64, - A34C0E63D41CFF5E55FD1D9E, - 6BE989C709D2D1D017548447, - 529CB909220344AD55944372, - A9DB12F944D9DC336AD0A78B, - CC04F253CB70B20B774801A9, - D9847FECA6801E9A61007D50, - 740D1808DB934123F05A1598 ); name = special; sourceTree = ""; }; - 48D41BA310DED74E900A5AB0 = { isa = PBXGroup; children = ( - A5AAF4475138358F33D4904A, - 72C4FDDDB8602591DD4F7B3B, - 8AEF18EE9B12D4677F96B709, - 8F54431CD3A672B1EB8335BE, - 2FFDC7636EFC2D7F74590A31, - 12C66C90F3192AFFD6BCEDB6, - 929FEA5458430B7AE23BBB46, - C286C779DD52C29F86E3DBE9, - 090907E4FE95EE2B11C1A0E1, - 6E522DF13EC47755234A5D57, - 3FC6FC331B4E104D1DC223D6, - 2E4A5F7128313C23AD0356F7, - 207CDD87107EAC8ED17DD601, - 87E57C8F3448D615271CD9F6, - 7C06FF93D655B9987000ECA9, - D7772BC5E4E455AE2916A87D, - 2FC449D291A603E26E938F52, - 6C33842C52B61407CACCA858, - 6165F485E931EF9F69D2145F, - A24990B395323FBAC0BEFB5A, - C7C882D550E3B72FA5EFA88A ); name = windows; sourceTree = ""; }; - 92D807F41C69EA70B3D78B08 = { isa = PBXGroup; children = ( - D0D9267E200BD462361810F7, - 17A21B31FD41D00A4088FADF, - E13F33E386E1A0D5FC546521, - A0D6308567AAA50D1163D9D3, - 621B3A4B154182F69DDE2989, - A1F58C1A972425C2B43DD1B3, - 2FFF9AFE4BD9437CE096E52B, - 41C8C324F13ADA3423FC3B0F, - 2DB55F83F4310F0C4E4E03AA, - 17B11D96CDB313ED60D8CFE0, - BCB2FFE7C2A4084A267F57F2, - 2FE3729520998304E4B05FBA, - 558A664D5D1ECEC607F4775D, - D75AAB3AB61247E962C00692, - EAE72EDE682D52DF77747660, - 870DE7235866DA3B81B683B8, - 4F37E36BA5E052B3BD4B87AD, - 362862B72D7FF7997C44CECF, - 0F03F34FC3542EF0CF8B31E6, - 5C03BF1C4CF3DEE1E0D6A3A1, - 48D41BA310DED74E900A5AB0 ); name = components; sourceTree = ""; }; - 4FB94A8F4982BFC449BCDF15 = { isa = PBXGroup; children = ( - EF18D0073BE50E572ADD9A1C, - 8F6F9E1FD31E1A6268CFD3F9, - D36EFC4421056277BA87387E, - 3AE0BD116486BCE37F0D994C, - 41AF663E626B8F6D319B9966, - C913994AAA448C9F22ACF100, - 112017AA0A061CF080DBD504 ); name = colour; sourceTree = ""; }; - 5C291A35207CB6C58F653E05 = { isa = PBXGroup; children = ( - 3EC800323255128D69539BAE, - BD52C1CCEAF6FEC311B9FDA1, - B7251E779500BA77F5522CC7, - 1F0DB4B2825AF638183B50D6, - EF50EEDCAB08F842AB8DE6DA, - 6320F9BAFA094B5C0C828C58, - 2E03ADF975A126C1F2F7B667, - 36268DD78D00323D391ECAAB, - D6B4FED1F1D9FB82C6424438, - ED3ED8389001D55FBDCF1087, - 5792CC17E9DFB966371CBEE1, - 835CC2A1E67E7B19E41F8FBD, - A7A8BE6B30C70701A10B5BD5, - FF052647D2EFA985D05C8E83, - 2B90FAFBC65FB79A5D74E816 ); name = contexts; sourceTree = ""; }; - 097AEBBD16544F0BEEE32245 = { isa = PBXGroup; children = ( - 504730C9B9F60192C2577979, - B6A249ADEC5400011AA671D9, - 85B7BCACB40E02815844F71D, - 00B5FB5ABF4F13EC5D28E34D, - A54BC72C899A2AF82E1E37F8, - 849E645981CA10B8D5576462, - 582DCC2F948F1DEA0D450B0D, - 17EBDF689C731DA257B243C9, - E0694CD7C814AA99E5A84799, - 0FA9E378EBD7EE63EF72124F, - 62967D33232C5A86D88084B4, - 2FBD6F49349E7CC8FC2051EA, - C17613C202D8E1C366F21D3C, - 1FA43B2E4244CD74B551DAD6, - 2BFC199D03DEEC329D6A7CB1 ); name = drawables; sourceTree = ""; }; - 6D6492A7E3B70A5E76AFB49B = { isa = PBXGroup; children = ( - 32EA297812F1C88B42099501, - 85D4043F9E25047E07496DAC, - CB649686575473223C859482, - FD1FA4ABB4226372235643E4, - 18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = ""; }; - 58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = ( - BA17B023595ECD8166A231D1, - 6B4E90767D784246EC4E1944, - 78068AA59A5DCFCCAAEA79D0, - 0401EA0E883CCAAAC6960A27, - 61D06B694603F608CDA0703B, - 8117D400F45F1DF157634824, - 91CB423DBC5F3CBEDD9CF2EF, - 4284BA7A26C7F6DEB00B4366, - AF66A9951377E2D04C54CADD, - 932024E0F2A2CC22B7657691 ); name = fonts; sourceTree = ""; }; - BF4679D9201C5AAE6751536B = { isa = PBXGroup; children = ( - 2ED8CC539A9D9BE611F67A9A, - 5CD42FFF9F1A509D117BD0CB, - C18F342C087F69D141B3FAF5, - 4011751B9EFCA7B9345D7D7C, - 29BC53FEE9BC27F44534C909, - 795E2BD2D39A3A6E36C26CBF, - 312F208B501E0D7764C6B613, - ADB84942A96B6B9A0F5D7590, - 9D3F1BAB1D48DDECB9F35916, - C2700BB57B9EED7BFE975564, - 132E3C38B4F0C6229EDF7000, - F8C44FF03700F6140950F373, - 1B170F70AF8AA0A39074F671, - 8B7D7435287A20CB2D8E3704 ); name = geometry; sourceTree = ""; }; - D71FD838B3FD1536FCA839A4 = { isa = PBXGroup; children = ( - 0F1C5770B363EF7DF64A876A, - 6619D27E74F623B1E8CE8F71, - EAF0F2EAB230F7539B91A7FB ); name = "image_file_formats"; sourceTree = ""; }; - 36A6F90D0C87EA1D8FBE9EC0 = { isa = PBXGroup; children = ( - D71FD838B3FD1536FCA839A4, - 0337723C9D607B82CF8AA682, - 7904C2A3C52959748C46D54F, - D1BBA8F348C6DA2852A68221, - 94D3EBE6E0D9AFE555226A88, - 16CAB09D19F1A7379506310A, - 67F4F9E1F6B9B4D1C1A668E5, - 35A9146C03FC33B577817E9E, - 6E4DF7338364956EF42C4493, - BC2326E1A85025E700B1DE3D ); name = imaging; sourceTree = ""; }; - 1BC496671A99D62A223BB364 = { isa = PBXGroup; children = ( - 4FB94A8F4982BFC449BCDF15, - 5C291A35207CB6C58F653E05, - 097AEBBD16544F0BEEE32245, - 6D6492A7E3B70A5E76AFB49B, - 58FE42C578BFFD1F8F545B39, - BF4679D9201C5AAE6751536B, - 36A6F90D0C87EA1D8FBE9EC0 ); name = graphics; sourceTree = ""; }; - A11081920ACF526B1320CA42 = { isa = PBXGroup; children = ( - 92D807F41C69EA70B3D78B08, - 1BC496671A99D62A223BB364 ); name = gui; sourceTree = ""; }; - 3C4DE044AE46D5AE2388C827 = { isa = PBXGroup; children = ( - 3FD3FA96955DD648494E76A4, - 974C3A59CC78DB4302B3552A, - 692A95B19D9C32094A1E07B9, - DC51AF61DC4B345E5E4153E3, - 058702E8697667AEA38254C1, - 090490A1C3B0002DFAD78C7B, - 6FFB38088C11BAE68368A3E7, - 4EEF0B0BB4C3D1956B04122B, - 59B2FFF817679AEA84375E1B, - 49BF2B02A6D7B4438FC24839, - 00B348FA35A7F691AEF84FBA, - D9B3C04F8EB4228DD59002E7, - 42DA88264F768BAACD0414A3, - 17C3AF03FF7AE88AE0C73311, - 75D6F1C676E178DEA8B86849, - 4035C867821E9B5887AA25FB, - 4D005659935C7DE99C2C01E2 ); name = files; sourceTree = ""; }; - 13FBF71BD76A08C8971C6351 = { isa = PBXGroup; children = ( - EFA58F646B69B227AEF14140, - 7241B187AA9B0217838B6052, - 06B06C420341B005DFF951D2, - 286206E754AC14DEAF88FD43, - AD7A1C2C82EE714EBDD52EFC, - 21215569A0DCB6ACADD32401 ); name = network; sourceTree = ""; }; - 177636E4EEEBBB139F934897 = { isa = PBXGroup; children = ( - D4211E697F43821CDBCE4F24, - 7D593A29CAB138BD9AE950BA, - BE5DCD603F7E21A1F66CDF33, - 304FD4FD5771F00C8EA46C10, - AE363A1FE2F403F7CE2FDF7F, - 770082A38CF6071E5CFA563D, - A10A63E2098A85B5CA9265B1, - 8932FA0AA37E1E04CBA55B23, - AC183DCFAF18C9CEB88EEB1E, - 3F60563DEC7941B88163A50E, - BB059F528EC362F86E4B4278, - 39C0783ED515AAA82F9CA37F, - BD4388D88F2F02195AC73AD1, - B3F5E7A708350F72E7C77153, - DFE9A08C4AC8E1809018B5F4, - BBE79494A818EF83F52A4C7B, - 5F27172FD963C1A748AA625A, - AE5A7EC70F288E7EA682081D, - 6F7CA1B3AD09C76271FED3D6 ); name = streams; sourceTree = ""; }; - 0C54591C1E8594B59F4701FE = { isa = PBXGroup; children = ( - 3C4DE044AE46D5AE2388C827, - 13FBF71BD76A08C8971C6351, - 177636E4EEEBBB139F934897 ); name = io; sourceTree = ""; }; - F5A63AD86C7C0A9A2C33D74D = { isa = PBXGroup; children = ( - 7A039686F4F852E26936CA53, - 161894D0D279595D88F470A6, - 868E43A4BB7015579789E4F8, - 8E0874D93125C2DC34255EDB, - 7C2A4084A267F57F2E27F3F7, - D99C977ACCD09262F06F6624, - A978BD4031CAE24FB0FE26E1, - 1A656E62C071C54D28343AC2 ); name = maths; sourceTree = ""; }; - 9518033FC989E104DDB02E8A = { isa = PBXGroup; children = ( - 252632F3F97DF57C0781BEAD, - 8FB80383DF3BAD7227DF465A, - FE76B46873DE20DFDC5A94BE, - 28C4C81039B42A399F5B7320, - 341631A7E86BF1C0E49093C6, - AD655AA04981173716022D8D, - F1D085B5F12E814BF1D5C395, - 58654C2630387C4A336A5BFB, - 524A70C9F23954F8F2A3F99B, - E05812E3CC31875A202D6B30, - 224C989BF83B6EA867814BFF ); name = memory; sourceTree = ""; }; - DDB94A7300C3D1F2E9E51C47 = { isa = PBXGroup; children = ( - 213F0A7BF38AF6AB34414A45, - 21B2342B75097AB93CFF7E97, - 2C48BB1A286C6A63174E5798 ); name = common; sourceTree = ""; }; - 1004A23965A4DB0FCC441ED3 = { isa = PBXGroup; children = ( - 7A51D8B81F390A4CABF25C73, - 76DB94CC776536F5D05B9445, - AA698DD5A82F91CF84A29666, - FABA493FEE07E6373DD8EB41, - 595EBA8A689DA899986314D8, - EACFC12E665283EB7926E9EC, - BAE5CE629DF9D286293E616F, - D4C499CB25F043FE667BC5E1, - 4366712140FBEBEDBCBDCE9B, - E0A2C24581917DD090186333, - E61B485B10F8D4A3986953CD, - 3F3D429025A92B6F0FB6F8EF, - 275F2210628D9E9968B1B258, - 5DEA687D261C59CBABB782E9, - 5593DEC14D551C38CCB50D70, - B8E47498C7C6D5ECF41F0EAB, - 9DC2C10B16A645EEB82220D8 ); name = linux; sourceTree = ""; }; - 13513EE40AD6BAB30E26C88B = { isa = PBXGroup; children = ( - EE5F18DF1DED7617C4A41FF3, - B2BCE9DDC8F0F54CA3D913E7, - 5249EFBE3B22E6FC1A7B6D42, - A257B76FCE9D594EAD41414C, - 8280AA34B23B4D366711A9E7, - C9561A66310DAD5EEB4A9462, - B62991F8AEE7327BA8A5070F, - 013F753639A6350C8DC602AD, - 6B46AB1931E43DAFB278D23D, - 72524FE185FF48DC1F954341, - BF5307F364AC9250D8625168, - AA4823F2F2A78C43D7A039D0, - 87A5A064CC3CD55BA5D7617D, - 641638A0466CEC1BDEAFB476, - 7DB37383434F45D8A7B674C3, - CB16B2438EDCC10C499645E6, - BEB35C6173793C1CB7AB6311, - BA58B49B820A47F6F55CDACB, - 930E58E13FC92BF70AC20EEF, - 2F1812B26076D9CC1495D452, - 9113CDD122D2790E147A8CF5, - EE56999A85AF18015C540183, - 189F69E0B926C73B654D6951, - B9E16F4636FF8C0A1FC8BEFB, - AE9A7A0775FA806126A74E16, - 4F5D1AA83981FBCD33CE234F, - E6A7BFB0FCD17A9B133CDFA4, - FE6E3F911679B0D7547577A3, - 8BCE60CBC91DBAAB089958A1, - 3F11593DC3A168A52FCC2DD9, - FC2C82760E717788B5A6E691, - AB0F3F5A622CBB251F64945A, - AD495FA1991295C722B46843 ); name = mac; sourceTree = ""; }; - 64DE2D4534D79E74C40A0DEE = { isa = PBXGroup; children = ( - 42059626955C547DA6AD3196, - 8F383A785B4876198C5B0194, - F3B50EE3939E9F16D13C3C7C, - 9C4D1018ECC0BA07346453EF, - 3A37CD82212075940421CE4F, - B296F736C0CD6AC15BE6424B, - 7F3EF672D07ECE3E13AAF267, - 249959E338D7750E56A9F2F8, - 58B70C726D186B4E770300BC, - DCD09B6EF4A4A109DE01F152, - 7527A5E8F4F39581159D3E5B, - 1DBF9DAAD0690CB2CA4E9960, - E9B203E963EB1AB566061AC1, - BA561E64C6400CFB1DE013F6, - 061B492EABD6B1C995D581A8, - 50159A5B7A552A6C1EB557F3, - E7625D7A06CBC11F40A56A70, - CDA5FCC51F6C1E84D7DC3274, - B14735381ADB00741166E330, - 09AE0882D58BE1715219556A, - 0EB41C0AB478EE02D8C851F9, - FBE07C5CC622A5D36BDAB9E1, - B07C853EB60D8D8691BC1B4B, - 5D32C8856093B33438AEB758, - 8758E6857070D7E5406FDE3F, - 8E8BE2F1C182E418BBA6903C ); name = windows; sourceTree = ""; }; - FBE56423C0482E49EF317C85 = { isa = PBXGroup; children = ( - 03B9D3D9042E85BDD691325E, - 13C661B79E1E9508512A6B21, - F2F68E50F42BD0F124E89E2C, - 59C46E289F86C80D4341EAA3, - FA82460758BDCB2DCCE1EAAA, - CE06EEED7426AA45C27B629C, - F439E6C4B2D2AF19645252C0, - 1D74C9567283836ECC70E48B, - 40216CE846A54CE706131A23, - E646726910F110DC34DD1662, - 9AF9F1C0D766D4F894E4A7B0, - 902C32F471DA6C435E80372B, - A404CD721E2A0F0CAE9326C5, - 32B7C3609BDA01AA09740139, - CEF7210E311274F1DFAB6882, - 755C440534C0EB494572B3F3, - EE855319AF344A05C92580C7, - FCD02A40985242A8A6648311 ); name = android; sourceTree = ""; }; - B3E58752D519C56B78A95ACE = { isa = PBXGroup; children = ( - DDB94A7300C3D1F2E9E51C47, - 1004A23965A4DB0FCC441ED3, - 13513EE40AD6BAB30E26C88B, - 64DE2D4534D79E74C40A0DEE, - FBE56423C0482E49EF317C85 ); name = native; sourceTree = ""; }; - C6B52BCD0CB1B809D6DE555A = { isa = PBXGroup; children = ( - 76E2084D2148068F9138A816, - 33F16EE4F38C9B76E7FAEF78, - 72F5ED2E8B945988C37EA9CF, - 663746215E9BA6C761172B85, - C3FD9D93626F80A45F9B6DDE, - 4007410FACA2F865FD8EF769, - 8273A206FB309671284959DD, - BF888BC540B64D5C61E46A34, - 644FD6155385BC3AA270FB5D, - CB092FB152F43900272F8E43, - 4A97C8D2FF6454DDD3AF4BE5, - 2AA21CDC91EA122266EBD780, - 35DA3E75DDB03BB35794289B, - B507B4A8712A54D7A8C03223, - 1EE2A763E06AF4951024950F, - 23252E4C97AEFAE0C5EEAA77, - D4FED84C92ADC4B2C41A4275, - 81B36E7C56DF1A777AA04F71, - E5458BE2F33DBBF5AF834BB6, - 0EC7DE81A516F4130AC59557, - C972C24A7D2FC817362E1FD7, - 5715BC14D93D61D71206FCB2, - B4575FEE10C67D45C9532540, - 95F21C2733BD5932372E4157, - 4EF8C44FF03700F6140950F3 ); name = text; sourceTree = ""; }; - 723AC5B999F1EC8F4A101AAF = { isa = PBXGroup; children = ( - 40282E23D43D86D122CA5C54, - EC240B4379FB70C8A8AC2855, - 5508D42FCF7A1C8A8CD78BF0, - 90E4999A78655A238AF42BC0, - 8E78623B2D21CFE68DEC0483, - 9E622C38E4BD511B6ABBF7AA, - 6734838B47EF0D9ACEE571CD, - F00BDEF5CE2B281CBE2E89A2, - C5F20B02D7843F3C5ABEDFD4, - 1FD1C9A3D2DB64C825FDAC8B, - 4D60F7F748CF6702D1E45960, - EFE26D4E1E2B92828DBA3A99, - EF06213027EA3F7C54EE0F18, - C25E5F90524645D684C674CB, - 60F21CB42270ACE2241544A8, - ED84C92ADC4B2C41A4275F92, - 3268C8DBAB23CF503BF30935 ); name = threads; sourceTree = ""; }; - 281D6856FAC3B07634AD1C32 = { isa = PBXGroup; children = ( - B4435D42216365FA97651272, - CE216F2485CD5EFEA91554F5, - 599F5C47BB9B5898E0E88CF3, - 9620E4769876FC01ECE885D1, - 4BE2727CCD2CD7603402C8FE, - 7FDACEA80794451691A12703, - A618FC3255ECE14EC9259E6B, - A2D6317BEEC77A62E8F834AF, - 7F1AC20BE8A18CA6BB7403EC, - FA833EFA9E93C7DBE6624676, - EECE464606AE845BFC4B941B, - A59A5DCFCCAAEA79D03C2B27, - 3C9E6597968358B57374502C, - ADE5F12AA5AD969E2C7002B3, - 75700D13513346310CEAC30D, - AAC585C4648559DD713F28FE ); name = utilities; sourceTree = ""; }; - 992526B83B6AA618A4FAECEB = { isa = PBXGroup; children = ( - D443FD24B52106986FC8A531, - F2B0E44A08E127FD31184241, - 1CC2889DB696E12FC34E3F50, - 1AF37A533ABDD889670F9349, - 2B74AFA66B37B748487152F4, - 89F308FD85F378E278C98884, - A11081920ACF526B1320CA42, - 0C54591C1E8594B59F4701FE, - F5A63AD86C7C0A9A2C33D74D, - 9518033FC989E104DDB02E8A, - B3E58752D519C56B78A95ACE, - C6B52BCD0CB1B809D6DE555A, - 723AC5B999F1EC8F4A101AAF, - 281D6856FAC3B07634AD1C32, - 2FD5C998952BE08F8ED3F262, - 01778F26212AECCBF2452804 ); name = Juce; sourceTree = ""; }; - 1076A9F8D71BFFF9E9975FB6 = { isa = PBXGroup; children = ( ); name = Resources; sourceTree = ""; }; - 23256FCDBD84A2E259E40908 = { isa = PBXGroup; children = ( ); name = Frameworks; sourceTree = ""; }; - 3E3A3D491CB40D2943E95E64 = { isa = PBXGroup; children = ( - 389351359BA78C682E1931A6 ); name = Products; sourceTree = ""; }; - 25F381A264FFB3735F124DCC = { isa = PBXGroup; children = ( - 992526B83B6AA618A4FAECEB, - 1076A9F8D71BFFF9E9975FB6, - 23256FCDBD84A2E259E40908, - 3E3A3D491CB40D2943E95E64 ); name = Source; sourceTree = ""; }; - 0344046290267DB74DECDC05 = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - DSTROOT = ../../bin; - SYMROOT = ../../bin; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; - DEPLOYMENT_LOCATION = YES; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; - ONLY_ACTIVE_ARCH = YES; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "_DEBUG=1", - "DEBUG=1", - "JUCE_ObjCExtraSuffix=JSlRKlNBb5", - "JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Debug; }; - 9DE19CD5BB8E12A153385ADD = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = Info.plist; - DSTROOT = ../../bin; - SYMROOT = ../../bin; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; - DEPLOYMENT_LOCATION = YES; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "_NDEBUG=1", - "NDEBUG=1", - "JUCE_ObjCExtraSuffix=JSlRKlNBb5", - "JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Release; }; - 8E935B9E7F2982A06CD7EF99 = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - WARNING_CFLAGS = -Wreorder; - GCC_MODEL_TUNING = G5; - GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - ZERO_LINK = NO; - DEBUG_INFORMATION_FORMAT = "dwarf"; - PRODUCT_NAME = "jucedebug"; }; name = Debug; }; - 71190EFA58D0942581B5F1AD = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - WARNING_CFLAGS = -Wreorder; - GCC_MODEL_TUNING = G5; - GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - ZERO_LINK = NO; - DEBUG_INFORMATION_FORMAT = "dwarf"; - PRODUCT_NAME = "juce"; }; name = Release; }; - 3A1CB6B5ECF4A79CDE35CC66 = { isa = XCConfigurationList; buildConfigurations = ( - 8E935B9E7F2982A06CD7EF99, - 71190EFA58D0942581B5F1AD ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - D14EC3F0DC5861E37D35E15A = { isa = XCConfigurationList; buildConfigurations = ( - 0344046290267DB74DECDC05, - 9DE19CD5BB8E12A153385ADD ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 8914D147048B9EE245989ACB = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0F4BA87762766B98D5B58AD0, - 50933337E6C3CC5B82540F8B, - 04CB2DA89A71A183CEFEB7C0, - CD59C8E60146B04575CD61E6, - 76890501626BFFF310A94F15, - 46151070FA7D3426EC35280F, - 983FCD60625A60993546F850, - 416D6F00E88DC74879B4DF2B, - 9C709BC2F4F0EE60BF52FACA, - 992F46189ABF711A047186A4, - 5C312E6678456C8293633E0F, - FB21B7E6A7CE55D3C0E3C37E, - C1147D03F1F4D697CC30DD22, - C5CFF5508299C26380465290, - 0ACCAC5ABDE686B0CA42BFED, - 2171BD82DA3A6744260CDE58, - 3C22C15ACEEF0454171D231B, - 6D421F7B7EE3A149389653C2, - 4ED0A649C320BA53718501CE, - 5D3EC9BA6BA37694CB371ABB, - 4CF5FB501CB800D4485B08DB, - 3747D91BE3C6A2E641BB133D, - 4CFEE72495007A62F78C1B8E, - BF7E18A49525915A0E1928C5, - 6DC6DEEE8A1A6092830A79C8, - 2862E190ECA33D2CE1458B51, - 0791EB173E6A9F959E692AA2, - 3B64EF7F57EAC5C51460059D, - 16D537EB6D3BFAB3AAB54B11, - 0C22446F12486AD139A640CB, - 95CF50482DC7139FCB40EB1C, - D66B0BC466522CD4C5F1335B, - F20E960CAA933102A0F0225C, - 9CDC242CC037F1D00BFD6157, - FB0C4D926F00644C6435F0B4, - 3AA8CE85F8CEA9D4B8063E52, - DDD4E27CA174F32412F71093, - DC89A29962945F69CE38658B, - 78E7EF1759BA0AACCCE37533, - 573BF08B2CACCC317F3D7603, - 8376B6E3DB141DDF5EFF6327, - B579C891B16F4B219CD751B5, - 43FA6F0FD4DDEBA6427E730D, - BAB3164372A6C31A1A7DA58F, - D71FEEEA440682B04E024BB7, - B331EE2C23176373F2D52C1E, - 79D8E372BA77018BDA956D92, - 3688819F98EFF0AABDD79029, - 84F9FCAE9DF003DC6FC3C941, - E1046147432EB115A68D6C43, - 5CEE2D7E55DA99C1D310CDC2, - B154245927BCB4F87ABEAF17, - 52ADF1419B058963EE32B7C3, - 31D36C32211754E793B9FF81, - 2D46CF2B0350A442E08EC355, - D1407BB28C169F5E1CAC3CC7, - 07E6E11A658930554FF0C56A, - E8DFABC1603D55B97429A8E4, - 1F905F44E5FA23A2D5CCDA0A, - 4AB5E55BDF79028F82F83D8E, - 9D2D1BA65C27BDA1F7C44769, - 43B3119E2F1B559263AE956C, - 4A7952C0A4EEE13296EEED5E, - A230949FF8848D5E923F9083, - 11162E9812CFB0E738A7E2E6, - C682BEA7DB70FDC7C6BA2D6E, - 6A53DA58B55E2DE7241BF2C8, - 0FF71870483AC46D5B7AC5B0, - FA01B3EABA192AE041D4FE4D, - 43047D78351C2D7047F4F81E, - 5BF44F954E56B7C2DD15EAEA, - B14EB5F3829CA26DA906D5C0, - D75943C2812EA68CA74D9FDA, - 6DEA630BFFF638BBBC8FDC00, - 708060ED04ADF4E4FB8E2171, - 12E3CC31875A202D6B30F778, - CF51988743ED2CD823DFE0B5, - 4AAFC135B170CF02A40F0D51, - 659D9CD58B6914EB420E6AEC, - 55737E2F1817DE642AA7DA05, - 6D2C50B0A69855A7F8C062E7, - 70EE7A1273945B62B013DB43, - 9DF800566462E24A14246EAE, - 89F0DA39878F8A41E60B8C67, - 12E1174518BE1063E506CE5C, - EC0B67A801316FBA35A04356, - 86EDB250B9F5C8FF3045ADEB, - 8F7CC7DDA1E07A392CAD82A3, - 621B7B0B518E63E69122C13E, - 97982824572C18827047D92A, - 927E7250FCE62E838599DF83, - 9AE6891C35CE161CB1707B4B, - 06994A713C38F415C4E8A009, - 98F737B7459895BFCDC7965E, - 7033A0968B1C81A821CCC296, - 14E5A383C70731C60911E698, - 3A10CF09C41F8F55B7529E68, - 5482BFF6CAD3B6CDFB09FBA1, - FC3299637EACD8B5CBEC391F, - 5C245C1A77B96A1425323A1C, - 05DFD3AF416CA6FDDDDC4C74, - 78DEB64D3F38269C62EB1C7F, - DA5DA96B9D1A26342D9278B6, - CA49EF43B1478B146ADBBF62, - FE6F6A4946B7E4F6C9F44C4A, - 28254F1E6E686CF6F29AE56A, - 9EA7FEF4CAD2BF46DD3596DA, - D1400B3D9D07FA9E8BAA21CB, - 716823F3B5437A20FCADA50E, - 7CAB8DEBF6B93C845AEF11E5, - BBE24BE654237ACD381A97E4, - 6F38AFBC749040844076FD4F, - B35BFCD19569A9F91A3CCCF5, - 7C7B33BC2E2F245C8AFC9879, - 110285CA29B28DDC018D2BF0, - ECF05C68A4DF71A10F8E8BA4, - 50CE14D31986BA1BC81B0869, - E421EC41CB492F58BF1D9C4E, - E3CDB77EF18430879925E6A3, - 55E5B76FB1649B60DBE16B89, - 6D1A45ED50BAFAE4F4E403AC, - 70D519927F38B21BE572201A, - E4EFC5F8828526CE4518F1E6, - 835F7FDCAD027B4E96AB407C, - D027C0131892DA25CE716DDE, - A65EBA33900ED91BE522DBF7, - 0D91D36C2195315FE534F304, - A1E82F70796B8611D7323247, - BC1856E0B20406DDCE5EBF94, - FF3A28F88174E10CB478931E, - C39AE37828718E9A45589A24, - 4400B0595B35F919291C1A01, - BB1DAC0CA8D7B3DEEDEE76C6, - 56F347211337C9229BA06AA7, - 75EAEC54BA3A8BD7F317C7E4, - 5FFFA4B8857D64FE36B4B125, - 1D406F33F6B9FE7F92A71438, - 806FF2617B7CC21609927A11, - 9AA76460DA7D34CE6A69E2B1, - 4E81BC4A50CF1883F529E152, - 8FBB6BF0C5406E1BA481CFEF, - F5F3F25D9F377128DC74D95B, - C64A2BF05224582134872415, - 0A9C9486A6B31F21B1472D2B, - ED9F9A6CB4F8BB7FEA5384B7, - DE0BAD16BD5A6568EB4D228B, - AF6FEC311B9FDA112CEEBE03, - 3795ECCE9D98F872F5BCAE64, - 723CFE5184B20B12ECABEB41, - DB6098F004F6D7F19605002E, - 757AC60B8BA481E592FFE6FF, - FC659F15D298558D9553B643, - C090ACD462D9431C8B64CAD1, - D894FBF1CF62C5F126213616, - 3D80F7AE3D65EE0BB607F252, - 2F33C392A0DD205A865955DE, - 36615B7CB2BE96B624C4ADC0, - 4F2AAD8318402F8C23A9EA54, - E6971F06B78AE76C35E1A19C, - 6629D535AE1ABE35A0D53C69, - DD4599D0A8117B025B477DE1, - E064E329741F36C329989203, - 61E659ADBF9D832ED8F24540, - 9379C833B875207E5DFC5A3F, - F1A6C2E3226F87860BFC4EBC, - 144872E56AED1981C0973B24, - 95648DF5676EBEF57009D09A, - 2FE59D80851A0A392EF2F923, - 621D2E6CDA267030405166C2, - 90347B7C32ACE8A11FC1B708, - FAC87D81FE5168E37645A113, - E5BB4B5EBFE206E09D0E6E10, - 1906C642BF6CA67821512855, - 6F41A81F269BCBB912C6AFBC, - 7BB45CEB3B0913F98FC817F5, - F41D6061AD873C619D7436FB, - 1FC0972EFBE39C7CDEB73A3D, - E63E64BFF5FDCEF5B53AE304, - E162F83B5F038092E2C70FC0, - 710BF477DE534CF18BD68959, - E5DA150E966B948C4CB4EFDB, - E96B477EB51FC152AC2EA6BD, - CF36EF39EEAB7A4744C5D310, - 372B6FF28C49018F5191C517, - D9AAB4AE220010CD526C87D2, - C732ADB05901619B14F1D6BB, - 075D5995E41FDD670ED35E17, - BBE02E8719411C8A7D43A401, - 35E3B9684ED968BAC0BC8021, - 736AC4A9DA6515B92644FA02, - DFFBADCBC9C7E31B391BA560, - A24A946371D566E02BCC95A5, - D390CCB01BD9BD132F04E0A6, - 26E2FB6533B5700FA9780E00, - AF5593DEC14D551C38CCB50D, - 0B830401EA0E883CCAAAC696, - 3897B36CC1D89C5755CE1B90, - C55B00378E784DE4B428E934, - 82A9E0388C9BF3A698DCEF69, - 7F6749BFCF2F134468825D45, - 277CF246D5EE48868E38E625, - 4D285D9D3F5955F2FD574D04, - 30F9B53BD00228406F6477DF, - 759633D5CDB35874FD37DD7F, - E0F309D93E9A7F0CC71C4503, - F246AADF8E531BC2244A1D38, - F78940DAEB8BE98A9AA4B0BE, - 00FE118356919D0BA97AE853, - 18D8A96CCD34E41A5E162AD5, - CEB8A9B9A37EBBA79A6478D4, - D6D48B2CC53FAE2BD126B0DE, - C384A89F786FDE8426F657D5, - 3D324F656EEF8F1FB2B437AC, - 645AF66C048A4815F5A8ECDD, - 38EFE824E76B3BB99824C265, - E23C5C51305DC7CE30E4DAB7, - 60E1742796432D042C59B9B3, - B92F53BABB6A9AC8348B001E, - EBC3AA015D24C62FA0307F51, - 803FFCA3DAC0C004A80143B4, - F0556B3AD9D388177E26B90D, - 0558FFF11AED944C6B3E5FB5, - CF73FAC91E319C464F07C966, - B6D3EDA0F2E3516F3922F23F, - E7C9FAA5F8A4AEDAD8A8CC1D, - 084C9F2D4F78134CB1EFE676, - 4DAD08CD3A688747C9CA237B, - 60FE8BFA252E3EF2D60B77AD, - C592CC923C5495467EF05D48, - E12096E92D3D43DD7926E063, - F4567E6C9ABFB13FF24797DE, - 0B0996F97D926609C23E5F90, - FB5900FB9E071EDC2542B846, - EDE605169F0AF038FE5097B3, - D78C3DA6505CE8CC3F17C070, - B23EE989379EB2F075D6F587, - ED7C62DE10250FCC07CF17B2, - 1535D49C24E8A9FA5F6DCF6E, - BBCA4C01CEF1EDA75625D6DC, - 136FB9588C834E6F4A1EEBFB, - 274415D1C0AE9BF56FAAE791, - CBAD975785BD26A0DA9417B6, - 2A8F78D412AC7EC0C2998A1A, - 2DD969525DEF4AD408E9BB59, - 059B694C912BE81023D5240D, - 4387EB80C5795FACBE753A7F, - B2C41D39730EB3AC75D55949, - F045E8F977C00016F6EBB1B7, - B89FE5AB44DDEBCC050F8D7A, - 2EA320797BD7D2137F133681, - 1008A8A446B9BCADBB853056, - 0FB1AED6E5AB5CEA95E70950, - 103A3B11DFE35E9088ECE933, - DAC7AB8D9EA70D99A1C1287E, - B3D08D9E24CC369E4838E6FF, - 15932C8039A59B0431FBB93E, - 3BBC410C79D2F53D32ED7466, - 88A4D0443DFD6BA1A1B32AB9, - 06F1BEB9AB97F33305B8F816, - 6CB4FA2797FBEA5C4C342EED, - 150C16E65ADC7E3359C88510, - 9C547F4DC4FC50F9C3382ACE, - 5D1B2A14239B0351261D832E, - 0AFD6B2B694302A62C7C9DD1, - 3CE21931FC5A59ED7C23144B, - DB7E8E984F9BEF4C84B887B1, - 07645D91AFD4F8512ECD48ED, - D132232A4A404A7C08D10928, - 83B488D64AB9828CFFBC55A9, - 8305C5E01476E99FBB1A0315, - FF613B604C2333F4A4ACEDDA, - CECE3D66B19693E41850C30D, - DF419EBD05F13A0D2073D47A, - C9FB7884928BF0D6140AF881, - 5C9628DB3E0C0BA8809AE45D, - 724DA2BCA5ABC5772604C3B4, - 035B1F7B1505ABF24455690E, - 3C71EA297D7418FEBB52F9DD, - 7A86E411B55E15DA7AF1FE67, - BD86381924AE45021246ABA3, - 306AB64E97A05B800349E7E2, - E7A5418175B23C794421441C, - 51F5844EAE455D51BDB17228, - C99F35ABEC13F58C27C1D303, - 3D9B5EDBECAA680B0A067F5C, - 724B03672FC7862B671969BC, - 8B31099030792C554BD51211, - D04EEEC7EAE7C806E95ED41C, - 7EA440527972D6B7322EC307, - CB9FE1DA1AFE5FBA9FF06061, - 26454A5DB5BAFD7901F17DA7, - F41B46F970BA78762DCE67D1, - B7A8CF6F889840BED05C8C27, - 3EBF23F390FC0227260CF7CB, - 1906FDEEDAE61C88A59BC271, - F51142C2CF336FC4A4FAACC6, - 1021132FAC7870AC18C040DE, - 05C8FA821C64B69BFF8FAF2C, - 5E330E219B2D2944BCE95174, - 275FBC09BE58E708A73B88C1, - 6DA99BA218FB45568258841C, - 32F1C95EDEE7722797B8CEE8, - 029A0E8B44DC17211722677D, - 4B4E17467BC41E2166549998, - 9686F29C29D1C26E353DE68A, - 79B4C2F1C0CF592ACE8093C0, - 88A87D28B3809665F28DC16E, - 6BDBEFD97E643E5BB27637FF, - BC3C22F5350ED7433D303A04, - 0B41EC4D7839F8CBCB8F9A0D, - B420CD4B589C08EAFA6E3DA4, - D4A05D7CA67B6F0527C9BD81, - 0D7547577A31512EDCEDC42C, - E2FDC7D3E3DC4C1423FA0C5B, - A46B0025A68136ED993E0D85, - B99678E919BF547A3A3F5D6E, - 5B714CDD0082419BFED7D2D4, - 2DD498313DA488A5063C4C1B, - 5B33FFE120A47EF42CBC05E4, - 552D45FB250C62F86CD02A57, - 0E8E9829E95E32163F45482D, - 6801797B247CB3A6890C0AB0, - B0B82AB2D9B0950F67B11BEA, - 379B4A89E5403B57A2009E76, - 6ED121D4FEE575408B9612AB, - 9ADE436BC62FB84E297C1CA0, - 03D534E5B18011C3E03CDD40, - 06E2ED69E9FAC199D559F276, - 9801CCC32F01818B39CFD88E, - FE553DDF4F83DABF13DF4A2B, - 68DB48B0EC9E5E37C6B5281C, - 96E9017FBE104E9EADC586B1, - BA6C6EF4C88D49C640DA7BF6, - 0B124D9CE361014F815A5958, - C701E3FCB168A3B4A31C4242, - 04F6D85CCF26A7F6DE589876, - 62912A2DA2F01212517938E7, - 36D770FCDAC86084A495B96E, - DA2A4714F1A6957A4F2B8D48, - CE9A64287FCEF00DD2BA6AEE, - 2AC6F3BFAAA21E21076A9F8D, - B8DD4DB0BD1A6B38BBF92413, - 1C0B1362E81C8B073BF0DCEC, - 63BEC07A51CB8E516B38ECD4, - C8F81E843F446868FAD88197, - 50D91A2EC0ABF894E612D936, - 82568CF438EF4C950E4A42DF, - B2E9D0C534DDE9F96921A054, - C8D06AE9C68A675A87DC9C99, - FE2999972FE3D6E251DA6653, - 8B2193898D3465B5995EE98A, - 4FB3EE200AEA14C7218D7034, - 81E79D9217773BF0E39F7812, - 2A360CDF2B5A46B282CEA2C4, - 01FD07AB480226E84D52F591, - D8B9941A1375579D6CE7C1C4, - 0DE731ED3EC994B9227C2741, - A124FE5709D9324B5BAFFE53, - A84A5CA4654AE87192A6A096, - 55EDB4D9B702B469DB4655C3 ); runOnlyForDeploymentPostprocessing = 0; }; - 01555BA382FAED280FF5F58A = { isa = PBXNativeTarget; buildConfigurationList = D14EC3F0DC5861E37D35E15A; buildPhases = ( - 8914D147048B9EE245989ACB ); buildRules = ( ); dependencies = ( ); name = Juce; productName = Juce; productReference = 389351359BA78C682E1931A6; productType = "com.apple.product-type.library.static"; }; - FCFFEDFC83101B196BFA2AE2 = { isa = PBXProject; buildConfigurationList = 3A1CB6B5ECF4A79CDE35CC66; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 25F381A264FFB3735F124DCC; projectDirPath = ""; projectRoot = ""; targets = ( 01555BA382FAED280FF5F58A ); }; - }; - rootObject = FCFFEDFC83101B196BFA2AE2; -} diff --git a/Builds/VisualStudio2005/Juce.sln b/Builds/VisualStudio2005/Juce.sln deleted file mode 100644 index 49f069576a..0000000000 --- a/Builds/VisualStudio2005/Juce.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -# Visual C++ Express 2005 -Project("{30DE6365-A0C4-171D-3ADD-E102A1BD1BB8}") = "Juce", "Juce.vcproj", "{2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.ActiveCfg = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.Build.0 = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.ActiveCfg = Release|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Builds/VisualStudio2005/Juce.vcproj b/Builds/VisualStudio2005/Juce.vcproj deleted file mode 100644 index 7323f7b832..0000000000 --- a/Builds/VisualStudio2005/Juce.vcproj +++ /dev/null @@ -1,1038 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Builds/VisualStudio2008/Juce.sln b/Builds/VisualStudio2008/Juce.sln deleted file mode 100644 index 4ee40ce2d4..0000000000 --- a/Builds/VisualStudio2008/Juce.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{30DE6365-A0C4-171D-3ADD-E102A1BD1BB8}") = "Juce", "Juce.vcproj", "{2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.ActiveCfg = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.Build.0 = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.ActiveCfg = Release|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Builds/VisualStudio2008/Juce.vcproj b/Builds/VisualStudio2008/Juce.vcproj deleted file mode 100644 index e076a2ac73..0000000000 --- a/Builds/VisualStudio2008/Juce.vcproj +++ /dev/null @@ -1,1038 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Builds/VisualStudio2008_DLL/Juce.sln b/Builds/VisualStudio2008_DLL/Juce.sln deleted file mode 100644 index 4ee40ce2d4..0000000000 --- a/Builds/VisualStudio2008_DLL/Juce.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{30DE6365-A0C4-171D-3ADD-E102A1BD1BB8}") = "Juce", "Juce.vcproj", "{2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.ActiveCfg = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.Build.0 = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.ActiveCfg = Release|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Builds/VisualStudio2008_DLL/Juce.vcproj b/Builds/VisualStudio2008_DLL/Juce.vcproj deleted file mode 100644 index a83b98eb80..0000000000 --- a/Builds/VisualStudio2008_DLL/Juce.vcproj +++ /dev/null @@ -1,1040 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Builds/VisualStudio2010/Juce.sln b/Builds/VisualStudio2010/Juce.sln deleted file mode 100644 index 97770c677b..0000000000 --- a/Builds/VisualStudio2010/Juce.sln +++ /dev/null @@ -1,18 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -Project("{30DE6365-A0C4-171D-3ADD-E102A1BD1BB8}") = "Juce", "Juce.vcxproj", "{2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.ActiveCfg = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Debug|Win32.Build.0 = Debug|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.ActiveCfg = Release|Win32 - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Builds/VisualStudio2010/Juce.vcxproj b/Builds/VisualStudio2010/Juce.vcxproj deleted file mode 100644 index 75be023df0..0000000000 --- a/Builds/VisualStudio2010/Juce.vcxproj +++ /dev/null @@ -1,845 +0,0 @@ - - - - - - Debug - Win32 - - - Release - Win32 - - - - {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3} - - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - true - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\..\..\bin\ - .\..\..\bin\ - jucelib_static_Win32_debug - .\..\..\bin\ - .\..\..\bin\ - jucelib_static_Win32 - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - - - - Disabled - EditAndContinue - %(AdditionalIncludeDirectories) - _LIB;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) - MultiThreadedDebug - true - - .\Debug\ - .\Debug\ - .\Debug\ - Level4 - true - - - _DEBUG;%(PreprocessorDefinitions) - - - .\..\..\bin\jucelib_static_Win32_debug.lib - true - libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) - true - .\Debug\jucedebug.pdb - Windows - MachineX86 - - - true - .\Debug\jucedebug.bsc - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - - - - MaxSpeed - %(AdditionalIncludeDirectories) - _LIB;WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) - MultiThreaded - true - - .\Release\ - .\Release\ - .\Release\ - Level4 - true - - - NDEBUG;%(PreprocessorDefinitions) - - - .\..\..\bin\jucelib_static_Win32.lib - true - %(IgnoreSpecificDefaultLibraries) - false - .\Release\juce.pdb - Windows - MachineX86 - true - true - - - true - .\Release\juce.bsc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Builds/VisualStudio2010/Juce.vcxproj.filters b/Builds/VisualStudio2010/Juce.vcxproj.filters deleted file mode 100644 index 3ad7766b85..0000000000 --- a/Builds/VisualStudio2010/Juce.vcxproj.filters +++ /dev/null @@ -1,2446 +0,0 @@ - - - - - - {4EBB1AA0-C8C1-3A6E-4EEF-16D94A800C1D} - - - {E82B03B5-6C8B-32F8-FAB4-137DDBF9B03B} - - - {CAC35CEF-05A2-0670-EC21-954802764D60} - - - {17E38334-C120-7A48-FC92-3B30391D55FA} - - - {7C06CCB7-976D-79CF-57E4-FCE804DF4E19} - - - {0B983ACE-956D-6A24-F8C8-CE5BB260747E} - - - {886F5D81-78E1-42D2-7966-8746D242F6A6} - - - {7EB89E3D-DEFC-BD00-47DB-6EFE2D2EBA94} - - - {3C5ABC64-AB1E-2A0D-A185-828FFD5B5668} - - - {CB2E433E-1BE3-ABE4-5184-808BFB05F3DA} - - - {3EA06C97-CA9B-017F-F658-B6AFE39B1F5F} - - - {2B37EA38-AE04-A748-30AA-CB4C6CB18570} - - - {116E44B0-2193-064C-D252-3CA9C69E72B4} - - - {0F3CA87D-CB24-BF9D-4A8B-47E079B2DF7C} - - - {B8CE82F1-B084-4B70-AB1D-3D0F56ECC8D1} - - - {CCD85E1C-AAD0-AE3D-B543-2DD1401AC274} - - - {16408406-C36B-3D15-02A0-1A95C9BA465C} - - - {02356100-882F-2B5A-04F2-4692C2D43816} - - - {C853ECCB-F0E9-FFF3-55DB-419E2B20B837} - - - {7E0F3FCA-F70B-CADA-CF05-86754F3109E7} - - - {54AC0A55-CC5C-6219-AB36-B5C26B885E20} - - - {CC9556B2-2BC2-96E0-32C4-F3A69670C658} - - - {4363D749-999F-79AB-8824-5D6C2C6D4548} - - - {77B59E1F-0AAA-45EC-DEDF-5833BFD6ABB2} - - - {71E7F95D-5D93-6A52-3B04-3079DE9B7520} - - - {64DE4A8F-F3A6-60D4-ABCE-EB9D0645D899} - - - {C88D4A21-79EB-12CE-AE91-861542871292} - - - {3D424C6E-60D9-F5D7-57A3-12E338CF5854} - - - {0BBC3B03-2BD1-0BE2-48DE-42B6003D20C9} - - - {E8CDBA7B-355C-DDCD-2933-BE4FB964F2B6} - - - {E32AB6D4-DAAE-5D7D-1B1D-43D79A874FC8} - - - {6F3422BC-1140-5902-4BE8-83E7693136AC} - - - {1FB1BF2B-A73D-FC59-6CEE-219A5A9D57DF} - - - {3858B8C1-6873-0627-2387-678CC788EA96} - - - {9EF0AA5A-8B7F-E8BD-5EEC-5452C255D342} - - - {7DAEDC2C-B323-896A-3273-4C4108461BB0} - - - {210D20DC-B260-4F3D-A08A-2FC4DEAFD9BD} - - - {B5741E32-133D-F56B-DC82-F47AF8B0D27D} - - - {B4A49E1D-E5A4-A7B8-0749-252EFC318BDE} - - - {1DF00D90-FA2E-A2AF-AED9-379D050629F3} - - - {4BA22EF4-EF5A-8FA7-2A4F-2EA55A126598} - - - {37CE3166-A559-E350-DFC9-A963810B59A6} - - - {97F2C641-6AEA-7FA9-193B-C8F36EE0DD0F} - - - {E94A000A-7F89-9C6C-C393-1A9B18E0C716} - - - {5141F842-AA21-CDC9-1EA1-22266EBD7807} - - - {89F198B9-60A8-D24F-5204-2CD67851BCF3} - - - {490D1803-CF9F-8D56-E16A-D15EEDB8C3E9} - - - {939AB894-8A98-5465-332C-88B3EE3FAFC1} - - - {D6FF810F-61FA-739C-D430-3A9DD573F077} - - - {4399B64E-2D91-A936-C261-CB4AF3F4ADFA} - - - {1C375704-29AD-E915-5C03-96A9DF473A21} - - - {E48884B1-132F-96C5-EF93-AB47FE750C9B} - - - {F1BA3931-F495-119F-BE20-A6117A1CD41A} - - - {EBCA4826-20A6-A600-3179-3208DCEE7F9A} - - - {BC072C4D-20F2-393F-A199-BA12EADC660F} - - - {8967A721-6CC3-0F4D-4300-6566C7A2AD58} - - - {23C18B4F-06EA-FC28-9229-7AF1ACA6F6EA} - - - {00FDA359-9F94-7E24-9C9E-5E78860054FC} - - - {AED1A02A-B39D-B69B-FD23-861C4E50621B} - - - {EA223401-284E-5F2F-FACB-4944AF280662} - - - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\devices - - - Juce\audio\devices - - - Juce\audio\devices - - - Juce\audio\dsp - - - Juce\audio\dsp - - - Juce\audio\dsp - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\plugin_client\AU - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\VST - - - Juce\audio\plugin_client\VST - - - Juce\audio\plugin_client\Standalone - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\synthesisers - - - Juce\audio\synthesisers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\cryptography - - - Juce\cryptography - - - Juce\cryptography - - - Juce\cryptography - - - Juce\cryptography - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\gui\components - - - Juce\gui\components - - - Juce\gui\components - - - Juce\gui\components - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\code_editor - - - Juce\gui\components\code_editor - - - Juce\gui\components\code_editor - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\lookandfeel - - - Juce\gui\components\lookandfeel - - - Juce\gui\components\menus - - - Juce\gui\components\menus - - - Juce\gui\components\menus - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\effects - - - Juce\gui\graphics\effects - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\imaging\image_file_formats - - - Juce\gui\graphics\imaging\image_file_formats - - - Juce\gui\graphics\imaging\image_file_formats - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\network - - - Juce\io\network - - - Juce\io\network - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\maths - - - Juce\maths - - - Juce\maths - - - Juce\memory - - - Juce\native\common - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\linux - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\native\android - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\application - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_file_formats - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\audio_sources - - - Juce\audio\devices - - - Juce\audio\devices - - - Juce\audio\devices - - - Juce\audio\dsp - - - Juce\audio\dsp - - - Juce\audio\dsp - - - Juce\audio\dsp - - - Juce\audio\dsp - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\midi - - - Juce\audio\plugin_client\RTAS - - - Juce\audio\plugin_client\Standalone - - - Juce\audio\plugin_client - - - Juce\audio\plugin_client - - - Juce\audio\plugin_client - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host\formats - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\plugin_host - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\processors - - - Juce\audio\synthesisers - - - Juce\audio\synthesisers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\containers - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\core - - - Juce\cryptography - - - Juce\cryptography - - - Juce\cryptography - - - Juce\cryptography - - - Juce\cryptography - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\events - - - Juce\gui\components - - - Juce\gui\components - - - Juce\gui\components - - - Juce\gui\components - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\buttons - - - Juce\gui\components\code_editor - - - Juce\gui\components\code_editor - - - Juce\gui\components\code_editor - - - Juce\gui\components\code_editor - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\controls - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\filebrowser - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\keyboard - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\layout - - - Juce\gui\components\lookandfeel - - - Juce\gui\components\lookandfeel - - - Juce\gui\components\menus - - - Juce\gui\components\menus - - - Juce\gui\components\menus - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\mouse - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\positioning - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\properties - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\special - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\components\windows - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\colour - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\contexts - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\drawables - - - Juce\gui\graphics\effects - - - Juce\gui\graphics\effects - - - Juce\gui\graphics\effects - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\fonts - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\geometry - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\gui\graphics\imaging - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\files - - - Juce\io\network - - - Juce\io\network - - - Juce\io\network - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\io\streams - - - Juce\maths - - - Juce\maths - - - Juce\maths - - - Juce\maths - - - Juce\maths - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\memory - - - Juce\native\common - - - Juce\native\common - - - Juce\native\linux - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\mac - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\windows - - - Juce\native\android - - - Juce\native\android - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\text - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\threads - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce\utilities - - - Juce - - - Juce - - - diff --git a/Builds/iOS/Juce.xcodeproj/project.pbxproj b/Builds/iOS/Juce.xcodeproj/project.pbxproj deleted file mode 100644 index c07c94a9f0..0000000000 --- a/Builds/iOS/Juce.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2446 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - - 0F4BA87762766B98D5B58AD0 = { isa = PBXBuildFile; fileRef = 144F56FCF3DF9EC922765901; }; - 50933337E6C3CC5B82540F8B = { isa = PBXBuildFile; fileRef = 36A407F2BE4A625184B5CCFD; }; - 04CB2DA89A71A183CEFEB7C0 = { isa = PBXBuildFile; fileRef = 21E1DBFAB3FB75875EA35280; }; - CD59C8E60146B04575CD61E6 = { isa = PBXBuildFile; fileRef = 415BD77DF4B2F4760D138735; }; - 76890501626BFFF310A94F15 = { isa = PBXBuildFile; fileRef = BA97FEDA576503A21D971F1E; }; - 46151070FA7D3426EC35280F = { isa = PBXBuildFile; fileRef = 1AA8BE2D76E153874FB08197; }; - 983FCD60625A60993546F850 = { isa = PBXBuildFile; fileRef = 0877D5750D6F21C5231687CA; }; - 416D6F00E88DC74879B4DF2B = { isa = PBXBuildFile; fileRef = 7D85530D76756C33795ECCE9; }; - 9C709BC2F4F0EE60BF52FACA = { isa = PBXBuildFile; fileRef = 93006D32B18174D9FE0A5E9E; }; - 992F46189ABF711A047186A4 = { isa = PBXBuildFile; fileRef = 9349E14552FEA0371553E808; }; - 5C312E6678456C8293633E0F = { isa = PBXBuildFile; fileRef = 2AD64F53E12B20011B7A0DB7; }; - FB21B7E6A7CE55D3C0E3C37E = { isa = PBXBuildFile; fileRef = 59597FA0A88A08937801D198; }; - C1147D03F1F4D697CC30DD22 = { isa = PBXBuildFile; fileRef = 27C3C51DF2519B519B76E2EE; }; - C5CFF5508299C26380465290 = { isa = PBXBuildFile; fileRef = CB32D4EE59D5CA9DB12F944D; }; - 0ACCAC5ABDE686B0CA42BFED = { isa = PBXBuildFile; fileRef = 203AC66FFB20EAD2E7A594BD; }; - 2171BD82DA3A6744260CDE58 = { isa = PBXBuildFile; fileRef = E00781B15E47C9CB9E94869D; }; - 3C22C15ACEEF0454171D231B = { isa = PBXBuildFile; fileRef = DA868174D4D2059AC1BE7E71; }; - 6D421F7B7EE3A149389653C2 = { isa = PBXBuildFile; fileRef = 7CF036906034FABB44D2108F; }; - 4ED0A649C320BA53718501CE = { isa = PBXBuildFile; fileRef = D5D2FD212300E7D49ED74823; }; - 5D3EC9BA6BA37694CB371ABB = { isa = PBXBuildFile; fileRef = 7AE5295A472723B26537FAEC; }; - 4CF5FB501CB800D4485B08DB = { isa = PBXBuildFile; fileRef = FBB2EEF0E5EC5EB6F89E9066; }; - 3747D91BE3C6A2E641BB133D = { isa = PBXBuildFile; fileRef = 74AD63909D3EE09D63256A76; }; - 4CFEE72495007A62F78C1B8E = { isa = PBXBuildFile; fileRef = 5D6E837F124C347B3C1CAE23; }; - BF7E18A49525915A0E1928C5 = { isa = PBXBuildFile; fileRef = 1511366CAD437989DAA30CF2; }; - 6DC6DEEE8A1A6092830A79C8 = { isa = PBXBuildFile; fileRef = D86718CE7E5DEF2071AC3D17; }; - 2862E190ECA33D2CE1458B51 = { isa = PBXBuildFile; fileRef = 9A8053936C35A19B9E98623A; }; - 0791EB173E6A9F959E692AA2 = { isa = PBXBuildFile; fileRef = E2A56C23BF2BB466BB273E3E; }; - 3B64EF7F57EAC5C51460059D = { isa = PBXBuildFile; fileRef = 5403C2A4DEE7B9B3B34235F8; }; - 16D537EB6D3BFAB3AAB54B11 = { isa = PBXBuildFile; fileRef = 3988438157D4B75177703F8A; }; - 0C22446F12486AD139A640CB = { isa = PBXBuildFile; fileRef = 6841D6AC927D02113F3AEBD4; }; - 95CF50482DC7139FCB40EB1C = { isa = PBXBuildFile; fileRef = C7DB1BB9AF7FE0A2AA38D767; }; - D66B0BC466522CD4C5F1335B = { isa = PBXBuildFile; fileRef = EAFD034BB1721BFBF9A3795E; }; - F20E960CAA933102A0F0225C = { isa = PBXBuildFile; fileRef = 5DB9D903D24646B0C2356A5D; }; - 9CDC242CC037F1D00BFD6157 = { isa = PBXBuildFile; fileRef = A1D687AE613A8B61EB63923D; }; - FB0C4D926F00644C6435F0B4 = { isa = PBXBuildFile; fileRef = E68EB4BC75216B5B56E3F937; }; - 3AA8CE85F8CEA9D4B8063E52 = { isa = PBXBuildFile; fileRef = B457515938E7141D5E79B671; }; - DDD4E27CA174F32412F71093 = { isa = PBXBuildFile; fileRef = 891E0B1AD09C0EA44297E0F2; }; - DC89A29962945F69CE38658B = { isa = PBXBuildFile; fileRef = 0731C60911E6985F51325484; }; - 78E7EF1759BA0AACCCE37533 = { isa = PBXBuildFile; fileRef = DF3833AF6E38E55218FDF23F; }; - 573BF08B2CACCC317F3D7603 = { isa = PBXBuildFile; fileRef = 0D3A77572C7256CE4C115FD7; }; - 8376B6E3DB141DDF5EFF6327 = { isa = PBXBuildFile; fileRef = 78D29BB5C76CCF7C21EC0DAF; }; - B579C891B16F4B219CD751B5 = { isa = PBXBuildFile; fileRef = 01712FF0A160032FA1DAA8C2; }; - 43FA6F0FD4DDEBA6427E730D = { isa = PBXBuildFile; fileRef = 50FAF92038EBD0127900AAA1; }; - BAB3164372A6C31A1A7DA58F = { isa = PBXBuildFile; fileRef = FCBB1DC14311D099809B21F7; }; - D71FEEEA440682B04E024BB7 = { isa = PBXBuildFile; fileRef = 2EBF36FAAF019B6F811D1C84; }; - B331EE2C23176373F2D52C1E = { isa = PBXBuildFile; fileRef = 1C8211DFB558D740EF4B173A; }; - 79D8E372BA77018BDA956D92 = { isa = PBXBuildFile; fileRef = DA4820727D6DDC75561A262C; }; - 3688819F98EFF0AABDD79029 = { isa = PBXBuildFile; fileRef = 3110B983ACE956D6A24F8C8C; }; - 84F9FCAE9DF003DC6FC3C941 = { isa = PBXBuildFile; fileRef = B6E20AE45813C0CA9B1014DD; }; - E1046147432EB115A68D6C43 = { isa = PBXBuildFile; fileRef = AF47BC3796A74CC15A192E8B; }; - 5CEE2D7E55DA99C1D310CDC2 = { isa = PBXBuildFile; fileRef = 9C5C0BCB2A298160025B15FC; }; - B154245927BCB4F87ABEAF17 = { isa = PBXBuildFile; fileRef = AB554593165FE8C8B40F4447; }; - 52ADF1419B058963EE32B7C3 = { isa = PBXBuildFile; fileRef = BC2A50B0B01128E394E9DE9C; }; - 31D36C32211754E793B9FF81 = { isa = PBXBuildFile; fileRef = D141C024A3F5A6748B0E9ED7; }; - 2D46CF2B0350A442E08EC355 = { isa = PBXBuildFile; fileRef = 08EBC2152F45FB2B839FCCC1; }; - D1407BB28C169F5E1CAC3CC7 = { isa = PBXBuildFile; fileRef = 096CF2243648F17E1BF5421B; }; - 07E6E11A658930554FF0C56A = { isa = PBXBuildFile; fileRef = ED5966B95F865C586A3CE08F; }; - E8DFABC1603D55B97429A8E4 = { isa = PBXBuildFile; fileRef = 35668D8EEA19957C6C9AC83A; }; - 1F905F44E5FA23A2D5CCDA0A = { isa = PBXBuildFile; fileRef = 4F22276689685D839BD252EA; }; - 4AB5E55BDF79028F82F83D8E = { isa = PBXBuildFile; fileRef = F77C9170829579FABA5679AD; }; - 9D2D1BA65C27BDA1F7C44769 = { isa = PBXBuildFile; fileRef = 70E5409425A76782B6188B31; }; - 43B3119E2F1B559263AE956C = { isa = PBXBuildFile; fileRef = 9BD379D2F7995BFE0B3E5369; }; - 4A7952C0A4EEE13296EEED5E = { isa = PBXBuildFile; fileRef = 1809284DD05B56309D7EA24F; }; - A230949FF8848D5E923F9083 = { isa = PBXBuildFile; fileRef = 5D27EE211D9BFF6A58C4DC42; }; - 11162E9812CFB0E738A7E2E6 = { isa = PBXBuildFile; fileRef = 4DF9D333038A442870668D31; }; - C682BEA7DB70FDC7C6BA2D6E = { isa = PBXBuildFile; fileRef = D66C00E06B06EAD3B5257DD6; }; - 6A53DA58B55E2DE7241BF2C8 = { isa = PBXBuildFile; fileRef = 4555F03DBD059EEDECEF9F85; }; - 0FF71870483AC46D5B7AC5B0 = { isa = PBXBuildFile; fileRef = DF6CAC67C0F2D379BDA03062; }; - FA01B3EABA192AE041D4FE4D = { isa = PBXBuildFile; fileRef = CFAECB6551F48A1695DEC243; }; - 43047D78351C2D7047F4F81E = { isa = PBXBuildFile; fileRef = 0AD73B8EA0D60D9927B36624; }; - 5BF44F954E56B7C2DD15EAEA = { isa = PBXBuildFile; fileRef = 18B170E96511BBA1019C66F8; }; - B14EB5F3829CA26DA906D5C0 = { isa = PBXBuildFile; fileRef = 8D2DE1F3CB15D003C90042E7; }; - D75943C2812EA68CA74D9FDA = { isa = PBXBuildFile; fileRef = CEF91E0C9CBB3EBFF9500FDA; }; - 6DEA630BFFF638BBBC8FDC00 = { isa = PBXBuildFile; fileRef = E3C548295935D26121D5D823; }; - 708060ED04ADF4E4FB8E2171 = { isa = PBXBuildFile; fileRef = EAFD8FAF365DFB32DC42D0E7; }; - 12E3CC31875A202D6B30F778 = { isa = PBXBuildFile; fileRef = E9E692847C14AD33CD5FB40B; }; - CF51988743ED2CD823DFE0B5 = { isa = PBXBuildFile; fileRef = 7AE9331938549244E27A5D0E; }; - 4AAFC135B170CF02A40F0D51 = { isa = PBXBuildFile; fileRef = 4CBD301A08E9C3762F861FC3; }; - 659D9CD58B6914EB420E6AEC = { isa = PBXBuildFile; fileRef = 31D985CB8646B78460E9D5A7; }; - 55737E2F1817DE642AA7DA05 = { isa = PBXBuildFile; fileRef = 1617348BBF5D103619D76911; }; - 6D2C50B0A69855A7F8C062E7 = { isa = PBXBuildFile; fileRef = B80F8CD026033ACCCE11A1A4; }; - 70EE7A1273945B62B013DB43 = { isa = PBXBuildFile; fileRef = AE68ECB6E063BD8D4984C0B3; }; - 9DF800566462E24A14246EAE = { isa = PBXBuildFile; fileRef = 843A7B398E9411F0AF28D65D; }; - 89F0DA39878F8A41E60B8C67 = { isa = PBXBuildFile; fileRef = 9CF077D3ED7B7B56F351AAF6; }; - 12E1174518BE1063E506CE5C = { isa = PBXBuildFile; fileRef = E594F70DC2F292FF1EF65CB6; }; - EC0B67A801316FBA35A04356 = { isa = PBXBuildFile; fileRef = E2D07ED5E1A4A460E0DEF59C; }; - 86EDB250B9F5C8FF3045ADEB = { isa = PBXBuildFile; fileRef = 1F2CFBF13ADCA05C0DC2D7D4; }; - 8F7CC7DDA1E07A392CAD82A3 = { isa = PBXBuildFile; fileRef = C818B558D6D5B62A80621281; }; - 621B7B0B518E63E69122C13E = { isa = PBXBuildFile; fileRef = D0D9267E200BD462361810F7; }; - 97982824572C18827047D92A = { isa = PBXBuildFile; fileRef = E13F33E386E1A0D5FC546521; }; - 927E7250FCE62E838599DF83 = { isa = PBXBuildFile; fileRef = 621B3A4B154182F69DDE2989; }; - 9AE6891C35CE161CB1707B4B = { isa = PBXBuildFile; fileRef = 2FFF9AFE4BD9437CE096E52B; }; - 06994A713C38F415C4E8A009 = { isa = PBXBuildFile; fileRef = 18EE6576A9ED098632CE5155; }; - 98F737B7459895BFCDC7965E = { isa = PBXBuildFile; fileRef = 8B1C747E63EEF036AD9AF3D8; }; - 7033A0968B1C81A821CCC296 = { isa = PBXBuildFile; fileRef = 1C3D15546065C1A9AA5AA0C6; }; - 14E5A383C70731C60911E698 = { isa = PBXBuildFile; fileRef = BA415BD77DF4B2F4760D1387; }; - 3A10CF09C41F8F55B7529E68 = { isa = PBXBuildFile; fileRef = 6930E651AEE97FD47E185EC9; }; - 5482BFF6CAD3B6CDFB09FBA1 = { isa = PBXBuildFile; fileRef = E927E4A58A84B21AA6B38A44; }; - FC3299637EACD8B5CBEC391F = { isa = PBXBuildFile; fileRef = 09AE2C7E2573204A7A35452B; }; - 5C245C1A77B96A1425323A1C = { isa = PBXBuildFile; fileRef = 9846D4523B3425BBB04107EE; }; - 05DFD3AF416CA6FDDDDC4C74 = { isa = PBXBuildFile; fileRef = F750738F398054AB38250780; }; - 78DEB64D3F38269C62EB1C7F = { isa = PBXBuildFile; fileRef = A3CB18F915377AC3FFA2E5F4; }; - DA5DA96B9D1A26342D9278B6 = { isa = PBXBuildFile; fileRef = 04F48B09426293224576DA9A; }; - CA49EF43B1478B146ADBBF62 = { isa = PBXBuildFile; fileRef = 346CC505FAFEE9451040108D; }; - FE6F6A4946B7E4F6C9F44C4A = { isa = PBXBuildFile; fileRef = ADC16C18C8237A7F8E35E37A; }; - 28254F1E6E686CF6F29AE56A = { isa = PBXBuildFile; fileRef = 0D3FA24FF38399E0EDA80860; }; - 9EA7FEF4CAD2BF46DD3596DA = { isa = PBXBuildFile; fileRef = 7330A9643F50DE8BEACDBB61; }; - D1400B3D9D07FA9E8BAA21CB = { isa = PBXBuildFile; fileRef = 1BC6C010045A06BDB4C684F6; }; - 716823F3B5437A20FCADA50E = { isa = PBXBuildFile; fileRef = 71B6CE03D6DB07BB293C8206; }; - 7CAB8DEBF6B93C845AEF11E5 = { isa = PBXBuildFile; fileRef = 3CE16163A43A6E67428385EE; }; - BBE24BE654237ACD381A97E4 = { isa = PBXBuildFile; fileRef = 6BB68B37C7B0BB4DA8326647; }; - 6F38AFBC749040844076FD4F = { isa = PBXBuildFile; fileRef = 76E073B2A3F59A3ACD20CC87; }; - B35BFCD19569A9F91A3CCCF5 = { isa = PBXBuildFile; fileRef = A4E66D702028A22D8157241C; }; - 7C7B33BC2E2F245C8AFC9879 = { isa = PBXBuildFile; fileRef = 53EB02EEDF5E7971EAB9E795; }; - 110285CA29B28DDC018D2BF0 = { isa = PBXBuildFile; fileRef = 37E48B8F8AD2BC448E5935C7; }; - ECF05C68A4DF71A10F8E8BA4 = { isa = PBXBuildFile; fileRef = D317D4B5BA40A5754EE56F47; }; - 50CE14D31986BA1BC81B0869 = { isa = PBXBuildFile; fileRef = BC209F6862D5923B8F9E3080; }; - E421EC41CB492F58BF1D9C4E = { isa = PBXBuildFile; fileRef = B60FE8BFA252E3EF2D60B77A; }; - E3CDB77EF18430879925E6A3 = { isa = PBXBuildFile; fileRef = D3B56583D4F60069296DB959; }; - 55E5B76FB1649B60DBE16B89 = { isa = PBXBuildFile; fileRef = B1DEB4E0BBFE7E2D052165BD; }; - 6D1A45ED50BAFAE4F4E403AC = { isa = PBXBuildFile; fileRef = 102BAE57AAA43A7685FCBD9A; }; - 70D519927F38B21BE572201A = { isa = PBXBuildFile; fileRef = 730CAA344708954DE271072C; }; - E4EFC5F8828526CE4518F1E6 = { isa = PBXBuildFile; fileRef = D54308F25AEE3110A166F2BE; }; - 835F7FDCAD027B4E96AB407C = { isa = PBXBuildFile; fileRef = 9A9D8C524A070162517620E5; }; - D027C0131892DA25CE716DDE = { isa = PBXBuildFile; fileRef = CA1B41922D8094982F967DBD; }; - A65EBA33900ED91BE522DBF7 = { isa = PBXBuildFile; fileRef = 29DFAA512171B967D687A945; }; - 0D91D36C2195315FE534F304 = { isa = PBXBuildFile; fileRef = A418FC3BDDBF1CE9F2903490; }; - A1E82F70796B8611D7323247 = { isa = PBXBuildFile; fileRef = 949854EDE6B5B16CEFB6108F; }; - BC1856E0B20406DDCE5EBF94 = { isa = PBXBuildFile; fileRef = 8A67B45A2BA1D19D1AC43315; }; - FF3A28F88174E10CB478931E = { isa = PBXBuildFile; fileRef = 912C419859C9C56BC96AA6FB; }; - C39AE37828718E9A45589A24 = { isa = PBXBuildFile; fileRef = 5ABC6616473BA4791AA8101E; }; - 4400B0595B35F919291C1A01 = { isa = PBXBuildFile; fileRef = 29A79478AE8567250972ED43; }; - BB1DAC0CA8D7B3DEEDEE76C6 = { isa = PBXBuildFile; fileRef = 7F5A271EAB78C7CF8B2341DE; }; - 56F347211337C9229BA06AA7 = { isa = PBXBuildFile; fileRef = A00C6593BFBFA76043BC0C06; }; - 75EAEC54BA3A8BD7F317C7E4 = { isa = PBXBuildFile; fileRef = F1A33029252D29A6ADF171B0; }; - 5FFFA4B8857D64FE36B4B125 = { isa = PBXBuildFile; fileRef = B1E8FF009812F29C2620E6BB; }; - 1D406F33F6B9FE7F92A71438 = { isa = PBXBuildFile; fileRef = 921B616E2229AEB6390D2B57; }; - 806FF2617B7CC21609927A11 = { isa = PBXBuildFile; fileRef = 07191E1A9805FA6E6F253FF6; }; - 9AA76460DA7D34CE6A69E2B1 = { isa = PBXBuildFile; fileRef = 45E5EE9E0173683D721FABDA; }; - 4E81BC4A50CF1883F529E152 = { isa = PBXBuildFile; fileRef = F8FCCCE06D31FEF697FCD80D; }; - 8FBB6BF0C5406E1BA481CFEF = { isa = PBXBuildFile; fileRef = A6AD7357F905309D1B461EB7; }; - F5F3F25D9F377128DC74D95B = { isa = PBXBuildFile; fileRef = FF046140CCF1EDB0DFF80178; }; - C64A2BF05224582134872415 = { isa = PBXBuildFile; fileRef = A95F42C5CB0C2E5052B31568; }; - 0A9C9486A6B31F21B1472D2B = { isa = PBXBuildFile; fileRef = A31221E2A50CCE9DF06B5F4B; }; - ED9F9A6CB4F8BB7FEA5384B7 = { isa = PBXBuildFile; fileRef = 3D8B0E86C98E2EE49AE868C8; }; - DE0BAD16BD5A6568EB4D228B = { isa = PBXBuildFile; fileRef = B116FEC4D544DB8E38CB571E; }; - AF6FEC311B9FDA112CEEBE03 = { isa = PBXBuildFile; fileRef = F1F65C9E7394E04E073A57A4; }; - 3795ECCE9D98F872F5BCAE64 = { isa = PBXBuildFile; fileRef = 993C90B10202DA78FA31CC58; }; - 723CFE5184B20B12ECABEB41 = { isa = PBXBuildFile; fileRef = 079CFB5DEF6F2B71E2910A22; }; - DB6098F004F6D7F19605002E = { isa = PBXBuildFile; fileRef = 143F36BCDE7A65EBA33900ED; }; - 757AC60B8BA481E592FFE6FF = { isa = PBXBuildFile; fileRef = F2C653BA4552E6838DFA4F87; }; - FC659F15D298558D9553B643 = { isa = PBXBuildFile; fileRef = D41423657626ACA672A9DED9; }; - C090ACD462D9431C8B64CAD1 = { isa = PBXBuildFile; fileRef = FD004BDDCEDB7E324983F70C; }; - D894FBF1CF62C5F126213616 = { isa = PBXBuildFile; fileRef = B92ACF027E63D1C788DEC893; }; - 3D80F7AE3D65EE0BB607F252 = { isa = PBXBuildFile; fileRef = 218D7D73C086866E587FFD01; }; - 2F33C392A0DD205A865955DE = { isa = PBXBuildFile; fileRef = 1DDE0A8E4C5857715D9B5FAE; }; - 36615B7CB2BE96B624C4ADC0 = { isa = PBXBuildFile; fileRef = 6AACD2FD239E39F87B666C6F; }; - 4F2AAD8318402F8C23A9EA54 = { isa = PBXBuildFile; fileRef = 9E4B3BAB9BDB06B60D28DF48; }; - E6971F06B78AE76C35E1A19C = { isa = PBXBuildFile; fileRef = 3D74B30C63465C32E26D8E33; }; - 6629D535AE1ABE35A0D53C69 = { isa = PBXBuildFile; fileRef = 944BC51C440C167C5B2A23E3; }; - DD4599D0A8117B025B477DE1 = { isa = PBXBuildFile; fileRef = 067D84F9291770240D1AB5B4; }; - E064E329741F36C329989203 = { isa = PBXBuildFile; fileRef = 441257DD380138C03568FCBD; }; - 61E659ADBF9D832ED8F24540 = { isa = PBXBuildFile; fileRef = 2886656DF7ACC9DDC888827F; }; - 9379C833B875207E5DFC5A3F = { isa = PBXBuildFile; fileRef = 82DFF1BD3665DC32672FCCE8; }; - F1A6C2E3226F87860BFC4EBC = { isa = PBXBuildFile; fileRef = D39C0B853C3EBBBD11E7C71E; }; - 144872E56AED1981C0973B24 = { isa = PBXBuildFile; fileRef = D31704DAB806B6AF3ED52DC7; }; - 95648DF5676EBEF57009D09A = { isa = PBXBuildFile; fileRef = 243EF1A31A779413BC2D5B98; }; - 2FE59D80851A0A392EF2F923 = { isa = PBXBuildFile; fileRef = 36BB6DDF702EC9B3DAC851FF; }; - 621D2E6CDA267030405166C2 = { isa = PBXBuildFile; fileRef = 9DA988F1D7CE29E0DFED7EF0; }; - 90347B7C32ACE8A11FC1B708 = { isa = PBXBuildFile; fileRef = 072D77C3834B1B3FB77F277B; }; - FAC87D81FE5168E37645A113 = { isa = PBXBuildFile; fileRef = 1C3FFBA02AE51EDD72A6250B; }; - E5BB4B5EBFE206E09D0E6E10 = { isa = PBXBuildFile; fileRef = C45E7E6B6E45DEFBF80940DD; }; - 1906C642BF6CA67821512855 = { isa = PBXBuildFile; fileRef = ECCBF2452804ECB2D5B4BC50; }; - 6F41A81F269BCBB912C6AFBC = { isa = PBXBuildFile; fileRef = E2C948680009D1744CEDBC25; }; - 7BB45CEB3B0913F98FC817F5 = { isa = PBXBuildFile; fileRef = 0984A4BA00D6AAFB463657F4; }; - F41D6061AD873C619D7436FB = { isa = PBXBuildFile; fileRef = 3451124EC2809C9BB591DF93; }; - 1FC0972EFBE39C7CDEB73A3D = { isa = PBXBuildFile; fileRef = 84311C1F5A8ACC8DF4D6FF34; }; - E63E64BFF5FDCEF5B53AE304 = { isa = PBXBuildFile; fileRef = DED871B1C7458B15DE7C9234; }; - E162F83B5F038092E2C70FC0 = { isa = PBXBuildFile; fileRef = 11F1658A055C45FE824FD2DB; }; - 710BF477DE534CF18BD68959 = { isa = PBXBuildFile; fileRef = 4C3C3AFC3D97C1378B7D7435; }; - E5DA150E966B948C4CB4EFDB = { isa = PBXBuildFile; fileRef = 0A20E7E561633610A76A34AB; }; - E96B477EB51FC152AC2EA6BD = { isa = PBXBuildFile; fileRef = 9C1D5CDA61FB51F657DA8B22; }; - CF36EF39EEAB7A4744C5D310 = { isa = PBXBuildFile; fileRef = 3C8C1AAF32DFECB89EB83271; }; - 372B6FF28C49018F5191C517 = { isa = PBXBuildFile; fileRef = 1317F0BE5EC80371F744967B; }; - D9AAB4AE220010CD526C87D2 = { isa = PBXBuildFile; fileRef = A34C0E63D41CFF5E55FD1D9E; }; - C732ADB05901619B14F1D6BB = { isa = PBXBuildFile; fileRef = CC04F253CB70B20B774801A9; }; - 075D5995E41FDD670ED35E17 = { isa = PBXBuildFile; fileRef = A5AAF4475138358F33D4904A; }; - BBE02E8719411C8A7D43A401 = { isa = PBXBuildFile; fileRef = 8AEF18EE9B12D4677F96B709; }; - 35E3B9684ED968BAC0BC8021 = { isa = PBXBuildFile; fileRef = 2FFDC7636EFC2D7F74590A31; }; - 736AC4A9DA6515B92644FA02 = { isa = PBXBuildFile; fileRef = 929FEA5458430B7AE23BBB46; }; - DFFBADCBC9C7E31B391BA560 = { isa = PBXBuildFile; fileRef = 090907E4FE95EE2B11C1A0E1; }; - A24A946371D566E02BCC95A5 = { isa = PBXBuildFile; fileRef = 2E4A5F7128313C23AD0356F7; }; - D390CCB01BD9BD132F04E0A6 = { isa = PBXBuildFile; fileRef = 87E57C8F3448D615271CD9F6; }; - 26E2FB6533B5700FA9780E00 = { isa = PBXBuildFile; fileRef = D7772BC5E4E455AE2916A87D; }; - AF5593DEC14D551C38CCB50D = { isa = PBXBuildFile; fileRef = 6C33842C52B61407CACCA858; }; - 0B830401EA0E883CCAAAC696 = { isa = PBXBuildFile; fileRef = A24990B395323FBAC0BEFB5A; }; - 3897B36CC1D89C5755CE1B90 = { isa = PBXBuildFile; fileRef = EF18D0073BE50E572ADD9A1C; }; - C55B00378E784DE4B428E934 = { isa = PBXBuildFile; fileRef = D36EFC4421056277BA87387E; }; - 82A9E0388C9BF3A698DCEF69 = { isa = PBXBuildFile; fileRef = 41AF663E626B8F6D319B9966; }; - 7F6749BFCF2F134468825D45 = { isa = PBXBuildFile; fileRef = 3EC800323255128D69539BAE; }; - 277CF246D5EE48868E38E625 = { isa = PBXBuildFile; fileRef = B7251E779500BA77F5522CC7; }; - 4D285D9D3F5955F2FD574D04 = { isa = PBXBuildFile; fileRef = EF50EEDCAB08F842AB8DE6DA; }; - 30F9B53BD00228406F6477DF = { isa = PBXBuildFile; fileRef = 2E03ADF975A126C1F2F7B667; }; - 759633D5CDB35874FD37DD7F = { isa = PBXBuildFile; fileRef = ED3ED8389001D55FBDCF1087; }; - E0F309D93E9A7F0CC71C4503 = { isa = PBXBuildFile; fileRef = 835CC2A1E67E7B19E41F8FBD; }; - F246AADF8E531BC2244A1D38 = { isa = PBXBuildFile; fileRef = FF052647D2EFA985D05C8E83; }; - F78940DAEB8BE98A9AA4B0BE = { isa = PBXBuildFile; fileRef = 504730C9B9F60192C2577979; }; - 00FE118356919D0BA97AE853 = { isa = PBXBuildFile; fileRef = 85B7BCACB40E02815844F71D; }; - 18D8A96CCD34E41A5E162AD5 = { isa = PBXBuildFile; fileRef = A54BC72C899A2AF82E1E37F8; }; - CEB8A9B9A37EBBA79A6478D4 = { isa = PBXBuildFile; fileRef = 582DCC2F948F1DEA0D450B0D; }; - D6D48B2CC53FAE2BD126B0DE = { isa = PBXBuildFile; fileRef = E0694CD7C814AA99E5A84799; }; - C384A89F786FDE8426F657D5 = { isa = PBXBuildFile; fileRef = 62967D33232C5A86D88084B4; }; - 3D324F656EEF8F1FB2B437AC = { isa = PBXBuildFile; fileRef = C17613C202D8E1C366F21D3C; }; - 645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; }; - 38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; }; - E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; }; - 60E1742796432D042C59B9B3 = { isa = PBXBuildFile; fileRef = BA17B023595ECD8166A231D1; }; - B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; }; - EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; }; - 803FFCA3DAC0C004A80143B4 = { isa = PBXBuildFile; fileRef = 91CB423DBC5F3CBEDD9CF2EF; }; - F0556B3AD9D388177E26B90D = { isa = PBXBuildFile; fileRef = AF66A9951377E2D04C54CADD; }; - 0558FFF11AED944C6B3E5FB5 = { isa = PBXBuildFile; fileRef = 2ED8CC539A9D9BE611F67A9A; }; - CF73FAC91E319C464F07C966 = { isa = PBXBuildFile; fileRef = 29BC53FEE9BC27F44534C909; }; - B6D3EDA0F2E3516F3922F23F = { isa = PBXBuildFile; fileRef = 312F208B501E0D7764C6B613; }; - E7C9FAA5F8A4AEDAD8A8CC1D = { isa = PBXBuildFile; fileRef = 9D3F1BAB1D48DDECB9F35916; }; - 084C9F2D4F78134CB1EFE676 = { isa = PBXBuildFile; fileRef = 1B170F70AF8AA0A39074F671; }; - 4DAD08CD3A688747C9CA237B = { isa = PBXBuildFile; fileRef = 0F1C5770B363EF7DF64A876A; }; - 60FE8BFA252E3EF2D60B77AD = { isa = PBXBuildFile; fileRef = 6619D27E74F623B1E8CE8F71; }; - C592CC923C5495467EF05D48 = { isa = PBXBuildFile; fileRef = EAF0F2EAB230F7539B91A7FB; }; - E12096E92D3D43DD7926E063 = { isa = PBXBuildFile; fileRef = 7904C2A3C52959748C46D54F; }; - F4567E6C9ABFB13FF24797DE = { isa = PBXBuildFile; fileRef = 94D3EBE6E0D9AFE555226A88; }; - 0B0996F97D926609C23E5F90 = { isa = PBXBuildFile; fileRef = 67F4F9E1F6B9B4D1C1A668E5; }; - FB5900FB9E071EDC2542B846 = { isa = PBXBuildFile; fileRef = 6E4DF7338364956EF42C4493; }; - EDE605169F0AF038FE5097B3 = { isa = PBXBuildFile; fileRef = 3FD3FA96955DD648494E76A4; }; - D78C3DA6505CE8CC3F17C070 = { isa = PBXBuildFile; fileRef = 692A95B19D9C32094A1E07B9; }; - B23EE989379EB2F075D6F587 = { isa = PBXBuildFile; fileRef = 058702E8697667AEA38254C1; }; - ED7C62DE10250FCC07CF17B2 = { isa = PBXBuildFile; fileRef = 6FFB38088C11BAE68368A3E7; }; - 1535D49C24E8A9FA5F6DCF6E = { isa = PBXBuildFile; fileRef = 59B2FFF817679AEA84375E1B; }; - BBCA4C01CEF1EDA75625D6DC = { isa = PBXBuildFile; fileRef = D9B3C04F8EB4228DD59002E7; }; - 136FB9588C834E6F4A1EEBFB = { isa = PBXBuildFile; fileRef = 17C3AF03FF7AE88AE0C73311; }; - 274415D1C0AE9BF56FAAE791 = { isa = PBXBuildFile; fileRef = 4035C867821E9B5887AA25FB; }; - CBAD975785BD26A0DA9417B6 = { isa = PBXBuildFile; fileRef = EFA58F646B69B227AEF14140; }; - 2A8F78D412AC7EC0C2998A1A = { isa = PBXBuildFile; fileRef = 06B06C420341B005DFF951D2; }; - 2DD969525DEF4AD408E9BB59 = { isa = PBXBuildFile; fileRef = AD7A1C2C82EE714EBDD52EFC; }; - 059B694C912BE81023D5240D = { isa = PBXBuildFile; fileRef = D4211E697F43821CDBCE4F24; }; - 4387EB80C5795FACBE753A7F = { isa = PBXBuildFile; fileRef = BE5DCD603F7E21A1F66CDF33; }; - B2C41D39730EB3AC75D55949 = { isa = PBXBuildFile; fileRef = AE363A1FE2F403F7CE2FDF7F; }; - F045E8F977C00016F6EBB1B7 = { isa = PBXBuildFile; fileRef = A10A63E2098A85B5CA9265B1; }; - B89FE5AB44DDEBCC050F8D7A = { isa = PBXBuildFile; fileRef = 3F60563DEC7941B88163A50E; }; - 2EA320797BD7D2137F133681 = { isa = PBXBuildFile; fileRef = 39C0783ED515AAA82F9CA37F; }; - 1008A8A446B9BCADBB853056 = { isa = PBXBuildFile; fileRef = B3F5E7A708350F72E7C77153; }; - 0FB1AED6E5AB5CEA95E70950 = { isa = PBXBuildFile; fileRef = BBE79494A818EF83F52A4C7B; }; - 103A3B11DFE35E9088ECE933 = { isa = PBXBuildFile; fileRef = AE5A7EC70F288E7EA682081D; }; - DAC7AB8D9EA70D99A1C1287E = { isa = PBXBuildFile; fileRef = 7A039686F4F852E26936CA53; }; - B3D08D9E24CC369E4838E6FF = { isa = PBXBuildFile; fileRef = 868E43A4BB7015579789E4F8; }; - 15932C8039A59B0431FBB93E = { isa = PBXBuildFile; fileRef = D99C977ACCD09262F06F6624; }; - 3BBC410C79D2F53D32ED7466 = { isa = PBXBuildFile; fileRef = AD655AA04981173716022D8D; }; - 88A4D0443DFD6BA1A1B32AB9 = { isa = PBXBuildFile; fileRef = 21B2342B75097AB93CFF7E97; }; - 06F1BEB9AB97F33305B8F816 = { isa = PBXBuildFile; fileRef = 7A51D8B81F390A4CABF25C73; }; - 6CB4FA2797FBEA5C4C342EED = { isa = PBXBuildFile; fileRef = 76DB94CC776536F5D05B9445; }; - 150C16E65ADC7E3359C88510 = { isa = PBXBuildFile; fileRef = AA698DD5A82F91CF84A29666; }; - 9C547F4DC4FC50F9C3382ACE = { isa = PBXBuildFile; fileRef = FABA493FEE07E6373DD8EB41; }; - 5D1B2A14239B0351261D832E = { isa = PBXBuildFile; fileRef = 595EBA8A689DA899986314D8; }; - 0AFD6B2B694302A62C7C9DD1 = { isa = PBXBuildFile; fileRef = EACFC12E665283EB7926E9EC; }; - 3CE21931FC5A59ED7C23144B = { isa = PBXBuildFile; fileRef = BAE5CE629DF9D286293E616F; }; - DB7E8E984F9BEF4C84B887B1 = { isa = PBXBuildFile; fileRef = D4C499CB25F043FE667BC5E1; }; - 07645D91AFD4F8512ECD48ED = { isa = PBXBuildFile; fileRef = 4366712140FBEBEDBCBDCE9B; }; - D132232A4A404A7C08D10928 = { isa = PBXBuildFile; fileRef = E0A2C24581917DD090186333; }; - 83B488D64AB9828CFFBC55A9 = { isa = PBXBuildFile; fileRef = 3F3D429025A92B6F0FB6F8EF; }; - 8305C5E01476E99FBB1A0315 = { isa = PBXBuildFile; fileRef = 275F2210628D9E9968B1B258; }; - FF613B604C2333F4A4ACEDDA = { isa = PBXBuildFile; fileRef = 5DEA687D261C59CBABB782E9; }; - CECE3D66B19693E41850C30D = { isa = PBXBuildFile; fileRef = 5593DEC14D551C38CCB50D70; }; - DF419EBD05F13A0D2073D47A = { isa = PBXBuildFile; fileRef = B8E47498C7C6D5ECF41F0EAB; }; - C9FB7884928BF0D6140AF881 = { isa = PBXBuildFile; fileRef = 9DC2C10B16A645EEB82220D8; }; - 5C9628DB3E0C0BA8809AE45D = { isa = PBXBuildFile; fileRef = EE5F18DF1DED7617C4A41FF3; }; - 724DA2BCA5ABC5772604C3B4 = { isa = PBXBuildFile; fileRef = B2BCE9DDC8F0F54CA3D913E7; }; - 035B1F7B1505ABF24455690E = { isa = PBXBuildFile; fileRef = 5249EFBE3B22E6FC1A7B6D42; }; - 3C71EA297D7418FEBB52F9DD = { isa = PBXBuildFile; fileRef = A257B76FCE9D594EAD41414C; }; - 7A86E411B55E15DA7AF1FE67 = { isa = PBXBuildFile; fileRef = 8280AA34B23B4D366711A9E7; }; - BD86381924AE45021246ABA3 = { isa = PBXBuildFile; fileRef = C9561A66310DAD5EEB4A9462; }; - 306AB64E97A05B800349E7E2 = { isa = PBXBuildFile; fileRef = B62991F8AEE7327BA8A5070F; }; - E7A5418175B23C794421441C = { isa = PBXBuildFile; fileRef = 013F753639A6350C8DC602AD; }; - 51F5844EAE455D51BDB17228 = { isa = PBXBuildFile; fileRef = 72524FE185FF48DC1F954341; }; - C99F35ABEC13F58C27C1D303 = { isa = PBXBuildFile; fileRef = BF5307F364AC9250D8625168; }; - 3D9B5EDBECAA680B0A067F5C = { isa = PBXBuildFile; fileRef = AA4823F2F2A78C43D7A039D0; }; - 724B03672FC7862B671969BC = { isa = PBXBuildFile; fileRef = 87A5A064CC3CD55BA5D7617D; }; - 8B31099030792C554BD51211 = { isa = PBXBuildFile; fileRef = 641638A0466CEC1BDEAFB476; }; - D04EEEC7EAE7C806E95ED41C = { isa = PBXBuildFile; fileRef = 7DB37383434F45D8A7B674C3; }; - 7EA440527972D6B7322EC307 = { isa = PBXBuildFile; fileRef = CB16B2438EDCC10C499645E6; }; - CB9FE1DA1AFE5FBA9FF06061 = { isa = PBXBuildFile; fileRef = BEB35C6173793C1CB7AB6311; }; - 26454A5DB5BAFD7901F17DA7 = { isa = PBXBuildFile; fileRef = BA58B49B820A47F6F55CDACB; }; - F41B46F970BA78762DCE67D1 = { isa = PBXBuildFile; fileRef = 930E58E13FC92BF70AC20EEF; }; - B7A8CF6F889840BED05C8C27 = { isa = PBXBuildFile; fileRef = 9113CDD122D2790E147A8CF5; }; - 3EBF23F390FC0227260CF7CB = { isa = PBXBuildFile; fileRef = EE56999A85AF18015C540183; }; - 1906FDEEDAE61C88A59BC271 = { isa = PBXBuildFile; fileRef = 189F69E0B926C73B654D6951; }; - F51142C2CF336FC4A4FAACC6 = { isa = PBXBuildFile; fileRef = AE9A7A0775FA806126A74E16; }; - 1021132FAC7870AC18C040DE = { isa = PBXBuildFile; fileRef = 4F5D1AA83981FBCD33CE234F; }; - 05C8FA821C64B69BFF8FAF2C = { isa = PBXBuildFile; fileRef = E6A7BFB0FCD17A9B133CDFA4; }; - 5E330E219B2D2944BCE95174 = { isa = PBXBuildFile; fileRef = FE6E3F911679B0D7547577A3; }; - 275FBC09BE58E708A73B88C1 = { isa = PBXBuildFile; fileRef = 8BCE60CBC91DBAAB089958A1; }; - 6DA99BA218FB45568258841C = { isa = PBXBuildFile; fileRef = 3F11593DC3A168A52FCC2DD9; }; - 32F1C95EDEE7722797B8CEE8 = { isa = PBXBuildFile; fileRef = FC2C82760E717788B5A6E691; }; - 029A0E8B44DC17211722677D = { isa = PBXBuildFile; fileRef = 42059626955C547DA6AD3196; }; - 4B4E17467BC41E2166549998 = { isa = PBXBuildFile; fileRef = 8F383A785B4876198C5B0194; }; - 9686F29C29D1C26E353DE68A = { isa = PBXBuildFile; fileRef = F3B50EE3939E9F16D13C3C7C; }; - 79B4C2F1C0CF592ACE8093C0 = { isa = PBXBuildFile; fileRef = 3A37CD82212075940421CE4F; }; - 88A87D28B3809665F28DC16E = { isa = PBXBuildFile; fileRef = 7F3EF672D07ECE3E13AAF267; }; - 6BDBEFD97E643E5BB27637FF = { isa = PBXBuildFile; fileRef = 249959E338D7750E56A9F2F8; }; - BC3C22F5350ED7433D303A04 = { isa = PBXBuildFile; fileRef = 58B70C726D186B4E770300BC; }; - 0B41EC4D7839F8CBCB8F9A0D = { isa = PBXBuildFile; fileRef = DCD09B6EF4A4A109DE01F152; }; - B420CD4B589C08EAFA6E3DA4 = { isa = PBXBuildFile; fileRef = 7527A5E8F4F39581159D3E5B; }; - D4A05D7CA67B6F0527C9BD81 = { isa = PBXBuildFile; fileRef = 1DBF9DAAD0690CB2CA4E9960; }; - 0D7547577A31512EDCEDC42C = { isa = PBXBuildFile; fileRef = BA561E64C6400CFB1DE013F6; }; - E2FDC7D3E3DC4C1423FA0C5B = { isa = PBXBuildFile; fileRef = 061B492EABD6B1C995D581A8; }; - A46B0025A68136ED993E0D85 = { isa = PBXBuildFile; fileRef = 50159A5B7A552A6C1EB557F3; }; - B99678E919BF547A3A3F5D6E = { isa = PBXBuildFile; fileRef = CDA5FCC51F6C1E84D7DC3274; }; - 5B714CDD0082419BFED7D2D4 = { isa = PBXBuildFile; fileRef = B14735381ADB00741166E330; }; - 2DD498313DA488A5063C4C1B = { isa = PBXBuildFile; fileRef = 09AE0882D58BE1715219556A; }; - 5B33FFE120A47EF42CBC05E4 = { isa = PBXBuildFile; fileRef = 0EB41C0AB478EE02D8C851F9; }; - 552D45FB250C62F86CD02A57 = { isa = PBXBuildFile; fileRef = FBE07C5CC622A5D36BDAB9E1; }; - 0E8E9829E95E32163F45482D = { isa = PBXBuildFile; fileRef = B07C853EB60D8D8691BC1B4B; }; - 6801797B247CB3A6890C0AB0 = { isa = PBXBuildFile; fileRef = 5D32C8856093B33438AEB758; }; - B0B82AB2D9B0950F67B11BEA = { isa = PBXBuildFile; fileRef = 8758E6857070D7E5406FDE3F; }; - 379B4A89E5403B57A2009E76 = { isa = PBXBuildFile; fileRef = 8E8BE2F1C182E418BBA6903C; }; - 6ED121D4FEE575408B9612AB = { isa = PBXBuildFile; fileRef = 03B9D3D9042E85BDD691325E; }; - 9ADE436BC62FB84E297C1CA0 = { isa = PBXBuildFile; fileRef = 13C661B79E1E9508512A6B21; }; - 03D534E5B18011C3E03CDD40 = { isa = PBXBuildFile; fileRef = F2F68E50F42BD0F124E89E2C; }; - 06E2ED69E9FAC199D559F276 = { isa = PBXBuildFile; fileRef = 59C46E289F86C80D4341EAA3; }; - 9801CCC32F01818B39CFD88E = { isa = PBXBuildFile; fileRef = FA82460758BDCB2DCCE1EAAA; }; - FE553DDF4F83DABF13DF4A2B = { isa = PBXBuildFile; fileRef = CE06EEED7426AA45C27B629C; }; - 68DB48B0EC9E5E37C6B5281C = { isa = PBXBuildFile; fileRef = 1D74C9567283836ECC70E48B; }; - 96E9017FBE104E9EADC586B1 = { isa = PBXBuildFile; fileRef = 40216CE846A54CE706131A23; }; - BA6C6EF4C88D49C640DA7BF6 = { isa = PBXBuildFile; fileRef = E646726910F110DC34DD1662; }; - 0B124D9CE361014F815A5958 = { isa = PBXBuildFile; fileRef = 9AF9F1C0D766D4F894E4A7B0; }; - C701E3FCB168A3B4A31C4242 = { isa = PBXBuildFile; fileRef = A404CD721E2A0F0CAE9326C5; }; - 04F6D85CCF26A7F6DE589876 = { isa = PBXBuildFile; fileRef = 32B7C3609BDA01AA09740139; }; - 62912A2DA2F01212517938E7 = { isa = PBXBuildFile; fileRef = CEF7210E311274F1DFAB6882; }; - 36D770FCDAC86084A495B96E = { isa = PBXBuildFile; fileRef = 755C440534C0EB494572B3F3; }; - DA2A4714F1A6957A4F2B8D48 = { isa = PBXBuildFile; fileRef = EE855319AF344A05C92580C7; }; - CE9A64287FCEF00DD2BA6AEE = { isa = PBXBuildFile; fileRef = FCD02A40985242A8A6648311; }; - 2AC6F3BFAAA21E21076A9F8D = { isa = PBXBuildFile; fileRef = 76E2084D2148068F9138A816; }; - B8DD4DB0BD1A6B38BBF92413 = { isa = PBXBuildFile; fileRef = 8273A206FB309671284959DD; }; - 1C0B1362E81C8B073BF0DCEC = { isa = PBXBuildFile; fileRef = 644FD6155385BC3AA270FB5D; }; - 63BEC07A51CB8E516B38ECD4 = { isa = PBXBuildFile; fileRef = 4A97C8D2FF6454DDD3AF4BE5; }; - C8F81E843F446868FAD88197 = { isa = PBXBuildFile; fileRef = B507B4A8712A54D7A8C03223; }; - 50D91A2EC0ABF894E612D936 = { isa = PBXBuildFile; fileRef = 23252E4C97AEFAE0C5EEAA77; }; - 82568CF438EF4C950E4A42DF = { isa = PBXBuildFile; fileRef = 81B36E7C56DF1A777AA04F71; }; - B2E9D0C534DDE9F96921A054 = { isa = PBXBuildFile; fileRef = 0EC7DE81A516F4130AC59557; }; - C8D06AE9C68A675A87DC9C99 = { isa = PBXBuildFile; fileRef = 5715BC14D93D61D71206FCB2; }; - FE2999972FE3D6E251DA6653 = { isa = PBXBuildFile; fileRef = 95F21C2733BD5932372E4157; }; - 8B2193898D3465B5995EE98A = { isa = PBXBuildFile; fileRef = 8E78623B2D21CFE68DEC0483; }; - 4FB3EE200AEA14C7218D7034 = { isa = PBXBuildFile; fileRef = 4D60F7F748CF6702D1E45960; }; - 81E79D9217773BF0E39F7812 = { isa = PBXBuildFile; fileRef = EF06213027EA3F7C54EE0F18; }; - 2A360CDF2B5A46B282CEA2C4 = { isa = PBXBuildFile; fileRef = 60F21CB42270ACE2241544A8; }; - 01FD07AB480226E84D52F591 = { isa = PBXBuildFile; fileRef = B4435D42216365FA97651272; }; - D8B9941A1375579D6CE7C1C4 = { isa = PBXBuildFile; fileRef = 599F5C47BB9B5898E0E88CF3; }; - 0DE731ED3EC994B9227C2741 = { isa = PBXBuildFile; fileRef = 4BE2727CCD2CD7603402C8FE; }; - A124FE5709D9324B5BAFFE53 = { isa = PBXBuildFile; fileRef = A618FC3255ECE14EC9259E6B; }; - A84A5CA4654AE87192A6A096 = { isa = PBXBuildFile; fileRef = A59A5DCFCCAAEA79D03C2B27; }; - 55EDB4D9B702B469DB4655C3 = { isa = PBXBuildFile; fileRef = ADE5F12AA5AD969E2C7002B3; }; - 389351359BA78C682E1931A6 = { isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjucedebug.a; sourceTree = "BUILT_PRODUCTS_DIR"; }; - 144F56FCF3DF9EC922765901 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../src/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; - F6A490BA93AC3558E9A6FBB0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../src/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; - CB9766F7A9C612B326D808CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../src/application/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; - 36A407F2BE4A625184B5CCFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../src/application/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4E74130693EE120D905818AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../src/application/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; - 21E1DBFAB3FB75875EA35280 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../src/application/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - EDF52AB382E80530E8FED9A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../src/application/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; - 415BD77DF4B2F4760D138735 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../src/application/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8422E662212FA2082644A942 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../src/application/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; - BA97FEDA576503A21D971F1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../src/application/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; - E03C84620DCB004172C09B28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../src/application/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; - 1AA8BE2D76E153874FB08197 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 05C5C546E12C6422D865D864 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 1F5A667524FB005D872340E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../src/audio/audio_file_formats/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; - 0877D5750D6F21C5231687CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1BBE03BB0D71FEEEA440682B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../src/audio/audio_file_formats/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; - 7D85530D76756C33795ECCE9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 013E8938EE1C6B4F63016B55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 93006D32B18174D9FE0A5E9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 41070806F82EC9C6D1C67689 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; - 9349E14552FEA0371553E808 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 27356F5E93CEA4D472D83D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; - 2AD64F53E12B20011B7A0DB7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8BD38C2507C0F8E28930A4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../src/audio/audio_file_formats/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; - 59597FA0A88A08937801D198 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - AE7F7F0D959C2E3CF5989C88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../src/audio/audio_file_formats/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; - 27C3C51DF2519B519B76E2EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7B34E897026857C84399A09C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; - CB32D4EE59D5CA9DB12F944D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3442FA257104DC3F43E7F870 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; - 203AC66FFB20EAD2E7A594BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - C9F1015CA457A61082398E34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - E00781B15E47C9CB9E94869D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7C06BD13BF7E0097EB0A8D08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - DA868174D4D2059AC1BE7E71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 25B1AC1A6767AAD9E9515A18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 7CF036906034FABB44D2108F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - DB5CAB7BC2973ABFF0867BCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - D5D2FD212300E7D49ED74823 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 87A18C425F53C2098B1D42FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 7AE5295A472723B26537FAEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../src/audio/audio_sources/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 51287E236C749092458BA2DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../src/audio/audio_sources/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; - 4C3258A1978AF3D357D196C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../src/audio/audio_sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - FBB2EEF0E5EC5EB6F89E9066 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../src/audio/audio_sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; - AE9C08108699C71A289462B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../src/audio/audio_sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; - 74AD63909D3EE09D63256A76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../src/audio/audio_sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 67A8F408B1EC63407C9241B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../src/audio/audio_sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; - 5D6E837F124C347B3C1CAE23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - E1EA83B7EF928DC88D069AEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../src/audio/audio_sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 1511366CAD437989DAA30CF2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - EA630BFFF638BBBC8FDC0018 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../src/audio/audio_sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - D86718CE7E5DEF2071AC3D17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 76BB7F75A7F9930ED5A0CDB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../src/audio/audio_sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 9A8053936C35A19B9E98623A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9CB1126A9FBFF1D6D6469AF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../src/audio/audio_sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - C63D6EC0555C13C1B79A6AAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../src/audio/audio_sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - E2A56C23BF2BB466BB273E3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - BE5DB55285441D501FED3C00 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../src/audio/audio_sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 5403C2A4DEE7B9B3B34235F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0F70C4D118AC7625B4C42CD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../src/audio/audio_sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 3988438157D4B75177703F8A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../src/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6AC857F51FD805D7BD3EF712 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../src/audio/audio_sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; - 6841D6AC927D02113F3AEBD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../src/audio/devices/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - E668D9C7FF084E59405A2A9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../src/audio/devices/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; - C7DB1BB9AF7FE0A2AA38D767 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../src/audio/devices/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - 95CA8EE24AFBB1F2F29A5394 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../src/audio/devices/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; - EAFD034BB1721BFBF9A3795E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../src/audio/devices/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; - EFAFC937377A21E9AC0F9776 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../src/audio/devices/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; - 5DB9D903D24646B0C2356A5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../src/audio/dsp/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; - EBA6B46F7B3C11CA3744A4D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../src/audio/dsp/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; - A1D687AE613A8B61EB63923D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../src/audio/dsp/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 812620B53BE820D26A63B65D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../src/audio/dsp/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; - 11C1A96A35A2F03F8C34BD43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../src/audio/dsp/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; - E68EB4BC75216B5B56E3F937 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../src/audio/dsp/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; - EE2259D9768027C2C001EEAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../src/audio/dsp/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; - 2C55CE1674244DB199C3033F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../src/audio/dsp/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; - B457515938E7141D5E79B671 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../src/audio/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0604C2E17F0E0DFEFDA19F8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../src/audio/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; - 891E0B1AD09C0EA44297E0F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../src/audio/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - EBACA038DBB50817BE80E8C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../src/audio/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; - C376B06C58C5D3C972583BBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../src/audio/midi/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; - 0731C60911E6985F51325484 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../src/audio/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; - 062F7ACF5282C5B2D4BF5EE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../src/audio/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; - DF3833AF6E38E55218FDF23F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../src/audio/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; - C627F9E9EC160055D65D81CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../src/audio/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; - 0D3A77572C7256CE4C115FD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../src/audio/midi/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; - A22A0F77C15B1E4A8F2EB42A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../src/audio/midi/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; - 78D29BB5C76CCF7C21EC0DAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../src/audio/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; - DD3886D45B5988B4DAC2D049 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../src/audio/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; - 01712FF0A160032FA1DAA8C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../src/audio/midi/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; - 899BD7E18BE1EF7CDF53784C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../src/audio/midi/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; - 7B88F6B8E3A10CEAD9B0EE88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AU_Wrapper.mm"; path = "../../src/audio/plugin_client/AU/juce_AU_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; }; - 1101E8CB676FDEEF0A89D921 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RTAS_DigiCode_Header.h"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = "SOURCE_ROOT"; }; - F222E5825D83E711C9F1B789 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode1.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = "SOURCE_ROOT"; }; - CEAA2B84462EF0B5026EAB0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode2.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9A3151864FB90A6A4BCCAE9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode3.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = "SOURCE_ROOT"; }; - BCE37F0D994C0ADF2CCFF796 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_RTAS_MacUtilities.mm"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = "SOURCE_ROOT"; }; - F52ECCD6C02108A2D7F672F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_WinUtilities.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = "SOURCE_ROOT"; }; - 833C3F205F05BA4ADC883E53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_Wrapper.cpp"; path = "../../src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; }; - 69C4FF0DD888BA25477561C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST_Wrapper.cpp"; path = "../../src/audio/plugin_client/VST/juce_VST_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; }; - 37E1FC756833849B8C7C1215 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_VST_Wrapper.mm"; path = "../../src/audio/plugin_client/VST/juce_VST_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; }; - 2741189DF800566462E24A14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StandaloneFilterWindow.cpp"; path = "../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - FAC43251D74E5140740BEF60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandaloneFilterWindow.h"; path = "../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 2E96F55074F4EB74171EE6B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IncludeCharacteristics.h"; path = "../../src/audio/plugin_client/juce_IncludeCharacteristics.h"; sourceTree = "SOURCE_ROOT"; }; - 13F64389F0E25731A98E92CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginHeaders.h"; path = "../../src/audio/plugin_client/juce_PluginHeaders.h"; sourceTree = "SOURCE_ROOT"; }; - 7CDC2FA849B7ED73A2638A11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginHostType.h"; path = "../../src/audio/plugin_client/juce_PluginHostType.h"; sourceTree = "SOURCE_ROOT"; }; - D76BDCCF9E1A1F26A8F578F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 50FAF92038EBD0127900AAA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; - 2073E1A497363200233CD34E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectXPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_DirectXPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - F800E47459B2FE9DEF56F312 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - B4291F2CEEC78CFEDEFC360E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../src/audio/plugin_host/formats/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; - FCBB1DC14311D099809B21F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../src/audio/plugin_host/formats/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 723EBD80931754F4DD77DD53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../src/audio/plugin_host/formats/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 2EBF36FAAF019B6F811D1C84 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_VSTPluginFormat.mm"; path = "../../src/audio/plugin_host/formats/juce_VSTPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; - 1C8211DFB558D740EF4B173A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../src/audio/plugin_host/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - 28534632DF76A1EA837BD0D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../src/audio/plugin_host/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; - DA4820727D6DDC75561A262C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../src/audio/plugin_host/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - A6415104D1E3E5CE7031C0C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../src/audio/plugin_host/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; - E5BA7B8913271E935A1DA487 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../src/audio/plugin_host/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; - 3110B983ACE956D6A24F8C8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../src/audio/plugin_host/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; - A3FE51C7DD706F536273AB0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../src/audio/plugin_host/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; - B6E20AE45813C0CA9B1014DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../src/audio/plugin_host/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4AE3A448D79602BE793BB5AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../src/audio/plugin_host/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; - AF47BC3796A74CC15A192E8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../src/audio/plugin_host/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3D170AC8FD8E403C54E08F9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../src/audio/plugin_host/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; - 9C5C0BCB2A298160025B15FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../src/audio/plugin_host/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 08C65C3EB60FE8BFA252E3EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../src/audio/plugin_host/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 4CF107951746567DB63880A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../src/audio/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; - AB554593165FE8C8B40F4447 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../src/audio/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3F260C24341E58745AC5BE79 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../src/audio/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; - BC2A50B0B01128E394E9DE9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../src/audio/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - EC0F8FAA7EACE0D275064D60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../src/audio/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; - D141C024A3F5A6748B0E9ED7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../src/audio/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; - 19C9509EC7DD00DA7443DEFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../src/audio/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; - ABDE16ABC1784B0FD3887A8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../src/audio/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; - 08EBC2152F45FB2B839FCCC1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../src/audio/processors/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 350428D4D70AAB88B2B84790 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../src/audio/processors/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; - 096CF2243648F17E1BF5421B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../src/audio/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - CAD3312170E5DBE8AA8348BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../src/audio/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; - ED5966B95F865C586A3CE08F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../src/audio/synthesisers/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6C6C1C360138D9BD4B27588B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../src/audio/synthesisers/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; - 35668D8EEA19957C6C9AC83A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../src/audio/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9E6C206F95245BCDE38FB2B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../src/audio/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; - 4F22276689685D839BD252EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../src/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9584B84F23A4251755D49213 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../src/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; - 839BE8047CF2F8EBE43ED34F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../src/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; - EDF52FDF87ACD33FE933142C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../src/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; - F77C9170829579FABA5679AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../src/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; - 34C402EF9ADCAD34FB657D43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../src/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; - 7DA9AC75A4D9227C8FC4B2F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../src/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; - 2767E1D082874D301D5D5F43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../src/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; - 9289A1E6B141F24C57FF0927 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../src/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; - 70E5409425A76782B6188B31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../src/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB4A73064B0FC74ECCA19116 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../src/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; - C1913C90ED7BE51E823887CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../src/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; - 9BD379D2F7995BFE0B3E5369 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../src/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; - C8F0F54CA3D913E7B8D559CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../src/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; - D7612CE51ED4F9D3F960F922 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../src/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; - F95BC2FA7861CFF968D661ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../src/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; - 2F5FD1DEFAE549553A8BE3B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../src/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; - 989E03031D341649B4A296F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../src/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; - 1809284DD05B56309D7EA24F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../src/containers/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; - 69F58BF234EDF6328F624E0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../src/containers/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; - 5D27EE211D9BFF6A58C4DC42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../src/containers/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7CABDD863B47D8ADC900A4D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../src/containers/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; - 4DF9D333038A442870668D31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../src/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; - A81B4FC81A75E21E5B96E506 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../src/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; - D66C00E06B06EAD3B5257DD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../src/core/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; - C8441B7B3E4CCD4A257B4BFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../src/core/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; - 92ACFFCCCD1C85A0F8C6F80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../src/core/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; - 4555F03DBD059EEDECEF9F85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../src/core/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; - 63F44EC0485FCA050814967E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../src/core/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; - DF6CAC67C0F2D379BDA03062 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../src/core/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1159C6BB0D33EE8E1A96B083 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../src/core/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; - 8292AE37F99FCC1E5BF63A28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../src/core/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; - CFAECB6551F48A1695DEC243 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../src/core/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; - B4137E4612C1D161894D0D27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../src/core/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; - 0AD73B8EA0D60D9927B36624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../src/core/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; - F51969AF328D2C7D52D7436D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../src/core/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; - C25D6136DF9CE441D6EB4C42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../src/core/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; - CA66415F6EAA172B83755954 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../src/core/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; - 18B170E96511BBA1019C66F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../src/core/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - 45D14EF360BDA1F5692E583D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../src/core/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; - 956A1C30D5FE98DBB154204D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../src/core/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; - 8D2DE1F3CB15D003C90042E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../src/core/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; - 872020C1EC3997ED744BF1BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../src/core/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; - CEF91E0C9CBB3EBFF9500FDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../src/core/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; - 297B664E9AB86DFE7DCAFF22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../src/core/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; - E3C548295935D26121D5D823 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../src/cryptography/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7A4B0E6FD686BCF0B8CC771E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../src/cryptography/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; - EAFD8FAF365DFB32DC42D0E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../src/cryptography/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6E4345FEEB1DC732A16134A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../src/cryptography/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; - E9E692847C14AD33CD5FB40B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../src/cryptography/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; - 22612DBDC6C689B605CC6B48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../src/cryptography/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; - 7AE9331938549244E27A5D0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../src/cryptography/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; - 16335266AFB4D19F25410E1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../src/cryptography/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; - 4CBD301A08E9C3762F861FC3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../src/cryptography/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; - 02CD7BA1750DE36237369F78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../src/cryptography/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; - 31D985CB8646B78460E9D5A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../src/events/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; - 09F7685D1EFF472ECB1F5EF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../src/events/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; - 4EF8BD4BF46C4BCB39F96609 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../src/events/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; - 5EB7BD94A754E88D076D777A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../src/events/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; - 1617348BBF5D103619D76911 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../src/events/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; - 44DB44953945417F76199479 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../src/events/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; - D04B6E43A037F985434B2F5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../src/events/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; - B80F8CD026033ACCCE11A1A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../src/events/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5F454A6B5A82ECE2396C5716 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../src/events/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; - B2D08C8EEE3E22026533D2EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../src/events/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; - AE68ECB6E063BD8D4984C0B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../src/events/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4B935D7360C9F166C80A158D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../src/events/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; - 843A7B398E9411F0AF28D65D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../src/events/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 57DD8EEE88C0D366E0354478 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../src/events/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; - 80633D64E9EFA1433454669B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../src/events/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; - 9CF077D3ED7B7B56F351AAF6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Message.cpp"; path = "../../src/events/juce_Message.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7A1219C6560BDBE2E170D2A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../src/events/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; - E594F70DC2F292FF1EF65CB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../src/events/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - BE17B7279B4BF40E51C12F47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../src/events/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; - E2D07ED5E1A4A460E0DEF59C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../src/events/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2EBDE3FF4894D72C310C9F84 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../src/events/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; - 1F2CFBF13ADCA05C0DC2D7D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../src/events/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; - C51E9973A6FAB635081B9FDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../src/events/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; - C818B558D6D5B62A80621281 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../src/events/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 32C0312A5D246D41AAD98A11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../src/events/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; - D0D9267E200BD462361810F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../src/gui/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; - 17A21B31FD41D00A4088FADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../src/gui/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; - E13F33E386E1A0D5FC546521 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../src/gui/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - A0D6308567AAA50D1163D9D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../src/gui/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; - 621B3A4B154182F69DDE2989 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../src/gui/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; - A1F58C1A972425C2B43DD1B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../src/gui/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; - 2FFF9AFE4BD9437CE096E52B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../src/gui/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 41C8C324F13ADA3423FC3B0F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../src/gui/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; - 18EE6576A9ED098632CE5155 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../src/gui/components/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - EB182DC4124FEFFFC87D12C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../src/gui/components/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; - 8B1C747E63EEF036AD9AF3D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../src/gui/components/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; - ECA97019B42083AD879B5B97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../src/gui/components/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; - 1C3D15546065C1A9AA5AA0C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../src/gui/components/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - B2032A24364695450A5E6A76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../src/gui/components/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; - BA415BD77DF4B2F4760D1387 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../src/gui/components/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - B72C0FB8DDC0F1102DF42943 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../src/gui/components/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; - 6930E651AEE97FD47E185EC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../src/gui/components/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - 96FD3A02BA915E460520A0B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../src/gui/components/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; - E927E4A58A84B21AA6B38A44 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../src/gui/components/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - F2212B7F42E26C3DD86800F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../src/gui/components/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; - 09AE2C7E2573204A7A35452B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../src/gui/components/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - B394145555DCB9E0FAA5522C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../src/gui/components/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; - 9846D4523B3425BBB04107EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../src/gui/components/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - 455176F8EDBA7A9DCEAA1367 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../src/gui/components/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; - F750738F398054AB38250780 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../src/gui/components/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - DFF08DC68372AEE17EAA9CC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../src/gui/components/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; - A3CB18F915377AC3FFA2E5F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../src/gui/components/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - B28C2EBD0846A09DAEDDFF4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../src/gui/components/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; - 04F48B09426293224576DA9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../src/gui/components/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - DF6B4E787E39CD446ED2EEEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../src/gui/components/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - C992FDA4396430392CFAD150 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../src/gui/components/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; - 346CC505FAFEE9451040108D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../src/gui/components/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3384A91143018ED9346E4118 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../src/gui/components/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; - ADC16C18C8237A7F8E35E37A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../src/gui/components/controls/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - D8EB3EA456D9FCC211CD1ED5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../src/gui/components/controls/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; - 0D3FA24FF38399E0EDA80860 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../src/gui/components/controls/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CA3454A9B6F80A2F4735C37E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../src/gui/components/controls/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 7330A9643F50DE8BEACDBB61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../src/gui/components/controls/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; - C0CC0FA84A4F7AA76C1611CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../src/gui/components/controls/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; - 1BC6C010045A06BDB4C684F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../src/gui/components/controls/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3FFCAECECC0D469A010F7AF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../src/gui/components/controls/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; - 71B6CE03D6DB07BB293C8206 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../src/gui/components/controls/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1DB68310EA4D6180FF948AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../src/gui/components/controls/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; - 3CE16163A43A6E67428385EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../src/gui/components/controls/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; - E698677EEC8E88CAFF542764 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../src/gui/components/controls/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; - 6BB68B37C7B0BB4DA8326647 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../src/gui/components/controls/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1EA844F7CC5377A14B0FD21C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../src/gui/components/controls/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 76E073B2A3F59A3ACD20CC87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../src/gui/components/controls/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8BA30F0AFF5EA0E1A0203ACB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../src/gui/components/controls/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; - A4E66D702028A22D8157241C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../src/gui/components/controls/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - CB6BF5E15522D8A272032AE9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../src/gui/components/controls/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; - 53EB02EEDF5E7971EAB9E795 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../src/gui/components/controls/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 82FEB35063C3559D2F46AA6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../src/gui/components/controls/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; - 37E48B8F8AD2BC448E5935C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../src/gui/components/controls/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - A77096E86054F70AC0A3B69E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../src/gui/components/controls/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 981BACFF7892B83828313D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../src/gui/components/controls/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; - D317D4B5BA40A5754EE56F47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../src/gui/components/controls/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8400CA0D3C2AB7A60A7329FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../src/gui/components/controls/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; - BC209F6862D5923B8F9E3080 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../src/gui/components/controls/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; - B0D261D42091AAD1560A0D63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../src/gui/components/controls/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; - B60FE8BFA252E3EF2D60B77A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 79ABAD7BB654030EF29B8B9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; - D3B56583D4F60069296DB959 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3A4ABC7E24F155A8CAF027B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../src/gui/components/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; - B1DEB4E0BBFE7E2D052165BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - F9FEE6DAB2B2752AC13D7286 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 85F0A0454489E4AF1F80AC83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../src/gui/components/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; - 102BAE57AAA43A7685FCBD9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../src/gui/components/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - F631A108CB5015BFA2E25E00 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../src/gui/components/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; - 730CAA344708954DE271072C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 295793C7AA1A57DC4BBCBBC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../src/gui/components/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; - D54308F25AEE3110A166F2BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../src/gui/components/filebrowser/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3AF50EADB5B2C973E0C8EE9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../src/gui/components/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; - 9A9D8C524A070162517620E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CD6C610A843822A7FA53E9D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; - CA1B41922D8094982F967DBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - E9E66775B2F13ACD0B751E69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../src/gui/components/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; - B689E250203DE38D6D4F39F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../src/gui/components/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 29DFAA512171B967D687A945 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0AB8288D92FDFA00F30FB8DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A418FC3BDDBF1CE9F2903490 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0EAD906B617A1A17305CB9F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../src/gui/components/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 949854EDE6B5B16CEFB6108F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../src/gui/components/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - F39059E72B927A700010851B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../src/gui/components/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 8A67B45A2BA1D19D1AC43315 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../src/gui/components/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; - ECDD0F8397F3EE4E7FA7ACCC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../src/gui/components/filebrowser/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; - 912C419859C9C56BC96AA6FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../src/gui/components/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 717295136FD426125079F78C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../src/gui/components/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 5ABC6616473BA4791AA8101E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../src/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; - F61C34EE417006881D0869F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../src/gui/components/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; - 29A79478AE8567250972ED43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../src/gui/components/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - FB080C47434A8FAB73B8F486 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../src/gui/components/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; - 7F5A271EAB78C7CF8B2341DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 92EDE6EA48F94DC5A0BCB24A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../src/gui/components/keyboard/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A00C6593BFBFA76043BC0C06 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../src/gui/components/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; - 02982EB6A81020D3D421AED3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../src/gui/components/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; - F1A33029252D29A6ADF171B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../src/gui/components/keyboard/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; - 15C6FD019B274AA51B4E2D76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../src/gui/components/keyboard/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; - B1E8FF009812F29C2620E6BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../src/gui/components/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; - FAEEA3536AD17B2667A1BB94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../src/gui/components/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; - D64DD9F41E4598606855DFCF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../src/gui/components/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; - 7356F5E93CEA4D472D83D8E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../src/gui/components/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; - 921B616E2229AEB6390D2B57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../src/gui/components/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; - FE1072B5FB77E8FEE1BEBDFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../src/gui/components/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; - 07191E1A9805FA6E6F253FF6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../src/gui/components/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2EC173A08676F6E592A7B347 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../src/gui/components/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; - 45E5EE9E0173683D721FABDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../src/gui/components/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2D3A362DD3833B9E70B10FD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../src/gui/components/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; - F8FCCCE06D31FEF697FCD80D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../src/gui/components/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; - 44CDA79090B115C3B62A2168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../src/gui/components/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; - A6AD7357F905309D1B461EB7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../src/gui/components/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - E9242E8425497D889C764C66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../src/gui/components/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; - FF046140CCF1EDB0DFF80178 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../src/gui/components/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; - B6A223FB5B4A9388C83D6FC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../src/gui/components/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; - A95F42C5CB0C2E5052B31568 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../src/gui/components/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 600B2FDBBBE812784CB49A69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../src/gui/components/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A31221E2A50CCE9DF06B5F4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../src/gui/components/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CB54AC3D311C44A1F3B463A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../src/gui/components/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 3D8B0E86C98E2EE49AE868C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../src/gui/components/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 238965266F88730956D776DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../src/gui/components/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; - B116FEC4D544DB8E38CB571E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../src/gui/components/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 797C94BB7F42CBBAACCFFB87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../src/gui/components/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; - F1F65C9E7394E04E073A57A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../src/gui/components/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - F64E8284F142600B9F519B07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../src/gui/components/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; - 993C90B10202DA78FA31CC58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../src/gui/components/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8C0FFF811E06D162050CAB14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../src/gui/components/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; - 079CFB5DEF6F2B71E2910A22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../src/gui/components/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; - D5F5282BE0F43A5E16824749 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../src/gui/components/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; - 143F36BCDE7A65EBA33900ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../src/gui/components/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; - 093E54DECB8191CA74D79176 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../src/gui/components/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; - F2C653BA4552E6838DFA4F87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../src/gui/components/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C42D9251031A81B5CF2C843B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../src/gui/components/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; - D41423657626ACA672A9DED9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../src/gui/components/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; - 811149E18993F029165D330D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../src/gui/components/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; - FD004BDDCEDB7E324983F70C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../src/gui/components/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7B991020107EC0D54965BCA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../src/gui/components/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; - B92ACF027E63D1C788DEC893 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../src/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3C739F61EE232C75546D4DCF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OldSchoolLookAndFeel.h"; path = "../../src/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; - 218D7D73C086866E587FFD01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../src/gui/components/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB93D3C283731C0B25B7AAAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../src/gui/components/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 1DDE0A8E4C5857715D9B5FAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../src/gui/components/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 502B3625329816EA6330465F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../src/gui/components/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; - 6AACD2FD239E39F87B666C6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../src/gui/components/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; - A563BC883D801CF5956DC4BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../src/gui/components/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; - 9E4B3BAB9BDB06B60D28DF48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../src/gui/components/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; - BCDD702ED33BADF3FC19384C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../src/gui/components/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; - 3D74B30C63465C32E26D8E33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../src/gui/components/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; - D4993649A93B73052C8045EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../src/gui/components/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; - 31EE71EA61B4ED293481EB97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../src/gui/components/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; - A08313B5F112579D130373BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../src/gui/components/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; - E1CA0B04EDE60771B81B9700 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../src/gui/components/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 944BC51C440C167C5B2A23E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../src/gui/components/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; - 136109B3076DDA7B2E01CF90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../src/gui/components/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; - 067D84F9291770240D1AB5B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../src/gui/components/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 50C02B44D0CB18898F575B1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../src/gui/components/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; - 441257DD380138C03568FCBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../src/gui/components/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 07CF9AF337779EB486AC92BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../src/gui/components/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; - 2886656DF7ACC9DDC888827F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../src/gui/components/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0C28F27F9D1CE6CD65185760 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../src/gui/components/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; - 89AA49DD2A63D80E90A56768 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../src/gui/components/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; - 82DFF1BD3665DC32672FCCE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../src/gui/components/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5B6CD1833A98F9844B7E3FF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../src/gui/components/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; - D39C0B853C3EBBBD11E7C71E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../src/gui/components/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; - 657546D70AB7B2709619E07A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../src/gui/components/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; - D31704DAB806B6AF3ED52DC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../src/gui/components/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; - 574EC603B2B1189687851319 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../src/gui/components/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; - 243EF1A31A779413BC2D5B98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../src/gui/components/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; - 72EFFDE39C7255D50F926944 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../src/gui/components/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; - 36BB6DDF702EC9B3DAC851FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../src/gui/components/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; - A3B6342C6207D452F6AD985C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../src/gui/components/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; - 9DA988F1D7CE29E0DFED7EF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../src/gui/components/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; - C1A3232DDB617A20D9C26526 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../src/gui/components/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; - 072D77C3834B1B3FB77F277B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../src/gui/components/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; - 749CA35420339A25BA4E500F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../src/gui/components/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; - 1C3FFBA02AE51EDD72A6250B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - B422688E380911F3C21E3F04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../src/gui/components/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - C45E7E6B6E45DEFBF80940DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C1F662CED371C843E4EE03B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../src/gui/components/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - ECCBF2452804ECB2D5B4BC50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C6B318D6930A05FF86AD97DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../src/gui/components/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - E2C948680009D1744CEDBC25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5B9E9460EAA932889DDC4873 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../src/gui/components/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 0984A4BA00D6AAFB463657F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../src/gui/components/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 02685CE4575D6E9B8CCC7738 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../src/gui/components/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; - 3451124EC2809C9BB591DF93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - B568DEC2B352281BC63B33CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../src/gui/components/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 84311C1F5A8ACC8DF4D6FF34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../src/gui/components/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3641ABC17D67038746897FA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../src/gui/components/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - E748C93240CDD61473B0107F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../src/gui/components/special/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; - DED871B1C7458B15DE7C9234 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 26E787FFC68224BF8EB5A458 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../src/gui/components/special/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 11F1658A055C45FE824FD2DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../src/gui/components/special/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4DFF179AFD87D34C7E23B1E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../src/gui/components/special/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 4C3C3AFC3D97C1378B7D7435 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../src/gui/components/special/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - C25DFA2F2B673EB0146412BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../src/gui/components/special/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 0A20E7E561633610A76A34AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../src/gui/components/special/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; - CD9F817B7EF0DA080668A3A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../src/gui/components/special/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; - 4BF7A01BCE61A5068CA13D8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../src/gui/components/special/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 9C1D5CDA61FB51F657DA8B22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../src/gui/components/special/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7DB8CFB77EA690ACF54C63B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../src/gui/components/special/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; - 3C8C1AAF32DFECB89EB83271 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../src/gui/components/special/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 127FC743FE67E6EEF2531BD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../src/gui/components/special/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 4387C6496C7079FB0032B99D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../src/gui/components/special/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 1317F0BE5EC80371F744967B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLComponent.cpp"; path = "../../src/gui/components/special/juce_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 826CC87E9E280F46B6D62B64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLComponent.h"; path = "../../src/gui/components/special/juce_OpenGLComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A34C0E63D41CFF5E55FD1D9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../src/gui/components/special/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6BE989C709D2D1D017548447 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../src/gui/components/special/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; - 529CB909220344AD55944372 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../src/gui/components/special/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A9DB12F944D9DC336AD0A78B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../src/gui/components/special/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; - CC04F253CB70B20B774801A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../src/gui/components/special/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - D9847FECA6801E9A61007D50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../src/gui/components/special/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 740D1808DB934123F05A1598 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../src/gui/components/special/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; - A5AAF4475138358F33D4904A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../src/gui/components/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 72C4FDDDB8602591DD4F7B3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../src/gui/components/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 8AEF18EE9B12D4677F96B709 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../src/gui/components/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8F54431CD3A672B1EB8335BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../src/gui/components/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; - 2FFDC7636EFC2D7F74590A31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../src/gui/components/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 12C66C90F3192AFFD6BCEDB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../src/gui/components/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; - 929FEA5458430B7AE23BBB46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../src/gui/components/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - C286C779DD52C29F86E3DBE9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../src/gui/components/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 090907E4FE95EE2B11C1A0E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../src/gui/components/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6E522DF13EC47755234A5D57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../src/gui/components/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 3FC6FC331B4E104D1DC223D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../src/gui/components/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; - 2E4A5F7128313C23AD0356F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../src/gui/components/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 207CDD87107EAC8ED17DD601 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../src/gui/components/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 87E57C8F3448D615271CD9F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../src/gui/components/windows/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7C06FF93D655B9987000ECA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../src/gui/components/windows/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; - D7772BC5E4E455AE2916A87D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../src/gui/components/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2FC449D291A603E26E938F52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../src/gui/components/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 6C33842C52B61407CACCA858 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../src/gui/components/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6165F485E931EF9F69D2145F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../src/gui/components/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; - A24990B395323FBAC0BEFB5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../src/gui/components/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - C7C882D550E3B72FA5EFA88A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../src/gui/components/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; - EF18D0073BE50E572ADD9A1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../src/gui/graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8F6F9E1FD31E1A6268CFD3F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../src/gui/graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; - D36EFC4421056277BA87387E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../src/gui/graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3AE0BD116486BCE37F0D994C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../src/gui/graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; - 41AF663E626B8F6D319B9966 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../src/gui/graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; - C913994AAA448C9F22ACF100 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../src/gui/graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; - 112017AA0A061CF080DBD504 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../src/gui/graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; - 3EC800323255128D69539BAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../src/gui/graphics/contexts/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; - BD52C1CCEAF6FEC311B9FDA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../src/gui/graphics/contexts/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; - B7251E779500BA77F5522CC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../src/gui/graphics/contexts/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1F0DB4B2825AF638183B50D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../src/gui/graphics/contexts/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; - EF50EEDCAB08F842AB8DE6DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../src/gui/graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6320F9BAFA094B5C0C828C58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../src/gui/graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; - 2E03ADF975A126C1F2F7B667 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../src/gui/graphics/contexts/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; }; - 36268DD78D00323D391ECAAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../src/gui/graphics/contexts/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; - D6B4FED1F1D9FB82C6424438 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; - ED3ED8389001D55FBDCF1087 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5792CC17E9DFB966371CBEE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; - 835CC2A1E67E7B19E41F8FBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; - A7A8BE6B30C70701A10B5BD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../src/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; - FF052647D2EFA985D05C8E83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../src/gui/graphics/contexts/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2B90FAFBC65FB79A5D74E816 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../src/gui/graphics/contexts/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; - 504730C9B9F60192C2577979 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../src/gui/graphics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; - B6A249ADEC5400011AA671D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../src/gui/graphics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; - 85B7BCACB40E02815844F71D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; - 00B5FB5ABF4F13EC5D28E34D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../src/gui/graphics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; - A54BC72C899A2AF82E1E37F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; - 849E645981CA10B8D5576462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../src/gui/graphics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; - 582DCC2F948F1DEA0D450B0D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; - 17EBDF689C731DA257B243C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../src/gui/graphics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; - E0694CD7C814AA99E5A84799 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0FA9E378EBD7EE63EF72124F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../src/gui/graphics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; - 62967D33232C5A86D88084B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2FBD6F49349E7CC8FC2051EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../src/gui/graphics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; - C17613C202D8E1C366F21D3C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../src/gui/graphics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1FA43B2E4244CD74B551DAD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../src/gui/graphics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; - 2BFC199D03DEEC329D6A7CB1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../src/gui/graphics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 32EA297812F1C88B42099501 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../src/gui/graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; - 85D4043F9E25047E07496DAC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../src/gui/graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; - CB649686575473223C859482 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../src/gui/graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; - FD1FA4ABB4226372235643E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../src/gui/graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; - 18DB9BD10F140F132A3279C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../src/gui/graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; - BA17B023595ECD8166A231D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../src/gui/graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6B4E90767D784246EC4E1944 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../src/gui/graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; - 78068AA59A5DCFCCAAEA79D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../src/gui/graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0401EA0E883CCAAAC6960A27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../src/gui/graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; - 61D06B694603F608CDA0703B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../src/gui/graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8117D400F45F1DF157634824 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../src/gui/graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; - 91CB423DBC5F3CBEDD9CF2EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../src/gui/graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4284BA7A26C7F6DEB00B4366 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../src/gui/graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; - AF66A9951377E2D04C54CADD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../src/gui/graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; - 932024E0F2A2CC22B7657691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../src/gui/graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; - 2ED8CC539A9D9BE611F67A9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../src/gui/graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5CD42FFF9F1A509D117BD0CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../src/gui/graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; - C18F342C087F69D141B3FAF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../src/gui/graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; - 4011751B9EFCA7B9345D7D7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../src/gui/graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; - 29BC53FEE9BC27F44534C909 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../src/gui/graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; - 795E2BD2D39A3A6E36C26CBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../src/gui/graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; - 312F208B501E0D7764C6B613 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../src/gui/graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; - ADB84942A96B6B9A0F5D7590 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../src/gui/graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; - 9D3F1BAB1D48DDECB9F35916 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../src/gui/graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; - C2700BB57B9EED7BFE975564 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../src/gui/graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; - 132E3C38B4F0C6229EDF7000 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../src/gui/graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; - F8C44FF03700F6140950F373 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../src/gui/graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; - 1B170F70AF8AA0A39074F671 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../src/gui/graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8B7D7435287A20CB2D8E3704 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../src/gui/graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; - 0F1C5770B363EF7DF64A876A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../src/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6619D27E74F623B1E8CE8F71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../src/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; - EAF0F2EAB230F7539B91A7FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../src/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0337723C9D607B82CF8AA682 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../src/gui/graphics/imaging/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; - 7904C2A3C52959748C46D54F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../src/gui/graphics/imaging/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; - D1BBA8F348C6DA2852A68221 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../src/gui/graphics/imaging/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; - 94D3EBE6E0D9AFE555226A88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../src/gui/graphics/imaging/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; - 16CAB09D19F1A7379506310A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../src/gui/graphics/imaging/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; - 67F4F9E1F6B9B4D1C1A668E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../src/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; - 35A9146C03FC33B577817E9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../src/gui/graphics/imaging/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; - 6E4DF7338364956EF42C4493 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../src/gui/graphics/imaging/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - BC2326E1A85025E700B1DE3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../src/gui/graphics/imaging/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; - 3FD3FA96955DD648494E76A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../src/io/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; - 974C3A59CC78DB4302B3552A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../src/io/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; - 692A95B19D9C32094A1E07B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../src/io/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; - DC51AF61DC4B345E5E4153E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../src/io/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; - 058702E8697667AEA38254C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../src/io/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 090490A1C3B0002DFAD78C7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../src/io/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - 6FFB38088C11BAE68368A3E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../src/io/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4EEF0B0BB4C3D1956B04122B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../src/io/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - 59B2FFF817679AEA84375E1B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../src/io/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; - 49BF2B02A6D7B4438FC24839 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../src/io/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; - 00B348FA35A7F691AEF84FBA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../src/io/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; - D9B3C04F8EB4228DD59002E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../src/io/files/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; - 42DA88264F768BAACD0414A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../src/io/files/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; - 17C3AF03FF7AE88AE0C73311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../src/io/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 75D6F1C676E178DEA8B86849 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../src/io/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; - 4035C867821E9B5887AA25FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../src/io/files/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4D005659935C7DE99C2C01E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../src/io/files/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; - EFA58F646B69B227AEF14140 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../src/io/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7241B187AA9B0217838B6052 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../src/io/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; - 06B06C420341B005DFF951D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../src/io/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; - 286206E754AC14DEAF88FD43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../src/io/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; - AD7A1C2C82EE714EBDD52EFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../src/io/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; - 21215569A0DCB6ACADD32401 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../src/io/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; - D4211E697F43821CDBCE4F24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../src/io/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7D593A29CAB138BD9AE950BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../src/io/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - BE5DCD603F7E21A1F66CDF33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../src/io/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; - 304FD4FD5771F00C8EA46C10 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../src/io/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; - AE363A1FE2F403F7CE2FDF7F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../src/io/streams/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 770082A38CF6071E5CFA563D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../src/io/streams/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - A10A63E2098A85B5CA9265B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../src/io/streams/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8932FA0AA37E1E04CBA55B23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../src/io/streams/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - AC183DCFAF18C9CEB88EEB1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../src/io/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; - 3F60563DEC7941B88163A50E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../src/io/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB059F528EC362F86E4B4278 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../src/io/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; - 39C0783ED515AAA82F9CA37F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../src/io/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - BD4388D88F2F02195AC73AD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../src/io/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - B3F5E7A708350F72E7C77153 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../src/io/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - DFE9A08C4AC8E1809018B5F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../src/io/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - BBE79494A818EF83F52A4C7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../src/io/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5F27172FD963C1A748AA625A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../src/io/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; - AE5A7EC70F288E7EA682081D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../src/io/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; - 6F7CA1B3AD09C76271FED3D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../src/io/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; - 7A039686F4F852E26936CA53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../src/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; - 161894D0D279595D88F470A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../src/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; - 868E43A4BB7015579789E4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../src/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8E0874D93125C2DC34255EDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../src/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; - 7C2A4084A267F57F2E27F3F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../src/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; - D99C977ACCD09262F06F6624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../src/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; - A978BD4031CAE24FB0FE26E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../src/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; - 1A656E62C071C54D28343AC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../src/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; - 252632F3F97DF57C0781BEAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../src/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; - 8FB80383DF3BAD7227DF465A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../src/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; - FE76B46873DE20DFDC5A94BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../src/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; - 28C4C81039B42A399F5B7320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../src/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; - 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../src/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; - AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../src/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; - F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../src/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; - 58654C2630387C4A336A5BFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../src/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; - 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../src/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; - E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../src/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; - 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../src/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; - 213F0A7BF38AF6AB34414A45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../src/native/common/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; - 21B2342B75097AB93CFF7E97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../src/native/common/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2C48BB1A286C6A63174E5798 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../src/native/common/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; - 7A51D8B81F390A4CABF25C73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Audio.cpp"; path = "../../src/native/linux/juce_linux_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; - 76DB94CC776536F5D05B9445 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../src/native/linux/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - AA698DD5A82F91CF84A29666 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../src/native/linux/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; - FABA493FEE07E6373DD8EB41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../src/native/linux/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 595EBA8A689DA899986314D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../src/native/linux/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; - EACFC12E665283EB7926E9EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../src/native/linux/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; - BAE5CE629DF9D286293E616F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../src/native/linux/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; - D4C499CB25F043FE667BC5E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../src/native/linux/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4366712140FBEBEDBCBDCE9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../src/native/linux/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; - E0A2C24581917DD090186333 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_NativeCode.cpp"; path = "../../src/native/linux/juce_linux_NativeCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - E61B485B10F8D4A3986953CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_linux_NativeIncludes.h"; path = "../../src/native/linux/juce_linux_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - 3F3D429025A92B6F0FB6F8EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../src/native/linux/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - 275F2210628D9E9968B1B258 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_OpenGLComponent.cpp"; path = "../../src/native/linux/juce_linux_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5DEA687D261C59CBABB782E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../src/native/linux/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5593DEC14D551C38CCB50D70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../src/native/linux/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; - B8E47498C7C6D5ECF41F0EAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../src/native/linux/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9DC2C10B16A645EEB82220D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../src/native/linux/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; - EE5F18DF1DED7617C4A41FF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../src/native/mac/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; - B2BCE9DDC8F0F54CA3D913E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../src/native/mac/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; - 5249EFBE3B22E6FC1A7B6D42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../src/native/mac/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; - A257B76FCE9D594EAD41414C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../src/native/mac/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; - 8280AA34B23B4D366711A9E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../src/native/mac/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; - C9561A66310DAD5EEB4A9462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../src/native/mac/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; - B62991F8AEE7327BA8A5070F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../src/native/mac/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; - 013F753639A6350C8DC602AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../src/native/mac/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; - 6B46AB1931E43DAFB278D23D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../src/native/mac/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 72524FE185FF48DC1F954341 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../src/native/mac/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; - BF5307F364AC9250D8625168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../src/native/mac/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; - AA4823F2F2A78C43D7A039D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../src/native/mac/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; - 87A5A064CC3CD55BA5D7617D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../src/native/mac/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; - 641638A0466CEC1BDEAFB476 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../src/native/mac/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; - 7DB37383434F45D8A7B674C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../src/native/mac/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; - CB16B2438EDCC10C499645E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../src/native/mac/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; - BEB35C6173793C1CB7AB6311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../src/native/mac/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; - BA58B49B820A47F6F55CDACB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../src/native/mac/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; - 930E58E13FC92BF70AC20EEF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NativeCode.mm"; path = "../../src/native/mac/juce_mac_NativeCode.mm"; sourceTree = "SOURCE_ROOT"; }; - 2F1812B26076D9CC1495D452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_NativeIncludes.h"; path = "../../src/native/mac/juce_mac_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - 9113CDD122D2790E147A8CF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../src/native/mac/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; - EE56999A85AF18015C540183 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../src/native/mac/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - 189F69E0B926C73B654D6951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../src/native/mac/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; - B9E16F4636FF8C0A1FC8BEFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ObjCSuffix.h"; path = "../../src/native/mac/juce_mac_ObjCSuffix.h"; sourceTree = "SOURCE_ROOT"; }; - AE9A7A0775FA806126A74E16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_OpenGLComponent.mm"; path = "../../src/native/mac/juce_mac_OpenGLComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - 4F5D1AA83981FBCD33CE234F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../src/native/mac/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - E6A7BFB0FCD17A9B133CDFA4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../src/native/mac/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; - FE6E3F911679B0D7547577A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../src/native/mac/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; - 8BCE60CBC91DBAAB089958A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../src/native/mac/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; - 3F11593DC3A168A52FCC2DD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../src/native/mac/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; - FC2C82760E717788B5A6E691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../src/native/mac/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; - AB0F3F5A622CBB251F64945A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../src/native/mac/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; - AD495FA1991295C722B46843 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../src/native/mac/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 42059626955C547DA6AD3196 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../src/native/windows/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8F383A785B4876198C5B0194 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../src/native/windows/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; - F3B50EE3939E9F16D13C3C7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../src/native/windows/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9C4D1018ECC0BA07346453EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_AutoLinkLibraries.h"; path = "../../src/native/windows/juce_win32_AutoLinkLibraries.h"; sourceTree = "SOURCE_ROOT"; }; - 3A37CD82212075940421CE4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../src/native/windows/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - B296F736C0CD6AC15BE6424B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../src/native/windows/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; - 7F3EF672D07ECE3E13AAF267 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../src/native/windows/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; - 249959E338D7750E56A9F2F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../src/native/windows/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 58B70C726D186B4E770300BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../src/native/windows/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; - DCD09B6EF4A4A109DE01F152 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../src/native/windows/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7527A5E8F4F39581159D3E5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../src/native/windows/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1DBF9DAAD0690CB2CA4E9960 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../src/native/windows/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; - E9B203E963EB1AB566061AC1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../src/native/windows/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; - BA561E64C6400CFB1DE013F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../src/native/windows/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; - 061B492EABD6B1C995D581A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../src/native/windows/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; - 50159A5B7A552A6C1EB557F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_NativeCode.cpp"; path = "../../src/native/windows/juce_win32_NativeCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - E7625D7A06CBC11F40A56A70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_NativeIncludes.h"; path = "../../src/native/windows/juce_win32_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - CDA5FCC51F6C1E84D7DC3274 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../src/native/windows/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - B14735381ADB00741166E330 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_OpenGLComponent.cpp"; path = "../../src/native/windows/juce_win32_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 09AE0882D58BE1715219556A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../src/native/windows/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0EB41C0AB478EE02D8C851F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../src/native/windows/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; - FBE07C5CC622A5D36BDAB9E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../src/native/windows/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - B07C853EB60D8D8691BC1B4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../src/native/windows/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5D32C8856093B33438AEB758 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../src/native/windows/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8758E6857070D7E5406FDE3F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../src/native/windows/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8E8BE2F1C182E418BBA6903C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../src/native/windows/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; - 03B9D3D9042E85BDD691325E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../src/native/android/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; - 13C661B79E1E9508512A6B21 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../src/native/android/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - F2F68E50F42BD0F124E89E2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../src/native/android/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; - 59C46E289F86C80D4341EAA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../src/native/android/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; - FA82460758BDCB2DCCE1EAAA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../src/native/android/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; - CE06EEED7426AA45C27B629C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../src/native/android/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; - F439E6C4B2D2AF19645252C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../src/native/android/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 1D74C9567283836ECC70E48B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../src/native/android/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; - 40216CE846A54CE706131A23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../src/native/android/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; - E646726910F110DC34DD1662 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../src/native/android/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9AF9F1C0D766D4F894E4A7B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_NativeCode.cpp"; path = "../../src/native/android/juce_android_NativeCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - 902C32F471DA6C435E80372B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_NativeIncludes.h"; path = "../../src/native/android/juce_android_NativeIncludes.h"; sourceTree = "SOURCE_ROOT"; }; - A404CD721E2A0F0CAE9326C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../src/native/android/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - 32B7C3609BDA01AA09740139 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenGLComponent.cpp"; path = "../../src/native/android/juce_android_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - CEF7210E311274F1DFAB6882 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../src/native/android/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; - 755C440534C0EB494572B3F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../src/native/android/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; - EE855319AF344A05C92580C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../src/native/android/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - FCD02A40985242A8A6648311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../src/native/android/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; - 76E2084D2148068F9138A816 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../src/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; - 33F16EE4F38C9B76E7FAEF78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../src/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; - 72F5ED2E8B945988C37EA9CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../src/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; - 663746215E9BA6C761172B85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../src/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; - C3FD9D93626F80A45F9B6DDE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../src/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; - 4007410FACA2F865FD8EF769 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../src/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; - 8273A206FB309671284959DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../src/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; - BF888BC540B64D5C61E46A34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../src/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; - 644FD6155385BC3AA270FB5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../src/text/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; - CB092FB152F43900272F8E43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../src/text/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; - 4A97C8D2FF6454DDD3AF4BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../src/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; - 2AA21CDC91EA122266EBD780 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../src/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; - 35DA3E75DDB03BB35794289B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../src/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; - B507B4A8712A54D7A8C03223 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../src/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1EE2A763E06AF4951024950F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../src/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; - 23252E4C97AEFAE0C5EEAA77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../src/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; - D4FED84C92ADC4B2C41A4275 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../src/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; - 81B36E7C56DF1A777AA04F71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../src/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; - E5458BE2F33DBBF5AF834BB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../src/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; - 0EC7DE81A516F4130AC59557 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../src/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; - C972C24A7D2FC817362E1FD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../src/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; - 5715BC14D93D61D71206FCB2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../src/text/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - B4575FEE10C67D45C9532540 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../src/text/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; - 95F21C2733BD5932372E4157 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../src/text/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4EF8C44FF03700F6140950F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../src/text/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; - 40282E23D43D86D122CA5C54 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../src/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; - EC240B4379FB70C8A8AC2855 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../src/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; - 5508D42FCF7A1C8A8CD78BF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../src/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; - 90E4999A78655A238AF42BC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../src/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; - 8E78623B2D21CFE68DEC0483 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../src/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9E622C38E4BD511B6ABBF7AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../src/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; - 6734838B47EF0D9ACEE571CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../src/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; - F00BDEF5CE2B281CBE2E89A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../src/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; - C5F20B02D7843F3C5ABEDFD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../src/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; - 1FD1C9A3D2DB64C825FDAC8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../src/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; - 4D60F7F748CF6702D1E45960 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../src/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; - EFE26D4E1E2B92828DBA3A99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../src/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; - EF06213027EA3F7C54EE0F18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../src/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; - C25E5F90524645D684C674CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../src/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; - 60F21CB42270ACE2241544A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../src/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; - ED84C92ADC4B2C41A4275F92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../src/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; - 3268C8DBAB23CF503BF30935 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../src/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; - B4435D42216365FA97651272 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../src/utilities/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; - CE216F2485CD5EFEA91554F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../src/utilities/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; - 599F5C47BB9B5898E0E88CF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../src/utilities/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9620E4769876FC01ECE885D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../src/utilities/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; - 4BE2727CCD2CD7603402C8FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../src/utilities/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7FDACEA80794451691A12703 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../src/utilities/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; - A618FC3255ECE14EC9259E6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../src/utilities/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; - A2D6317BEEC77A62E8F834AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../src/utilities/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; - 7F1AC20BE8A18CA6BB7403EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../src/utilities/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; - FA833EFA9E93C7DBE6624676 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../src/utilities/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; - EECE464606AE845BFC4B941B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../src/utilities/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; - A59A5DCFCCAAEA79D03C2B27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../src/utilities/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - 3C9E6597968358B57374502C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../src/utilities/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; - ADE5F12AA5AD969E2C7002B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../src/utilities/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; - 75700D13513346310CEAC30D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../src/utilities/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; - AAC585C4648559DD713F28FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../src/utilities/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; - 2FD5C998952BE08F8ED3F262 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce.h; path = ../../juce.h; sourceTree = "SOURCE_ROOT"; }; - 01778F26212AECCBF2452804 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Config.h"; path = "../../juce_Config.h"; sourceTree = "SOURCE_ROOT"; }; - D443FD24B52106986FC8A531 = { isa = PBXGroup; children = ( - 144F56FCF3DF9EC922765901, - F6A490BA93AC3558E9A6FBB0, - CB9766F7A9C612B326D808CB, - 36A407F2BE4A625184B5CCFD, - 4E74130693EE120D905818AC, - 21E1DBFAB3FB75875EA35280, - EDF52AB382E80530E8FED9A0, - 415BD77DF4B2F4760D138735, - 8422E662212FA2082644A942, - BA97FEDA576503A21D971F1E, - E03C84620DCB004172C09B28 ); name = application; sourceTree = ""; }; - 2038F3EDCC94040C77D7620C = { isa = PBXGroup; children = ( - 1AA8BE2D76E153874FB08197, - 05C5C546E12C6422D865D864, - 1F5A667524FB005D872340E1, - 0877D5750D6F21C5231687CA, - 1BBE03BB0D71FEEEA440682B, - 7D85530D76756C33795ECCE9, - 013E8938EE1C6B4F63016B55, - 93006D32B18174D9FE0A5E9E, - 41070806F82EC9C6D1C67689, - 9349E14552FEA0371553E808, - 27356F5E93CEA4D472D83D8E, - 2AD64F53E12B20011B7A0DB7, - 8BD38C2507C0F8E28930A4F8, - 59597FA0A88A08937801D198, - AE7F7F0D959C2E3CF5989C88, - 27C3C51DF2519B519B76E2EE, - 7B34E897026857C84399A09C, - CB32D4EE59D5CA9DB12F944D, - 3442FA257104DC3F43E7F870, - 203AC66FFB20EAD2E7A594BD, - C9F1015CA457A61082398E34, - E00781B15E47C9CB9E94869D, - 7C06BD13BF7E0097EB0A8D08, - DA868174D4D2059AC1BE7E71, - 25B1AC1A6767AAD9E9515A18, - 7CF036906034FABB44D2108F, - DB5CAB7BC2973ABFF0867BCB, - D5D2FD212300E7D49ED74823, - 87A18C425F53C2098B1D42FE ); name = "audio_file_formats"; sourceTree = ""; }; - A319A40925DF075E2C31C2FC = { isa = PBXGroup; children = ( - 7AE5295A472723B26537FAEC, - 51287E236C749092458BA2DD, - 4C3258A1978AF3D357D196C6, - FBB2EEF0E5EC5EB6F89E9066, - AE9C08108699C71A289462B7, - 74AD63909D3EE09D63256A76, - 67A8F408B1EC63407C9241B2, - 5D6E837F124C347B3C1CAE23, - E1EA83B7EF928DC88D069AEC, - 1511366CAD437989DAA30CF2, - EA630BFFF638BBBC8FDC0018, - D86718CE7E5DEF2071AC3D17, - 76BB7F75A7F9930ED5A0CDB6, - 9A8053936C35A19B9E98623A, - 9CB1126A9FBFF1D6D6469AF9, - C63D6EC0555C13C1B79A6AAD, - E2A56C23BF2BB466BB273E3E, - BE5DB55285441D501FED3C00, - 5403C2A4DEE7B9B3B34235F8, - 0F70C4D118AC7625B4C42CD4, - 3988438157D4B75177703F8A, - 6AC857F51FD805D7BD3EF712 ); name = "audio_sources"; sourceTree = ""; }; - BF8F3D00CE4E97468E8BBC55 = { isa = PBXGroup; children = ( - 6841D6AC927D02113F3AEBD4, - E668D9C7FF084E59405A2A9E, - C7DB1BB9AF7FE0A2AA38D767, - 95CA8EE24AFBB1F2F29A5394, - EAFD034BB1721BFBF9A3795E, - EFAFC937377A21E9AC0F9776 ); name = devices; sourceTree = ""; }; - 53C441C8EEF2860715CC6599 = { isa = PBXGroup; children = ( - 5DB9D903D24646B0C2356A5D, - EBA6B46F7B3C11CA3744A4D0, - A1D687AE613A8B61EB63923D, - 812620B53BE820D26A63B65D, - 11C1A96A35A2F03F8C34BD43, - E68EB4BC75216B5B56E3F937, - EE2259D9768027C2C001EEAD, - 2C55CE1674244DB199C3033F ); name = dsp; sourceTree = ""; }; - 99B60B012D5CCF0BD861011D = { isa = PBXGroup; children = ( - B457515938E7141D5E79B671, - 0604C2E17F0E0DFEFDA19F8D, - 891E0B1AD09C0EA44297E0F2, - EBACA038DBB50817BE80E8C5, - C376B06C58C5D3C972583BBB, - 0731C60911E6985F51325484, - 062F7ACF5282C5B2D4BF5EE1, - DF3833AF6E38E55218FDF23F, - C627F9E9EC160055D65D81CB, - 0D3A77572C7256CE4C115FD7, - A22A0F77C15B1E4A8F2EB42A, - 78D29BB5C76CCF7C21EC0DAF, - DD3886D45B5988B4DAC2D049, - 01712FF0A160032FA1DAA8C2, - 899BD7E18BE1EF7CDF53784C ); name = midi; sourceTree = ""; }; - 844109733F09B5915AF75797 = { isa = PBXGroup; children = ( - 7B88F6B8E3A10CEAD9B0EE88 ); name = AU; sourceTree = ""; }; - FAA6189E385BD13EFEFE2E08 = { isa = PBXGroup; children = ( - 1101E8CB676FDEEF0A89D921, - F222E5825D83E711C9F1B789, - CEAA2B84462EF0B5026EAB0A, - 9A3151864FB90A6A4BCCAE9B, - BCE37F0D994C0ADF2CCFF796, - F52ECCD6C02108A2D7F672F5, - 833C3F205F05BA4ADC883E53 ); name = RTAS; sourceTree = ""; }; - EBF4EE8E84A562DE2EBAE6BB = { isa = PBXGroup; children = ( - 69C4FF0DD888BA25477561C8, - 37E1FC756833849B8C7C1215 ); name = VST; sourceTree = ""; }; - 0F0D49D13522C94A0F37D4AB = { isa = PBXGroup; children = ( - 2741189DF800566462E24A14, - FAC43251D74E5140740BEF60 ); name = Standalone; sourceTree = ""; }; - 2805C9C796CD7D77C2D662BF = { isa = PBXGroup; children = ( - 844109733F09B5915AF75797, - FAA6189E385BD13EFEFE2E08, - EBF4EE8E84A562DE2EBAE6BB, - 0F0D49D13522C94A0F37D4AB, - 2E96F55074F4EB74171EE6B6, - 13F64389F0E25731A98E92CD, - 7CDC2FA849B7ED73A2638A11 ); name = "plugin_client"; sourceTree = ""; }; - B1F82C796B56FCD97D211D8E = { isa = PBXGroup; children = ( - D76BDCCF9E1A1F26A8F578F0, - 50FAF92038EBD0127900AAA1, - 2073E1A497363200233CD34E, - F800E47459B2FE9DEF56F312, - B4291F2CEEC78CFEDEFC360E, - FCBB1DC14311D099809B21F7, - 723EBD80931754F4DD77DD53, - 2EBF36FAAF019B6F811D1C84 ); name = formats; sourceTree = ""; }; - 7AA82894558E047D7D5111E1 = { isa = PBXGroup; children = ( - B1F82C796B56FCD97D211D8E, - 1C8211DFB558D740EF4B173A, - 28534632DF76A1EA837BD0D7, - DA4820727D6DDC75561A262C, - A6415104D1E3E5CE7031C0C1, - E5BA7B8913271E935A1DA487, - 3110B983ACE956D6A24F8C8C, - A3FE51C7DD706F536273AB0E, - B6E20AE45813C0CA9B1014DD, - 4AE3A448D79602BE793BB5AA, - AF47BC3796A74CC15A192E8B, - 3D170AC8FD8E403C54E08F9D, - 9C5C0BCB2A298160025B15FC, - 08C65C3EB60FE8BFA252E3EF ); name = "plugin_host"; sourceTree = ""; }; - 231431F8B23F01DC6ECD4214 = { isa = PBXGroup; children = ( - 4CF107951746567DB63880A3, - AB554593165FE8C8B40F4447, - 3F260C24341E58745AC5BE79, - BC2A50B0B01128E394E9DE9C, - EC0F8FAA7EACE0D275064D60, - D141C024A3F5A6748B0E9ED7, - 19C9509EC7DD00DA7443DEFC, - ABDE16ABC1784B0FD3887A8F, - 08EBC2152F45FB2B839FCCC1, - 350428D4D70AAB88B2B84790, - 096CF2243648F17E1BF5421B, - CAD3312170E5DBE8AA8348BA ); name = processors; sourceTree = ""; }; - DC641C77950A335A20FD4532 = { isa = PBXGroup; children = ( - ED5966B95F865C586A3CE08F, - 6C6C1C360138D9BD4B27588B, - 35668D8EEA19957C6C9AC83A, - 9E6C206F95245BCDE38FB2B5 ); name = synthesisers; sourceTree = ""; }; - F2B0E44A08E127FD31184241 = { isa = PBXGroup; children = ( - 2038F3EDCC94040C77D7620C, - A319A40925DF075E2C31C2FC, - BF8F3D00CE4E97468E8BBC55, - 53C441C8EEF2860715CC6599, - 99B60B012D5CCF0BD861011D, - 2805C9C796CD7D77C2D662BF, - 7AA82894558E047D7D5111E1, - 231431F8B23F01DC6ECD4214, - DC641C77950A335A20FD4532 ); name = audio; sourceTree = ""; }; - 1CC2889DB696E12FC34E3F50 = { isa = PBXGroup; children = ( - 4F22276689685D839BD252EA, - 9584B84F23A4251755D49213, - 839BE8047CF2F8EBE43ED34F, - EDF52FDF87ACD33FE933142C, - F77C9170829579FABA5679AD, - 34C402EF9ADCAD34FB657D43, - 7DA9AC75A4D9227C8FC4B2F7, - 2767E1D082874D301D5D5F43, - 9289A1E6B141F24C57FF0927, - 70E5409425A76782B6188B31, - BB4A73064B0FC74ECCA19116, - C1913C90ED7BE51E823887CD, - 9BD379D2F7995BFE0B3E5369, - C8F0F54CA3D913E7B8D559CF, - D7612CE51ED4F9D3F960F922, - F95BC2FA7861CFF968D661ED, - 2F5FD1DEFAE549553A8BE3B1, - 989E03031D341649B4A296F5, - 1809284DD05B56309D7EA24F, - 69F58BF234EDF6328F624E0A, - 5D27EE211D9BFF6A58C4DC42, - 7CABDD863B47D8ADC900A4D8, - 4DF9D333038A442870668D31, - A81B4FC81A75E21E5B96E506 ); name = containers; sourceTree = ""; }; - 1AF37A533ABDD889670F9349 = { isa = PBXGroup; children = ( - D66C00E06B06EAD3B5257DD6, - C8441B7B3E4CCD4A257B4BFE, - 92ACFFCCCD1C85A0F8C6F80F, - 4555F03DBD059EEDECEF9F85, - 63F44EC0485FCA050814967E, - DF6CAC67C0F2D379BDA03062, - 1159C6BB0D33EE8E1A96B083, - 8292AE37F99FCC1E5BF63A28, - CFAECB6551F48A1695DEC243, - B4137E4612C1D161894D0D27, - 0AD73B8EA0D60D9927B36624, - F51969AF328D2C7D52D7436D, - C25D6136DF9CE441D6EB4C42, - CA66415F6EAA172B83755954, - 18B170E96511BBA1019C66F8, - 45D14EF360BDA1F5692E583D, - 956A1C30D5FE98DBB154204D, - 8D2DE1F3CB15D003C90042E7, - 872020C1EC3997ED744BF1BD, - CEF91E0C9CBB3EBFF9500FDA, - 297B664E9AB86DFE7DCAFF22 ); name = core; sourceTree = ""; }; - 2B74AFA66B37B748487152F4 = { isa = PBXGroup; children = ( - E3C548295935D26121D5D823, - 7A4B0E6FD686BCF0B8CC771E, - EAFD8FAF365DFB32DC42D0E7, - 6E4345FEEB1DC732A16134A4, - E9E692847C14AD33CD5FB40B, - 22612DBDC6C689B605CC6B48, - 7AE9331938549244E27A5D0E, - 16335266AFB4D19F25410E1D, - 4CBD301A08E9C3762F861FC3, - 02CD7BA1750DE36237369F78 ); name = cryptography; sourceTree = ""; }; - 89F308FD85F378E278C98884 = { isa = PBXGroup; children = ( - 31D985CB8646B78460E9D5A7, - 09F7685D1EFF472ECB1F5EF1, - 4EF8BD4BF46C4BCB39F96609, - 5EB7BD94A754E88D076D777A, - 1617348BBF5D103619D76911, - 44DB44953945417F76199479, - D04B6E43A037F985434B2F5A, - B80F8CD026033ACCCE11A1A4, - 5F454A6B5A82ECE2396C5716, - B2D08C8EEE3E22026533D2EA, - AE68ECB6E063BD8D4984C0B3, - 4B935D7360C9F166C80A158D, - 843A7B398E9411F0AF28D65D, - 57DD8EEE88C0D366E0354478, - 80633D64E9EFA1433454669B, - 9CF077D3ED7B7B56F351AAF6, - 7A1219C6560BDBE2E170D2A9, - E594F70DC2F292FF1EF65CB6, - BE17B7279B4BF40E51C12F47, - E2D07ED5E1A4A460E0DEF59C, - 2EBDE3FF4894D72C310C9F84, - 1F2CFBF13ADCA05C0DC2D7D4, - C51E9973A6FAB635081B9FDC, - C818B558D6D5B62A80621281, - 32C0312A5D246D41AAD98A11 ); name = events; sourceTree = ""; }; - 2DB55F83F4310F0C4E4E03AA = { isa = PBXGroup; children = ( - 18EE6576A9ED098632CE5155, - EB182DC4124FEFFFC87D12C4, - 8B1C747E63EEF036AD9AF3D8, - ECA97019B42083AD879B5B97, - 1C3D15546065C1A9AA5AA0C6, - B2032A24364695450A5E6A76, - BA415BD77DF4B2F4760D1387, - B72C0FB8DDC0F1102DF42943, - 6930E651AEE97FD47E185EC9, - 96FD3A02BA915E460520A0B7, - E927E4A58A84B21AA6B38A44, - F2212B7F42E26C3DD86800F2, - 09AE2C7E2573204A7A35452B, - B394145555DCB9E0FAA5522C, - 9846D4523B3425BBB04107EE, - 455176F8EDBA7A9DCEAA1367, - F750738F398054AB38250780, - DFF08DC68372AEE17EAA9CC7 ); name = buttons; sourceTree = ""; }; - 17B11D96CDB313ED60D8CFE0 = { isa = PBXGroup; children = ( - A3CB18F915377AC3FFA2E5F4, - B28C2EBD0846A09DAEDDFF4E, - 04F48B09426293224576DA9A, - DF6B4E787E39CD446ED2EEEE, - C992FDA4396430392CFAD150, - 346CC505FAFEE9451040108D, - 3384A91143018ED9346E4118 ); name = "code_editor"; sourceTree = ""; }; - BCB2FFE7C2A4084A267F57F2 = { isa = PBXGroup; children = ( - ADC16C18C8237A7F8E35E37A, - D8EB3EA456D9FCC211CD1ED5, - 0D3FA24FF38399E0EDA80860, - CA3454A9B6F80A2F4735C37E, - 7330A9643F50DE8BEACDBB61, - C0CC0FA84A4F7AA76C1611CB, - 1BC6C010045A06BDB4C684F6, - 3FFCAECECC0D469A010F7AF1, - 71B6CE03D6DB07BB293C8206, - 1DB68310EA4D6180FF948AA0, - 3CE16163A43A6E67428385EE, - E698677EEC8E88CAFF542764, - 6BB68B37C7B0BB4DA8326647, - 1EA844F7CC5377A14B0FD21C, - 76E073B2A3F59A3ACD20CC87, - 8BA30F0AFF5EA0E1A0203ACB, - A4E66D702028A22D8157241C, - CB6BF5E15522D8A272032AE9, - 53EB02EEDF5E7971EAB9E795, - 82FEB35063C3559D2F46AA6F, - 37E48B8F8AD2BC448E5935C7, - A77096E86054F70AC0A3B69E, - 981BACFF7892B83828313D8E, - D317D4B5BA40A5754EE56F47, - 8400CA0D3C2AB7A60A7329FB, - BC209F6862D5923B8F9E3080, - B0D261D42091AAD1560A0D63 ); name = controls; sourceTree = ""; }; - 2FE3729520998304E4B05FBA = { isa = PBXGroup; children = ( - B60FE8BFA252E3EF2D60B77A, - 79ABAD7BB654030EF29B8B9C, - D3B56583D4F60069296DB959, - 3A4ABC7E24F155A8CAF027B3, - B1DEB4E0BBFE7E2D052165BD, - F9FEE6DAB2B2752AC13D7286, - 85F0A0454489E4AF1F80AC83, - 102BAE57AAA43A7685FCBD9A, - F631A108CB5015BFA2E25E00, - 730CAA344708954DE271072C, - 295793C7AA1A57DC4BBCBBC4, - D54308F25AEE3110A166F2BE, - 3AF50EADB5B2C973E0C8EE9F, - 9A9D8C524A070162517620E5, - CD6C610A843822A7FA53E9D7, - CA1B41922D8094982F967DBD, - E9E66775B2F13ACD0B751E69, - B689E250203DE38D6D4F39F9, - 29DFAA512171B967D687A945, - 0AB8288D92FDFA00F30FB8DE, - A418FC3BDDBF1CE9F2903490, - 0EAD906B617A1A17305CB9F4, - 949854EDE6B5B16CEFB6108F, - F39059E72B927A700010851B, - 8A67B45A2BA1D19D1AC43315, - ECDD0F8397F3EE4E7FA7ACCC ); name = filebrowser; sourceTree = ""; }; - 558A664D5D1ECEC607F4775D = { isa = PBXGroup; children = ( - 912C419859C9C56BC96AA6FB, - 717295136FD426125079F78C, - 5ABC6616473BA4791AA8101E, - F61C34EE417006881D0869F4, - 29A79478AE8567250972ED43, - FB080C47434A8FAB73B8F486, - 7F5A271EAB78C7CF8B2341DE, - 92EDE6EA48F94DC5A0BCB24A, - A00C6593BFBFA76043BC0C06, - 02982EB6A81020D3D421AED3, - F1A33029252D29A6ADF171B0, - 15C6FD019B274AA51B4E2D76, - B1E8FF009812F29C2620E6BB, - FAEEA3536AD17B2667A1BB94, - D64DD9F41E4598606855DFCF, - 7356F5E93CEA4D472D83D8E5 ); name = keyboard; sourceTree = ""; }; - D75AAB3AB61247E962C00692 = { isa = PBXGroup; children = ( - 921B616E2229AEB6390D2B57, - FE1072B5FB77E8FEE1BEBDFE, - 07191E1A9805FA6E6F253FF6, - 2EC173A08676F6E592A7B347, - 45E5EE9E0173683D721FABDA, - 2D3A362DD3833B9E70B10FD3, - F8FCCCE06D31FEF697FCD80D, - 44CDA79090B115C3B62A2168, - A6AD7357F905309D1B461EB7, - E9242E8425497D889C764C66, - FF046140CCF1EDB0DFF80178, - B6A223FB5B4A9388C83D6FC7, - A95F42C5CB0C2E5052B31568, - 600B2FDBBBE812784CB49A69, - A31221E2A50CCE9DF06B5F4B, - CB54AC3D311C44A1F3B463A5, - 3D8B0E86C98E2EE49AE868C8, - 238965266F88730956D776DB, - B116FEC4D544DB8E38CB571E, - 797C94BB7F42CBBAACCFFB87, - F1F65C9E7394E04E073A57A4, - F64E8284F142600B9F519B07, - 993C90B10202DA78FA31CC58, - 8C0FFF811E06D162050CAB14, - 079CFB5DEF6F2B71E2910A22, - D5F5282BE0F43A5E16824749, - 143F36BCDE7A65EBA33900ED, - 093E54DECB8191CA74D79176, - F2C653BA4552E6838DFA4F87, - C42D9251031A81B5CF2C843B, - D41423657626ACA672A9DED9, - 811149E18993F029165D330D ); name = layout; sourceTree = ""; }; - EAE72EDE682D52DF77747660 = { isa = PBXGroup; children = ( - FD004BDDCEDB7E324983F70C, - 7B991020107EC0D54965BCA2, - B92ACF027E63D1C788DEC893, - 3C739F61EE232C75546D4DCF ); name = lookandfeel; sourceTree = ""; }; - 870DE7235866DA3B81B683B8 = { isa = PBXGroup; children = ( - 218D7D73C086866E587FFD01, - BB93D3C283731C0B25B7AAAE, - 1DDE0A8E4C5857715D9B5FAE, - 502B3625329816EA6330465F, - 6AACD2FD239E39F87B666C6F, - A563BC883D801CF5956DC4BC ); name = menus; sourceTree = ""; }; - 4F37E36BA5E052B3BD4B87AD = { isa = PBXGroup; children = ( - 9E4B3BAB9BDB06B60D28DF48, - BCDD702ED33BADF3FC19384C, - 3D74B30C63465C32E26D8E33, - D4993649A93B73052C8045EF, - 31EE71EA61B4ED293481EB97, - A08313B5F112579D130373BF, - E1CA0B04EDE60771B81B9700, - 944BC51C440C167C5B2A23E3, - 136109B3076DDA7B2E01CF90, - 067D84F9291770240D1AB5B4, - 50C02B44D0CB18898F575B1E, - 441257DD380138C03568FCBD, - 07CF9AF337779EB486AC92BF, - 2886656DF7ACC9DDC888827F, - 0C28F27F9D1CE6CD65185760, - 89AA49DD2A63D80E90A56768 ); name = mouse; sourceTree = ""; }; - 362862B72D7FF7997C44CECF = { isa = PBXGroup; children = ( - 82DFF1BD3665DC32672FCCE8, - 5B6CD1833A98F9844B7E3FF4, - D39C0B853C3EBBBD11E7C71E, - 657546D70AB7B2709619E07A, - D31704DAB806B6AF3ED52DC7, - 574EC603B2B1189687851319, - 243EF1A31A779413BC2D5B98, - 72EFFDE39C7255D50F926944, - 36BB6DDF702EC9B3DAC851FF, - A3B6342C6207D452F6AD985C, - 9DA988F1D7CE29E0DFED7EF0, - C1A3232DDB617A20D9C26526, - 072D77C3834B1B3FB77F277B, - 749CA35420339A25BA4E500F ); name = positioning; sourceTree = ""; }; - 0F03F34FC3542EF0CF8B31E6 = { isa = PBXGroup; children = ( - 1C3FFBA02AE51EDD72A6250B, - B422688E380911F3C21E3F04, - C45E7E6B6E45DEFBF80940DD, - C1F662CED371C843E4EE03B2, - ECCBF2452804ECB2D5B4BC50, - C6B318D6930A05FF86AD97DA, - E2C948680009D1744CEDBC25, - 5B9E9460EAA932889DDC4873, - 0984A4BA00D6AAFB463657F4, - 02685CE4575D6E9B8CCC7738, - 3451124EC2809C9BB591DF93, - B568DEC2B352281BC63B33CD, - 84311C1F5A8ACC8DF4D6FF34, - 3641ABC17D67038746897FA7 ); name = properties; sourceTree = ""; }; - 5C03BF1C4CF3DEE1E0D6A3A1 = { isa = PBXGroup; children = ( - E748C93240CDD61473B0107F, - DED871B1C7458B15DE7C9234, - 26E787FFC68224BF8EB5A458, - 11F1658A055C45FE824FD2DB, - 4DFF179AFD87D34C7E23B1E5, - 4C3C3AFC3D97C1378B7D7435, - C25DFA2F2B673EB0146412BB, - 0A20E7E561633610A76A34AB, - CD9F817B7EF0DA080668A3A8, - 4BF7A01BCE61A5068CA13D8F, - 9C1D5CDA61FB51F657DA8B22, - 7DB8CFB77EA690ACF54C63B4, - 3C8C1AAF32DFECB89EB83271, - 127FC743FE67E6EEF2531BD5, - 4387C6496C7079FB0032B99D, - 1317F0BE5EC80371F744967B, - 826CC87E9E280F46B6D62B64, - A34C0E63D41CFF5E55FD1D9E, - 6BE989C709D2D1D017548447, - 529CB909220344AD55944372, - A9DB12F944D9DC336AD0A78B, - CC04F253CB70B20B774801A9, - D9847FECA6801E9A61007D50, - 740D1808DB934123F05A1598 ); name = special; sourceTree = ""; }; - 48D41BA310DED74E900A5AB0 = { isa = PBXGroup; children = ( - A5AAF4475138358F33D4904A, - 72C4FDDDB8602591DD4F7B3B, - 8AEF18EE9B12D4677F96B709, - 8F54431CD3A672B1EB8335BE, - 2FFDC7636EFC2D7F74590A31, - 12C66C90F3192AFFD6BCEDB6, - 929FEA5458430B7AE23BBB46, - C286C779DD52C29F86E3DBE9, - 090907E4FE95EE2B11C1A0E1, - 6E522DF13EC47755234A5D57, - 3FC6FC331B4E104D1DC223D6, - 2E4A5F7128313C23AD0356F7, - 207CDD87107EAC8ED17DD601, - 87E57C8F3448D615271CD9F6, - 7C06FF93D655B9987000ECA9, - D7772BC5E4E455AE2916A87D, - 2FC449D291A603E26E938F52, - 6C33842C52B61407CACCA858, - 6165F485E931EF9F69D2145F, - A24990B395323FBAC0BEFB5A, - C7C882D550E3B72FA5EFA88A ); name = windows; sourceTree = ""; }; - 92D807F41C69EA70B3D78B08 = { isa = PBXGroup; children = ( - D0D9267E200BD462361810F7, - 17A21B31FD41D00A4088FADF, - E13F33E386E1A0D5FC546521, - A0D6308567AAA50D1163D9D3, - 621B3A4B154182F69DDE2989, - A1F58C1A972425C2B43DD1B3, - 2FFF9AFE4BD9437CE096E52B, - 41C8C324F13ADA3423FC3B0F, - 2DB55F83F4310F0C4E4E03AA, - 17B11D96CDB313ED60D8CFE0, - BCB2FFE7C2A4084A267F57F2, - 2FE3729520998304E4B05FBA, - 558A664D5D1ECEC607F4775D, - D75AAB3AB61247E962C00692, - EAE72EDE682D52DF77747660, - 870DE7235866DA3B81B683B8, - 4F37E36BA5E052B3BD4B87AD, - 362862B72D7FF7997C44CECF, - 0F03F34FC3542EF0CF8B31E6, - 5C03BF1C4CF3DEE1E0D6A3A1, - 48D41BA310DED74E900A5AB0 ); name = components; sourceTree = ""; }; - 4FB94A8F4982BFC449BCDF15 = { isa = PBXGroup; children = ( - EF18D0073BE50E572ADD9A1C, - 8F6F9E1FD31E1A6268CFD3F9, - D36EFC4421056277BA87387E, - 3AE0BD116486BCE37F0D994C, - 41AF663E626B8F6D319B9966, - C913994AAA448C9F22ACF100, - 112017AA0A061CF080DBD504 ); name = colour; sourceTree = ""; }; - 5C291A35207CB6C58F653E05 = { isa = PBXGroup; children = ( - 3EC800323255128D69539BAE, - BD52C1CCEAF6FEC311B9FDA1, - B7251E779500BA77F5522CC7, - 1F0DB4B2825AF638183B50D6, - EF50EEDCAB08F842AB8DE6DA, - 6320F9BAFA094B5C0C828C58, - 2E03ADF975A126C1F2F7B667, - 36268DD78D00323D391ECAAB, - D6B4FED1F1D9FB82C6424438, - ED3ED8389001D55FBDCF1087, - 5792CC17E9DFB966371CBEE1, - 835CC2A1E67E7B19E41F8FBD, - A7A8BE6B30C70701A10B5BD5, - FF052647D2EFA985D05C8E83, - 2B90FAFBC65FB79A5D74E816 ); name = contexts; sourceTree = ""; }; - 097AEBBD16544F0BEEE32245 = { isa = PBXGroup; children = ( - 504730C9B9F60192C2577979, - B6A249ADEC5400011AA671D9, - 85B7BCACB40E02815844F71D, - 00B5FB5ABF4F13EC5D28E34D, - A54BC72C899A2AF82E1E37F8, - 849E645981CA10B8D5576462, - 582DCC2F948F1DEA0D450B0D, - 17EBDF689C731DA257B243C9, - E0694CD7C814AA99E5A84799, - 0FA9E378EBD7EE63EF72124F, - 62967D33232C5A86D88084B4, - 2FBD6F49349E7CC8FC2051EA, - C17613C202D8E1C366F21D3C, - 1FA43B2E4244CD74B551DAD6, - 2BFC199D03DEEC329D6A7CB1 ); name = drawables; sourceTree = ""; }; - 6D6492A7E3B70A5E76AFB49B = { isa = PBXGroup; children = ( - 32EA297812F1C88B42099501, - 85D4043F9E25047E07496DAC, - CB649686575473223C859482, - FD1FA4ABB4226372235643E4, - 18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = ""; }; - 58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = ( - BA17B023595ECD8166A231D1, - 6B4E90767D784246EC4E1944, - 78068AA59A5DCFCCAAEA79D0, - 0401EA0E883CCAAAC6960A27, - 61D06B694603F608CDA0703B, - 8117D400F45F1DF157634824, - 91CB423DBC5F3CBEDD9CF2EF, - 4284BA7A26C7F6DEB00B4366, - AF66A9951377E2D04C54CADD, - 932024E0F2A2CC22B7657691 ); name = fonts; sourceTree = ""; }; - BF4679D9201C5AAE6751536B = { isa = PBXGroup; children = ( - 2ED8CC539A9D9BE611F67A9A, - 5CD42FFF9F1A509D117BD0CB, - C18F342C087F69D141B3FAF5, - 4011751B9EFCA7B9345D7D7C, - 29BC53FEE9BC27F44534C909, - 795E2BD2D39A3A6E36C26CBF, - 312F208B501E0D7764C6B613, - ADB84942A96B6B9A0F5D7590, - 9D3F1BAB1D48DDECB9F35916, - C2700BB57B9EED7BFE975564, - 132E3C38B4F0C6229EDF7000, - F8C44FF03700F6140950F373, - 1B170F70AF8AA0A39074F671, - 8B7D7435287A20CB2D8E3704 ); name = geometry; sourceTree = ""; }; - D71FD838B3FD1536FCA839A4 = { isa = PBXGroup; children = ( - 0F1C5770B363EF7DF64A876A, - 6619D27E74F623B1E8CE8F71, - EAF0F2EAB230F7539B91A7FB ); name = "image_file_formats"; sourceTree = ""; }; - 36A6F90D0C87EA1D8FBE9EC0 = { isa = PBXGroup; children = ( - D71FD838B3FD1536FCA839A4, - 0337723C9D607B82CF8AA682, - 7904C2A3C52959748C46D54F, - D1BBA8F348C6DA2852A68221, - 94D3EBE6E0D9AFE555226A88, - 16CAB09D19F1A7379506310A, - 67F4F9E1F6B9B4D1C1A668E5, - 35A9146C03FC33B577817E9E, - 6E4DF7338364956EF42C4493, - BC2326E1A85025E700B1DE3D ); name = imaging; sourceTree = ""; }; - 1BC496671A99D62A223BB364 = { isa = PBXGroup; children = ( - 4FB94A8F4982BFC449BCDF15, - 5C291A35207CB6C58F653E05, - 097AEBBD16544F0BEEE32245, - 6D6492A7E3B70A5E76AFB49B, - 58FE42C578BFFD1F8F545B39, - BF4679D9201C5AAE6751536B, - 36A6F90D0C87EA1D8FBE9EC0 ); name = graphics; sourceTree = ""; }; - A11081920ACF526B1320CA42 = { isa = PBXGroup; children = ( - 92D807F41C69EA70B3D78B08, - 1BC496671A99D62A223BB364 ); name = gui; sourceTree = ""; }; - 3C4DE044AE46D5AE2388C827 = { isa = PBXGroup; children = ( - 3FD3FA96955DD648494E76A4, - 974C3A59CC78DB4302B3552A, - 692A95B19D9C32094A1E07B9, - DC51AF61DC4B345E5E4153E3, - 058702E8697667AEA38254C1, - 090490A1C3B0002DFAD78C7B, - 6FFB38088C11BAE68368A3E7, - 4EEF0B0BB4C3D1956B04122B, - 59B2FFF817679AEA84375E1B, - 49BF2B02A6D7B4438FC24839, - 00B348FA35A7F691AEF84FBA, - D9B3C04F8EB4228DD59002E7, - 42DA88264F768BAACD0414A3, - 17C3AF03FF7AE88AE0C73311, - 75D6F1C676E178DEA8B86849, - 4035C867821E9B5887AA25FB, - 4D005659935C7DE99C2C01E2 ); name = files; sourceTree = ""; }; - 13FBF71BD76A08C8971C6351 = { isa = PBXGroup; children = ( - EFA58F646B69B227AEF14140, - 7241B187AA9B0217838B6052, - 06B06C420341B005DFF951D2, - 286206E754AC14DEAF88FD43, - AD7A1C2C82EE714EBDD52EFC, - 21215569A0DCB6ACADD32401 ); name = network; sourceTree = ""; }; - 177636E4EEEBBB139F934897 = { isa = PBXGroup; children = ( - D4211E697F43821CDBCE4F24, - 7D593A29CAB138BD9AE950BA, - BE5DCD603F7E21A1F66CDF33, - 304FD4FD5771F00C8EA46C10, - AE363A1FE2F403F7CE2FDF7F, - 770082A38CF6071E5CFA563D, - A10A63E2098A85B5CA9265B1, - 8932FA0AA37E1E04CBA55B23, - AC183DCFAF18C9CEB88EEB1E, - 3F60563DEC7941B88163A50E, - BB059F528EC362F86E4B4278, - 39C0783ED515AAA82F9CA37F, - BD4388D88F2F02195AC73AD1, - B3F5E7A708350F72E7C77153, - DFE9A08C4AC8E1809018B5F4, - BBE79494A818EF83F52A4C7B, - 5F27172FD963C1A748AA625A, - AE5A7EC70F288E7EA682081D, - 6F7CA1B3AD09C76271FED3D6 ); name = streams; sourceTree = ""; }; - 0C54591C1E8594B59F4701FE = { isa = PBXGroup; children = ( - 3C4DE044AE46D5AE2388C827, - 13FBF71BD76A08C8971C6351, - 177636E4EEEBBB139F934897 ); name = io; sourceTree = ""; }; - F5A63AD86C7C0A9A2C33D74D = { isa = PBXGroup; children = ( - 7A039686F4F852E26936CA53, - 161894D0D279595D88F470A6, - 868E43A4BB7015579789E4F8, - 8E0874D93125C2DC34255EDB, - 7C2A4084A267F57F2E27F3F7, - D99C977ACCD09262F06F6624, - A978BD4031CAE24FB0FE26E1, - 1A656E62C071C54D28343AC2 ); name = maths; sourceTree = ""; }; - 9518033FC989E104DDB02E8A = { isa = PBXGroup; children = ( - 252632F3F97DF57C0781BEAD, - 8FB80383DF3BAD7227DF465A, - FE76B46873DE20DFDC5A94BE, - 28C4C81039B42A399F5B7320, - 341631A7E86BF1C0E49093C6, - AD655AA04981173716022D8D, - F1D085B5F12E814BF1D5C395, - 58654C2630387C4A336A5BFB, - 524A70C9F23954F8F2A3F99B, - E05812E3CC31875A202D6B30, - 224C989BF83B6EA867814BFF ); name = memory; sourceTree = ""; }; - DDB94A7300C3D1F2E9E51C47 = { isa = PBXGroup; children = ( - 213F0A7BF38AF6AB34414A45, - 21B2342B75097AB93CFF7E97, - 2C48BB1A286C6A63174E5798 ); name = common; sourceTree = ""; }; - 1004A23965A4DB0FCC441ED3 = { isa = PBXGroup; children = ( - 7A51D8B81F390A4CABF25C73, - 76DB94CC776536F5D05B9445, - AA698DD5A82F91CF84A29666, - FABA493FEE07E6373DD8EB41, - 595EBA8A689DA899986314D8, - EACFC12E665283EB7926E9EC, - BAE5CE629DF9D286293E616F, - D4C499CB25F043FE667BC5E1, - 4366712140FBEBEDBCBDCE9B, - E0A2C24581917DD090186333, - E61B485B10F8D4A3986953CD, - 3F3D429025A92B6F0FB6F8EF, - 275F2210628D9E9968B1B258, - 5DEA687D261C59CBABB782E9, - 5593DEC14D551C38CCB50D70, - B8E47498C7C6D5ECF41F0EAB, - 9DC2C10B16A645EEB82220D8 ); name = linux; sourceTree = ""; }; - 13513EE40AD6BAB30E26C88B = { isa = PBXGroup; children = ( - EE5F18DF1DED7617C4A41FF3, - B2BCE9DDC8F0F54CA3D913E7, - 5249EFBE3B22E6FC1A7B6D42, - A257B76FCE9D594EAD41414C, - 8280AA34B23B4D366711A9E7, - C9561A66310DAD5EEB4A9462, - B62991F8AEE7327BA8A5070F, - 013F753639A6350C8DC602AD, - 6B46AB1931E43DAFB278D23D, - 72524FE185FF48DC1F954341, - BF5307F364AC9250D8625168, - AA4823F2F2A78C43D7A039D0, - 87A5A064CC3CD55BA5D7617D, - 641638A0466CEC1BDEAFB476, - 7DB37383434F45D8A7B674C3, - CB16B2438EDCC10C499645E6, - BEB35C6173793C1CB7AB6311, - BA58B49B820A47F6F55CDACB, - 930E58E13FC92BF70AC20EEF, - 2F1812B26076D9CC1495D452, - 9113CDD122D2790E147A8CF5, - EE56999A85AF18015C540183, - 189F69E0B926C73B654D6951, - B9E16F4636FF8C0A1FC8BEFB, - AE9A7A0775FA806126A74E16, - 4F5D1AA83981FBCD33CE234F, - E6A7BFB0FCD17A9B133CDFA4, - FE6E3F911679B0D7547577A3, - 8BCE60CBC91DBAAB089958A1, - 3F11593DC3A168A52FCC2DD9, - FC2C82760E717788B5A6E691, - AB0F3F5A622CBB251F64945A, - AD495FA1991295C722B46843 ); name = mac; sourceTree = ""; }; - 64DE2D4534D79E74C40A0DEE = { isa = PBXGroup; children = ( - 42059626955C547DA6AD3196, - 8F383A785B4876198C5B0194, - F3B50EE3939E9F16D13C3C7C, - 9C4D1018ECC0BA07346453EF, - 3A37CD82212075940421CE4F, - B296F736C0CD6AC15BE6424B, - 7F3EF672D07ECE3E13AAF267, - 249959E338D7750E56A9F2F8, - 58B70C726D186B4E770300BC, - DCD09B6EF4A4A109DE01F152, - 7527A5E8F4F39581159D3E5B, - 1DBF9DAAD0690CB2CA4E9960, - E9B203E963EB1AB566061AC1, - BA561E64C6400CFB1DE013F6, - 061B492EABD6B1C995D581A8, - 50159A5B7A552A6C1EB557F3, - E7625D7A06CBC11F40A56A70, - CDA5FCC51F6C1E84D7DC3274, - B14735381ADB00741166E330, - 09AE0882D58BE1715219556A, - 0EB41C0AB478EE02D8C851F9, - FBE07C5CC622A5D36BDAB9E1, - B07C853EB60D8D8691BC1B4B, - 5D32C8856093B33438AEB758, - 8758E6857070D7E5406FDE3F, - 8E8BE2F1C182E418BBA6903C ); name = windows; sourceTree = ""; }; - FBE56423C0482E49EF317C85 = { isa = PBXGroup; children = ( - 03B9D3D9042E85BDD691325E, - 13C661B79E1E9508512A6B21, - F2F68E50F42BD0F124E89E2C, - 59C46E289F86C80D4341EAA3, - FA82460758BDCB2DCCE1EAAA, - CE06EEED7426AA45C27B629C, - F439E6C4B2D2AF19645252C0, - 1D74C9567283836ECC70E48B, - 40216CE846A54CE706131A23, - E646726910F110DC34DD1662, - 9AF9F1C0D766D4F894E4A7B0, - 902C32F471DA6C435E80372B, - A404CD721E2A0F0CAE9326C5, - 32B7C3609BDA01AA09740139, - CEF7210E311274F1DFAB6882, - 755C440534C0EB494572B3F3, - EE855319AF344A05C92580C7, - FCD02A40985242A8A6648311 ); name = android; sourceTree = ""; }; - B3E58752D519C56B78A95ACE = { isa = PBXGroup; children = ( - DDB94A7300C3D1F2E9E51C47, - 1004A23965A4DB0FCC441ED3, - 13513EE40AD6BAB30E26C88B, - 64DE2D4534D79E74C40A0DEE, - FBE56423C0482E49EF317C85 ); name = native; sourceTree = ""; }; - C6B52BCD0CB1B809D6DE555A = { isa = PBXGroup; children = ( - 76E2084D2148068F9138A816, - 33F16EE4F38C9B76E7FAEF78, - 72F5ED2E8B945988C37EA9CF, - 663746215E9BA6C761172B85, - C3FD9D93626F80A45F9B6DDE, - 4007410FACA2F865FD8EF769, - 8273A206FB309671284959DD, - BF888BC540B64D5C61E46A34, - 644FD6155385BC3AA270FB5D, - CB092FB152F43900272F8E43, - 4A97C8D2FF6454DDD3AF4BE5, - 2AA21CDC91EA122266EBD780, - 35DA3E75DDB03BB35794289B, - B507B4A8712A54D7A8C03223, - 1EE2A763E06AF4951024950F, - 23252E4C97AEFAE0C5EEAA77, - D4FED84C92ADC4B2C41A4275, - 81B36E7C56DF1A777AA04F71, - E5458BE2F33DBBF5AF834BB6, - 0EC7DE81A516F4130AC59557, - C972C24A7D2FC817362E1FD7, - 5715BC14D93D61D71206FCB2, - B4575FEE10C67D45C9532540, - 95F21C2733BD5932372E4157, - 4EF8C44FF03700F6140950F3 ); name = text; sourceTree = ""; }; - 723AC5B999F1EC8F4A101AAF = { isa = PBXGroup; children = ( - 40282E23D43D86D122CA5C54, - EC240B4379FB70C8A8AC2855, - 5508D42FCF7A1C8A8CD78BF0, - 90E4999A78655A238AF42BC0, - 8E78623B2D21CFE68DEC0483, - 9E622C38E4BD511B6ABBF7AA, - 6734838B47EF0D9ACEE571CD, - F00BDEF5CE2B281CBE2E89A2, - C5F20B02D7843F3C5ABEDFD4, - 1FD1C9A3D2DB64C825FDAC8B, - 4D60F7F748CF6702D1E45960, - EFE26D4E1E2B92828DBA3A99, - EF06213027EA3F7C54EE0F18, - C25E5F90524645D684C674CB, - 60F21CB42270ACE2241544A8, - ED84C92ADC4B2C41A4275F92, - 3268C8DBAB23CF503BF30935 ); name = threads; sourceTree = ""; }; - 281D6856FAC3B07634AD1C32 = { isa = PBXGroup; children = ( - B4435D42216365FA97651272, - CE216F2485CD5EFEA91554F5, - 599F5C47BB9B5898E0E88CF3, - 9620E4769876FC01ECE885D1, - 4BE2727CCD2CD7603402C8FE, - 7FDACEA80794451691A12703, - A618FC3255ECE14EC9259E6B, - A2D6317BEEC77A62E8F834AF, - 7F1AC20BE8A18CA6BB7403EC, - FA833EFA9E93C7DBE6624676, - EECE464606AE845BFC4B941B, - A59A5DCFCCAAEA79D03C2B27, - 3C9E6597968358B57374502C, - ADE5F12AA5AD969E2C7002B3, - 75700D13513346310CEAC30D, - AAC585C4648559DD713F28FE ); name = utilities; sourceTree = ""; }; - 992526B83B6AA618A4FAECEB = { isa = PBXGroup; children = ( - D443FD24B52106986FC8A531, - F2B0E44A08E127FD31184241, - 1CC2889DB696E12FC34E3F50, - 1AF37A533ABDD889670F9349, - 2B74AFA66B37B748487152F4, - 89F308FD85F378E278C98884, - A11081920ACF526B1320CA42, - 0C54591C1E8594B59F4701FE, - F5A63AD86C7C0A9A2C33D74D, - 9518033FC989E104DDB02E8A, - B3E58752D519C56B78A95ACE, - C6B52BCD0CB1B809D6DE555A, - 723AC5B999F1EC8F4A101AAF, - 281D6856FAC3B07634AD1C32, - 2FD5C998952BE08F8ED3F262, - 01778F26212AECCBF2452804 ); name = Juce; sourceTree = ""; }; - 1076A9F8D71BFFF9E9975FB6 = { isa = PBXGroup; children = ( ); name = Resources; sourceTree = ""; }; - 23256FCDBD84A2E259E40908 = { isa = PBXGroup; children = ( ); name = Frameworks; sourceTree = ""; }; - 3E3A3D491CB40D2943E95E64 = { isa = PBXGroup; children = ( - 389351359BA78C682E1931A6 ); name = Products; sourceTree = ""; }; - 25F381A264FFB3735F124DCC = { isa = PBXGroup; children = ( - 992526B83B6AA618A4FAECEB, - 1076A9F8D71BFFF9E9975FB6, - 23256FCDBD84A2E259E40908, - 3E3A3D491CB40D2943E95E64 ); name = Source; sourceTree = ""; }; - 0344046290267DB74DECDC05 = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - DSTROOT = ../../bin; - SYMROOT = ../../bin; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; - DEPLOYMENT_LOCATION = YES; - ONLY_ACTIVE_ARCH = YES; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "_DEBUG=1", - "DEBUG=1", - "JUCE_ObjCExtraSuffix=JSlRKlNBb5", - "JUCER_XCODE_IPHONE_5BC26AE3=1"); }; name = Debug; }; - 9DE19CD5BB8E12A153385ADD = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = Info.plist; - DSTROOT = ../../bin; - SYMROOT = ../../bin; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; - DEPLOYMENT_LOCATION = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "_NDEBUG=1", - "NDEBUG=1", - "JUCE_ObjCExtraSuffix=JSlRKlNBb5", - "JUCER_XCODE_IPHONE_5BC26AE3=1"); }; name = Release; }; - 8E935B9E7F2982A06CD7EF99 = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - WARNING_CFLAGS = -Wreorder; - GCC_MODEL_TUNING = G5; - GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - ZERO_LINK = NO; - DEBUG_INFORMATION_FORMAT = "dwarf"; - PRODUCT_NAME = "jucedebug"; }; name = Debug; }; - 71190EFA58D0942581B5F1AD = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - WARNING_CFLAGS = -Wreorder; - GCC_MODEL_TUNING = G5; - GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - ZERO_LINK = NO; - DEBUG_INFORMATION_FORMAT = "dwarf"; - PRODUCT_NAME = "juce"; }; name = Release; }; - 3A1CB6B5ECF4A79CDE35CC66 = { isa = XCConfigurationList; buildConfigurations = ( - 8E935B9E7F2982A06CD7EF99, - 71190EFA58D0942581B5F1AD ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - D14EC3F0DC5861E37D35E15A = { isa = XCConfigurationList; buildConfigurations = ( - 0344046290267DB74DECDC05, - 9DE19CD5BB8E12A153385ADD ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 8914D147048B9EE245989ACB = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0F4BA87762766B98D5B58AD0, - 50933337E6C3CC5B82540F8B, - 04CB2DA89A71A183CEFEB7C0, - CD59C8E60146B04575CD61E6, - 76890501626BFFF310A94F15, - 46151070FA7D3426EC35280F, - 983FCD60625A60993546F850, - 416D6F00E88DC74879B4DF2B, - 9C709BC2F4F0EE60BF52FACA, - 992F46189ABF711A047186A4, - 5C312E6678456C8293633E0F, - FB21B7E6A7CE55D3C0E3C37E, - C1147D03F1F4D697CC30DD22, - C5CFF5508299C26380465290, - 0ACCAC5ABDE686B0CA42BFED, - 2171BD82DA3A6744260CDE58, - 3C22C15ACEEF0454171D231B, - 6D421F7B7EE3A149389653C2, - 4ED0A649C320BA53718501CE, - 5D3EC9BA6BA37694CB371ABB, - 4CF5FB501CB800D4485B08DB, - 3747D91BE3C6A2E641BB133D, - 4CFEE72495007A62F78C1B8E, - BF7E18A49525915A0E1928C5, - 6DC6DEEE8A1A6092830A79C8, - 2862E190ECA33D2CE1458B51, - 0791EB173E6A9F959E692AA2, - 3B64EF7F57EAC5C51460059D, - 16D537EB6D3BFAB3AAB54B11, - 0C22446F12486AD139A640CB, - 95CF50482DC7139FCB40EB1C, - D66B0BC466522CD4C5F1335B, - F20E960CAA933102A0F0225C, - 9CDC242CC037F1D00BFD6157, - FB0C4D926F00644C6435F0B4, - 3AA8CE85F8CEA9D4B8063E52, - DDD4E27CA174F32412F71093, - DC89A29962945F69CE38658B, - 78E7EF1759BA0AACCCE37533, - 573BF08B2CACCC317F3D7603, - 8376B6E3DB141DDF5EFF6327, - B579C891B16F4B219CD751B5, - 43FA6F0FD4DDEBA6427E730D, - BAB3164372A6C31A1A7DA58F, - D71FEEEA440682B04E024BB7, - B331EE2C23176373F2D52C1E, - 79D8E372BA77018BDA956D92, - 3688819F98EFF0AABDD79029, - 84F9FCAE9DF003DC6FC3C941, - E1046147432EB115A68D6C43, - 5CEE2D7E55DA99C1D310CDC2, - B154245927BCB4F87ABEAF17, - 52ADF1419B058963EE32B7C3, - 31D36C32211754E793B9FF81, - 2D46CF2B0350A442E08EC355, - D1407BB28C169F5E1CAC3CC7, - 07E6E11A658930554FF0C56A, - E8DFABC1603D55B97429A8E4, - 1F905F44E5FA23A2D5CCDA0A, - 4AB5E55BDF79028F82F83D8E, - 9D2D1BA65C27BDA1F7C44769, - 43B3119E2F1B559263AE956C, - 4A7952C0A4EEE13296EEED5E, - A230949FF8848D5E923F9083, - 11162E9812CFB0E738A7E2E6, - C682BEA7DB70FDC7C6BA2D6E, - 6A53DA58B55E2DE7241BF2C8, - 0FF71870483AC46D5B7AC5B0, - FA01B3EABA192AE041D4FE4D, - 43047D78351C2D7047F4F81E, - 5BF44F954E56B7C2DD15EAEA, - B14EB5F3829CA26DA906D5C0, - D75943C2812EA68CA74D9FDA, - 6DEA630BFFF638BBBC8FDC00, - 708060ED04ADF4E4FB8E2171, - 12E3CC31875A202D6B30F778, - CF51988743ED2CD823DFE0B5, - 4AAFC135B170CF02A40F0D51, - 659D9CD58B6914EB420E6AEC, - 55737E2F1817DE642AA7DA05, - 6D2C50B0A69855A7F8C062E7, - 70EE7A1273945B62B013DB43, - 9DF800566462E24A14246EAE, - 89F0DA39878F8A41E60B8C67, - 12E1174518BE1063E506CE5C, - EC0B67A801316FBA35A04356, - 86EDB250B9F5C8FF3045ADEB, - 8F7CC7DDA1E07A392CAD82A3, - 621B7B0B518E63E69122C13E, - 97982824572C18827047D92A, - 927E7250FCE62E838599DF83, - 9AE6891C35CE161CB1707B4B, - 06994A713C38F415C4E8A009, - 98F737B7459895BFCDC7965E, - 7033A0968B1C81A821CCC296, - 14E5A383C70731C60911E698, - 3A10CF09C41F8F55B7529E68, - 5482BFF6CAD3B6CDFB09FBA1, - FC3299637EACD8B5CBEC391F, - 5C245C1A77B96A1425323A1C, - 05DFD3AF416CA6FDDDDC4C74, - 78DEB64D3F38269C62EB1C7F, - DA5DA96B9D1A26342D9278B6, - CA49EF43B1478B146ADBBF62, - FE6F6A4946B7E4F6C9F44C4A, - 28254F1E6E686CF6F29AE56A, - 9EA7FEF4CAD2BF46DD3596DA, - D1400B3D9D07FA9E8BAA21CB, - 716823F3B5437A20FCADA50E, - 7CAB8DEBF6B93C845AEF11E5, - BBE24BE654237ACD381A97E4, - 6F38AFBC749040844076FD4F, - B35BFCD19569A9F91A3CCCF5, - 7C7B33BC2E2F245C8AFC9879, - 110285CA29B28DDC018D2BF0, - ECF05C68A4DF71A10F8E8BA4, - 50CE14D31986BA1BC81B0869, - E421EC41CB492F58BF1D9C4E, - E3CDB77EF18430879925E6A3, - 55E5B76FB1649B60DBE16B89, - 6D1A45ED50BAFAE4F4E403AC, - 70D519927F38B21BE572201A, - E4EFC5F8828526CE4518F1E6, - 835F7FDCAD027B4E96AB407C, - D027C0131892DA25CE716DDE, - A65EBA33900ED91BE522DBF7, - 0D91D36C2195315FE534F304, - A1E82F70796B8611D7323247, - BC1856E0B20406DDCE5EBF94, - FF3A28F88174E10CB478931E, - C39AE37828718E9A45589A24, - 4400B0595B35F919291C1A01, - BB1DAC0CA8D7B3DEEDEE76C6, - 56F347211337C9229BA06AA7, - 75EAEC54BA3A8BD7F317C7E4, - 5FFFA4B8857D64FE36B4B125, - 1D406F33F6B9FE7F92A71438, - 806FF2617B7CC21609927A11, - 9AA76460DA7D34CE6A69E2B1, - 4E81BC4A50CF1883F529E152, - 8FBB6BF0C5406E1BA481CFEF, - F5F3F25D9F377128DC74D95B, - C64A2BF05224582134872415, - 0A9C9486A6B31F21B1472D2B, - ED9F9A6CB4F8BB7FEA5384B7, - DE0BAD16BD5A6568EB4D228B, - AF6FEC311B9FDA112CEEBE03, - 3795ECCE9D98F872F5BCAE64, - 723CFE5184B20B12ECABEB41, - DB6098F004F6D7F19605002E, - 757AC60B8BA481E592FFE6FF, - FC659F15D298558D9553B643, - C090ACD462D9431C8B64CAD1, - D894FBF1CF62C5F126213616, - 3D80F7AE3D65EE0BB607F252, - 2F33C392A0DD205A865955DE, - 36615B7CB2BE96B624C4ADC0, - 4F2AAD8318402F8C23A9EA54, - E6971F06B78AE76C35E1A19C, - 6629D535AE1ABE35A0D53C69, - DD4599D0A8117B025B477DE1, - E064E329741F36C329989203, - 61E659ADBF9D832ED8F24540, - 9379C833B875207E5DFC5A3F, - F1A6C2E3226F87860BFC4EBC, - 144872E56AED1981C0973B24, - 95648DF5676EBEF57009D09A, - 2FE59D80851A0A392EF2F923, - 621D2E6CDA267030405166C2, - 90347B7C32ACE8A11FC1B708, - FAC87D81FE5168E37645A113, - E5BB4B5EBFE206E09D0E6E10, - 1906C642BF6CA67821512855, - 6F41A81F269BCBB912C6AFBC, - 7BB45CEB3B0913F98FC817F5, - F41D6061AD873C619D7436FB, - 1FC0972EFBE39C7CDEB73A3D, - E63E64BFF5FDCEF5B53AE304, - E162F83B5F038092E2C70FC0, - 710BF477DE534CF18BD68959, - E5DA150E966B948C4CB4EFDB, - E96B477EB51FC152AC2EA6BD, - CF36EF39EEAB7A4744C5D310, - 372B6FF28C49018F5191C517, - D9AAB4AE220010CD526C87D2, - C732ADB05901619B14F1D6BB, - 075D5995E41FDD670ED35E17, - BBE02E8719411C8A7D43A401, - 35E3B9684ED968BAC0BC8021, - 736AC4A9DA6515B92644FA02, - DFFBADCBC9C7E31B391BA560, - A24A946371D566E02BCC95A5, - D390CCB01BD9BD132F04E0A6, - 26E2FB6533B5700FA9780E00, - AF5593DEC14D551C38CCB50D, - 0B830401EA0E883CCAAAC696, - 3897B36CC1D89C5755CE1B90, - C55B00378E784DE4B428E934, - 82A9E0388C9BF3A698DCEF69, - 7F6749BFCF2F134468825D45, - 277CF246D5EE48868E38E625, - 4D285D9D3F5955F2FD574D04, - 30F9B53BD00228406F6477DF, - 759633D5CDB35874FD37DD7F, - E0F309D93E9A7F0CC71C4503, - F246AADF8E531BC2244A1D38, - F78940DAEB8BE98A9AA4B0BE, - 00FE118356919D0BA97AE853, - 18D8A96CCD34E41A5E162AD5, - CEB8A9B9A37EBBA79A6478D4, - D6D48B2CC53FAE2BD126B0DE, - C384A89F786FDE8426F657D5, - 3D324F656EEF8F1FB2B437AC, - 645AF66C048A4815F5A8ECDD, - 38EFE824E76B3BB99824C265, - E23C5C51305DC7CE30E4DAB7, - 60E1742796432D042C59B9B3, - B92F53BABB6A9AC8348B001E, - EBC3AA015D24C62FA0307F51, - 803FFCA3DAC0C004A80143B4, - F0556B3AD9D388177E26B90D, - 0558FFF11AED944C6B3E5FB5, - CF73FAC91E319C464F07C966, - B6D3EDA0F2E3516F3922F23F, - E7C9FAA5F8A4AEDAD8A8CC1D, - 084C9F2D4F78134CB1EFE676, - 4DAD08CD3A688747C9CA237B, - 60FE8BFA252E3EF2D60B77AD, - C592CC923C5495467EF05D48, - E12096E92D3D43DD7926E063, - F4567E6C9ABFB13FF24797DE, - 0B0996F97D926609C23E5F90, - FB5900FB9E071EDC2542B846, - EDE605169F0AF038FE5097B3, - D78C3DA6505CE8CC3F17C070, - B23EE989379EB2F075D6F587, - ED7C62DE10250FCC07CF17B2, - 1535D49C24E8A9FA5F6DCF6E, - BBCA4C01CEF1EDA75625D6DC, - 136FB9588C834E6F4A1EEBFB, - 274415D1C0AE9BF56FAAE791, - CBAD975785BD26A0DA9417B6, - 2A8F78D412AC7EC0C2998A1A, - 2DD969525DEF4AD408E9BB59, - 059B694C912BE81023D5240D, - 4387EB80C5795FACBE753A7F, - B2C41D39730EB3AC75D55949, - F045E8F977C00016F6EBB1B7, - B89FE5AB44DDEBCC050F8D7A, - 2EA320797BD7D2137F133681, - 1008A8A446B9BCADBB853056, - 0FB1AED6E5AB5CEA95E70950, - 103A3B11DFE35E9088ECE933, - DAC7AB8D9EA70D99A1C1287E, - B3D08D9E24CC369E4838E6FF, - 15932C8039A59B0431FBB93E, - 3BBC410C79D2F53D32ED7466, - 88A4D0443DFD6BA1A1B32AB9, - 06F1BEB9AB97F33305B8F816, - 6CB4FA2797FBEA5C4C342EED, - 150C16E65ADC7E3359C88510, - 9C547F4DC4FC50F9C3382ACE, - 5D1B2A14239B0351261D832E, - 0AFD6B2B694302A62C7C9DD1, - 3CE21931FC5A59ED7C23144B, - DB7E8E984F9BEF4C84B887B1, - 07645D91AFD4F8512ECD48ED, - D132232A4A404A7C08D10928, - 83B488D64AB9828CFFBC55A9, - 8305C5E01476E99FBB1A0315, - FF613B604C2333F4A4ACEDDA, - CECE3D66B19693E41850C30D, - DF419EBD05F13A0D2073D47A, - C9FB7884928BF0D6140AF881, - 5C9628DB3E0C0BA8809AE45D, - 724DA2BCA5ABC5772604C3B4, - 035B1F7B1505ABF24455690E, - 3C71EA297D7418FEBB52F9DD, - 7A86E411B55E15DA7AF1FE67, - BD86381924AE45021246ABA3, - 306AB64E97A05B800349E7E2, - E7A5418175B23C794421441C, - 51F5844EAE455D51BDB17228, - C99F35ABEC13F58C27C1D303, - 3D9B5EDBECAA680B0A067F5C, - 724B03672FC7862B671969BC, - 8B31099030792C554BD51211, - D04EEEC7EAE7C806E95ED41C, - 7EA440527972D6B7322EC307, - CB9FE1DA1AFE5FBA9FF06061, - 26454A5DB5BAFD7901F17DA7, - F41B46F970BA78762DCE67D1, - B7A8CF6F889840BED05C8C27, - 3EBF23F390FC0227260CF7CB, - 1906FDEEDAE61C88A59BC271, - F51142C2CF336FC4A4FAACC6, - 1021132FAC7870AC18C040DE, - 05C8FA821C64B69BFF8FAF2C, - 5E330E219B2D2944BCE95174, - 275FBC09BE58E708A73B88C1, - 6DA99BA218FB45568258841C, - 32F1C95EDEE7722797B8CEE8, - 029A0E8B44DC17211722677D, - 4B4E17467BC41E2166549998, - 9686F29C29D1C26E353DE68A, - 79B4C2F1C0CF592ACE8093C0, - 88A87D28B3809665F28DC16E, - 6BDBEFD97E643E5BB27637FF, - BC3C22F5350ED7433D303A04, - 0B41EC4D7839F8CBCB8F9A0D, - B420CD4B589C08EAFA6E3DA4, - D4A05D7CA67B6F0527C9BD81, - 0D7547577A31512EDCEDC42C, - E2FDC7D3E3DC4C1423FA0C5B, - A46B0025A68136ED993E0D85, - B99678E919BF547A3A3F5D6E, - 5B714CDD0082419BFED7D2D4, - 2DD498313DA488A5063C4C1B, - 5B33FFE120A47EF42CBC05E4, - 552D45FB250C62F86CD02A57, - 0E8E9829E95E32163F45482D, - 6801797B247CB3A6890C0AB0, - B0B82AB2D9B0950F67B11BEA, - 379B4A89E5403B57A2009E76, - 6ED121D4FEE575408B9612AB, - 9ADE436BC62FB84E297C1CA0, - 03D534E5B18011C3E03CDD40, - 06E2ED69E9FAC199D559F276, - 9801CCC32F01818B39CFD88E, - FE553DDF4F83DABF13DF4A2B, - 68DB48B0EC9E5E37C6B5281C, - 96E9017FBE104E9EADC586B1, - BA6C6EF4C88D49C640DA7BF6, - 0B124D9CE361014F815A5958, - C701E3FCB168A3B4A31C4242, - 04F6D85CCF26A7F6DE589876, - 62912A2DA2F01212517938E7, - 36D770FCDAC86084A495B96E, - DA2A4714F1A6957A4F2B8D48, - CE9A64287FCEF00DD2BA6AEE, - 2AC6F3BFAAA21E21076A9F8D, - B8DD4DB0BD1A6B38BBF92413, - 1C0B1362E81C8B073BF0DCEC, - 63BEC07A51CB8E516B38ECD4, - C8F81E843F446868FAD88197, - 50D91A2EC0ABF894E612D936, - 82568CF438EF4C950E4A42DF, - B2E9D0C534DDE9F96921A054, - C8D06AE9C68A675A87DC9C99, - FE2999972FE3D6E251DA6653, - 8B2193898D3465B5995EE98A, - 4FB3EE200AEA14C7218D7034, - 81E79D9217773BF0E39F7812, - 2A360CDF2B5A46B282CEA2C4, - 01FD07AB480226E84D52F591, - D8B9941A1375579D6CE7C1C4, - 0DE731ED3EC994B9227C2741, - A124FE5709D9324B5BAFFE53, - A84A5CA4654AE87192A6A096, - 55EDB4D9B702B469DB4655C3 ); runOnlyForDeploymentPostprocessing = 0; }; - 01555BA382FAED280FF5F58A = { isa = PBXNativeTarget; buildConfigurationList = D14EC3F0DC5861E37D35E15A; buildPhases = ( - 8914D147048B9EE245989ACB ); buildRules = ( ); dependencies = ( ); name = Juce; productName = Juce; productReference = 389351359BA78C682E1931A6; productType = "com.apple.product-type.library.static"; }; - FCFFEDFC83101B196BFA2AE2 = { isa = PBXProject; buildConfigurationList = 3A1CB6B5ECF4A79CDE35CC66; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 25F381A264FFB3735F124DCC; projectDirPath = ""; projectRoot = ""; targets = ( 01555BA382FAED280FF5F58A ); }; - }; - rootObject = FCFFEDFC83101B196BFA2AE2; -} diff --git a/Juce.jucer b/Juce.jucer deleted file mode 100644 index 368cfaa2ff..0000000000 --- a/Juce.jucer +++ /dev/null @@ -1,1640 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/amalgamation/juce_amalgamated1.cpp b/amalgamation/juce_amalgamated1.cpp index 4bb5f6e4b0..08bce1c572 100644 --- a/amalgamation/juce_amalgamated1.cpp +++ b/amalgamation/juce_amalgamated1.cpp @@ -27,6 +27,5 @@ #define JUCE_BUILD_MISC 0 #define JUCE_BUILD_GUI 0 #define JUCE_BUILD_NATIVE 0 -#define JUCE_BUILD_AMALGAMATION 1 #include "juce_amalgamated_template.cpp" diff --git a/amalgamation/juce_amalgamated2.cpp b/amalgamation/juce_amalgamated2.cpp index 300b382e84..bbb143a7f4 100644 --- a/amalgamation/juce_amalgamated2.cpp +++ b/amalgamation/juce_amalgamated2.cpp @@ -27,6 +27,5 @@ #define JUCE_BUILD_MISC 1 #define JUCE_BUILD_GUI 0 #define JUCE_BUILD_NATIVE 0 -#define JUCE_BUILD_AMALGAMATION 1 #include "juce_amalgamated_template.cpp" diff --git a/amalgamation/juce_amalgamated3.cpp b/amalgamation/juce_amalgamated3.cpp index dca42af532..559fb631d4 100644 --- a/amalgamation/juce_amalgamated3.cpp +++ b/amalgamation/juce_amalgamated3.cpp @@ -27,6 +27,5 @@ #define JUCE_BUILD_MISC 0 #define JUCE_BUILD_GUI 1 #define JUCE_BUILD_NATIVE 0 -#define JUCE_BUILD_AMALGAMATION 1 #include "juce_amalgamated_template.cpp" diff --git a/amalgamation/juce_amalgamated4.cpp b/amalgamation/juce_amalgamated4.cpp index aaf4deea2c..95631abeaa 100644 --- a/amalgamation/juce_amalgamated4.cpp +++ b/amalgamation/juce_amalgamated4.cpp @@ -27,6 +27,5 @@ #define JUCE_BUILD_MISC 0 #define JUCE_BUILD_GUI 0 #define JUCE_BUILD_NATIVE 1 -#define JUCE_BUILD_AMALGAMATION 1 #include "juce_amalgamated_template.cpp" diff --git a/amalgamation/juce_amalgamated_template.cpp b/amalgamation/juce_amalgamated_template.cpp index 2185c23781..6285280165 100644 --- a/amalgamation/juce_amalgamated_template.cpp +++ b/amalgamation/juce_amalgamated_template.cpp @@ -24,12 +24,15 @@ */ /* - This monolithic file contains the entire Juce source tree! - - To build an app which uses Juce, all you need to do is to add this - file to your project, and include juce.h in your own cpp files. - + PLEASE NOTE! This file is just here to help transition old code to the newer + modularised layout - but it will be removed at some point in the future, so + you should update your projects to use the newer design as soon as possible. */ +#ifdef _MSC_VER + #pragma message ("The amalgamated files are now deprecated - please include juce modules directly, or preferably let the introjucer handle the inclusion of source code in your project.") +#else + #warning "The amalgamated files are now deprecated - please include juce modules directly, or preferably let the introjucer handle the inclusion of source code in your project." +#endif #ifdef __JUCE_JUCEHEADER__ /* When you add the amalgamated cpp file to your project, you mustn't include it in @@ -38,9 +41,6 @@ #error #endif -#include "../src/core/juce_TargetPlatform.h" // FORCE_AMALGAMATOR_INCLUDE -#include "../juce_Config.h" // FORCE_AMALGAMATOR_INCLUDE - #ifndef JUCE_BUILD_CORE #define JUCE_BUILD_CORE 1 #endif @@ -57,370 +57,35 @@ #if JUCE_ONLY_BUILD_CORE_LIBRARY #undef JUCE_BUILD_MISC #undef JUCE_BUILD_GUI + #undef JUCE_BUILD_NATIVE #endif -#ifndef JUCE_NAMESPACE - #define JUCE_NAMESPACE juce -#endif - -//============================================================================== -#if JUCE_BUILD_NATIVE || JUCE_BUILD_CORE || (JUCE_BUILD_MISC && (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_AU)) - #if JUCE_WINDOWS - #include "../src/native/windows/juce_win32_NativeIncludes.h" - #elif JUCE_LINUX - #include "../src/native/linux/juce_linux_NativeIncludes.h" - #elif JUCE_MAC || JUCE_IOS - #include "../src/native/mac/juce_mac_NativeIncludes.h" - #elif JUCE_ANDROID - #include "../src/native/android/juce_android_NativeIncludes.h" - #else - #error "Unknown platform!" - #endif -#endif - -//============================================================================== -#define DONT_SET_USING_JUCE_NAMESPACE 1 -#undef max -#undef min -#define NO_DUMMY_DECL +#define JUCE_AMALGAMATED_INCLUDE 1 -#define JUCE_AMALGAMATED_TEMPLATE 1 - -#if (JUCE_BUILD_NATIVE || JUCE_BUILD_AMALGAMATION) && ! defined (__JUCE_AMALGAMATED_TEMPLATE_JUCEHEADER__) - #include "../juce_amalgamated.h" // FORCE_AMALGAMATOR_INCLUDE -#endif - -#if (defined(_MSC_VER) && (_MSC_VER <= 1200)) - #pragma warning (disable: 4309 4305) -#endif - -#if JUCE_MAC && JUCE_32BIT && JUCE_SUPPORT_CARBON && JUCE_BUILD_NATIVE && ! JUCE_ONLY_BUILD_CORE_LIBRARY - BEGIN_JUCE_NAMESPACE - #include "../src/native/mac/juce_mac_CarbonViewWrapperComponent.h" - END_JUCE_NAMESPACE -#endif - -//============================================================================== #if JUCE_BUILD_CORE - #include "../src/core/juce_FileLogger.cpp" - #include "../src/core/juce_Logger.cpp" - #include "../src/maths/juce_Random.cpp" - #include "../src/core/juce_RelativeTime.cpp" - #include "../src/core/juce_SystemStats.cpp" - #include "../src/core/juce_Result.cpp" - #include "../src/core/juce_Time.cpp" - #include "../src/containers/juce_AbstractFifo.cpp" - #include "../src/maths/juce_BigInteger.cpp" - #include "../src/memory/juce_MemoryBlock.cpp" - #include "../src/containers/juce_PropertySet.cpp" - #include "../src/text/juce_Identifier.cpp" - #include "../src/containers/juce_Variant.cpp" - #include "../src/containers/juce_NamedValueSet.cpp" - #include "../src/containers/juce_DynamicObject.cpp" - #include "../src/maths/juce_Expression.cpp" - #include "../src/cryptography/juce_BlowFish.cpp" - #include "../src/cryptography/juce_MD5.cpp" - #include "../src/cryptography/juce_SHA256.cpp" - #include "../src/cryptography/juce_Primes.cpp" - #include "../src/cryptography/juce_RSAKey.cpp" - #include "../src/io/streams/juce_InputStream.cpp" - #include "../src/io/streams/juce_OutputStream.cpp" - #include "../src/io/files/juce_DirectoryIterator.cpp" - #include "../src/io/files/juce_File.cpp" - #include "../src/io/files/juce_FileInputStream.cpp" - #include "../src/io/files/juce_FileOutputStream.cpp" - #include "../src/io/files/juce_FileSearchPath.cpp" - #include "../src/io/files/juce_NamedPipe.cpp" - #include "../src/io/files/juce_TemporaryFile.cpp" - #include "../src/io/network/juce_Socket.cpp" - #include "../src/io/network/juce_URL.cpp" - #include "../src/io/network/juce_MACAddress.cpp" - #include "../src/io/streams/juce_BufferedInputStream.cpp" - #include "../src/io/streams/juce_FileInputSource.cpp" - #include "../src/io/streams/juce_MemoryInputStream.cpp" - #include "../src/io/streams/juce_MemoryOutputStream.cpp" - #include "../src/io/streams/juce_SubregionStream.cpp" - #include "../src/core/juce_PerformanceCounter.cpp" - #include "../src/core/juce_Uuid.cpp" - #include "../src/io/files/juce_ZipFile.cpp" - #include "../src/text/juce_CharacterFunctions.cpp" - #include "../src/text/juce_LocalisedStrings.cpp" - #include "../src/text/juce_String.cpp" - #include "../src/text/juce_StringArray.cpp" - #include "../src/text/juce_StringPairArray.cpp" - #include "../src/text/juce_StringPool.cpp" - #include "../src/text/juce_XmlDocument.cpp" - #include "../src/text/juce_XmlElement.cpp" - #include "../src/text/juce_JSON.cpp" - #include "../src/threads/juce_ReadWriteLock.cpp" - #include "../src/threads/juce_Thread.cpp" - #include "../src/threads/juce_ThreadPool.cpp" - #include "../src/threads/juce_TimeSliceThread.cpp" -#endif - -#if JUCE_BUILD_MISC - #include "../src/containers/juce_ValueTree.cpp" - #include "../src/containers/juce_Value.cpp" - #include "../src/application/juce_Application.cpp" - #include "../src/application/juce_ApplicationCommandInfo.cpp" - #include "../src/application/juce_ApplicationCommandManager.cpp" - #include "../src/application/juce_ApplicationCommandTarget.cpp" - #include "../src/application/juce_ApplicationProperties.cpp" - #include "../src/utilities/juce_PropertiesFile.cpp" - #include "../src/utilities/juce_FileBasedDocument.cpp" - #include "../src/utilities/juce_RecentlyOpenedFilesList.cpp" - #include "../src/utilities/juce_UndoManager.cpp" - #include "../src/utilities/juce_UnitTest.cpp" - #include "../src/utilities/juce_DeletedAtShutdown.cpp" - #include "../src/audio/audio_file_formats/juce_AiffAudioFormat.cpp" - #include "../src/audio/audio_file_formats/juce_AudioFormat.cpp" - #include "../src/audio/audio_file_formats/juce_AudioFormatReader.cpp" - #include "../src/audio/audio_file_formats/juce_AudioFormatWriter.cpp" - #include "../src/audio/audio_file_formats/juce_AudioFormatManager.cpp" - #include "../src/audio/audio_file_formats/juce_AudioSubsectionReader.cpp" - #include "../src/audio/audio_file_formats/juce_AudioThumbnail.cpp" - #include "../src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp" - #include "../src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp" - #include "../src/audio/audio_file_formats/juce_WavAudioFormat.cpp" - #include "../src/audio/audio_file_formats/juce_AudioCDReader.cpp" - #include "../src/audio/audio_sources/juce_AudioFormatReaderSource.cpp" - #include "../src/audio/audio_sources/juce_AudioSourcePlayer.cpp" - #include "../src/audio/audio_sources/juce_AudioTransportSource.cpp" - #include "../src/audio/audio_sources/juce_BufferingAudioSource.cpp" - #include "../src/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp" - #include "../src/audio/audio_sources/juce_IIRFilterAudioSource.cpp" - #include "../src/audio/audio_sources/juce_ReverbAudioSource.cpp" - #include "../src/audio/audio_sources/juce_MixerAudioSource.cpp" - #include "../src/audio/audio_sources/juce_ResamplingAudioSource.cpp" - #include "../src/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp" - #include "../src/audio/devices/juce_AudioDeviceManager.cpp" - #include "../src/audio/devices/juce_AudioIODevice.cpp" - #include "../src/audio/devices/juce_AudioIODeviceType.cpp" - #include "../src/audio/dsp/juce_AudioDataConverters.cpp" - #include "../src/audio/dsp/juce_AudioSampleBuffer.cpp" - #include "../src/audio/dsp/juce_IIRFilter.cpp" - #include "../src/audio/midi/juce_MidiOutput.cpp" - #include "../src/audio/midi/juce_MidiBuffer.cpp" - #include "../src/audio/midi/juce_MidiFile.cpp" - #include "../src/audio/midi/juce_MidiKeyboardState.cpp" - #include "../src/audio/midi/juce_MidiMessage.cpp" - #include "../src/audio/midi/juce_MidiMessageCollector.cpp" - #include "../src/audio/midi/juce_MidiMessageSequence.cpp" - #include "../src/audio/plugin_host/juce_AudioPluginFormat.cpp" - #include "../src/audio/plugin_host/juce_AudioPluginFormatManager.cpp" - #include "../src/audio/plugin_host/juce_KnownPluginList.cpp" - #include "../src/audio/plugin_host/juce_PluginDescription.cpp" - #include "../src/audio/plugin_host/juce_PluginDirectoryScanner.cpp" - #include "../src/audio/plugin_host/juce_PluginListComponent.cpp" - #include "../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.mm" - #include "../src/audio/plugin_host/formats/juce_VSTPluginFormat.mm" - #include "../src/audio/processors/juce_AudioProcessor.cpp" - #include "../src/audio/processors/juce_AudioProcessorEditor.cpp" - #include "../src/audio/processors/juce_AudioProcessorGraph.cpp" - #include "../src/audio/processors/juce_AudioProcessorPlayer.cpp" - #include "../src/audio/processors/juce_GenericAudioProcessorEditor.cpp" - #include "../src/audio/synthesisers/juce_Sampler.cpp" - #include "../src/audio/synthesisers/juce_Synthesiser.cpp" - #include "../src/events/juce_ActionBroadcaster.cpp" - #include "../src/events/juce_AsyncUpdater.cpp" - #include "../src/events/juce_ChangeBroadcaster.cpp" - #include "../src/events/juce_InterprocessConnection.cpp" - #include "../src/events/juce_InterprocessConnectionServer.cpp" - #include "../src/events/juce_Message.cpp" - #include "../src/events/juce_MessageListener.cpp" - #include "../src/events/juce_MessageManager.cpp" - #include "../src/events/juce_MultiTimer.cpp" - #include "../src/events/juce_Timer.cpp" -#endif - -#if JUCE_BUILD_GUI - #include "../src/gui/components/juce_Component.cpp" - #include "../src/gui/components/juce_ComponentListener.cpp" - #include "../src/gui/components/juce_Desktop.cpp" - #include "../src/gui/components/juce_ModalComponentManager.cpp" - #include "../src/gui/components/buttons/juce_ArrowButton.cpp" - #include "../src/gui/components/buttons/juce_Button.cpp" - #include "../src/gui/components/buttons/juce_DrawableButton.cpp" - #include "../src/gui/components/buttons/juce_HyperlinkButton.cpp" - #include "../src/gui/components/buttons/juce_ImageButton.cpp" - #include "../src/gui/components/buttons/juce_ShapeButton.cpp" - #include "../src/gui/components/buttons/juce_TextButton.cpp" - #include "../src/gui/components/buttons/juce_ToggleButton.cpp" - #include "../src/gui/components/buttons/juce_ToolbarButton.cpp" - #include "../src/gui/components/code_editor/juce_CodeDocument.cpp" - #include "../src/gui/components/code_editor/juce_CodeEditorComponent.cpp" - #include "../src/gui/components/code_editor/juce_CPlusPlusCodeTokeniser.cpp" - #include "../src/gui/components/controls/juce_ComboBox.cpp" - #include "../src/gui/components/controls/juce_ImageComponent.cpp" - #include "../src/gui/components/controls/juce_Label.cpp" - #include "../src/gui/components/controls/juce_ListBox.cpp" - #include "../src/gui/components/controls/juce_ProgressBar.cpp" - #include "../src/gui/components/controls/juce_Slider.cpp" - #include "../src/gui/components/controls/juce_TableHeaderComponent.cpp" - #include "../src/gui/components/controls/juce_TableListBox.cpp" - #include "../src/gui/components/controls/juce_TextEditor.cpp" - #include "../src/gui/components/controls/juce_Toolbar.cpp" - #include "../src/gui/components/controls/juce_ToolbarItemComponent.cpp" - #include "../src/gui/components/controls/juce_ToolbarItemPalette.cpp" - #include "../src/gui/components/controls/juce_TreeView.cpp" - #include "../src/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp" - #include "../src/gui/components/filebrowser/juce_DirectoryContentsList.cpp" - #include "../src/gui/components/filebrowser/juce_FileBrowserComponent.cpp" - #include "../src/gui/components/filebrowser/juce_FileChooser.cpp" - #include "../src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp" - #include "../src/gui/components/filebrowser/juce_FileFilter.cpp" - #include "../src/gui/components/filebrowser/juce_FileListComponent.cpp" - #include "../src/gui/components/filebrowser/juce_FilenameComponent.cpp" - #include "../src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp" - #include "../src/gui/components/filebrowser/juce_FileTreeComponent.cpp" - #include "../src/gui/components/filebrowser/juce_ImagePreviewComponent.cpp" - #include "../src/gui/components/filebrowser/juce_WildcardFileFilter.cpp" - #include "../src/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp" - #include "../src/gui/components/keyboard/juce_KeyListener.cpp" - #include "../src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp" - #include "../src/gui/components/keyboard/juce_KeyPress.cpp" - #include "../src/gui/components/keyboard/juce_KeyPressMappingSet.cpp" - #include "../src/gui/components/keyboard/juce_ModifierKeys.cpp" - #include "../src/gui/components/keyboard/juce_CaretComponent.cpp" - #include "../src/gui/components/layout/juce_ComponentAnimator.cpp" - #include "../src/gui/components/layout/juce_ComponentBuilder.cpp" - #include "../src/gui/components/layout/juce_ComponentBoundsConstrainer.cpp" - #include "../src/gui/components/layout/juce_ComponentMovementWatcher.cpp" - #include "../src/gui/components/layout/juce_GroupComponent.cpp" - #include "../src/gui/components/layout/juce_MultiDocumentPanel.cpp" - #include "../src/gui/components/layout/juce_ResizableBorderComponent.cpp" - #include "../src/gui/components/layout/juce_ResizableCornerComponent.cpp" - #include "../src/gui/components/layout/juce_ResizableEdgeComponent.cpp" - #include "../src/gui/components/layout/juce_ScrollBar.cpp" - #include "../src/gui/components/layout/juce_StretchableLayoutManager.cpp" - #include "../src/gui/components/layout/juce_StretchableLayoutResizerBar.cpp" - #include "../src/gui/components/layout/juce_StretchableObjectResizer.cpp" - #include "../src/gui/components/layout/juce_TabbedButtonBar.cpp" - #include "../src/gui/components/layout/juce_TabbedComponent.cpp" - #include "../src/gui/components/layout/juce_Viewport.cpp" - #include "../src/gui/components/lookandfeel/juce_LookAndFeel.cpp" - #include "../src/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp" - #include "../src/gui/components/menus/juce_MenuBarComponent.cpp" - #include "../src/gui/components/menus/juce_MenuBarModel.cpp" - #include "../src/gui/components/menus/juce_PopupMenu.cpp" - #include "../src/gui/components/mouse/juce_ComponentDragger.cpp" - #include "../src/gui/components/mouse/juce_DragAndDropContainer.cpp" - #include "../src/gui/components/mouse/juce_MouseCursor.cpp" - #include "../src/gui/components/mouse/juce_MouseEvent.cpp" - #include "../src/gui/components/mouse/juce_MouseInputSource.cpp" - #include "../src/gui/components/mouse/juce_MouseListener.cpp" - #include "../src/gui/components/properties/juce_BooleanPropertyComponent.cpp" - #include "../src/gui/components/properties/juce_ButtonPropertyComponent.cpp" - #include "../src/gui/components/properties/juce_ChoicePropertyComponent.cpp" - #include "../src/gui/components/properties/juce_PropertyComponent.cpp" - #include "../src/gui/components/properties/juce_PropertyPanel.cpp" - #include "../src/gui/components/properties/juce_SliderPropertyComponent.cpp" - #include "../src/gui/components/properties/juce_TextPropertyComponent.cpp" - #include "../src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp" - #include "../src/gui/components/special/juce_BubbleComponent.cpp" - #include "../src/gui/components/special/juce_BubbleMessageComponent.cpp" - #include "../src/gui/components/special/juce_ColourSelector.cpp" - #include "../src/gui/components/special/juce_DropShadower.cpp" - #include "../src/gui/components/special/juce_MidiKeyboardComponent.cpp" - #include "../src/gui/components/special/juce_OpenGLComponent.cpp" - #include "../src/gui/components/special/juce_PreferencesPanel.cpp" - #include "../src/gui/components/special/juce_SystemTrayIconComponent.cpp" - #include "../src/gui/components/windows/juce_AlertWindow.cpp" - #include "../src/gui/components/windows/juce_CallOutBox.cpp" - #include "../src/gui/components/windows/juce_ComponentPeer.cpp" - #include "../src/gui/components/windows/juce_DialogWindow.cpp" - #include "../src/gui/components/windows/juce_DocumentWindow.cpp" - #include "../src/gui/components/windows/juce_ResizableWindow.cpp" - #include "../src/gui/components/windows/juce_SplashScreen.cpp" - #include "../src/gui/components/windows/juce_ThreadWithProgressWindow.cpp" - #include "../src/gui/components/windows/juce_TooltipWindow.cpp" - #include "../src/gui/components/windows/juce_TopLevelWindow.cpp" - #include "../src/gui/components/positioning/juce_MarkerList.cpp" - #include "../src/gui/components/positioning/juce_RelativeCoordinate.cpp" - #include "../src/gui/components/positioning/juce_RelativePoint.cpp" - #include "../src/gui/components/positioning/juce_RelativeRectangle.cpp" - #include "../src/gui/components/positioning/juce_RelativePointPath.cpp" - #include "../src/gui/components/positioning/juce_RelativeParallelogram.cpp" - #include "../src/gui/components/positioning/juce_RelativeCoordinatePositioner.cpp" + #include "../modules/juce_core/juce_core.cpp" #endif -// (put these in misc to balance the file sizes and avoid problems in iphone build) #if JUCE_BUILD_MISC - #include "../src/gui/graphics/colour/juce_Colour.cpp" - #include "../src/gui/graphics/colour/juce_ColourGradient.cpp" - #include "../src/gui/graphics/colour/juce_Colours.cpp" - #include "../src/gui/graphics/contexts/juce_EdgeTable.cpp" - #include "../src/gui/graphics/contexts/juce_FillType.cpp" - #include "../src/gui/graphics/contexts/juce_GraphicsContext.cpp" - #include "../src/gui/graphics/contexts/juce_Justification.cpp" - #include "../src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - #include "../src/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" - #include "../src/gui/graphics/contexts/juce_RectanglePlacement.cpp" - #include "../src/gui/graphics/drawables/juce_Drawable.cpp" - #include "../src/gui/graphics/drawables/juce_DrawableShape.cpp" - #include "../src/gui/graphics/drawables/juce_DrawableComposite.cpp" - #include "../src/gui/graphics/drawables/juce_DrawableImage.cpp" - #include "../src/gui/graphics/drawables/juce_DrawablePath.cpp" - #include "../src/gui/graphics/drawables/juce_DrawableRectangle.cpp" - #include "../src/gui/graphics/drawables/juce_DrawableText.cpp" - #include "../src/gui/graphics/drawables/juce_SVGParser.cpp" - #include "../src/gui/graphics/effects/juce_DropShadowEffect.cpp" - #include "../src/gui/graphics/effects/juce_GlowEffect.cpp" - #include "../src/gui/graphics/fonts/juce_Font.cpp" - #include "../src/gui/graphics/fonts/juce_GlyphArrangement.cpp" - #include "../src/gui/graphics/fonts/juce_TextLayout.cpp" - #include "../src/gui/graphics/fonts/juce_Typeface.cpp" - #include "../src/gui/graphics/fonts/juce_CustomTypeface.cpp" - #include "../src/gui/graphics/geometry/juce_AffineTransform.cpp" - #include "../src/gui/graphics/geometry/juce_Path.cpp" - #include "../src/gui/graphics/geometry/juce_PathIterator.cpp" - #include "../src/gui/graphics/geometry/juce_PathStrokeType.cpp" - #include "../src/gui/graphics/geometry/juce_RectangleList.cpp" - #include "../src/gui/graphics/imaging/juce_Image.cpp" - #include "../src/gui/graphics/imaging/juce_ImageCache.cpp" - #include "../src/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp" - #include "../src/gui/graphics/imaging/juce_ImageFileFormat.cpp" - #include "../src/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp" + #include "../modules/juce_cryptography/juce_cryptography.cpp" + #include "../modules/juce_data_structures/juce_data_structures.cpp" + #include "../modules/juce_events/juce_events.cpp" + #include "../modules/juce_graphics/juce_graphics.cpp" #endif -//============================================================================== -// some files include lots of library code, so leave them to the end to avoid cluttering -// up the build for the clean files. -#if JUCE_BUILD_CORE - #include "../src/io/streams/juce_GZIPCompressorOutputStream.cpp" - #include "../src/io/streams/juce_GZIPDecompressorInputStream.cpp" -#endif - -#if JUCE_BUILD_NATIVE && ! JUCE_ONLY_BUILD_CORE_LIBRARY - #include "../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp" - #include "../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp" - #include "../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp" -#endif - -// do these in the core section to help balance the sizes -#if JUCE_BUILD_CORE && ! JUCE_ONLY_BUILD_CORE_LIBRARY - #include "../src/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp" - #include "../src/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp" -#endif - -//============================================================================== #if JUCE_BUILD_NATIVE - - // Non-public headers that are needed by more than one platform must be included - // before the platform-specific sections.. - BEGIN_JUCE_NAMESPACE - #if ! JUCE_ONLY_BUILD_CORE_LIBRARY - #include "../src/native/common/juce_MidiDataConcatenator.h" - #endif - END_JUCE_NAMESPACE - - #if JUCE_WINDOWS - #include "../src/native/windows/juce_win32_NativeCode.cpp" - #elif JUCE_LINUX - #include "../src/native/linux/juce_linux_NativeCode.cpp" - #elif JUCE_MAC || JUCE_IOS - #include "../src/native/mac/juce_mac_NativeCode.mm" - #elif JUCE_ANDROID - #include "../src/native/android/juce_android_NativeCode.cpp" + #include "../modules/juce_video/juce_video.cpp" + #if JUCE_OPENGL + #include "../modules/juce_opengl/juce_opengl.cpp" #endif + #include "../modules/juce_audio_basics/juce_audio_basics.cpp" + #include "../modules/juce_audio_formats/juce_audio_formats.cpp" + #include "../modules/juce_audio_processors/juce_audio_processors.cpp" + #include "../modules/juce_audio_devices/juce_audio_devices.cpp" +#endif + +#if JUCE_BUILD_GUI + #include "../modules/juce_gui_basics/juce_gui_basics.cpp" + #include "../modules/juce_gui_extra/juce_gui_extra.cpp" + #include "../modules/juce_audio_utils/juce_audio_utils.cpp" #endif diff --git a/bin/ReadMe.txt b/bin/ReadMe.txt deleted file mode 100644 index 632c91e14c..0000000000 --- a/bin/ReadMe.txt +++ /dev/null @@ -1 +0,0 @@ -This folder is where the compiled libs and intermediate files get stored... diff --git a/extras/Introjucer/Builds/Linux/Makefile b/extras/Introjucer/Builds/Linux/Makefile index 3e70d93421..f71dda5964 100644 --- a/extras/Introjucer/Builds/Linux/Makefile +++ b/extras/Introjucer/Builds/Linux/Makefile @@ -1,5 +1,5 @@ -# Automatically generated makefile, created by the Jucer -# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project! +# Automatically generated makefile, created by the Introjucer +# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project! ifndef CONFIG CONFIG=Debug @@ -17,12 +17,12 @@ ifeq ($(CONFIG),Debug) LIBDIR := build OBJDIR := build/intermediate/Debug OUTDIR := build - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 CXXFLAGS += $(CFLAGS) - LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound + LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext LDDEPS := - RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode TARGET := Introjucer BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) endif @@ -32,45 +32,50 @@ ifeq ($(CONFIG),Release) LIBDIR := build OBJDIR := build/intermediate/Release OUTDIR := build - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 CXXFLAGS += $(CFLAGS) - LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound + LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext LDDEPS := - RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode TARGET := Introjucer BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) endif OBJECTS := \ + $(OBJDIR)/jucer_CommandLine_f35de107.o \ $(OBJDIR)/jucer_DocumentEditorComponent_695dff1d.o \ $(OBJDIR)/jucer_FilePreviewComponent_55512f53.o \ $(OBJDIR)/jucer_JuceUpdater_cf7865c4.o \ $(OBJDIR)/jucer_Main_f8488f5b.o \ $(OBJDIR)/jucer_MainWindow_1e163aeb.o \ $(OBJDIR)/jucer_OpenDocumentManager_4c72d210.o \ - $(OBJDIR)/jucer_SourceCodeEditor_461f5487.o \ $(OBJDIR)/jucer_GroupInformationComponent_631ccf01.o \ + $(OBJDIR)/jucer_Module_3f7666a5.o \ $(OBJDIR)/jucer_NewFileWizard_b8a19ef8.o \ $(OBJDIR)/jucer_NewProjectWizard_7a15bf5d.o \ $(OBJDIR)/jucer_Project_c131864a.o \ $(OBJDIR)/jucer_ProjectContentComponent_60de0eee.o \ - $(OBJDIR)/jucer_ProjectExporter_eed6e04b.o \ $(OBJDIR)/jucer_ProjectInformationComponent_4746e69b.o \ $(OBJDIR)/jucer_ProjectTreeViewBase_63c2bdbe.o \ $(OBJDIR)/jucer_ProjectType_1bc27a24.o \ - $(OBJDIR)/jucer_ResourceFile_7e7734e3.o \ $(OBJDIR)/jucer_TreeViewTypes_4a765287.o \ + $(OBJDIR)/jucer_ProjectExporter_eefe2e5b.o \ + $(OBJDIR)/jucer_ResourceFile_6af120d3.o \ $(OBJDIR)/jucer_CodeHelpers_c317179c.o \ $(OBJDIR)/jucer_FileHelpers_f98ed0ad.o \ $(OBJDIR)/jucer_JucerTreeViewBase_d043309d.o \ $(OBJDIR)/jucer_MiscUtilities_25b68c82.o \ $(OBJDIR)/jucer_StoredSettings_26078d2c.o \ + $(OBJDIR)/jucer_SourceCodeEditor_461f5487.o \ $(OBJDIR)/BinaryData_ce4232d4.o \ - $(OBJDIR)/JuceLibraryCode1_682c927f.o \ - $(OBJDIR)/JuceLibraryCode2_683aaa00.o \ - $(OBJDIR)/JuceLibraryCode3_6848c181.o \ - $(OBJDIR)/JuceLibraryCode4_6856d902.o \ + $(OBJDIR)/juce_core_1ee54a40.o \ + $(OBJDIR)/juce_cryptography_3b1f489a.o \ + $(OBJDIR)/juce_data_structures_84790dfc.o \ + $(OBJDIR)/juce_events_584896b4.o \ + $(OBJDIR)/juce_graphics_f9afc18.o \ + $(OBJDIR)/juce_gui_basics_90929794.o \ + $(OBJDIR)/juce_gui_extra_b81d9e1c.o \ .PHONY: clean @@ -87,6 +92,11 @@ clean: -@rm -rf $(OBJDIR)/* -@rm -rf $(OBJDIR) +$(OBJDIR)/jucer_CommandLine_f35de107.o: ../../Source/Application/jucer_CommandLine.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling jucer_CommandLine.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/jucer_DocumentEditorComponent_695dff1d.o: ../../Source/Application/jucer_DocumentEditorComponent.cpp -@mkdir -p $(OBJDIR) @echo "Compiling jucer_DocumentEditorComponent.cpp" @@ -117,14 +127,14 @@ $(OBJDIR)/jucer_OpenDocumentManager_4c72d210.o: ../../Source/Application/jucer_O @echo "Compiling jucer_OpenDocumentManager.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/jucer_SourceCodeEditor_461f5487.o: ../../Source/Code\ Editor/jucer_SourceCodeEditor.cpp +$(OBJDIR)/jucer_GroupInformationComponent_631ccf01.o: ../../Source/Project/jucer_GroupInformationComponent.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling jucer_SourceCodeEditor.cpp" + @echo "Compiling jucer_GroupInformationComponent.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/jucer_GroupInformationComponent_631ccf01.o: ../../Source/Project/jucer_GroupInformationComponent.cpp +$(OBJDIR)/jucer_Module_3f7666a5.o: ../../Source/Project/jucer_Module.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling jucer_GroupInformationComponent.cpp" + @echo "Compiling jucer_Module.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" $(OBJDIR)/jucer_NewFileWizard_b8a19ef8.o: ../../Source/Project/jucer_NewFileWizard.cpp @@ -147,11 +157,6 @@ $(OBJDIR)/jucer_ProjectContentComponent_60de0eee.o: ../../Source/Project/jucer_P @echo "Compiling jucer_ProjectContentComponent.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/jucer_ProjectExporter_eed6e04b.o: ../../Source/Project/jucer_ProjectExporter.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling jucer_ProjectExporter.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - $(OBJDIR)/jucer_ProjectInformationComponent_4746e69b.o: ../../Source/Project/jucer_ProjectInformationComponent.cpp -@mkdir -p $(OBJDIR) @echo "Compiling jucer_ProjectInformationComponent.cpp" @@ -167,14 +172,19 @@ $(OBJDIR)/jucer_ProjectType_1bc27a24.o: ../../Source/Project/jucer_ProjectType.c @echo "Compiling jucer_ProjectType.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/jucer_ResourceFile_7e7734e3.o: ../../Source/Project/jucer_ResourceFile.cpp +$(OBJDIR)/jucer_TreeViewTypes_4a765287.o: ../../Source/Project/jucer_TreeViewTypes.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling jucer_ResourceFile.cpp" + @echo "Compiling jucer_TreeViewTypes.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/jucer_TreeViewTypes_4a765287.o: ../../Source/Project/jucer_TreeViewTypes.cpp +$(OBJDIR)/jucer_ProjectExporter_eefe2e5b.o: ../../Source/Project\ Saving/jucer_ProjectExporter.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling jucer_TreeViewTypes.cpp" + @echo "Compiling jucer_ProjectExporter.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/jucer_ResourceFile_6af120d3.o: ../../Source/Project\ Saving/jucer_ResourceFile.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling jucer_ResourceFile.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" $(OBJDIR)/jucer_CodeHelpers_c317179c.o: ../../Source/Utility/jucer_CodeHelpers.cpp @@ -202,29 +212,49 @@ $(OBJDIR)/jucer_StoredSettings_26078d2c.o: ../../Source/Utility/jucer_StoredSett @echo "Compiling jucer_StoredSettings.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" +$(OBJDIR)/jucer_SourceCodeEditor_461f5487.o: ../../Source/Code\ Editor/jucer_SourceCodeEditor.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling jucer_SourceCodeEditor.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp -@mkdir -p $(OBJDIR) @echo "Compiling BinaryData.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode1_682c927f.o: ../../JuceLibraryCode/JuceLibraryCode1.cpp +$(OBJDIR)/juce_core_1ee54a40.o: ../../../../modules/juce_core/juce_core.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_core.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_cryptography_3b1f489a.o: ../../../../modules/juce_cryptography/juce_cryptography.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_cryptography.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_data_structures_84790dfc.o: ../../../../modules/juce_data_structures/juce_data_structures.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_data_structures.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_events_584896b4.o: ../../../../modules/juce_events/juce_events.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode1.cpp" + @echo "Compiling juce_events.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode2_683aaa00.o: ../../JuceLibraryCode/JuceLibraryCode2.cpp +$(OBJDIR)/juce_graphics_f9afc18.o: ../../../../modules/juce_graphics/juce_graphics.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode2.cpp" + @echo "Compiling juce_graphics.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode3_6848c181.o: ../../JuceLibraryCode/JuceLibraryCode3.cpp +$(OBJDIR)/juce_gui_basics_90929794.o: ../../../../modules/juce_gui_basics/juce_gui_basics.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode3.cpp" + @echo "Compiling juce_gui_basics.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode4_6856d902.o: ../../JuceLibraryCode/JuceLibraryCode4.cpp +$(OBJDIR)/juce_gui_extra_b81d9e1c.o: ../../../../modules/juce_gui_extra/juce_gui_extra.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode4.cpp" + @echo "Compiling juce_gui_extra.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/extras/Introjucer/Builds/MacOSX/Icon.icns b/extras/Introjucer/Builds/MacOSX/Icon.icns index 7763077cfb..a1d2ba8423 100644 Binary files a/extras/Introjucer/Builds/MacOSX/Icon.icns and b/extras/Introjucer/Builds/MacOSX/Icon.icns differ diff --git a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj index 848939637d..abfcf61a88 100644 --- a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj +++ b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj @@ -3,284 +3,1633 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { - 1FD6A59398E3618F79475867 = { isa = PBXBuildFile; fileRef = 55A5264E336AEDD1495796F5; }; - B703C44375C75E5AB099E74A = { isa = PBXBuildFile; fileRef = 43A5218D223AA21E0A55D986; }; - 7BDFF9F0E16DF33A980F46DC = { isa = PBXBuildFile; fileRef = 046FA2877C08618339161EE2; }; - 52A4EFC1F732A9D5BBB61AF5 = { isa = PBXBuildFile; fileRef = B36C44190E6AEEBFA3DB3046; }; - C65112B26E0BB0BB8DBD3F3C = { isa = PBXBuildFile; fileRef = FB3773F08466794F949B0AFF; }; - 2C3270317859BA6DF8EC1458 = { isa = PBXBuildFile; fileRef = A5A4B15B9F5C3D32C82DFDC6; }; - 022036CBB0FBE47C417A6222 = { isa = PBXBuildFile; fileRef = 151135F18422E2B1368D7BC2; }; - AA7B50F22523465B07D4A25B = { isa = PBXBuildFile; fileRef = 6E1144678BD61868D73EF1FB; }; - 93C9F3F27602A33DDC9C2250 = { isa = PBXBuildFile; fileRef = 2767E1D082874D301D5D5F43; }; - DBE3CE9482B19CF1AE700805 = { isa = PBXBuildFile; fileRef = 23CF69B4C644D1E6E61E5C82; }; - 2E6836738CE7EB452FDC7E9A = { isa = PBXBuildFile; fileRef = D9FB1A5365FEEB854A0FF7BF; }; - E63745F5956C698352A2ACA0 = { isa = PBXBuildFile; fileRef = 74125C6A6DE28C538A518C3C; }; - AADBA9EB828F8C6A5E38593B = { isa = PBXBuildFile; fileRef = 3417A0C1AE7900A7E07C1CA1; }; - D6D0659F3F3504012246F13D = { isa = PBXBuildFile; fileRef = AA3CBE4A2AC3E9411426F630; }; - 8BAE4D8EA7F247DA0A4D3A5C = { isa = PBXBuildFile; fileRef = F617CE0630ADB0628A34D6BF; }; - 280FE650B3F02AD9E821EA37 = { isa = PBXBuildFile; fileRef = 832701705EC0EC9484F9D9C2; }; - 9950893AA82F86F1EEE55BED = { isa = PBXBuildFile; fileRef = D77EAC704C96F798B1C69A0D; }; - C2F198C7058FC1A88A600645 = { isa = PBXBuildFile; fileRef = B06694E3C7EB89E3DDEFCBD0; }; - A7C05B907BBCB4288FBC6428 = { isa = PBXBuildFile; fileRef = 194F6B951CBC3E8F897FB646; }; - 6B48E4B12BB56C2254F293DF = { isa = PBXBuildFile; fileRef = ABDE2EC87B925F50BA071DB2; }; - 7A7859C8F2DFDC8D80FE0F0E = { isa = PBXBuildFile; fileRef = 1B88189689F13B2A9FAEC6C8; }; - 5BD727176204D71F2E0F42CC = { isa = PBXBuildFile; fileRef = 5789E1F7A30240B839EF936D; }; - DA3D1949878344EAE971E9CF = { isa = PBXBuildFile; fileRef = 7FF9D1A9157D58AEC555D558; }; - 086FC650CA4A39161F5DC34A = { isa = PBXBuildFile; fileRef = 1D7AE967F4874BD12DFB964D; }; - 7192D99BD62492851CC34B39 = { isa = PBXBuildFile; fileRef = 8E44AB32AEDABC7E1D3FC49F; }; - 379C4FA4F9F4F856A245D8F1 = { isa = PBXBuildFile; fileRef = 296E0498784BF03FA18B164B; }; - A70571C45ECEB18061181367 = { isa = PBXBuildFile; fileRef = 6746790735D492AB157E5F26; }; - 7B65A9D3D6D5798649D90FA0 = { isa = PBXBuildFile; fileRef = EB49FFAB3424D162D2105B2D; }; - 257C8841AC7634499B0B3D0A = { isa = PBXBuildFile; fileRef = 1328E38A600B515CD2CFBB7A; }; - 85572197E35546BB69861758 = { isa = PBXBuildFile; fileRef = 41C18D8743BCACB15D27EE21; }; - 0E22757B983B4F600F1B7916 = { isa = PBXBuildFile; fileRef = 7D678D4FD5505D7FCE7DCC7F; }; - 1501CEE9D0FD3C1185F6413B = { isa = PBXBuildFile; fileRef = 169DB589B861F57CDF896A02; }; - FF1962A57973208A90330B3C = { isa = PBXBuildFile; fileRef = F3EFF63CFFCCA76AF4968B4C; }; - E2DFFAAE26E2D87AE3CE3136 = { isa = PBXBuildFile; fileRef = 70EEB7CC13CCB14848F9058D; }; - 0F780301B225C3022C346CD4 = { isa = PBXBuildFile; fileRef = 95587D99F55802DE5AA2EE5D; }; - 59B173809CEC75EC0C74D1CF = { isa = PBXBuildFile; fileRef = 62DCA8C33F575DDA296DC682; }; - 69CA42E334E4BA09E4FE8B65 = { isa = PBXBuildFile; fileRef = D02830A908A07FD46F7387DA; }; - 0C3A85F58C34FA91D16664EB = { isa = PBXBuildFile; fileRef = 933DADF4F3906510EA714CC0; }; - 08C0959668FFC1A90B4BA8E6 = { isa = PBXBuildFile; fileRef = DD6476FF0F8BE833CD54C01F; }; - 1457A52734BA97A13610ECF1 = { isa = PBXBuildFile; fileRef = 268B4FFB1C675B679138545F; }; - 20EDB5C810855EB960F520FC = { isa = PBXBuildFile; fileRef = 60A217F62952DE8A752BD79F; }; - 55A5264E336AEDD1495796F5 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 43A5218D223AA21E0A55D986 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - 046FA2877C08618339161EE2 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - B36C44190E6AEEBFA3DB3046 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - FB3773F08466794F949B0AFF = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; - A5A4B15B9F5C3D32C82DFDC6 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; - 151135F18422E2B1368D7BC2 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; - 6E1144678BD61868D73EF1FB = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 2767E1D082874D301D5D5F43 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; - 23CF69B4C644D1E6E61E5C82 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - D9FB1A5365FEEB854A0FF7BF = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; - 74125C6A6DE28C538A518C3C = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - 12E1601866B3489844AFD645 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Introjucer.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; - F4C5CF1AA7EB9298043D89D3 = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; - 3417A0C1AE7900A7E07C1CA1 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; - 2CB488FB81118B62A06AA82B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Application.h"; path = "../../Source/Application/jucer_Application.h"; sourceTree = "SOURCE_ROOT"; }; - 6B373B89AA84EBE5964C7452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CommandIDs.h"; path = "../../Source/Application/jucer_CommandIDs.h"; sourceTree = "SOURCE_ROOT"; }; - D759DE26060A86B38AECF753 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CommonHeaders.h"; path = "../../Source/Application/jucer_CommonHeaders.h"; sourceTree = "SOURCE_ROOT"; }; - AA3CBE4A2AC3E9411426F630 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_DocumentEditorComponent.cpp"; path = "../../Source/Application/jucer_DocumentEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 16551C20AF0BE36C0BFC6E96 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_DocumentEditorComponent.h"; path = "../../Source/Application/jucer_DocumentEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - F617CE0630ADB0628A34D6BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_FilePreviewComponent.cpp"; path = "../../Source/Application/jucer_FilePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 330CB15608DEAF19D28C18DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FilePreviewComponent.h"; path = "../../Source/Application/jucer_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 0CA0CCCEBFA0AC8C577FC915 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Headers.h"; path = "../../Source/jucer_Headers.h"; sourceTree = "SOURCE_ROOT"; }; - 832701705EC0EC9484F9D9C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_JuceUpdater.cpp"; path = "../../Source/Application/jucer_JuceUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; - AFC2F9A887CDBF7A0051CD09 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_JuceUpdater.h"; path = "../../Source/Application/jucer_JuceUpdater.h"; sourceTree = "SOURCE_ROOT"; }; - D77EAC704C96F798B1C69A0D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_Main.cpp"; path = "../../Source/Application/jucer_Main.cpp"; sourceTree = "SOURCE_ROOT"; }; - B06694E3C7EB89E3DDEFCBD0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainWindow.cpp"; path = "../../Source/Application/jucer_MainWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 24378294003DC2D038D0534D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_MainWindow.h"; path = "../../Source/Application/jucer_MainWindow.h"; sourceTree = "SOURCE_ROOT"; }; - 194F6B951CBC3E8F897FB646 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_OpenDocumentManager.cpp"; path = "../../Source/Application/jucer_OpenDocumentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; - CC2337E5F0207DA53F021F9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_OpenDocumentManager.h"; path = "../../Source/Application/jucer_OpenDocumentManager.h"; sourceTree = "SOURCE_ROOT"; }; - ABDE2EC87B925F50BA071DB2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_SourceCodeEditor.cpp"; path = "../../Source/Code Editor/jucer_SourceCodeEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; - DDBF5BEEBBD9314DDF866F29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_SourceCodeEditor.h"; path = "../../Source/Code Editor/jucer_SourceCodeEditor.h"; sourceTree = "SOURCE_ROOT"; }; - 1B88189689F13B2A9FAEC6C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_GroupInformationComponent.cpp"; path = "../../Source/Project/jucer_GroupInformationComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9B3084628EA1494464E99F5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_GroupInformationComponent.h"; path = "../../Source/Project/jucer_GroupInformationComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 5789E1F7A30240B839EF936D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewFileWizard.cpp"; path = "../../Source/Project/jucer_NewFileWizard.cpp"; sourceTree = "SOURCE_ROOT"; }; - 0685E1C942E1D2447CADB783 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewFileWizard.h"; path = "../../Source/Project/jucer_NewFileWizard.h"; sourceTree = "SOURCE_ROOT"; }; - 7FF9D1A9157D58AEC555D558 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewProjectWizard.cpp"; path = "../../Source/Project/jucer_NewProjectWizard.cpp"; sourceTree = "SOURCE_ROOT"; }; - 7ACDFA50C230966293626A74 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewProjectWizard.h"; path = "../../Source/Project/jucer_NewProjectWizard.h"; sourceTree = "SOURCE_ROOT"; }; - 1D7AE967F4874BD12DFB964D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_Project.cpp"; path = "../../Source/Project/jucer_Project.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8CD4ABA478205AA127FB9BE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Project.h"; path = "../../Source/Project/jucer_Project.h"; sourceTree = "SOURCE_ROOT"; }; - 8E44AB32AEDABC7E1D3FC49F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectContentComponent.cpp"; path = "../../Source/Project/jucer_ProjectContentComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - F2F98DA41146390D05A44EAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectContentComponent.h"; path = "../../Source/Project/jucer_ProjectContentComponent.h"; sourceTree = "SOURCE_ROOT"; }; - AB9EE4734D894FBF1CF62C5F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_Android.h"; path = "../../Source/Project/jucer_ProjectExport_Android.h"; sourceTree = "SOURCE_ROOT"; }; - 889715B0152919B2EAA1F5F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_Make.h"; path = "../../Source/Project/jucer_ProjectExport_Make.h"; sourceTree = "SOURCE_ROOT"; }; - 907F302BB89308CDB2C5FD0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_MSVC.h"; path = "../../Source/Project/jucer_ProjectExport_MSVC.h"; sourceTree = "SOURCE_ROOT"; }; - D250274734D729D2E0389A20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_XCode.h"; path = "../../Source/Project/jucer_ProjectExport_XCode.h"; sourceTree = "SOURCE_ROOT"; }; - 296E0498784BF03FA18B164B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectExporter.cpp"; path = "../../Source/Project/jucer_ProjectExporter.cpp"; sourceTree = "SOURCE_ROOT"; }; - 5DE419991013E7C0F203E99F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExporter.h"; path = "../../Source/Project/jucer_ProjectExporter.h"; sourceTree = "SOURCE_ROOT"; }; - 6746790735D492AB157E5F26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectInformationComponent.cpp"; path = "../../Source/Project/jucer_ProjectInformationComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 4727C2C16D17BE642A3F5838 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectInformationComponent.h"; path = "../../Source/Project/jucer_ProjectInformationComponent.h"; sourceTree = "SOURCE_ROOT"; }; - ADF962F14A1FCBB05B499E6C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectSaver.h"; path = "../../Source/Project/jucer_ProjectSaver.h"; sourceTree = "SOURCE_ROOT"; }; - EB49FFAB3424D162D2105B2D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectTreeViewBase.cpp"; path = "../../Source/Project/jucer_ProjectTreeViewBase.cpp"; sourceTree = "SOURCE_ROOT"; }; - 27D0B6991943D6AD88E42FE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectTreeViewBase.h"; path = "../../Source/Project/jucer_ProjectTreeViewBase.h"; sourceTree = "SOURCE_ROOT"; }; - 1328E38A600B515CD2CFBB7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectType.cpp"; path = "../../Source/Project/jucer_ProjectType.cpp"; sourceTree = "SOURCE_ROOT"; }; - D39F212C819794FECD373008 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectType.h"; path = "../../Source/Project/jucer_ProjectType.h"; sourceTree = "SOURCE_ROOT"; }; - 41C18D8743BCACB15D27EE21 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ResourceFile.cpp"; path = "../../Source/Project/jucer_ResourceFile.cpp"; sourceTree = "SOURCE_ROOT"; }; - 05564317BD19EBC8416976DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ResourceFile.h"; path = "../../Source/Project/jucer_ResourceFile.h"; sourceTree = "SOURCE_ROOT"; }; - 7D678D4FD5505D7FCE7DCC7F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_TreeViewTypes.cpp"; path = "../../Source/Project/jucer_TreeViewTypes.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9B52E45930E312EAEB0BD7EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_TreeViewTypes.h"; path = "../../Source/Project/jucer_TreeViewTypes.h"; sourceTree = "SOURCE_ROOT"; }; - 169DB589B861F57CDF896A02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_CodeHelpers.cpp"; path = "../../Source/Utility/jucer_CodeHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; - 39F23D96AE478A6415104D1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CodeHelpers.h"; path = "../../Source/Utility/jucer_CodeHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 54BAA8A58EF125AEF05BC8F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Colours.h"; path = "../../Source/Utility/jucer_Colours.h"; sourceTree = "SOURCE_ROOT"; }; - F3EFF63CFFCCA76AF4968B4C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_FileHelpers.cpp"; path = "../../Source/Utility/jucer_FileHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; - D5825A552212550315F68745 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FileHelpers.h"; path = "../../Source/Utility/jucer_FileHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 70EEB7CC13CCB14848F9058D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_JucerTreeViewBase.cpp"; path = "../../Source/Utility/jucer_JucerTreeViewBase.cpp"; sourceTree = "SOURCE_ROOT"; }; - F09282899E26D5AECB15FCD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_JucerTreeViewBase.h"; path = "../../Source/Utility/jucer_JucerTreeViewBase.h"; sourceTree = "SOURCE_ROOT"; }; - 95587D99F55802DE5AA2EE5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MiscUtilities.cpp"; path = "../../Source/Utility/jucer_MiscUtilities.cpp"; sourceTree = "SOURCE_ROOT"; }; - C9D7F4B7778274154DB6F172 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_MiscUtilities.h"; path = "../../Source/Utility/jucer_MiscUtilities.h"; sourceTree = "SOURCE_ROOT"; }; - 6B90D9A6BD4332FB3F2F642B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_PresetIDs.h"; path = "../../Source/Utility/jucer_PresetIDs.h"; sourceTree = "SOURCE_ROOT"; }; - D8A7CD36545F7361B078939D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_RelativePath.h"; path = "../../Source/Utility/jucer_RelativePath.h"; sourceTree = "SOURCE_ROOT"; }; - 62DCA8C33F575DDA296DC682 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_StoredSettings.cpp"; path = "../../Source/Utility/jucer_StoredSettings.cpp"; sourceTree = "SOURCE_ROOT"; }; - 66AB2C4A43AC1C473C3694D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_StoredSettings.h"; path = "../../Source/Utility/jucer_StoredSettings.h"; sourceTree = "SOURCE_ROOT"; }; - EAFDFAC2EE4670D18E0D35FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ValueSourceHelpers.h"; path = "../../Source/Utility/jucer_ValueSourceHelpers.h"; sourceTree = "SOURCE_ROOT"; }; - 8EDEE4F2A25D08F06768BAB3 = { isa = PBXFileReference; lastKnownFileType = text.txt; name = AudioPluginXCodeScript.txt; path = ../../Source/BinaryData/AudioPluginXCodeScript.txt; sourceTree = "SOURCE_ROOT"; }; - 4872570002B53A0B1B1152A2 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "brushed_aluminium.png"; path = "../../Source/BinaryData/brushed_aluminium.png"; sourceTree = "SOURCE_ROOT"; }; - 5927BCB4F87ABEAF17A4C81A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_AudioPluginEditorTemplate.cpp"; path = "../../Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; - C48BBF375EA50F69E0CFE858 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginEditorTemplate.h"; path = "../../Source/BinaryData/jucer_AudioPluginEditorTemplate.h"; sourceTree = "SOURCE_ROOT"; }; - 76FF5CCA95D7A1EE97B3A44F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_AudioPluginFilterTemplate.cpp"; path = "../../Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; - 20C0F2CB6B03852C1141DAED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginFilterTemplate.h"; path = "../../Source/BinaryData/jucer_AudioPluginFilterTemplate.h"; sourceTree = "SOURCE_ROOT"; }; - 3B6D17F807BC5134D6A1867A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainConsoleAppTemplate.cpp"; path = "../../Source/BinaryData/jucer_MainConsoleAppTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; - 573797C31A561745B6CD1833 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainTemplate.cpp"; path = "../../Source/BinaryData/jucer_MainTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; - 80F03F2D4AB3387283A65A0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewCppFileTemplate.cpp"; path = "../../Source/BinaryData/jucer_NewCppFileTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; - FC705812CC19B07DEDA6EBF2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewCppFileTemplate.h"; path = "../../Source/BinaryData/jucer_NewCppFileTemplate.h"; sourceTree = "SOURCE_ROOT"; }; - B4F88060202011416CB3278B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_WindowTemplate.cpp"; path = "../../Source/BinaryData/jucer_WindowTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; - 1C26D9DA0B2D0FF8F2CEC721 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_WindowTemplate.h"; path = "../../Source/BinaryData/jucer_WindowTemplate.h"; sourceTree = "SOURCE_ROOT"; }; - 31B5EB3CEA43BE4B473DCC85 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Source/BinaryData/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; - C86084A495B96EA215958914 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; - D02830A908A07FD46F7387DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; - A6A79D303B85B7C9D673ECD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; - 8FEC5B519774920289A1FD73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; - 933DADF4F3906510EA714CC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = "SOURCE_ROOT"; }; - DD6476FF0F8BE833CD54C01F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = "SOURCE_ROOT"; }; - 268B4FFB1C675B679138545F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = "SOURCE_ROOT"; }; - 60A217F62952DE8A752BD79F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = "SOURCE_ROOT"; }; - 65EDE353CFC4C222043C80AB = { isa = PBXGroup; children = ( - 2CB488FB81118B62A06AA82B, - 6B373B89AA84EBE5964C7452, - D759DE26060A86B38AECF753, - AA3CBE4A2AC3E9411426F630, - 16551C20AF0BE36C0BFC6E96, - F617CE0630ADB0628A34D6BF, - 330CB15608DEAF19D28C18DD, - 0CA0CCCEBFA0AC8C577FC915, - 832701705EC0EC9484F9D9C2, - AFC2F9A887CDBF7A0051CD09, - D77EAC704C96F798B1C69A0D, - B06694E3C7EB89E3DDEFCBD0, - 24378294003DC2D038D0534D, - 194F6B951CBC3E8F897FB646, - CC2337E5F0207DA53F021F9F ); name = Application; sourceTree = ""; }; - 644797EB12AAB2529ED6786E = { isa = PBXGroup; children = ( - ABDE2EC87B925F50BA071DB2, - DDBF5BEEBBD9314DDF866F29 ); name = "Code Editor"; sourceTree = ""; }; - 38883F6AABCF4D47FC02B11F = { isa = PBXGroup; children = ( - 1B88189689F13B2A9FAEC6C8, - 9B3084628EA1494464E99F5C, - 5789E1F7A30240B839EF936D, - 0685E1C942E1D2447CADB783, - 7FF9D1A9157D58AEC555D558, - 7ACDFA50C230966293626A74, - 1D7AE967F4874BD12DFB964D, - 8CD4ABA478205AA127FB9BE1, - 8E44AB32AEDABC7E1D3FC49F, - F2F98DA41146390D05A44EAD, - AB9EE4734D894FBF1CF62C5F, - 889715B0152919B2EAA1F5F9, - 907F302BB89308CDB2C5FD0E, - D250274734D729D2E0389A20, - 296E0498784BF03FA18B164B, - 5DE419991013E7C0F203E99F, - 6746790735D492AB157E5F26, - 4727C2C16D17BE642A3F5838, - ADF962F14A1FCBB05B499E6C, - EB49FFAB3424D162D2105B2D, - 27D0B6991943D6AD88E42FE5, - 1328E38A600B515CD2CFBB7A, - D39F212C819794FECD373008, - 41C18D8743BCACB15D27EE21, - 05564317BD19EBC8416976DD, - 7D678D4FD5505D7FCE7DCC7F, - 9B52E45930E312EAEB0BD7EC ); name = Project; sourceTree = ""; }; - EB77B261C62447EE22D136DD = { isa = PBXGroup; children = ( - 169DB589B861F57CDF896A02, - 39F23D96AE478A6415104D1E, - 54BAA8A58EF125AEF05BC8F4, - F3EFF63CFFCCA76AF4968B4C, - D5825A552212550315F68745, - 70EEB7CC13CCB14848F9058D, - F09282899E26D5AECB15FCD1, - 95587D99F55802DE5AA2EE5D, - C9D7F4B7778274154DB6F172, - 6B90D9A6BD4332FB3F2F642B, - D8A7CD36545F7361B078939D, - 62DCA8C33F575DDA296DC682, - 66AB2C4A43AC1C473C3694D0, - EAFDFAC2EE4670D18E0D35FA ); name = Utility; sourceTree = ""; }; - 2436CB32D02E7E3293665601 = { isa = PBXGroup; children = ( - 8EDEE4F2A25D08F06768BAB3, - 4872570002B53A0B1B1152A2, - 5927BCB4F87ABEAF17A4C81A, - C48BBF375EA50F69E0CFE858, - 76FF5CCA95D7A1EE97B3A44F, - 20C0F2CB6B03852C1141DAED, - 3B6D17F807BC5134D6A1867A, - 573797C31A561745B6CD1833, - 80F03F2D4AB3387283A65A0B, - FC705812CC19B07DEDA6EBF2, - B4F88060202011416CB3278B, - 1C26D9DA0B2D0FF8F2CEC721, - 31B5EB3CEA43BE4B473DCC85 ); name = BinaryData; sourceTree = ""; }; - B01AA6CC1327A5DBCB35B7BF = { isa = PBXGroup; children = ( - 65EDE353CFC4C222043C80AB, - 644797EB12AAB2529ED6786E, - 38883F6AABCF4D47FC02B11F, - EB77B261C62447EE22D136DD, - 2436CB32D02E7E3293665601 ); name = "The Introjucer"; sourceTree = ""; }; - 265749F75DBA86EC3F19FE34 = { isa = PBXGroup; children = ( - C86084A495B96EA215958914, - D02830A908A07FD46F7387DA, - A6A79D303B85B7C9D673ECD5, - 8FEC5B519774920289A1FD73, - 933DADF4F3906510EA714CC0, - DD6476FF0F8BE833CD54C01F, - 268B4FFB1C675B679138545F, - 60A217F62952DE8A752BD79F ); name = "Juce Library Code"; sourceTree = ""; }; - EAC5B9DBB227CB2A002EF355 = { isa = PBXGroup; children = ( - F4C5CF1AA7EB9298043D89D3, - 3417A0C1AE7900A7E07C1CA1 ); name = Resources; sourceTree = ""; }; - 0D737FA088906E13707BAEB7 = { isa = PBXGroup; children = ( - 55A5264E336AEDD1495796F5, - 43A5218D223AA21E0A55D986, - 046FA2877C08618339161EE2, - B36C44190E6AEEBFA3DB3046, - FB3773F08466794F949B0AFF, - A5A4B15B9F5C3D32C82DFDC6, - 151135F18422E2B1368D7BC2, - 6E1144678BD61868D73EF1FB, - 2767E1D082874D301D5D5F43, - 23CF69B4C644D1E6E61E5C82, - D9FB1A5365FEEB854A0FF7BF, - 74125C6A6DE28C538A518C3C ); name = Frameworks; sourceTree = ""; }; - 18794C3CE7D0C95A5A70F213 = { isa = PBXGroup; children = ( - 12E1601866B3489844AFD645 ); name = Products; sourceTree = ""; }; - F03291953F0A7EA46599E27B = { isa = PBXGroup; children = ( - B01AA6CC1327A5DBCB35B7BF, - 265749F75DBA86EC3F19FE34, - EAC5B9DBB227CB2A002EF355, - 0D737FA088906E13707BAEB7, - 18794C3CE7D0C95A5A70F213 ); name = Source; sourceTree = ""; }; - DD9313457B3248E7646270A4 = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; + 1E76E36772355E2A43CF4961 = { isa = PBXBuildFile; fileRef = D00F311BFC3C2625C457CB9B; }; + 241F29FCBB7A17BB44A0B10C = { isa = PBXBuildFile; fileRef = D1F9B0E9F5D54FE48BEB46EA; }; + 49C22786B54C5DC94E4654B8 = { isa = PBXBuildFile; fileRef = E96597BBC6A98255B51B94DC; }; + 11D42F7EC6E6539D79A7F4B1 = { isa = PBXBuildFile; fileRef = E5D6C36496F5BC84D7213BE8; }; + B980464FA2761CCD64B1FAD6 = { isa = PBXBuildFile; fileRef = CF6C8BD0DA3D8CD4E99EBADA; }; + 1321E6C1C6170B6C898AD09D = { isa = PBXBuildFile; fileRef = 951128CA33CCDEF570436B1C; }; + 954A036F5DDB375DB23FFB3E = { isa = PBXBuildFile; fileRef = 0400CB0E056A1D840304D2DE; }; + 3EB3D569250C4BA4CA9AF578 = { isa = PBXBuildFile; fileRef = C7608A3967D9AB9481848F2B; }; + 9A4D477F1924C31A52AF5C79 = { isa = PBXBuildFile; fileRef = F2FA27430D90E92F0C9EBEDF; }; + B1A786B525176BEE309998EA = { isa = PBXBuildFile; fileRef = BE94248CF8069E6707174CDB; }; + 95B44E6C74B1DED31DBE37EB = { isa = PBXBuildFile; fileRef = 8C52A3DDA62A746AA7A68535; }; + AA9D0B8E23F3D87A23DE9F8A = { isa = PBXBuildFile; fileRef = 9069981E414A631B036CC9AC; }; + 244BA1BDA5FAA465EA3F9C6D = { isa = PBXBuildFile; fileRef = 2247EE920DF0610CAF9F4513; }; + 349B4C837D996E71E08657A5 = { isa = PBXBuildFile; fileRef = 6FA01AEDB9DB70FD1EA6D380; }; + 3FCA61C401007B243E2E9035 = { isa = PBXBuildFile; fileRef = F797071D88542C813CF7222A; }; + 5BC89E7905397ABECD25ACCD = { isa = PBXBuildFile; fileRef = F1163B7856FDABA413A88D90; }; + FBE57B26FE59319AA2E8B59D = { isa = PBXBuildFile; fileRef = 69A5D13490A62DAE9A7D5A22; }; + 30B921C38DCEE787B294B746 = { isa = PBXBuildFile; fileRef = BAC43B20E14A340CCF14119C; }; + 676D2E1E750E61AA2FAA335E = { isa = PBXBuildFile; fileRef = 86E468DE6556BB2AD76A3D80; }; + BB1D52AE45F40BEDCEBC993F = { isa = PBXBuildFile; fileRef = ADDCB0920D467DF2A309A5E3; }; + 9CBD0A9A700D28081C8182C5 = { isa = PBXBuildFile; fileRef = 4BAF0975F0958432B17D0D41; }; + 8012E6487639A7368E4C4470 = { isa = PBXBuildFile; fileRef = E70CA21960A64CCB835725FF; }; + B18DEBB2CBB335AFAE249E8E = { isa = PBXBuildFile; fileRef = F94ACCC426AB439B871699E3; }; + 1F37544891EC8DBB5E500C1C = { isa = PBXBuildFile; fileRef = F71AF6D2DF3E652F8B51EBAB; }; + 110221CD5578153B528AD2BE = { isa = PBXBuildFile; fileRef = D10D51A0A2D63F38B4D86A60; }; + CD4F7B119CE718BCE78D61F4 = { isa = PBXBuildFile; fileRef = 9B9CAD20E1243B4351B4C8D8; }; + 78CB463DD98A55313A543859 = { isa = PBXBuildFile; fileRef = 1729AEDC34001C31B8CC357C; }; + 123810DAF8AF758928916ECE = { isa = PBXBuildFile; fileRef = 47DD50A5A9091F9900E0EAD9; }; + C9F11BA62D6D092A300363F7 = { isa = PBXBuildFile; fileRef = 0F249640243FBD5717F6ADD9; }; + F6635694A01FFBF5EF0968DB = { isa = PBXBuildFile; fileRef = 631983AA62673015F8D7453B; }; + FCE6F604C00039A32649CB69 = { isa = PBXBuildFile; fileRef = 2E680E2C65684A4272AE079A; }; + 3C5267E06A897B0DC0F7EA50 = { isa = PBXBuildFile; fileRef = 472F9A90F685220D730EBF6C; }; + 7E72CB84146E1B4B168356CA = { isa = PBXBuildFile; fileRef = 38F29C2049566C47993A6D92; }; + 24AE6B973834AF7E0DE1F228 = { isa = PBXBuildFile; fileRef = D53B54D1786A1FFC024BF064; }; + AF55472121E1C56E5EB9CB4B = { isa = PBXBuildFile; fileRef = D9E59DE07A815AB303A297D9; }; + 284EBBCCB7C9FCB23BE43971 = { isa = PBXBuildFile; fileRef = 56E24241C02F953589493551; }; + EF27EC7543BED0B8DD66A098 = { isa = PBXBuildFile; fileRef = A2A081D9DA35B3D1F183C3FE; }; + 756B48DA5FA991E74035E812 = { isa = PBXBuildFile; fileRef = 70DC1D288DC6503E628A5A03; }; + 81E6980930B09FF108123186 = { isa = PBXBuildFile; fileRef = 9539EC08D70D4719A89A4A30; }; + 001730671DD492F405B37778 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 0019A20E8A7B6B383B6ADE26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 00376BD04FB81AF9455D45EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 003CA65912AC8048759478F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0075C5208947159AF2802F3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_AudioPluginEditorTemplate.cpp"; path = "../../Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 00EFEF8A403F4EC9E4D5B7D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 025C33B85E0CCD3E238D4BDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + 02C516CEFEE3FE48B492FDC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02DDC84BAB18E091E2CE8CB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + 03D3053EDE47FED1919C6674 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginFilterTemplate.h"; path = "../../Source/BinaryData/jucer_AudioPluginFilterTemplate.h"; sourceTree = "SOURCE_ROOT"; }; + 0400CB0E056A1D840304D2DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_CommandLine.cpp"; path = "../../Source/Application/jucer_CommandLine.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0411DD6D48DBCEBAA51BEE49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + 045B9C5D21C5C86FED140D81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 0473C3BCB7A43F710B8EE36C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 04960EE443D073F4CB7121FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + 04F31392CA58A2A434CFF7FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04F670E070D31FB66C7DCAEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + 05076CDF1511A5F8A8E18F1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_Make.h"; path = "../../Source/Project Saving/jucer_ProjectExport_Make.h"; sourceTree = "SOURCE_ROOT"; }; + 050D2D209E6423528D0138F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 051D4EAC1602802E97B24A12 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 05C936573E73B8AACBDF3191 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 05EEE241CC0DF57A7BE86C29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + 06411E446478986E7E65FE6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + 07EF1095F6D45A29AF2A6B6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 0819B9CBFBA5F410C41C978A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 087959CCC447DA59FBD5787E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_WindowTemplate.cpp"; path = "../../Source/BinaryData/jucer_WindowTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 08ADF7FC9BBE70F3C8186215 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + 08D19EE7C17DCED7E7BBEEE7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0906A934A2797145A64FF423 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 09349C0C8300CA414AAE93A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 09697D1C3F7B90DD33A8090E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 0B96A219A0CFF707E5A13B68 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 0BDFA0E402BA7E6B366E953C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 0BEDB3FD70AB61D3E7891D74 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0C747328CDADAE15E86E5E93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + 0C956209A61542371A7A5257 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + 0CC9026D5056CA9C1FE64A64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + 0CEF14D37EC664CA49A2B04D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D100A1B27A72355323CB637 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E80EFDB550393DB1C94F291 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + 0F249640243FBD5717F6ADD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MiscUtilities.cpp"; path = "../../Source/Utility/jucer_MiscUtilities.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0F2505BCD0232EB95D5199F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + 0F382FC6B16658EF02D2C4F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0FAA46FE4A661AC6F65896CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0FC137539030B1A9152F680C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainTemplate.cpp"; path = "../../Source/BinaryData/jucer_MainTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1039ABBDCC86BDC9D2663017 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 1116222363E600327FC672A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 117B5BB797DEC16E103A08F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11C55B714FE5D7CAFC35A0C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 1241F3A1FCDF100CD75D5E78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 125CD8A5E5B57840F5154ACD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1268E54178897254E9A8B94C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 129CDB26CC63D4BC2EB1F2CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1353717582E55D6E4D074BA5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 138550CC958D2F029C01B4E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 139C8BAED6DCEE26652651B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14337E3F4B92468517BA24AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 143BB0407046E63639E1D79D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 148FC834CE2CAE18477AB708 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14B7611971E56AC319072A5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14DCD95D4AFE5101B036A6EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 14EB1DA96BC8E4901FC953F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + 14F096198DE1002BF2CC56EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + 157290445D39269EA81887A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 16017456A45F74C692A3AE45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1614411A8699B82D1F7B0346 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 168F5F32F673036DDAEF1D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + 1729AEDC34001C31B8CC357C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_FileHelpers.cpp"; path = "../../Source/Utility/jucer_FileHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1772B02BAF54F29AD99DF42E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + 17C645785FB20AA2E91ED84B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + 1814F5A906001DF674D1C6C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; + 188D03A4247F4BC0539F5C49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Colours.h"; path = "../../Source/Utility/jucer_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + 189357BBA18F12A3242706A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 18B0B21258B417DFDEB9D5F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18D9EBA1DAE45EEF81FD5C8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainConsoleAppTemplate.cpp"; path = "../../Source/BinaryData/jucer_MainConsoleAppTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 193908A02BA553DB5B30D759 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + 199722DD9BA0E30C0506941E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A1B5A2E9F1DA2122D21F9DF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 1A1C8AEC3C5AB2E972B0212E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; + 1A79A64F47F7B5083EEBB328 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 1ACDDD42A7050309C8765F75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 1AF7EFBE4961C7B6C834BF54 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_PresetIDs.h"; path = "../../Source/Utility/jucer_PresetIDs.h"; sourceTree = "SOURCE_ROOT"; }; + 1B03B2952A4DDA6E6A1C35F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + 1B1A4A48AF3898485E7B1618 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 1B2B08359011B2BD7B07A677 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1B9552C3FEAFF2071C860987 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BE0A20FB2284A4DDC3A359E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + 1BF5C3F5DC2285FBEF72B697 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 1C666CA3AF0AB4CDCA1D983F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 1C76BBCD73ED21571035675F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 1EC7A8EEAD8ADF43BF014C2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + 1F28C0018228A0F749E5658E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1F36217CE7A5B1D63D41EA6C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + 1F421199C40092BFEE0658C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_RelativePath.h"; path = "../../Source/Utility/jucer_RelativePath.h"; sourceTree = "SOURCE_ROOT"; }; + 1F7F2864FE54D79A0C42BE93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + 202591AAB1ABCFE458F33F7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 206D399250A42034706E5434 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 20FC504E8FB8D30E890A9837 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2107C02B684C7F5B75662333 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + 210A4FDD4A56CF817E5E8567 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 215EAB10AE8D19F23AD2BDBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + 21B6FE5EEB3E112385D62127 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + 21D1D6A04B25346CD5524B89 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 21F4416597D1AB02D38BA62E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 21FAFA7F2C5D0E8D99876EA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2210EB5F41023B53ADD0DFBD = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_cryptography/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 221C1BAC4138F261F97121AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2247EE920DF0610CAF9F4513 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_OpenDocumentManager.cpp"; path = "../../Source/Application/jucer_OpenDocumentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2252F2B96709F3C7CE07B5E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 225414095942818432AAE07D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 227646334D4CBE863870234C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 2358EB55148891C87833008D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + 236FFB34CCADD5FC95DFF04D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23A8DE16C0CDB8EED18B008B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CommandIDs.h"; path = "../../Source/Application/jucer_CommandIDs.h"; sourceTree = "SOURCE_ROOT"; }; + 240889EAEAC85D85AB61011B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 240BCAD873E4360E54CA2A81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2411094E8B601FD897AD24F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 2416644BBABFD1F95EE12792 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 24CA69C0CC466CD524021099 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 24CB53290AE7A023C1BDD0DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 25D76CD621FC2A211CF7BB52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 25E306BB0D875CB0934C405C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 261EFE631AA08FB2651B78C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 263F153E8A277E02A3754BBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 26C4A38525D6A327C0102D18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 271A1D94B96A8B7C949FD8ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A060BB0D79BEC3CF644F553 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A4B079CDB9C40EB912B6EEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 2AADCE9D8BADF4DAC05CCA1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 2B074BFC193A25602E73D0CC = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 2B8548461E318DCB3354DB43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 2BB98D1E325EF7BD90C6BBB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + 2BC28F37C470E4770E479BCD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + 2C7A9B2EDC724657EBF9FA83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CB90BE5027B202896EBCE9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2CD0B485ED8C5E8402671D36 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2CD34A70B4032C0426F7AA10 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_MainWindow.h"; path = "../../Source/Application/jucer_MainWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 2CFEE0E15C0ABF07EFE27FBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectInformationComponent.h"; path = "../../Source/Project/jucer_ProjectInformationComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2DF5213993DF1380E29C848A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E1F83CE00F5855083AFA246 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E540A9137E245EFADCFABB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E680E2C65684A4272AE079A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_SourceCodeEditor.cpp"; path = "../../Source/Code Editor/jucer_SourceCodeEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E96852D55A9C1DEAF76FF6D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + 2ED5D4ABB34DAA5D6E93A171 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EEB1C074162F363C6599282 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CommandLine.h"; path = "../../Source/Application/jucer_CommandLine.h"; sourceTree = "SOURCE_ROOT"; }; + 2FADEBA1901F74204DE253BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 2FBA1138907F4DE651870008 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 304EEA3B0DF16CE313D8A0BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3058CCA7DE9BB9B37FE73297 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + 30AD756E053A0663BF664823 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_graphics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 318F4AB64A5D4068CC1C4F29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 31A8DF142F8B653E285C7E01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 31ACA83BF72B34828ADA1F3F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + 32070395DAFA5355D390A120 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + 322A68B4BBEE9CC039B9E024 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 3276A099EB6880D55D2D52C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32D9A904B4186B64A61FA8CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 336D0A9B4D15CF866BCE3DFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + 3419904525A3F1FF0CC50687 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 352DA3794CAAE2400AE8F2E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 35AF9D5F0603CF6CE2D355A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35CB48D497F35BF3F6998F5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExporter.h"; path = "../../Source/Project Saving/jucer_ProjectExporter.h"; sourceTree = "SOURCE_ROOT"; }; + 364D1A9B113320407A7E57B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 37A0A38C2B5825B9A302879C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 3804BE13635F779ACB8C5491 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 38CE1587800D612BA0C394A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 38F29C2049566C47993A6D92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 3A2888667372BA896AACFBDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + 3A55FEFC24C387D3B29444D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3AB1D4CECEADD4836ACEEAEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + 3AB744A14A560E541723DC9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B061AB9BFD8883A6AE8BCE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + 3C48242E40D358BC6FF7FE53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + 3CABAAC1C4BC0D8105183D56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + 3CD57938B4C273D0AA6E6B8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + 3D2B51C71E3676F283B778EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 3F1501FE4867042830B25DD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F222D26A164E7AD78A33B3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 3FAFD16944A6674164D23914 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 40A83A20ED109AAAE6D63AF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 412B48D0F05D78A73064B36B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 422524EBD7DA6530970A7872 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + 42B5C970B8DCD08A864F2208 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 430239E0574C157689D83206 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 43B98AB307841FAAB076B882 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../../../modules/juce_graphics/placement/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; }; + 441A0EA83E44264CB977F21B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 442031AD0C8A280B68CE9EF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4437785A3DFF4AB2D6A78DB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 444CA4B9CAD1F5ED5C45448B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44BEFED79E5FE4F558458C14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4524F465153A8F6BDC236349 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4543EACC9AEA1894A380624F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 45B8EAC396722D21E6658AE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 46C2D683A917A9D3729EEAC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + 472F9A90F685220D730EBF6C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 47DD50A5A9091F9900E0EAD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_JucerTreeViewBase.cpp"; path = "../../Source/Utility/jucer_JucerTreeViewBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47F4C6341177140302CE802A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 4904357A3FFA61972A9E9D6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + 490FEE91E483534632094C67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + 4924392751ACE0C9F2076599 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4977BC2F82532C86B116A07F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + 49A941554FB8B2B20F219182 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 4A41FD3066D0979DB48691E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_MiscUtilities.h"; path = "../../Source/Utility/jucer_MiscUtilities.h"; sourceTree = "SOURCE_ROOT"; }; + 4AE0078871D92B6085C28313 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AF755C65E352951D80FB93B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4B98FC7F079F93BCC4D65C86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4BAF0975F0958432B17D0D41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectTreeViewBase.cpp"; path = "../../Source/Project/jucer_ProjectTreeViewBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4BC9122A6E6496EAF716560E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C150A1BF98D747EC218A602 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CA1C3E6585D7694AA9C309F = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; + 4D6F99ED00A4D8683AF313B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 4D7F53313945ED27A7D16B80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + 4E259F36C28F1ACDAB4CC73F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + 4E3AE065222C8C87691DF2DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 4E5FFE3BE8774948082411F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 4F5843D423E67797070115B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F687965FBE86EAFDB3ACFEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 4F88933C6D2AB8A83EB14E16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 50672C2FACA36416A9A86310 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 50DBEAC56E34B9909BA9C7AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + 50EF77E1AB95027E82157377 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 514848DA3E69A69AB0099570 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51A0763AC785F93591517559 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51C6A6EB22F80FFF0A2800B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + 51D0841BECA0E4405EDEC794 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51D4296A417B284BB2666FE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + 52508197A5E3C0040A5651CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5283D6B68A74B09EB6D68711 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 52D8EA5A16D441BE77242E9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53151B683E11F420203E61C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewCppFileTemplate.h"; path = "../../Source/BinaryData/jucer_NewCppFileTemplate.h"; sourceTree = "SOURCE_ROOT"; }; + 53704A9E32438DCEFF6A155B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5382FC7D5D61AE2AD603240B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53CC682B805DD49B6E434A95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + 53DB14312FF9B861739F6747 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + 541BCBB19A86B7E793D397CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 54569C1C994F3A0255785EAA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 54747E887C1021F05F172B89 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 553725A0E3A391651ED1731E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FileHelpers.h"; path = "../../Source/Utility/jucer_FileHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 55F7CE15FA02A9F599A83A58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 563091B0916AD9AAA36C7DC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_OpenDocumentManager.h"; path = "../../Source/Application/jucer_OpenDocumentManager.h"; sourceTree = "SOURCE_ROOT"; }; + 5644F0AFA78E8AC7501978DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56B52F0F6AEDCEC78C38B5F1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + 56E24241C02F953589493551 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 56E8C48ADDEBD48A49C885CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5708CF7899EA21D0B72CDC2A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5745ECDAA4216EE2AF97E5AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + 578AA1C9D44D2E3AEA5D0278 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 57FD2D74F5DCFF42099CA738 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_extra/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 5843A5060852C6ACC4770EC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5852830ECC222BA36A30EC20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewFileWizard.h"; path = "../../Source/Project/jucer_NewFileWizard.h"; sourceTree = "SOURCE_ROOT"; }; + 58858190E0EE0AA6955EA236 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 58943E79C32289AB7273F59D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 589A6DAE96E2A7924646873F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59184A106CE3FAE8BFCD82FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 5B462BC3C5F8B6D72688ABF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5B8DF06BA7B7CB88C4922682 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5BC5622E615CA3B13C6F9046 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 5C82ACC4EE09A1DE1CCEC9A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CB6ACA0F14EDE47A4F7BCC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5D5E0592B7C61D523CC40C50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5DBA8C92675235B098946B18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5E674E757BBB4EA2F62B12E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F04029BEEB2A503B29B13FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + 5F4F4EAB042F2730F94A1CEA = { isa = PBXFileReference; lastKnownFileType = text.txt; name = AudioPluginXCodeScript.txt; path = ../../Source/BinaryData/AudioPluginXCodeScript.txt; sourceTree = "SOURCE_ROOT"; }; + 600102C053153EE4E1E72C85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 61593EB1738286004B592FD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + 6165970F48D70C4EF06D35C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 619D4AFD1F66A75AE05DDAE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 61A072FFE3185BDDC42DA144 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 620C2E1340FB7A40C1A2316B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 628869AB2D553E2A6C68C748 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 63092DCDC875D681A5677105 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_events/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 631983AA62673015F8D7453B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_StoredSettings.cpp"; path = "../../Source/Utility/jucer_StoredSettings.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6367309B2092121B86FE3AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63B72B34BC9AC448422EF1A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63B74F9D9F43393F6427501C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 64CF8D7D0C97323C1B4F16F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 65F4749184C84C2FDBB4C305 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_AudioPluginFilterTemplate.cpp"; path = "../../Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6658BF44509F89120F6C6F8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6670AE915E331809563CA152 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 66A67F1C25A59167AA729C9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + 6736FDF36413E6445C526C86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 68351D69C94230D1DCDB8345 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 684D88D936EDF46A76EC0538 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + 68C633ECE610641BB1D21C95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 68E1CA6424A84D91BEA46175 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 6920079B91BB1A48F82C7B0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + 6944804CF7BBD230EDF98E3F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + 69A5D13490A62DAE9A7D5A22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewProjectWizard.cpp"; path = "../../Source/Project/jucer_NewProjectWizard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A04C2E34DB0C6515FFF160B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6AA46ED6C6DDD5A7BC72F686 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 6B693819BC8F0548179A74AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 6B8796ED91A82AB5A8EB922F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B8E7B90EE615FA508709ADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6BAA8DF455FA84AE62E9DADC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 6CB2CFC7615B804CE7514A24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6CD1E57C60BC2917A46BF4AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D3FB966CF0EBF70802B3575 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6D596D17B6A79C2E6C4CFBD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + 6DFAF945FC3A7D0689C5CEC8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 6DFDC749FF36D8C27C997B3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E6140969908E7619F858740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CommonHeaders.h"; path = "../../Source/Application/jucer_CommonHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + 6E7353DFEA8825B515049ABB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_Android.h"; path = "../../Source/Project Saving/jucer_ProjectExport_Android.h"; sourceTree = "SOURCE_ROOT"; }; + 6E815592344CAA798C9848BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + 6E8B46E33BF7A0DD930A5100 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6EE1847181635ED3C0838A4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 6EE91491434D058606460AFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F8A53EDF09094C83DE4D111 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 6FA01AEDB9DB70FD1EA6D380 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_GroupInformationComponent.cpp"; path = "../../Source/Project/jucer_GroupInformationComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7074AEDE4B0416BC898DD27A = { isa = PBXFileReference; lastKnownFileType = image.png; name = "brushed_aluminium.png"; path = "../../Source/BinaryData/brushed_aluminium.png"; sourceTree = "SOURCE_ROOT"; }; + 70CF9F1991538524A7C4CE39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 70DC1D288DC6503E628A5A03 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 7211101FFA28400ADBB1D47A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Module.h"; path = "../../Source/Project/jucer_Module.h"; sourceTree = "SOURCE_ROOT"; }; + 72FED7B10FBF5AD1F504FDFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + 736E99601AB6C492D82DBF3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + 7435199CD81F307322FE1065 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7507846FD162469386479CDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75EB08697D38632CCBE734D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + 76439EAACE53C774CE07BD9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7723BAE1917C8A0418F2D23B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 77B05CF7C9BB9778EC06C396 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + 784287AD783AB8DDF512956F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78B148C840109794FED89FAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + 78B2E510278C074CC7BEFD75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78CA0E0F336229E2E2F111B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_SourceCodeEditor.h"; path = "../../Source/Code Editor/jucer_SourceCodeEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 79339A92305BFB7034095C67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 795AF1D634CA3E6FA899E0B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 796AEF1400580E81AAF23CE7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 79F7CC3E9B848AAA3A5C682B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B824A2F1BBE334B140BD8AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 7C02936574E000C436E3AD8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C48EA717C5B1136A39FF4FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7CBB297E627A7DC7EA12A8B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7CFA76389645D629E6C61B39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7D264E60AC701D3736527D8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 7D50F21E9F18C152C9C662D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + 7DCAE585F301C5591F96AF99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 7DF304ACC22704A1B2454B68 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_WindowTemplate.h"; path = "../../Source/BinaryData/jucer_WindowTemplate.h"; sourceTree = "SOURCE_ROOT"; }; + 7E0C5AFB74461AC174941BDD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + 7E3ACAD10381DA0D81093329 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + 7E45364D59D84EF762F1A928 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + 7ECD37A096E0B99622585950 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + 7EF2BB6A11579386E7181553 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7FC13BEF6B2A5E5E5E92D3FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7FDC4820A86DBA34E62B241E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7FF7EFDC3CF13673541E332D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80131CEDAA488DC654996A55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + 808503667FBB423F81780796 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 8090981F07A76E465DAAADF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ValueSourceHelpers.h"; path = "../../Source/Utility/jucer_ValueSourceHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 81A3ACDD205C8F9E424B51F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 81B74E2B42184AD339E89F0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 820291543BF93243B718F0EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_JucerTreeViewBase.h"; path = "../../Source/Utility/jucer_JucerTreeViewBase.h"; sourceTree = "SOURCE_ROOT"; }; + 82395D0DB15E012EDA1AC1FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + 82E0CDC77F8802A998A475D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 83056E8F17A0365667EBEA82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + 83EB0CAD2379BD53DBEB9D0F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + 8427B23B886EDC0E1839D7C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 84444B1D8FCE50BA88CDE7BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 848D1FD80E9CA20E4977B516 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; + 84AADFD13AF2A6F6F4681051 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + 8575C117887D90BDF84397C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + 859DCE43FF52E0BF3E9E9540 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 865A30767AAA44DAE7683C8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + 867C3547D1301204924989F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 86AE1EDF78EBEE3B5E25B419 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/json/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + 86DADC3D8463C21DF2751EA6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 86E468DE6556BB2AD76A3D80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectContentComponent.cpp"; path = "../../Source/Project/jucer_ProjectContentComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8702F43110E4CCA5E5F827F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 8803733D62CD6DE90727BCA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; + 882E28FED1A99E73B0035FC8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 88EA32274CBB5C3A4ECB9ECA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A0E175187B06CE9C368A73B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A5D40E78966BA8B0F8B542A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 8A9386451AEA0640E55E8869 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8B698D4DCFED3BCB6F30D69F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 8C0CDFB36933C81F98328B6D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 8C52A3DDA62A746AA7A68535 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_Main.cpp"; path = "../../Source/Application/jucer_Main.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D12E5100E73E3B7DAA10261 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + 8DDA82E1200B61D3B6C526E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + 8E00CF4CE2305C5CE5B60E37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8FF39B6B0D9DEB5BBE388A6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + 9069981E414A631B036CC9AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainWindow.cpp"; path = "../../Source/Application/jucer_MainWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 90BD70D106A80947463BCB1A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 90FFA0B59771716960A15448 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + 9101B27E4D98157EABCE9B8B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 914ADDB50ED7365F08BA91F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CodeHelpers.h"; path = "../../Source/Utility/jucer_CodeHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 915ACCF56213FACAB42B427D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 920DA9E20EB14DD7D6139DD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + 922DB1DA01DAF63CE86B5E53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectTreeViewBase.h"; path = "../../Source/Project/jucer_ProjectTreeViewBase.h"; sourceTree = "SOURCE_ROOT"; }; + 925CC15E1449AED03A1CE4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 939B1B2421964EEF71768BC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 93BD6F4BB776E432A4006696 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + 93D03B2BC76998A3BDA747E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginModule.h"; path = "../../Source/Project/jucer_AudioPluginModule.h"; sourceTree = "SOURCE_ROOT"; }; + 93D165846B65A638F1C25C4C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 943FD0D3066412B00830FD86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + 951128CA33CCDEF570436B1C = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; + 9539EC08D70D4719A89A4A30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 953ECF85818382C60F49544B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95CAB4F09E05FDBAED45812E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 96972221C7D4CB0FCD5C3E2B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96C105A8CFFC54B429A5B822 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 9718703E5D696761B85D25B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + 971FD8FEAE9A521A6983B8C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 974B862C51DA9A16CBBB3A29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_XCode.h"; path = "../../Source/Project Saving/jucer_ProjectExport_XCode.h"; sourceTree = "SOURCE_ROOT"; }; + 986707BA1F2C9F7343BD152F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 988186E582883A70582A40E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98A79B670CADD4E020130BAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98DC0221D9015F760E4613FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + 990F2A6080B28137CCE2D7B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + 99557681178F79E2A803C65C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 999BC36BBD71BD4117EFDFC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 99A9C369D8595E72707E866C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 99DD90B64BC5CC5FF68FA0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9A6FD2E154DA99F96FEA1405 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + 9A7E8AF6EFD287AF13B46104 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 9A9B6F9A13C9F01309CE0698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9AEC1D0512CFF7E9173BEE4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9B3F6F800DC0AD8C92D70E9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9B9CAD20E1243B4351B4C8D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_CodeHelpers.cpp"; path = "../../Source/Utility/jucer_CodeHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BB612A0BA1E2174488B5D0C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + 9BD2CA4A6C8DA8FF236F3AF1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BDE235186FA9648EEECB373 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BFC2FD520814B736535DB8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 9C04F9680F82BF279D528688 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectSaver.h"; path = "../../Source/Project Saving/jucer_ProjectSaver.h"; sourceTree = "SOURCE_ROOT"; }; + 9C9402994B7971876006AEBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 9CA825B77B8DA7FD318FCF7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 9D69073057BE050870B38749 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9DE1BC5241C70AF12B327932 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 9E36C30D10A1EF9305E8D663 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 9EE339FCA2CFDAE060CB8FE6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9EE5D1C3DFDD31D9D8237541 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F26333042DFB93B7DFEC870 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F5483F3EEF0A1E0C71B95A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F7896DA332F9718CAB6B162 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + A004A03A932CDECDED29F19C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + A071CAC9920625A3707CF949 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + A091C05141DDDF64A0735D05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + A132B5A63CFEF32407ACA5D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + A17913CCDA69951BC373F637 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + A1B4DCE00B10BF7C59F0E603 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + A1C82396A9A0F9A296AA7E6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A1D3838043B605010FB84975 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + A1DD0D7A34E118E3117ACAB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + A207C9202FF3FDE0C6B273D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + A243C85FC2C37FD73F115E67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + A28743047698F6C02194A218 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + A2A081D9DA35B3D1F183C3FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + A37D773DEFB69C248D703F40 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + A3DB226F40C387078864E68A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + A4740A64F0FC3BD980BE5D9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + A485A4F0363775AE730EA0E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + A513D5453FF52483D13BA026 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + A5864A527A761F92C237EB7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + A5D2E5A77E6A67E35440BF3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + A5E171104E49595BD9485DFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_JuceUpdater.h"; path = "../../Source/Application/jucer_JuceUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + A60E4D1A58B70887556782F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + A63DA2EB2FA9E6F88F63A09A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + A6D36E0244150AFBF63C1162 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6E4200E8939608555935EF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + A726B794D536985E1F35525F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + A8394930355B8BE2F67347F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + A8912DFCDA76B8897A5053CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + A8DB614600D348C730AC3930 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A8F9DE55079FC7F6440CF678 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + A9F6985D38A1C25F0C75215B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA2D4949BD61CE8B891731E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + AAA445B64E54BBA12D5E1358 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + AAB313919EE298E25D2EAD19 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + AACB287C990F7A7C51DE3C5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + AC49F1C1B969FA4F06C77B06 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + ACD82099C2B72FF43539FB4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + AD0AB6FA2DE544D6C77E69AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AD3C946C260F68C4AD2B491F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + AD44FFB01387088222D0E98F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + ADDCB0920D467DF2A309A5E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectInformationComponent.cpp"; path = "../../Source/Project/jucer_ProjectInformationComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AE1786BA679872921797AE25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + AE3E427DBCC8D50E3F356402 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + AE84254C46407F84EB70A370 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + AEE6CA38BE01F8C61920C203 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + AF34CB5CB61484442764640E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + AF71B1EBA9D281491F30F42B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF9D42A4C5359EE904DCAF8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + AFAF4EF669407663DCB0F452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + AFDCCE90EAB0DDCE50A5B89A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + AFF72BA2B130F3F9AC029080 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginEditorTemplate.h"; path = "../../Source/BinaryData/jucer_AudioPluginEditorTemplate.h"; sourceTree = "SOURCE_ROOT"; }; + B01CBF496E7C88105DF4B52A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + B1B44E3A7614189E65CB9FBE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + B1C57BEEEFD26639F1ADFC1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + B20A5F49C7E6342B71770D18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + B35200B1BC9B12580BAD4D3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + B368804F75C1079C9DE731E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + B40E8B05F3556B148477324B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + B483D960309FAFC193F9CDA2 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Source/BinaryData/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; + B4AA53EF291A383B3C50048A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + B54DB627A7AEB6AD820A0A90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + B5C4B75E1E71D9445A1AAEE0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + B65C16AB5714B1FBD65AD824 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6C40E843F7E8E7C4768B99E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6D03F8491E288FD4BC31445 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + B743DC50150100FFA2DE76AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + B79595279502C1A11A4E8C36 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + B7BE4498F5A592AAC43F0C93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + B8385E9A644BD3CD94876448 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectType.h"; path = "../../Source/Project/jucer_ProjectType.h"; sourceTree = "SOURCE_ROOT"; }; + B89AC6F01153CC6E222EE72E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + B8B309972EBB7F07305ACCCA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B8BEDDA33D5B1613213434F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B92070A7D5952D560DAD32C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + B945EB1DEE6D684E980B7428 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; + B9F806910507E82E7BFB15E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + BA1E340A922D0D7E543563CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA5C7DE347A73A87F687703C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + BA95268EEE80F9509EC1F76F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + BAC43B20E14A340CCF14119C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_Project.cpp"; path = "../../Source/Project/jucer_Project.cpp"; sourceTree = "SOURCE_ROOT"; }; + BBA6060656F685ED7FA52045 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_TreeViewTypes.h"; path = "../../Source/Project/jucer_TreeViewTypes.h"; sourceTree = "SOURCE_ROOT"; }; + BC17B02633EF1E31024051C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + BCAD13352CE76BA81629A6E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + BD7C18F07DE633B97B4478E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDBE6F06F82DF5C3BFF53B2B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDCE974230A7401C0E9D28BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + BDE24BA8FEAE654645079B84 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDEBB0AC32DDA8C16FFE6011 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + BE90AA37929461DF6F6A9E13 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OldSchoolLookAndFeel.h"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + BE94248CF8069E6707174CDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_JuceUpdater.cpp"; path = "../../Source/Application/jucer_JuceUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE97579323E97AF084D41476 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF171B0762D5550B797869F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + BF92CA3FD8F9A61AE358D151 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + C061E0D3680889C69B1F0E95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + C1FDD2DDB01AC8C4DECB2C10 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + C22E03FEBEB6921978C5612A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + C2D43E4F571D16F0E9B1E44E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C2ECD077AC4C784A67BC3DDE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + C38DFB0C94BBC1CE46A3D4E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C4718AEAC94D07FEB9DA0312 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + C48DCD3879352EB40F468B0F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + C4FA33B08560AD0D000EB498 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + C510495DF7602C36F216A50C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + C5307BECDD6325DCE92F50FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; + C56C7577E65C0BFA449E71FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5D5D2FFB030BD43160167EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5FCECA838D4D12D03929139 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C61E82D93918A611FAFD9E9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + C68355AA4D62939EECAD469E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + C6861DB44A31CE7A3DEFA083 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + C6E46DBD249D9426C95E2235 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + C717D2384896547D1CD993F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C71A9AF1EC7C5BE8DE2EADBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + C7608A3967D9AB9481848F2B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_DocumentEditorComponent.cpp"; path = "../../Source/Application/jucer_DocumentEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7B47372A9D5970E3D9A5400 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_GroupInformationComponent.h"; path = "../../Source/Project/jucer_GroupInformationComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C7E19F79947BEFC7DB7A9CE7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + C83992DA0BE30EA3CD06EA98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + C85B4D62B96F4A44890F20E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + C90C66C5727759D5CBD5FB07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9871C46DEDD05103443DC33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + CBE0B96838EE76C9CB8E1230 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC63B9EC2E95FD4AF7608D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + CD3216F23C7B273B010A8D12 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + CF6C8BD0DA3D8CD4E99EBADA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + CF8011B3C67B609032974DA5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewCppFileTemplate.cpp"; path = "../../Source/BinaryData/jucer_NewCppFileTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; + D00F311BFC3C2625C457CB9B = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + D1F9B0E9F5D54FE48BEB46EA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + E5D6C36496F5BC84D7213BE8 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + E96597BBC6A98255B51B94DC = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 25F52316D256B4534BED16D1 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Introjucer.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 9BC8AE609A07657CEF587548 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_StoredSettings.h"; path = "../../Source/Utility/jucer_StoredSettings.h"; sourceTree = "SOURCE_ROOT"; }; + BF3CEF080FA013E2778DCE90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Project.h"; path = "../../Source/Project/jucer_Project.h"; sourceTree = "SOURCE_ROOT"; }; + C8A229ACD244F402C57286CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_MSVC.h"; path = "../../Source/Project Saving/jucer_ProjectExport_MSVC.h"; sourceTree = "SOURCE_ROOT"; }; + C9616830BB2474066AC8C910 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ResourceFile.h"; path = "../../Source/Project Saving/jucer_ResourceFile.h"; sourceTree = "SOURCE_ROOT"; }; + C9DCA94BF8A4C583E5392755 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + CA62F9F7C5F0D77D8E33D91F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + CB36CD7F57D0F4231DC98686 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + CB48495010366C2E371BEFDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC3F5263B16932FF4E74B9D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CD140A1C0161176682F6CA29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD8F40A9EF6ECAD083543974 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + CDCAF0EC777DA2884AEB2B59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + CDDF5BDC75277F7B83A38885 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + CDF8F65F9079B2C14A740F0F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + CE1DFE4E3908943656E180AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF0615A1AF1A514A60322B50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + D0F1614CC861E8E0B59B7A06 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + D10D51A0A2D63F38B4D86A60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ResourceFile.cpp"; path = "../../Source/Project Saving/jucer_ResourceFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + D141433D3FE81F20490DE928 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + D253F74B7F5734984E568CA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + D2F1CF252F7EC62B35A21CB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + D2F80DA0946A5EE01FC016CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + D376B9B54EC944E766AFEC45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + D4697A0232AECE5DAC5E332E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D4E56676E2EF83404EDCBA8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + D4F2D42C58F4D86E00E76F31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + D503780AB98993E8F0BA1311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D5057D7B18ABD5E810A6F830 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + D526C38D581425949BA0E4AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FilePreviewComponent.h"; path = "../../Source/Application/jucer_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D53B54D1786A1FFC024BF064 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + D5A6D00DEFDC650AF432A698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_gui_basics/application/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + D678882D133090214AF681BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + D6C91E2BF537F75A80F5C1DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + D75EAC16FAECCC51E3669193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + D780ED33573AED5AD383A036 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D782DA091AD3ECE158FC6A5F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D7A7F1AA9F313B0CCAAA73A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + D800DE818BEDBF4579D15B1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + D926E13AB5AD647A7A00F486 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + D9342535EA61901A1AD816C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D95D7B49EC6C6BDCB5A1B988 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + D9B077E2ECDDA94961E134D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + D9E59DE07A815AB303A297D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + DB20268A566DABEAE3F2CBEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + DB876F7873F42DC685A58CA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC5E7FF30B01118F6DAEC38F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + DCCB75165B7C73A589498E87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD00494140C86144306A9356 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + DD2494D5F1C081898D616AF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD985A60FB76E976AF91852D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; + DE40B42B57F29C650CB7F2AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + DE5F3C9EF6BFFDE73AF9E7FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE8DF5D263F40F65581CFDE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEF579B1433EB8DEE7AB50F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF7BB5B6B394EDEEF5F5B4B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + DFC6364D81D9C60BD4CA9D12 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + E07C56267CBB46FC44EF2026 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + E1C16C872E34BCB144B469F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + E27F0860F27023BAA9798B46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + E284B565DBD647DC0830D23B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2C1C995D554A3F0A363CE58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + E2DBA3307837B64AFCCD8F8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + E3FF16862AA1B2F943DC616C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + E446FFE889CD490FDE3F0F2B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + E4E74B2BC3F3CB5A4F4DC55E = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + E530742870F07704E9616358 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E54D0994D31E20A0A05EBA2B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E570E57CC1FCEF78B54A7084 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + E60E28D1B7491047DEA236AE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectContentComponent.h"; path = "../../Source/Project/jucer_ProjectContentComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E642193A9990C48CFB6479A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E654E3A3CD45A888C5F773DF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + E65A820D34BF39478B7C5925 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_DocumentEditorComponent.h"; path = "../../Source/Application/jucer_DocumentEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E6F5CEC32EDC917B054467EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + E70CA21960A64CCB835725FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectType.cpp"; path = "../../Source/Project/jucer_ProjectType.cpp"; sourceTree = "SOURCE_ROOT"; }; + E73C7E17116F6085765622E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + E7A4604F766ABC8BE26C94A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7B6A0CBA0D27A095E83F5B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7D09B860F4D4A13D4312C38 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7E122AE104E79BB641B07B3 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + E7E1C4F416CFA44BE7DD1A74 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + E7E1D60BC7AEF79AA7B65B7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + E82C9EF1A74D867BBFF2090D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; + E99F5A31373E9BDEAC40792F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9B8C3CA480AE94BEA852EA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + EA0D43AB5F47506D5CDA81BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA73C136F52502AA11DB7E15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; + EBF7B2DEDAEEB28C1873F580 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + EC0AF83CFFFCCDE438BCAF25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + EC4F3034A642D9E037570D4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + ED94D4B502DF310763C6CE23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + EDAC762083E327A80CE9D260 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE2B934B45132C7D37FBA04D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + EE690110171E1648FF2118B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Application.h"; path = "../../Source/Application/jucer_Application.h"; sourceTree = "SOURCE_ROOT"; }; + EE775C35756DC364728D4675 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE8504403714A7CE606B5F34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + F03E2BDD36E6F4F53AB767A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Headers.h"; path = "../../Source/jucer_Headers.h"; sourceTree = "SOURCE_ROOT"; }; + F07EA5078D6BB60B698F5E12 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + F08EB921DB62255A4B6DE85A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + F100CFF192886B7699632A62 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + F1163B7856FDABA413A88D90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewFileWizard.cpp"; path = "../../Source/Project/jucer_NewFileWizard.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1164F66F799CEA74174328A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1974B6EDBA502BC36671D7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1BEFCAF20EA392DE762B876 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + F2499004037A1C1D8FEE1FD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2759373EAAC820F17409939 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + F2C7DE572E29A3D62EFB40F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2FA27430D90E92F0C9EBEDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_FilePreviewComponent.cpp"; path = "../../Source/Application/jucer_FilePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F406A0F41B2C7A512FDBC9E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + F40F5C63CA1098C21B96C80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + F591F5E5E162D4667AC26419 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/json/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5C02C740A62090A9E9BD25B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + F5C453F570A28FD5FA662C1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6938A1377A2609D6AEDC120 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + F6B1C18DDF8DFF1B3767F018 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6FF660331F6CBF9FFC85E88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F71AF6D2DF3E652F8B51EBAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ProjectExporter.cpp"; path = "../../Source/Project Saving/jucer_ProjectExporter.cpp"; sourceTree = "SOURCE_ROOT"; }; + F797071D88542C813CF7222A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_Module.cpp"; path = "../../Source/Project/jucer_Module.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7A91434FEFBE9AC130CD814 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewProjectWizard.h"; path = "../../Source/Project/jucer_NewProjectWizard.h"; sourceTree = "SOURCE_ROOT"; }; + F7D7A41EFE97269721C61BF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + F7E829D0B21B9C1B4790A245 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7EAAE1A1BD13685BFF6176E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + F8AC12B589FCB90E66D84729 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + F8D0F7C0A19B4ADB58454F16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F92A6000284C0FDA0A4845CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + F94ACCC426AB439B871699E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_TreeViewTypes.cpp"; path = "../../Source/Project/jucer_TreeViewTypes.cpp"; sourceTree = "SOURCE_ROOT"; }; + F994D79D564B5F8D06E6766E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F9D77BAA08889D69E0C43F25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAC03FFD051FA5B34EE9BA15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + FACB4278128DD3C2E2F488DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB1B309BB58E2C3F8C8E78F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBC98F0857AE7FCBD70C7C5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + FC7617617F95E4443AA568ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ObjCSuffix.h"; path = "../../../../modules/juce_core/native/juce_mac_ObjCSuffix.h"; sourceTree = "SOURCE_ROOT"; }; + FDD33A6837774904810208D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + FE283C418E7E545626881FF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + FE90AF2B2BC1106C0D4056BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + FF04AE9E4F2AAA29AC549461 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + FF10E9B389909FB45E229D5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + FF1F954094B14C1900C9495D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + ACBAFA7D92DD82AD44ABE68A = { isa = PBXGroup; children = ( + EE690110171E1648FF2118B8, + 23A8DE16C0CDB8EED18B008B, + 0400CB0E056A1D840304D2DE, + 2EEB1C074162F363C6599282, + 6E6140969908E7619F858740, + C7608A3967D9AB9481848F2B, + E65A820D34BF39478B7C5925, + F2FA27430D90E92F0C9EBEDF, + D526C38D581425949BA0E4AC, + F03E2BDD36E6F4F53AB767A8, + BE94248CF8069E6707174CDB, + A5E171104E49595BD9485DFD, + 8C52A3DDA62A746AA7A68535, + 9069981E414A631B036CC9AC, + 2CD34A70B4032C0426F7AA10, + 2247EE920DF0610CAF9F4513, + 563091B0916AD9AAA36C7DC5 ); name = Application; sourceTree = ""; }; + 891F84627A03FA733F37A199 = { isa = PBXGroup; children = ( + 93D03B2BC76998A3BDA747E8, + 6FA01AEDB9DB70FD1EA6D380, + C7B47372A9D5970E3D9A5400, + F797071D88542C813CF7222A, + 7211101FFA28400ADBB1D47A, + F1163B7856FDABA413A88D90, + 5852830ECC222BA36A30EC20, + 69A5D13490A62DAE9A7D5A22, + F7A91434FEFBE9AC130CD814, + BAC43B20E14A340CCF14119C, + BF3CEF080FA013E2778DCE90, + 86E468DE6556BB2AD76A3D80, + E60E28D1B7491047DEA236AE, + ADDCB0920D467DF2A309A5E3, + 2CFEE0E15C0ABF07EFE27FBF, + 4BAF0975F0958432B17D0D41, + 922DB1DA01DAF63CE86B5E53, + E70CA21960A64CCB835725FF, + B8385E9A644BD3CD94876448, + F94ACCC426AB439B871699E3, + BBA6060656F685ED7FA52045 ); name = Project; sourceTree = ""; }; + E345840128627D533DF908AC = { isa = PBXGroup; children = ( + 6E7353DFEA8825B515049ABB, + 05076CDF1511A5F8A8E18F1D, + C8A229ACD244F402C57286CD, + 974B862C51DA9A16CBBB3A29, + F71AF6D2DF3E652F8B51EBAB, + 35CB48D497F35BF3F6998F5D, + 9C04F9680F82BF279D528688, + D10D51A0A2D63F38B4D86A60, + C9616830BB2474066AC8C910 ); name = "Project Saving"; sourceTree = ""; }; + D93DED1F5F1B0E49E10A6760 = { isa = PBXGroup; children = ( + 9B9CAD20E1243B4351B4C8D8, + 914ADDB50ED7365F08BA91F9, + 188D03A4247F4BC0539F5C49, + 1729AEDC34001C31B8CC357C, + 553725A0E3A391651ED1731E, + 47DD50A5A9091F9900E0EAD9, + 820291543BF93243B718F0EE, + 0F249640243FBD5717F6ADD9, + 4A41FD3066D0979DB48691E5, + 1AF7EFBE4961C7B6C834BF54, + 1F421199C40092BFEE0658C2, + 631983AA62673015F8D7453B, + 9BC8AE609A07657CEF587548, + 8090981F07A76E465DAAADF4 ); name = Utility; sourceTree = ""; }; + FC22321797D433148500EDDA = { isa = PBXGroup; children = ( + 2E680E2C65684A4272AE079A, + 78CA0E0F336229E2E2F111B0 ); name = "Code Editor"; sourceTree = ""; }; + 88DFD62CB6545EE8CA5C485B = { isa = PBXGroup; children = ( + 5F4F4EAB042F2730F94A1CEA, + 7074AEDE4B0416BC898DD27A, + 0075C5208947159AF2802F3B, + AFF72BA2B130F3F9AC029080, + 65F4749184C84C2FDBB4C305, + 03D3053EDE47FED1919C6674, + 18D9EBA1DAE45EEF81FD5C8F, + 0FC137539030B1A9152F680C, + CF8011B3C67B609032974DA5, + 53151B683E11F420203E61C2, + 087959CCC447DA59FBD5787E, + 7DF304ACC22704A1B2454B68, + B483D960309FAFC193F9CDA2 ); name = BinaryData; sourceTree = ""; }; + D3109994DA6AD871BE85C4E2 = { isa = PBXGroup; children = ( + ACBAFA7D92DD82AD44ABE68A, + 891F84627A03FA733F37A199, + E345840128627D533DF908AC, + D93DED1F5F1B0E49E10A6760, + FC22321797D433148500EDDA, + 88DFD62CB6545EE8CA5C485B ); name = "The Introjucer"; sourceTree = ""; }; + ED7BB3F297250D7B43B2A536 = { isa = PBXGroup; children = ( + 795AF1D634CA3E6FA899E0B0, + CC63B9EC2E95FD4AF7608D8E, + 3FAFD16944A6674164D23914, + 51C6A6EB22F80FFF0A2800B3, + D2F80DA0946A5EE01FC016CA, + 1BE0A20FB2284A4DDC3A359E, + 52D8EA5A16D441BE77242E9D, + 93BD6F4BB776E432A4006696, + 04F670E070D31FB66C7DCAEB, + 025C33B85E0CCD3E238D4BDC, + C9871C46DEDD05103443DC33, + E7E1D60BC7AEF79AA7B65B7C, + F1BEFCAF20EA392DE762B876, + 261EFE631AA08FB2651B78C7, + A6E4200E8939608555935EF3, + FACB4278128DD3C2E2F488DA, + D9B077E2ECDDA94961E134D7, + 9AEC1D0512CFF7E9173BEE4E, + 31ACA83BF72B34828ADA1F3F ); name = text; sourceTree = ""; }; + F824830BD560E7906A8CD82B = { isa = PBXGroup; children = ( + 61A072FFE3185BDDC42DA144, + 50DBEAC56E34B9909BA9C7AD, + 225414095942818432AAE07D, + BF171B0762D5550B797869F2, + D7A7F1AA9F313B0CCAAA73A0, + 988186E582883A70582A40E1, + C68355AA4D62939EECAD469E, + B368804F75C1079C9DE731E3 ); name = maths; sourceTree = ""; }; + 01C121A5814A16A7CB907FB9 = { isa = PBXGroup; children = ( + 168F5F32F673036DDAEF1D8D, + 1B1A4A48AF3898485E7B1618, + 53CC682B805DD49B6E434A95, + A8F9DE55079FC7F6440CF678, + 2BC28F37C470E4770E479BCD, + 2416644BBABFD1F95EE12792, + 7E45364D59D84EF762F1A928, + 6AA46ED6C6DDD5A7BC72F686, + 9F7896DA332F9718CAB6B162, + 1A1B5A2E9F1DA2122D21F9DF, + 990F2A6080B28137CCE2D7B9, + 6E815592344CAA798C9848BF ); name = memory; sourceTree = ""; }; + 101599FA5E724FC0C78144B3 = { isa = PBXGroup; children = ( + C90C66C5727759D5CBD5FB07, + 66A67F1C25A59167AA729C9C, + DD00494140C86144306A9356, + 6DFAF945FC3A7D0689C5CEC8, + EE775C35756DC364728D4675, + 55F7CE15FA02A9F599A83A58, + 7E3ACAD10381DA0D81093329, + 24CA69C0CC466CD524021099, + 4F88933C6D2AB8A83EB14E16, + 90BD70D106A80947463BCB1A, + B4AA53EF291A383B3C50048A, + EE2B934B45132C7D37FBA04D, + CDDF5BDC75277F7B83A38885, + 2411094E8B601FD897AD24F9, + 37A0A38C2B5825B9A302879C, + 8C0CDFB36933C81F98328B6D, + C85B4D62B96F4A44890F20E2, + A63DA2EB2FA9E6F88F63A09A, + BDE24BA8FEAE654645079B84, + 7ECD37A096E0B99622585950 ); name = containers; sourceTree = ""; }; + 815C2090B70E6EECD913C0CA = { isa = PBXGroup; children = ( + DE8DF5D263F40F65581CFDE4, + 25D76CD621FC2A211CF7BB52, + F2759373EAAC820F17409939, + 3B061AB9BFD8883A6AE8BCE5, + 24CB53290AE7A023C1BDD0DC, + 0F2505BCD0232EB95D5199F2, + E6F5CEC32EDC917B054467EF, + 619D4AFD1F66A75AE05DDAE1, + 193908A02BA553DB5B30D759, + 46C2D683A917A9D3729EEAC4, + A17913CCDA69951BC373F637, + 75EB08697D38632CCBE734D8, + 541BCBB19A86B7E793D397CC, + E2C1C995D554A3F0A363CE58, + D678882D133090214AF681BC, + 6736FDF36413E6445C526C86, + 78B148C840109794FED89FAB, + 32D9A904B4186B64A61FA8CC, + 4E5FFE3BE8774948082411F0, + B1B44E3A7614189E65CB9FBE ); name = threads; sourceTree = ""; }; + D385600698057B290BC2AEF7 = { isa = PBXGroup; children = ( + 129CDB26CC63D4BC2EB1F2CC, + 4904357A3FFA61972A9E9D6F, + DFC6364D81D9C60BD4CA9D12, + F6938A1377A2609D6AEDC120, + DC5E7FF30B01118F6DAEC38F, + 3AB1D4CECEADD4836ACEEAEE ); name = time; sourceTree = ""; }; + 0B795464B0BFEE19C4F89F0F = { isa = PBXGroup; children = ( + C5D5D2FFB030BD43160167EB, + B35200B1BC9B12580BAD4D3D, + E2DBA3307837B64AFCCD8F8D, + AF34CB5CB61484442764640E, + 08D19EE7C17DCED7E7BBEEE7, + C6861DB44A31CE7A3DEFA083, + A5D2E5A77E6A67E35440BF3B, + E570E57CC1FCEF78B54A7084, + 2C7A9B2EDC724657EBF9FA83, + C4FA33B08560AD0D000EB498, + 83056E8F17A0365667EBEA82, + AAB313919EE298E25D2EAD19, + 3A2888667372BA896AACFBDB ); name = files; sourceTree = ""; }; + 20F9DB293E2CC9F98F43758C = { isa = PBXGroup; children = ( + 9F26333042DFB93B7DFEC870, + 0473C3BCB7A43F710B8EE36C, + 14337E3F4B92468517BA24AF, + 2BB98D1E325EF7BD90C6BBB4, + 6CD1E57C60BC2917A46BF4AD, + C2ECD077AC4C784A67BC3DDE, + FF04AE9E4F2AAA29AC549461, + EBF7B2DEDAEEB28C1873F580 ); name = network; sourceTree = ""; }; + 06D5C2B5F1F4E37AF1C7A425 = { isa = PBXGroup; children = ( + 3276A099EB6880D55D2D52C0, + B89AC6F01153CC6E222EE72E, + 00376BD04FB81AF9455D45EB, + 2A4B079CDB9C40EB912B6EEB, + C510495DF7602C36F216A50C, + F40F5C63CA1098C21B96C80F, + 5283D6B68A74B09EB6D68711, + 1614411A8699B82D1F7B0346, + 051D4EAC1602802E97B24A12, + 5DBA8C92675235B098946B18, + B9F806910507E82E7BFB15E0, + 939B1B2421964EEF71768BC7, + 2CB90BE5027B202896EBCE9D, + 589A6DAE96E2A7924646873F, + 8575C117887D90BDF84397C3 ); name = streams; sourceTree = ""; }; + CBF105D9162BB597EBC1B981 = { isa = PBXGroup; children = ( + F406A0F41B2C7A512FDBC9E0, + 02DDC84BAB18E091E2CE8CB3, + F1164F66F799CEA74174328A, + EE8504403714A7CE606B5F34 ); name = logging; sourceTree = ""; }; + ABD92B739720D08778AF88F8 = { isa = PBXGroup; children = ( + 3C48242E40D358BC6FF7FE53, + A071CAC9920625A3707CF949, + CB48495010366C2E371BEFDB, + 865A30767AAA44DAE7683C8B, + EC0AF83CFFFCCDE438BCAF25 ); name = system; sourceTree = ""; }; + F6C04F077B187FD605483DEB = { isa = PBXGroup; children = ( + FB1B309BB58E2C3F8C8E78F6, + 99A9C369D8595E72707E866C, + A004A03A932CDECDED29F19C, + 1039ABBDCC86BDC9D2663017 ); name = xml; sourceTree = ""; }; + 8B95EACC67485F3C5542ED5B = { isa = PBXGroup; children = ( + F591F5E5E162D4667AC26419, + 86AE1EDF78EBEE3B5E25B419 ); name = json; sourceTree = ""; }; + 59884479C6FFC940D3992EE6 = { isa = PBXGroup; children = ( + B92070A7D5952D560DAD32C4, + 68E1CA6424A84D91BEA46175, + B6C40E843F7E8E7C4768B99E, + 001730671DD492F405B37778, + F7EAAE1A1BD13685BFF6176E, + 1772B02BAF54F29AD99DF42E ); name = zip; sourceTree = ""; }; + 248A3D6E995D23F2AFDBF78B = { isa = PBXGroup; children = ( + CE1DFE4E3908943656E180AD, + EC4F3034A642D9E037570D4F ); name = "unit_tests"; sourceTree = ""; }; + A09D1A158BCD0A396549C1F3 = { isa = PBXGroup; children = ( + 3A55FEFC24C387D3B29444D5, + 4D7F53313945ED27A7D16B80, + 3AB744A14A560E541723DC9A, + 6BAA8DF455FA84AE62E9DADC, + AF9D42A4C5359EE904DCAF8E ); name = misc; sourceTree = ""; }; + 43F993699B5DE3F1B3D3C905 = { isa = PBXGroup; children = ( + 986707BA1F2C9F7343BD152F, + 81A3ACDD205C8F9E424B51F6, + C4718AEAC94D07FEB9DA0312, + AF71B1EBA9D281491F30F42B, + F07EA5078D6BB60B698F5E12, + 68351D69C94230D1DCDB8345, + A243C85FC2C37FD73F115E67, + D253F74B7F5734984E568CA7, + D926E13AB5AD647A7A00F486, + 240BCAD873E4360E54CA2A81, + 18B0B21258B417DFDEB9D5F0, + 05EEE241CC0DF57A7BE86C29, + F100CFF192886B7699632A62, + FC7617617F95E4443AA568ED, + B743DC50150100FFA2DE76AD, + 09697D1C3F7B90DD33A8090E, + 83EB0CAD2379BD53DBEB9D0F, + AAA445B64E54BBA12D5E1358, + 6367309B2092121B86FE3AA0, + FF1F954094B14C1900C9495D, + 2358EB55148891C87833008D, + 1353717582E55D6E4D074BA5, + A1B4DCE00B10BF7C59F0E603, + 2107C02B684C7F5B75662333, + 2E1F83CE00F5855083AFA246, + 514848DA3E69A69AB0099570 ); name = native; sourceTree = ""; }; + 8BA5B0B5CBCE8D29F02D341A = { isa = PBXGroup; children = ( + ED7BB3F297250D7B43B2A536, + F824830BD560E7906A8CD82B, + 01C121A5814A16A7CB907FB9, + 101599FA5E724FC0C78144B3, + 815C2090B70E6EECD913C0CA, + D385600698057B290BC2AEF7, + 0B795464B0BFEE19C4F89F0F, + 20F9DB293E2CC9F98F43758C, + 06D5C2B5F1F4E37AF1C7A425, + CBF105D9162BB597EBC1B981, + ABD92B739720D08778AF88F8, + F6C04F077B187FD605483DEB, + 8B95EACC67485F3C5542ED5B, + 59884479C6FFC940D3992EE6, + 248A3D6E995D23F2AFDBF78B, + A09D1A158BCD0A396549C1F3, + 43F993699B5DE3F1B3D3C905, + 2B074BFC193A25602E73D0CC, + 6670AE915E331809563CA152 ); name = "juce_core"; sourceTree = ""; }; + E45B4DA7B49FC8D397F1EA56 = { isa = PBXGroup; children = ( + 5708CF7899EA21D0B72CDC2A, + C5307BECDD6325DCE92F50FC, + 5C82ACC4EE09A1DE1CCEC9A0, + 84AADFD13AF2A6F6F4681051, + E82C9EF1A74D867BBFF2090D, + 1814F5A906001DF674D1C6C1 ); name = encryption; sourceTree = ""; }; + 1EB4CE7119697D9CCE604271 = { isa = PBXGroup; children = ( + EA73C136F52502AA11DB7E15, + 1A1C8AEC3C5AB2E972B0212E, + 848D1FD80E9CA20E4977B516, + DD985A60FB76E976AF91852D ); name = hashing; sourceTree = ""; }; + E58F94F6CDB786C1ED488C9C = { isa = PBXGroup; children = ( + E45B4DA7B49FC8D397F1EA56, + 1EB4CE7119697D9CCE604271, + 2210EB5F41023B53ADD0DFBD, + 8803733D62CD6DE90727BCA0 ); name = "juce_cryptography"; sourceTree = ""; }; + 2A8293EA2395BFFCA229F799 = { isa = PBXGroup; children = ( + 7C02936574E000C436E3AD8E, + 72FED7B10FBF5AD1F504FDFF, + 5D5E0592B7C61D523CC40C50, + A485A4F0363775AE730EA0E9 ); name = values; sourceTree = ""; }; + 8E7A1020B8096653D203C38A = { isa = PBXGroup; children = ( + 98DC0221D9015F760E4613FE, + F7E829D0B21B9C1B4790A245, + 1B03B2952A4DDA6E6A1C35F9 ); name = undomanager; sourceTree = ""; }; + BD9E9E80DDC81539B00DCAB6 = { isa = PBXGroup; children = ( + 4AF755C65E352951D80FB93B, + AD3C946C260F68C4AD2B491F, + E7D09B860F4D4A13D4312C38, + 9E36C30D10A1EF9305E8D663 ); name = "app_properties"; sourceTree = ""; }; + 6A6672A570C2C2418F926C82 = { isa = PBXGroup; children = ( + 2A8293EA2395BFFCA229F799, + 8E7A1020B8096653D203C38A, + BD9E9E80DDC81539B00DCAB6, + E7E122AE104E79BB641B07B3, + 352DA3794CAAE2400AE8F2E0 ); name = "juce_data_structures"; sourceTree = ""; }; + 2287744248275B6237708450 = { isa = PBXGroup; children = ( + 139C8BAED6DCEE26652651B8, + 38CE1587800D612BA0C394A5, + DF7BB5B6B394EDEEF5F5B4B8, + FAC03FFD051FA5B34EE9BA15, + B7BE4498F5A592AAC43F0C93, + CB36CD7F57D0F4231DC98686, + 0F382FC6B16658EF02D2C4F0, + 8FF39B6B0D9DEB5BBE388A6F, + C56C7577E65C0BFA449E71FE, + 1116222363E600327FC672A0 ); name = messages; sourceTree = ""; }; + 83DEE68BC6A9B685C3E75FEA = { isa = PBXGroup; children = ( + C9DCA94BF8A4C583E5392755, + 1BF5C3F5DC2285FBEF72B697, + 4F5843D423E67797070115B3, + 9A6FD2E154DA99F96FEA1405 ); name = timers; sourceTree = ""; }; + DCBE58B4AFE058653EBBBAAE = { isa = PBXGroup; children = ( + BF92CA3FD8F9A61AE358D151, + 9C9402994B7971876006AEBB, + 1A79A64F47F7B5083EEBB328, + 7FDC4820A86DBA34E62B241E, + 5F04029BEEB2A503B29B13FB, + C6E46DBD249D9426C95E2235, + C22E03FEBEB6921978C5612A, + AACB287C990F7A7C51DE3C5B, + 90FFA0B59771716960A15448 ); name = broadcasters; sourceTree = ""; }; + 084F5B9CA3F5822A7D9156AF = { isa = PBXGroup; children = ( + 7C48EA717C5B1136A39FF4FB, + F8AC12B589FCB90E66D84729, + ACD82099C2B72FF43539FB4E, + 50672C2FACA36416A9A86310 ); name = interprocess; sourceTree = ""; }; + 334607E7051C2D75E0AC85F6 = { isa = PBXGroup; children = ( + 54569C1C994F3A0255785EAA, + D95D7B49EC6C6BDCB5A1B988, + D0F1614CC861E8E0B59B7A06, + 600102C053153EE4E1E72C85, + 32070395DAFA5355D390A120, + A5864A527A761F92C237EB7C, + 157290445D39269EA81887A3, + 236FFB34CCADD5FC95DFF04D ); name = native; sourceTree = ""; }; + DE7F542DC0967F8EDCC4DCD0 = { isa = PBXGroup; children = ( + 2287744248275B6237708450, + 83DEE68BC6A9B685C3E75FEA, + DCBE58B4AFE058653EBBBAAE, + 084F5B9CA3F5822A7D9156AF, + 334607E7051C2D75E0AC85F6, + 63092DCDC875D681A5677105, + 8D12E5100E73E3B7DAA10261 ); name = "juce_events"; sourceTree = ""; }; + C3FB0CB81D460B4263689CAF = { isa = PBXGroup; children = ( + AFAF4EF669407663DCB0F452, + 0C956209A61542371A7A5257, + CBE0B96838EE76C9CB8E1230, + 4D6F99ED00A4D8683AF313B2, + 684D88D936EDF46A76EC0538, + 920DA9E20EB14DD7D6139DD5, + 00EFEF8A403F4EC9E4D5B7D5, + F7D7A41EFE97269721C61BF4, + C71A9AF1EC7C5BE8DE2EADBB ); name = colour; sourceTree = ""; }; + F417C2CB1A694D2C1A892F63 = { isa = PBXGroup; children = ( + 6CB2CFC7615B804CE7514A24, + 925CC15E1449AED03A1CE4F8, + C061E0D3680889C69B1F0E95, + 04F31392CA58A2A434CFF7FA, + 6EE1847181635ED3C0838A4B, + 6165970F48D70C4EF06D35C4, + 620C2E1340FB7A40C1A2316B ); name = contexts; sourceTree = ""; }; + DECB572AE46DB4A77186D494 = { isa = PBXGroup; children = ( + E07C56267CBB46FC44EF2026, + A726B794D536985E1F35525F, + E3FF16862AA1B2F943DC616C, + 31A8DF142F8B653E285C7E01, + 210A4FDD4A56CF817E5E8567, + 68C633ECE610641BB1D21C95, + A60E4D1A58B70887556782F4, + 796AEF1400580E81AAF23CE7 ); name = images; sourceTree = ""; }; + F3174EF36ADC4DC23BB304F2 = { isa = PBXGroup; children = ( + 221C1BAC4138F261F97121AD, + DB876F7873F42DC685A58CA7, + FE90AF2B2BC1106C0D4056BD ); name = "image_formats"; sourceTree = ""; }; + EEE23FCA48A7F9A0152A68EE = { isa = PBXGroup; children = ( + 953ECF85818382C60F49544B, + 56B52F0F6AEDCEC78C38B5F1, + AC49F1C1B969FA4F06C77B06, + B65C16AB5714B1FBD65AD824, + E1C16C872E34BCB144B469F9, + 21B6FE5EEB3E112385D62127, + 78B2E510278C074CC7BEFD75, + 3CD57938B4C273D0AA6E6B8B, + 0FAA46FE4A661AC6F65896CE, + 8A5D40E78966BA8B0F8B542A, + 79F7CC3E9B848AAA3A5C682B, + 82395D0DB15E012EDA1AC1FE, + B79595279502C1A11A4E8C36, + E27F0860F27023BAA9798B46, + B945EB1DEE6D684E980B7428, + F08EB921DB62255A4B6DE85A ); name = geometry; sourceTree = ""; }; + 14995D34FE0826A52FA5262D = { isa = PBXGroup; children = ( + 43B98AB307841FAAB076B882, + 1F7F2864FE54D79A0C42BE93, + DB20268A566DABEAE3F2CBEE, + 93D165846B65A638F1C25C4C ); name = placement; sourceTree = ""; }; + 59C2687AA614A77DA150AFAB = { isa = PBXGroup; children = ( + BA1E340A922D0D7E543563CF, + 7B824A2F1BBE334B140BD8AF, + 3F1501FE4867042830B25DD5, + CD3216F23C7B273B010A8D12, + 14B7611971E56AC319072A5A, + 0E80EFDB550393DB1C94F291, + 50EF77E1AB95027E82157377, + 6944804CF7BBD230EDF98E3F, + 1268E54178897254E9A8B94C, + 1C666CA3AF0AB4CDCA1D983F, + 02C516CEFEE3FE48B492FDC9, + 9BB612A0BA1E2174488B5D0C ); name = fonts; sourceTree = ""; }; + 8EB51FAF42AAEC7AC357396B = { isa = PBXGroup; children = ( + D2F1CF252F7EC62B35A21CB6, + 9DE1BC5241C70AF12B327932, + C7E19F79947BEFC7DB7A9CE7, + 6B693819BC8F0548179A74AA, + 11C55B714FE5D7CAFC35A0C7 ); name = effects; sourceTree = ""; }; + 6CA37BA48005B8EF0478B69E = { isa = PBXGroup; children = ( + 70CF9F1991538524A7C4CE39, + 784287AD783AB8DDF512956F, + 44BEFED79E5FE4F558458C14, + 9BFC2FD520814B736535DB8F, + 1F36217CE7A5B1D63D41EA6C, + 045B9C5D21C5C86FED140D81, + 0B96A219A0CFF707E5A13B68, + 2AADCE9D8BADF4DAC05CCA1E, + 21FAFA7F2C5D0E8D99876EA8, + D5057D7B18ABD5E810A6F830, + 2ED5D4ABB34DAA5D6E93A171, + 5843A5060852C6ACC4770EC7 ); name = native; sourceTree = ""; }; + E9819C83D0B797FC71811B1B = { isa = PBXGroup; children = ( + C3FB0CB81D460B4263689CAF, + F417C2CB1A694D2C1A892F63, + DECB572AE46DB4A77186D494, + F3174EF36ADC4DC23BB304F2, + EEE23FCA48A7F9A0152A68EE, + 14995D34FE0826A52FA5262D, + 59C2687AA614A77DA150AFAB, + 8EB51FAF42AAEC7AC357396B, + 6CA37BA48005B8EF0478B69E, + 30AD756E053A0663BF664823, + 8DDA82E1200B61D3B6C526E8 ); name = "juce_graphics"; sourceTree = ""; }; + 2CEAE8B236FEF5E06317EF3B = { isa = PBXGroup; children = ( + 3CABAAC1C4BC0D8105183D56, + 4C150A1BF98D747EC218A602, + FDD33A6837774904810208D5, + 0BEDB3FD70AB61D3E7891D74, + 08ADF7FC9BBE70F3C8186215, + A8912DFCDA76B8897A5053CF, + D141433D3FE81F20490DE928, + 96972221C7D4CB0FCD5C3E2B, + 4E259F36C28F1ACDAB4CC73F ); name = components; sourceTree = ""; }; + CD1AFCF4DFA46BA5BACBB1CB = { isa = PBXGroup; children = ( + 9D69073057BE050870B38749, + 336D0A9B4D15CF866BCE3DFF, + 58943E79C32289AB7273F59D, + 3D2B51C71E3676F283B778EA, + 47F4C6341177140302CE802A, + 1C76BBCD73ED21571035675F, + 3804BE13635F779ACB8C5491, + B8BEDDA33D5B1613213434F4, + CF0615A1AF1A514A60322B50, + 7EF2BB6A11579386E7181553, + 7DCAE585F301C5591F96AF99, + 117B5BB797DEC16E103A08F0, + AFDCCE90EAB0DDCE50A5B89A, + 199722DD9BA0E30C0506941E, + 2FBA1138907F4DE651870008, + B20A5F49C7E6342B71770D18, + BDEBB0AC32DDA8C16FFE6011 ); name = mouse; sourceTree = ""; }; + A186EF5D092D513F30A4FE23 = { isa = PBXGroup; children = ( + 148FC834CE2CAE18477AB708, + D780ED33573AED5AD383A036, + 88EA32274CBB5C3A4ECB9ECA, + E7E1C4F416CFA44BE7DD1A74, + DD2494D5F1C081898D616AF5, + 4E3AE065222C8C87691DF2DE, + 7CBB297E627A7DC7EA12A8B6, + 77B05CF7C9BB9778EC06C396, + F1974B6EDBA502BC36671D7C, + 915ACCF56213FACAB42B427D, + 2FADEBA1901F74204DE253BC, + 1ACDDD42A7050309C8765F75, + 143BB0407046E63639E1D79D ); name = keyboard; sourceTree = ""; }; + 617C7A87C00C7357D6B4CA43 = { isa = PBXGroup; children = ( + 82E0CDC77F8802A998A475D7, + FF10E9B389909FB45E229D5B, + D503780AB98993E8F0BA1311, + 64CF8D7D0C97323C1B4F16F2, + CDCAF0EC777DA2884AEB2B59, + 79339A92305BFB7034095C67, + 4BC9122A6E6496EAF716560E, + D6C91E2BF537F75A80F5C1DB, + 8A0E175187B06CE9C368A73B, + C83992DA0BE30EA3CD06EA98, + BDBE6F06F82DF5C3BFF53B2B, + 51D4296A417B284BB2666FE8, + 9B3F6F800DC0AD8C92D70E9A, + F6FF660331F6CBF9FFC85E88, + A1DD0D7A34E118E3117ACAB4, + 227646334D4CBE863870234C, + D4E56676E2EF83404EDCBA8C, + 7723BAE1917C8A0418F2D23B, + 76439EAACE53C774CE07BD9E, + A8394930355B8BE2F67347F7, + 7FC13BEF6B2A5E5E5E92D3FC, + E530742870F07704E9616358, + 04960EE443D073F4CB7121FB, + 444CA4B9CAD1F5ED5C45448B, + 9A7E8AF6EFD287AF13B46104, + A1D3838043B605010FB84975, + AE1786BA679872921797AE25 ); name = widgets; sourceTree = ""; }; + FDA3E07A3631D25DFEA73850 = { isa = PBXGroup; children = ( + 4AE0078871D92B6085C28313, + 8A9386451AEA0640E55E8869, + 9EE339FCA2CFDAE060CB8FE6, + BDCE974230A7401C0E9D28BB, + 0CEF14D37EC664CA49A2B04D, + 14EB1DA96BC8E4901FC953F6, + 45B8EAC396722D21E6658AE8, + C717D2384896547D1CD993F6, + 63B72B34BC9AC448422EF1A0, + 96C105A8CFFC54B429A5B822, + 4977BC2F82532C86B116A07F, + CD140A1C0161176682F6CA29, + 882E28FED1A99E73B0035FC8, + E446FFE889CD490FDE3F0F2B, + 59184A106CE3FAE8BFCD82FF, + 0906A934A2797145A64FF423, + C38DFB0C94BBC1CE46A3D4E4, + 412B48D0F05D78A73064B36B, + 8E00CF4CE2305C5CE5B60E37 ); name = windows; sourceTree = ""; }; + 1183520311BFD05477F94ECA = { isa = PBXGroup; children = ( + 5644F0AFA78E8AC7501978DE, + 628869AB2D553E2A6C68C748, + 7507846FD162469386479CDB, + E654E3A3CD45A888C5F773DF, + D376B9B54EC944E766AFEC45, + F92A6000284C0FDA0A4845CA ); name = menus; sourceTree = ""; }; + 3644BF38DFC789105B7D80FB = { isa = PBXGroup; children = ( + 4924392751ACE0C9F2076599, + 490FEE91E483534632094C67, + 9EE5D1C3DFDD31D9D8237541, + C61E82D93918A611FAFD9E9F, + 98A79B670CADD4E020130BAF, + 7D50F21E9F18C152C9C662D5, + 271A1D94B96A8B7C949FD8ED, + AE3E427DBCC8D50E3F356402, + 6EE91491434D058606460AFB, + A8DB614600D348C730AC3930, + EA0D43AB5F47506D5CDA81BB, + FE283C418E7E545626881FF0, + 8427B23B886EDC0E1839D7C1, + 240889EAEAC85D85AB61011B, + 442031AD0C8A280B68CE9EF0, + 9A9B6F9A13C9F01309CE0698, + F2499004037A1C1D8FEE1FD6, + 2CD0B485ED8C5E8402671D36, + F8D0F7C0A19B4ADB58454F16, + 0BDFA0E402BA7E6B366E953C, + 4524F465153A8F6BDC236349, + 2E96852D55A9C1DEAF76FF6D, + 4437785A3DFF4AB2D6A78DB3, + 61593EB1738286004B592FD5, + 42B5C970B8DCD08A864F2208, + 5BC5622E615CA3B13C6F9046, + A4740A64F0FC3BD980BE5D9C, + 943FD0D3066412B00830FD86, + 5B8DF06BA7B7CB88C4922682, + 14DCD95D4AFE5101B036A6EC, + 125CD8A5E5B57840F5154ACD, + 189357BBA18F12A3242706A0 ); name = layout; sourceTree = ""; }; + 58CA858FC033FD1F47ADA039 = { isa = PBXGroup; children = ( + F6B1C18DDF8DFF1B3767F018, + 0CC9026D5056CA9C1FE64A64, + 6DFDC749FF36D8C27C997B3E, + 5745ECDAA4216EE2AF97E5AF, + 202591AAB1ABCFE458F33F7C, + 215EAB10AE8D19F23AD2BDBC, + 138550CC958D2F029C01B4E7, + 736E99601AB6C492D82DBF3A, + 9F5483F3EEF0A1E0C71B95A5, + CDF8F65F9079B2C14A740F0F, + 9BD2CA4A6C8DA8FF236F3AF1, + 06411E446478986E7E65FE6B, + A207C9202FF3FDE0C6B273D2, + 6D596D17B6A79C2E6C4CFBD1, + A28743047698F6C02194A218, + 3F222D26A164E7AD78A33B3D, + 263F153E8A277E02A3754BBF, + 206D399250A42034706E5434 ); name = buttons; sourceTree = ""; }; + A3BF94AE00810C812E121816 = { isa = PBXGroup; children = ( + 0019A20E8A7B6B383B6ADE26, + B40E8B05F3556B148477324B, + F2C7DE572E29A3D62EFB40F8, + 859DCE43FF52E0BF3E9E9540, + 35AF9D5F0603CF6CE2D355A1, + 8B698D4DCFED3BCB6F30D69F, + E7A4604F766ABC8BE26C94A1, + 80131CEDAA488DC654996A55, + 867C3547D1301204924989F9, + 6920079B91BB1A48F82C7B0A, + 7FF7EFDC3CF13673541E332D, + 49A941554FB8B2B20F219182, + 5E674E757BBB4EA2F62B12E9, + B54DB627A7AEB6AD820A0A90 ); name = positioning; sourceTree = ""; }; + 69E5820210E99179A52F1A77 = { isa = PBXGroup; children = ( + DEF579B1433EB8DEE7AB50F8, + E73C7E17116F6085765622E3, + AA2D4949BD61CE8B891731E4, + F5C02C740A62090A9E9BD25B, + C1FDD2DDB01AC8C4DECB2C10, + FBC98F0857AE7FCBD70C7C5C, + 003CA65912AC8048759478F9, + A132B5A63CFEF32407ACA5D7, + 05C936573E73B8AACBDF3191, + 40A83A20ED109AAAE6D63AF4, + 99557681178F79E2A803C65C, + B01CBF496E7C88105DF4B52A, + 51A0763AC785F93591517559, + BCAD13352CE76BA81629A6E7, + 16017456A45F74C692A3AE45 ); name = drawables; sourceTree = ""; }; + B2243BBE276C148522C5987E = { isa = PBXGroup; children = ( + 52508197A5E3C0040A5651CF, + 6B8E7B90EE615FA508709ADF, + E284B565DBD647DC0830D23B, + D782DA091AD3ECE158FC6A5F, + D4697A0232AECE5DAC5E332E, + 20FC504E8FB8D30E890A9837, + BD7C18F07DE633B97B4478E7, + 6D3FB966CF0EBF70802B3575, + 5382FC7D5D61AE2AD603240B, + A513D5453FF52483D13BA026, + 2DF5213993DF1380E29C848A, + B8B309972EBB7F07305ACCCA, + EDAC762083E327A80CE9D260, + F994D79D564B5F8D06E6766E ); name = properties; sourceTree = ""; }; + C2A68B1BEC638D0513BF25C1 = { isa = PBXGroup; children = ( + 9BDE235186FA9648EEECB373, + AE84254C46407F84EB70A370 ); name = lookandfeel; sourceTree = ""; }; + 00C2E5EAA46FC2E94B735C42 = { isa = PBXGroup; children = ( + DE5F3C9EF6BFFDE73AF9E7FC, + 808503667FBB423F81780796, + BE97579323E97AF084D41476, + C48DCD3879352EB40F468B0F, + C5FCECA838D4D12D03929139, + 304EEA3B0DF16CE313D8A0BA, + 07EF1095F6D45A29AF2A6B6F, + 4543EACC9AEA1894A380624F, + 0411DD6D48DBCEBAA51BEE49, + A6D36E0244150AFBF63C1162, + 9718703E5D696761B85D25B8, + F5C453F570A28FD5FA662C1E, + 9CA825B77B8DA7FD318FCF7C, + 6658BF44509F89120F6C6F8C, + E642193A9990C48CFB6479A9, + 21D1D6A04B25346CD5524B89, + 0819B9CBFBA5F410C41C978A, + 7CFA76389645D629E6C61B39, + 1F28C0018228A0F749E5658E, + 21F4416597D1AB02D38BA62E, + 6E8B46E33BF7A0DD930A5100, + C2D43E4F571D16F0E9B1E44E, + 578AA1C9D44D2E3AEA5D0278, + 050D2D209E6423528D0138F7, + A091C05141DDDF64A0735D05, + CD8F40A9EF6ECAD083543974 ); name = filebrowser; sourceTree = ""; }; + 952AFE51A503A04FFF4B0EF7 = { isa = PBXGroup; children = ( + D4F2D42C58F4D86E00E76F31, + B5C4B75E1E71D9445A1AAEE0, + D75EAC16FAECCC51E3669193, + 54747E887C1021F05F172B89, + 7E0C5AFB74461AC174941BDD, + 1B2B08359011B2BD7B07A677, + BA5C7DE347A73A87F687703C, + 9101B27E4D98157EABCE9B8B, + AEE6CA38BE01F8C61920C203 ); name = commands; sourceTree = ""; }; + 76F28FCB72DD5943D08F3342 = { isa = PBXGroup; children = ( + 5B462BC3C5F8B6D72688ABF3, + 999BC36BBD71BD4117EFDFC4, + 14F096198DE1002BF2CC56EF, + 422524EBD7DA6530970A7872 ); name = misc; sourceTree = ""; }; + DD0FDFC530E403BD51C86315 = { isa = PBXGroup; children = ( + 6A04C2E34DB0C6515FFF160B, + 2252F2B96709F3C7CE07B5E7, + D5A6D00DEFDC650AF432A698 ); name = application; sourceTree = ""; }; + 8EAF68A83656BC02B4B7C9C9 = { isa = PBXGroup; children = ( + E99F5A31373E9BDEAC40792F, + A9F6985D38A1C25F0C75215B, + B1C57BEEEFD26639F1ADFC1C, + E9B8C3CA480AE94BEA852EA9, + 2A060BB0D79BEC3CF644F553, + 4B98FC7F079F93BCC4D65C86, + DCCB75165B7C73A589498E87, + 0C747328CDADAE15E86E5E93, + 3058CCA7DE9BB9B37FE73297, + 1EC7A8EEAD8ADF43BF014C2C, + 7D264E60AC701D3736527D8C, + A37D773DEFB69C248D703F40, + 95CAB4F09E05FDBAED45812E, + 1241F3A1FCDF100CD75D5E78, + 84444B1D8FCE50BA88CDE7BF, + 0D100A1B27A72355323CB637 ); name = native; sourceTree = ""; }; + 2A27F41171A44038C2A1CB56 = { isa = PBXGroup; children = ( + 2CEAE8B236FEF5E06317EF3B, + CD1AFCF4DFA46BA5BACBB1CB, + A186EF5D092D513F30A4FE23, + 617C7A87C00C7357D6B4CA43, + FDA3E07A3631D25DFEA73850, + 1183520311BFD05477F94ECA, + 3644BF38DFC789105B7D80FB, + 58CA858FC033FD1F47ADA039, + A3BF94AE00810C812E121816, + 69E5820210E99179A52F1A77, + B2243BBE276C148522C5987E, + C2A68B1BEC638D0513BF25C1, + 00C2E5EAA46FC2E94B735C42, + 952AFE51A503A04FFF4B0EF7, + 76F28FCB72DD5943D08F3342, + DD0FDFC530E403BD51C86315, + 8EAF68A83656BC02B4B7C9C9, + E4E74B2BC3F3CB5A4F4DC55E, + 2B8548461E318DCB3354DB43 ); name = "juce_gui_basics"; sourceTree = ""; }; + 9DEFBE65118D0527555955A2 = { isa = PBXGroup; children = ( + BC17B02633EF1E31024051C2, + 430239E0574C157689D83206, + AD0AB6FA2DE544D6C77E69AC, + CC3F5263B16932FF4E74B9D8, + 318F4AB64A5D4068CC1C4F29, + 09349C0C8300CA414AAE93A0, + 6F8A53EDF09094C83DE4D111 ); name = "code_editor"; sourceTree = ""; }; + 1D09D8A2B803860D8927C366 = { isa = PBXGroup; children = ( + 3419904525A3F1FF0CC50687, + BA95268EEE80F9509EC1F76F ); name = documents; sourceTree = ""; }; + A1B124604F7F471E01D8AA6E = { isa = PBXGroup; children = ( + A1C82396A9A0F9A296AA7E6B, + 99DD90B64BC5CC5FF68FA0C5, + 86DADC3D8463C21DF2751EA6 ); name = embedding; sourceTree = ""; }; + DD35BF639F13CB10E9ACF910 = { isa = PBXGroup; children = ( + 26C4A38525D6A327C0102D18, + BE90AA37929461DF6F6A9E13 ); name = lookandfeel; sourceTree = ""; }; + F50C1ADB9086D61160516CB7 = { isa = PBXGroup; children = ( + 53DB14312FF9B861739F6747, + 51D0841BECA0E4405EDEC794, + 5CB6ACA0F14EDE47A4F7BCC2, + 1B9552C3FEAFF2071C860987, + B6D03F8491E288FD4BC31445, + AD44FFB01387088222D0E98F, + 971FD8FEAE9A521A6983B8C9, + 25E306BB0D875CB0934C405C, + 322A68B4BBEE9CC039B9E024, + 6B8796ED91A82AB5A8EB922F, + DE40B42B57F29C650CB7F2AD, + 56E8C48ADDEBD48A49C885CB, + CA62F9F7C5F0D77D8E33D91F, + F9D77BAA08889D69E0C43F25, + E54D0994D31E20A0A05EBA2B, + 63B74F9D9F43393F6427501C ); name = misc; sourceTree = ""; }; + 4C0BD8F18173E3D675D03872 = { isa = PBXGroup; children = ( + 53704A9E32438DCEFF6A155B, + 58858190E0EE0AA6955EA236, + 2E540A9137E245EFADCFABB3, + D9342535EA61901A1AD816C6, + D800DE818BEDBF4579D15B1D, + 441A0EA83E44264CB977F21B, + A3DB226F40C387078864E68A, + ED94D4B502DF310763C6CE23, + 81B74E2B42184AD339E89F0B, + 7435199CD81F307322FE1065, + E7B6A0CBA0D27A095E83F5B7 ); name = native; sourceTree = ""; }; + DFC8A876133A671741A5FCA2 = { isa = PBXGroup; children = ( + 9DEFBE65118D0527555955A2, + 1D09D8A2B803860D8927C366, + A1B124604F7F471E01D8AA6E, + DD35BF639F13CB10E9ACF910, + F50C1ADB9086D61160516CB7, + 4C0BD8F18173E3D675D03872, + 57FD2D74F5DCFF42099CA738, + 17C645785FB20AA2E91ED84B ); name = "juce_gui_extra"; sourceTree = ""; }; + 8A24D1B6925535A868974986 = { isa = PBXGroup; children = ( + 8BA5B0B5CBCE8D29F02D341A, + E58F94F6CDB786C1ED488C9C, + 6A6672A570C2C2418F926C82, + DE7F542DC0967F8EDCC4DCD0, + E9819C83D0B797FC71811B1B, + 2A27F41171A44038C2A1CB56, + DFC8A876133A671741A5FCA2 ); name = "Juce Modules"; sourceTree = ""; }; + 2C6746F66EF4444F53B3221F = { isa = PBXGroup; children = ( + 8702F43110E4CCA5E5F827F5, + 472F9A90F685220D730EBF6C, + 4F687965FBE86EAFDB3ACFEC, + 38F29C2049566C47993A6D92, + D53B54D1786A1FFC024BF064, + D9E59DE07A815AB303A297D9, + 56E24241C02F953589493551, + A2A081D9DA35B3D1F183C3FE, + 70DC1D288DC6503E628A5A03, + 9539EC08D70D4719A89A4A30, + 364D1A9B113320407A7E57B9 ); name = "Juce Library Code"; sourceTree = ""; }; + 8180B5894A78501084B8F133 = { isa = PBXGroup; children = ( + 4CA1C3E6585D7694AA9C309F, + 951128CA33CCDEF570436B1C ); name = Resources; sourceTree = ""; }; + 0FFEF043CA89142B18C79ABE = { isa = PBXGroup; children = ( + D00F311BFC3C2625C457CB9B, + D1F9B0E9F5D54FE48BEB46EA, + E96597BBC6A98255B51B94DC, + E5D6C36496F5BC84D7213BE8, + CF6C8BD0DA3D8CD4E99EBADA ); name = Frameworks; sourceTree = ""; }; + 92ABB8016546F41128399E9D = { isa = PBXGroup; children = ( + 25F52316D256B4534BED16D1 ); name = Products; sourceTree = ""; }; + 3CC531922CC2D398E283A845 = { isa = PBXGroup; children = ( + D3109994DA6AD871BE85C4E2, + 8A24D1B6925535A868974986, + 2C6746F66EF4444F53B3221F, + 8180B5894A78501084B8F133, + 0FFEF043CA89142B18C79ABE, + 92ABB8016546F41128399E9D ); name = Source; sourceTree = ""; }; + EA0BCC969703B2D179089E55 = { isa = XCBuildConfiguration; buildSettings = { + HEADER_SEARCH_PATHS = "../../JuceLibraryCode $(inherited)"; GCC_OPTIMIZATION_LEVEL = 0; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; ONLY_ACTIVE_ARCH = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "_DEBUG=1", "DEBUG=1", "JUCE_ObjCExtraSuffix=zNNCr", "JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Debug; }; - 673FACB8969ADED17ACEFF7C = { isa = XCBuildConfiguration; buildSettings = { + B159CF4275B8A90122629FF4 = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; + HEADER_SEARCH_PATHS = "../../JuceLibraryCode $(inherited)"; GCC_OPTIMIZATION_LEVEL = 3; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -288,7 +1637,7 @@ "NDEBUG=1", "JUCE_ObjCExtraSuffix=zNNCr", "JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Release; }; - 69D26A715A354ED1735D8438 = { isa = XCBuildConfiguration; buildSettings = { + C42924A24AB55E6A940423EA = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -303,7 +1652,7 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; PRODUCT_NAME = "Introjucer"; }; name = Debug; }; - 4C681DED23FC5056A83C964C = { isa = XCBuildConfiguration; buildSettings = { + 70135D15D7E0D8410C42BBA3 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -318,61 +1667,59 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; PRODUCT_NAME = "Introjucer"; }; name = Release; }; - 045AC698C60073CCF5CC6116 = { isa = XCConfigurationList; buildConfigurations = ( - 69D26A715A354ED1735D8438, - 4C681DED23FC5056A83C964C ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - AC9DE3D3A6632D0494CC8609 = { isa = XCConfigurationList; buildConfigurations = ( - DD9313457B3248E7646270A4, - 673FACB8969ADED17ACEFF7C ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 87CCE4CB1FAB40B6F21DEACE = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - AADBA9EB828F8C6A5E38593B ); runOnlyForDeploymentPostprocessing = 0; }; - 5362E03ADF975A126C1F2F7B = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D6D0659F3F3504012246F13D, - 8BAE4D8EA7F247DA0A4D3A5C, - 280FE650B3F02AD9E821EA37, - 9950893AA82F86F1EEE55BED, - C2F198C7058FC1A88A600645, - A7C05B907BBCB4288FBC6428, - 6B48E4B12BB56C2254F293DF, - 7A7859C8F2DFDC8D80FE0F0E, - 5BD727176204D71F2E0F42CC, - DA3D1949878344EAE971E9CF, - 086FC650CA4A39161F5DC34A, - 7192D99BD62492851CC34B39, - 379C4FA4F9F4F856A245D8F1, - A70571C45ECEB18061181367, - 7B65A9D3D6D5798649D90FA0, - 257C8841AC7634499B0B3D0A, - 85572197E35546BB69861758, - 0E22757B983B4F600F1B7916, - 1501CEE9D0FD3C1185F6413B, - FF1962A57973208A90330B3C, - E2DFFAAE26E2D87AE3CE3136, - 0F780301B225C3022C346CD4, - 59B173809CEC75EC0C74D1CF, - 69CA42E334E4BA09E4FE8B65, - 0C3A85F58C34FA91D16664EB, - 08C0959668FFC1A90B4BA8E6, - 1457A52734BA97A13610ECF1, - 20EDB5C810855EB960F520FC ); runOnlyForDeploymentPostprocessing = 0; }; - 08881173C882953BE5F11D6C = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1FD6A59398E3618F79475867, - B703C44375C75E5AB099E74A, - 7BDFF9F0E16DF33A980F46DC, - 52A4EFC1F732A9D5BBB61AF5, - C65112B26E0BB0BB8DBD3F3C, - 2C3270317859BA6DF8EC1458, - 022036CBB0FBE47C417A6222, - AA7B50F22523465B07D4A25B, - 93C9F3F27602A33DDC9C2250, - DBE3CE9482B19CF1AE700805, - 2E6836738CE7EB452FDC7E9A, - E63745F5956C698352A2ACA0 ); runOnlyForDeploymentPostprocessing = 0; }; - EB946A866C16B958168C9A39 = { isa = PBXNativeTarget; buildConfigurationList = AC9DE3D3A6632D0494CC8609; buildPhases = ( - 87CCE4CB1FAB40B6F21DEACE, - 5362E03ADF975A126C1F2F7B, - 08881173C882953BE5F11D6C ); buildRules = ( ); dependencies = ( ); name = "The Introjucer"; productName = "The Introjucer"; productReference = 12E1601866B3489844AFD645; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - D64DFDDF5D2CD74A8171CF81 = { isa = PBXProject; buildConfigurationList = 045AC698C60073CCF5CC6116; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = F03291953F0A7EA46599E27B; projectDirPath = ""; projectRoot = ""; targets = ( EB946A866C16B958168C9A39 ); }; + F90407F24422C589DA251604 = { isa = XCConfigurationList; buildConfigurations = ( + C42924A24AB55E6A940423EA, + 70135D15D7E0D8410C42BBA3 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 9D7584E9B3803102EC798231 = { isa = XCConfigurationList; buildConfigurations = ( + EA0BCC969703B2D179089E55, + B159CF4275B8A90122629FF4 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + C009859650B4628FDD068941 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 1321E6C1C6170B6C898AD09D ); runOnlyForDeploymentPostprocessing = 0; }; + 84449D044096A03F2582904B = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 954A036F5DDB375DB23FFB3E, + 3EB3D569250C4BA4CA9AF578, + 9A4D477F1924C31A52AF5C79, + B1A786B525176BEE309998EA, + 95B44E6C74B1DED31DBE37EB, + AA9D0B8E23F3D87A23DE9F8A, + 244BA1BDA5FAA465EA3F9C6D, + 349B4C837D996E71E08657A5, + 3FCA61C401007B243E2E9035, + 5BC89E7905397ABECD25ACCD, + FBE57B26FE59319AA2E8B59D, + 30B921C38DCEE787B294B746, + 676D2E1E750E61AA2FAA335E, + BB1D52AE45F40BEDCEBC993F, + 9CBD0A9A700D28081C8182C5, + 8012E6487639A7368E4C4470, + B18DEBB2CBB335AFAE249E8E, + 1F37544891EC8DBB5E500C1C, + 110221CD5578153B528AD2BE, + CD4F7B119CE718BCE78D61F4, + 78CB463DD98A55313A543859, + 123810DAF8AF758928916ECE, + C9F11BA62D6D092A300363F7, + F6635694A01FFBF5EF0968DB, + FCE6F604C00039A32649CB69, + 3C5267E06A897B0DC0F7EA50, + 7E72CB84146E1B4B168356CA, + 24AE6B973834AF7E0DE1F228, + AF55472121E1C56E5EB9CB4B, + 284EBBCCB7C9FCB23BE43971, + EF27EC7543BED0B8DD66A098, + 756B48DA5FA991E74035E812, + 81E6980930B09FF108123186 ); runOnlyForDeploymentPostprocessing = 0; }; + B8D802107FEE6AD60F5309A3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 1E76E36772355E2A43CF4961, + 241F29FCBB7A17BB44A0B10C, + 49C22786B54C5DC94E4654B8, + 11D42F7EC6E6539D79A7F4B1, + B980464FA2761CCD64B1FAD6 ); runOnlyForDeploymentPostprocessing = 0; }; + FE688C03195D5E72123A75BF = { isa = PBXNativeTarget; buildConfigurationList = 9D7584E9B3803102EC798231; buildPhases = ( + C009859650B4628FDD068941, + 84449D044096A03F2582904B, + B8D802107FEE6AD60F5309A3 ); buildRules = ( ); dependencies = ( ); name = "The Introjucer"; productName = "The Introjucer"; productReference = 25F52316D256B4534BED16D1; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + 74EA481348A24104E6ACE009 = { isa = PBXProject; buildConfigurationList = F90407F24422C589DA251604; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 3CC531922CC2D398E283A845; projectDirPath = ""; projectRoot = ""; targets = ( FE688C03195D5E72123A75BF ); }; }; - rootObject = D64DFDDF5D2CD74A8171CF81; + rootObject = 74EA481348A24104E6ACE009; } diff --git a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.sln b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.sln index 7bf226f0a1..cd5c853b9e 100644 --- a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.sln +++ b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.sln @@ -1,6 +1,6 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 +Microsoft Visual Studio Solution File, Format Version 9.00 # Visual C++ Express 2005 -Project("{4C35D249-2981-3D26-0C2E-BDE1841F8430}") = "The Introjucer", "The Introjucer.vcproj", "{C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}" +Project("{62DDBD62-D03F-FBCA-D85C-731B2D53653D}") = "The Introjucer", "The Introjucer.vcproj", "{26ABE2A4-1F2F-8375-088D-D692A4408B5A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,10 +8,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.ActiveCfg = Debug|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.Build.0 = Debug|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.ActiveCfg = Release|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.Build.0 = Release|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Debug|Win32.ActiveCfg = Debug|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Debug|Win32.Build.0 = Debug|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Release|Win32.ActiveCfg = Release|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj index afeac2d2dd..957c1e0b5f 100644 --- a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj +++ b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj @@ -3,7 +3,7 @@ @@ -32,7 +32,7 @@ Optimization="0" BufferSecurityCheck="" DebugInformationFormat="4" - AdditionalIncludeDirectories="" + AdditionalIncludeDirectories="..\..\JuceLibraryCode" PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2005_78A5003=1" RuntimeLibrary="1" RuntimeTypeInfo="true" @@ -54,6 +54,7 @@ GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug\Introjucer.pdb" SubSystem="2" + GenerateManifest="true" TargetMachine="1"/> @@ -85,10 +86,10 @@ TypeLibraryName=".\Release\Introjucer.tlb" HeaderFileName=""/> @@ -131,6 +132,8 @@ + + @@ -145,13 +148,12 @@ - - - - + + + @@ -160,24 +162,26 @@ - - - - - - - - - + + + + + + + + + + + @@ -194,6 +198,10 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - diff --git a/extras/Introjucer/Builds/VisualStudio2005/icon.ico b/extras/Introjucer/Builds/VisualStudio2005/icon.ico index b5dbab53ed..8a216cd7f4 100644 Binary files a/extras/Introjucer/Builds/VisualStudio2005/icon.ico and b/extras/Introjucer/Builds/VisualStudio2005/icon.ico differ diff --git a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.sln b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.sln index f1c0a65930..0ab6613061 100644 --- a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.sln +++ b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C++ Express 2008 -Project("{4C35D249-2981-3D26-0C2E-BDE1841F8430}") = "The Introjucer", "The Introjucer.vcproj", "{C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}" +Project("{62DDBD62-D03F-FBCA-D85C-731B2D53653D}") = "The Introjucer", "The Introjucer.vcproj", "{26ABE2A4-1F2F-8375-088D-D692A4408B5A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,10 +8,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.ActiveCfg = Debug|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.Build.0 = Debug|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.ActiveCfg = Release|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.Build.0 = Release|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Debug|Win32.ActiveCfg = Debug|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Debug|Win32.Build.0 = Debug|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Release|Win32.ActiveCfg = Release|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj index b77ad5f9f6..1e04196276 100644 --- a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj +++ b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj @@ -3,7 +3,7 @@ @@ -32,7 +32,7 @@ Optimization="0" BufferSecurityCheck="" DebugInformationFormat="4" - AdditionalIncludeDirectories="" + AdditionalIncludeDirectories="..\..\JuceLibraryCode" PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2008_78A5006=1" RuntimeLibrary="1" RuntimeTypeInfo="true" @@ -54,6 +54,7 @@ GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug\Introjucer.pdb" SubSystem="2" + GenerateManifest="true" TargetMachine="1"/> @@ -85,10 +86,10 @@ TypeLibraryName=".\Release\Introjucer.tlb" HeaderFileName=""/> @@ -131,6 +132,8 @@ + + @@ -145,13 +148,12 @@ - - - - + + + @@ -160,24 +162,26 @@ - - - - - - - - - + + + + + + + + + + + @@ -194,6 +198,10 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - diff --git a/extras/Introjucer/Builds/VisualStudio2008/icon.ico b/extras/Introjucer/Builds/VisualStudio2008/icon.ico index b5dbab53ed..8a216cd7f4 100644 Binary files a/extras/Introjucer/Builds/VisualStudio2008/icon.ico and b/extras/Introjucer/Builds/VisualStudio2008/icon.ico differ diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.sln b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.sln index 2de9a54e10..9f25febcdc 100644 --- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.sln +++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.sln @@ -1,5 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 11.00 -Project("{4C35D249-2981-3D26-0C2E-BDE1841F8430}") = "The Introjucer", "The Introjucer.vcxproj", "{C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}" +# Visual Studio 2010 +Project("{62DDBD62-D03F-FBCA-D85C-731B2D53653D}") = "The Introjucer", "The Introjucer.vcxproj", "{26ABE2A4-1F2F-8375-088D-D692A4408B5A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -7,10 +8,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.ActiveCfg = Debug|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.Build.0 = Debug|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.ActiveCfg = Release|Win32 - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.Build.0 = Release|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Debug|Win32.ActiveCfg = Debug|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Debug|Win32.Build.0 = Debug|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Release|Win32.ActiveCfg = Release|Win32 + {26ABE2A4-1F2F-8375-088D-D692A4408B5A}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj index fb75b53591..b931013b0d 100644 --- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj +++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj @@ -12,7 +12,7 @@ - {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884} + {26ABE2A4-1F2F-8375-088D-D692A4408B5A} @@ -38,9 +38,11 @@ .\Debug\ .\Debug\ Introjucer + true .\Release\ .\Release\ Introjucer + true @@ -53,7 +55,7 @@ Disabled EditAndContinue - %(AdditionalIncludeDirectories) + ..\..\JuceLibraryCode;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) MultiThreadedDebug true @@ -63,6 +65,7 @@ .\Debug\ Level4 true + true _DEBUG;%(PreprocessorDefinitions) @@ -91,7 +94,7 @@ MaxSpeed - %(AdditionalIncludeDirectories) + ..\..\JuceLibraryCode;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) MultiThreaded true @@ -101,6 +104,7 @@ .\Release\ Level4 true + true NDEBUG;%(PreprocessorDefinitions) @@ -122,38 +126,848 @@ + - + - - + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + - - - - + + + + + + + + @@ -161,23 +975,24 @@ - + + - - - - - - - + + + + + + + @@ -187,10 +1002,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters index 9e619dc50f..385d8d2b0d 100644 --- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters +++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters @@ -3,28 +3,235 @@ - {ED748238-26CC-87E9-E280-F46B6D62B64F} + {08497553-90EF-7F50-1FCE-C399F0F4F301} - {5AFE9176-C481-3BD6-B1A2-E344873B906D} - - - {7D1B95A0-4E50-DD4E-402D-840BD601DCF8} + {BCABA310-8FA8-9483-44C8-901CB254B038} - {B5B5C922-2604-DF83-A0B9-259C3DBA1AF6} + {9CFC1C13-C955-D9BB-A0F7-363446AC2CBB} + + + {330A7495-9D53-820D-AD63-2DC83D2ED767} - {647FC3C6-4A06-A9FA-2C82-8F8744A223EE} + {BF742880-2B1E-3276-CFB8-089DC7DD5EE5} + + + {D05B051C-4835-D6A6-3AF4-B61963EFC368} - {8CE77BC0-4FCD-C9EA-C5D2-4E2ED36FDAAD} + {768EDA37-3A9B-E5C5-8D35-27FEF74CCBA0} + + + {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} + + + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} + + + {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} + + + {476C69CE-0B67-6B85-E888-45D91E37A29E} + + + {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} + + + {0608ADE9-66EF-1A19-6D57-12D07F76EB53} + + + {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} + + + {C9F6D785-BF78-5AA1-B479-111C65397864} + + + {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} + + + {DA0DC4AC-B511-A2D4-199A-C93454D6F114} + + + {91929C6F-7902-B87D-5260-2F6CBF8ACD93} + + + {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} + + + {4634FFAE-9586-A970-364C-4FDDA635F99F} + + + {F2B2F310-F30F-7166-42A9-9BF9C230DA78} + + + {5B662103-FB59-7229-1076-6A6665724ED0} + + + {F03654BC-34D8-F975-BEA3-750CC2783D23} + + + {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} + + + {FA891A58-9FDA-9651-43C4-714A19B5D08D} + + + {C79A4D23-7866-8F3E-AC39-BD68C52A9259} + + + {3C7C8F35-6C08-9866-6663-6FEFE2EFC9FC} + + + {7703D2CE-C32A-936A-0EEF-949FE6E52EB5} + + + {8D283B6C-13BA-9EF6-1B18-B1C393786943} + + + {928D8FCC-5E00-174B-6538-93E8D75AB396} + + + {1988E68A-A964-64CA-0E0C-26FF9BC5176C} + + + {3DF036EA-3B80-553B-2494-3AAC835CAE75} + + + {358AEA11-3F96-36AE-7B32-71373B5C5396} + + + {F2A38F45-6E55-E147-2E52-64A89FDD9D59} + + + {6172822C-01A5-E824-12DA-FA43FA934D35} + + + {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} + + + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} + + + {6322B88F-984A-C3CD-6263-38D7AA49B6EC} + + + {73C1E759-AD90-59A3-942E-2D10FAA29107} + + + {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} + + + {4926B3FF-E797-F586-857A-69D9703FA2D1} + + + {EBC65085-3AD5-280C-1A29-2B1683643AA1} + + + {413F481F-075C-2958-115C-D8268682FCB7} + + + {69E1179D-76EC-26DC-C3E6-6602ED26D783} + + + {C1A1A236-AB01-173E-96C3-0706BFF93B1E} + + + {1182303F-ECA3-166D-AC0C-92C5E762CB93} + + + {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} + + + {E37D25CD-4350-4614-055B-7ABC55E67895} + + + {FFC6E1CC-C772-75E6-5087-FB5D4E016799} + + + {8E43579F-C185-266D-DD67-F8B95BD80F2F} + + + {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} + + + {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} + + + {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} + + + {75F1F352-251A-75E0-D941-8431588F5C1E} + + + {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} + + + {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} + + + {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} + + + {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} + + + {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} + + + {5A0AA36E-3957-E413-14C6-31CBE15271DF} + + + {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} + + + {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} + + + {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} + + + {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} + + + {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} + + + {61712B09-5783-ADFA-2001-5A0C3D7764EB} + + + {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} + + + {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} + + + {C60A6FCA-9462-922E-AD8D-69F10C9049AF} + + + {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} + + + {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} + + + {4980B18D-FEDE-B773-F254-E3B5207D81F0} + + + {66C9B809-8739-A217-C78D-A15D6089B8E3} + + + {C413328B-5D81-89EE-F4F3-75752E700DE4} - {F7048EA6-F4B2-F31B-E402-E05D678A1111} + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + The Introjucer\Application + The Introjucer\Application @@ -43,12 +250,12 @@ The Introjucer\Application - - The Introjucer\Code Editor - The Introjucer\Project + + The Introjucer\Project + The Introjucer\Project @@ -61,9 +268,6 @@ The Introjucer\Project - - The Introjucer\Project - The Introjucer\Project @@ -73,12 +277,15 @@ The Introjucer\Project - - The Introjucer\Project - The Introjucer\Project + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + The Introjucer\Utility @@ -94,6 +301,9 @@ The Introjucer\Utility + + The Introjucer\Code Editor + The Introjucer\BinaryData @@ -121,139 +331,1975 @@ The Introjucer\BinaryData - - Juce Library Code + + Juce Modules\juce_core\text - - Juce Library Code + + Juce Modules\juce_core\text - - Juce Library Code + + Juce Modules\juce_core\text - - Juce Library Code + + Juce Modules\juce_core\text - - Juce Library Code + + Juce Modules\juce_core\text - - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Application - - - The Introjucer\Code Editor - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Project - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\Utility - - - The Introjucer\BinaryData - - - The Introjucer\BinaryData - - - The Introjucer\BinaryData - - - The Introjucer\BinaryData + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\json + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\lookandfeel + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Application + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project + + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + + + The Introjucer\Project Saving + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Utility + + + The Introjucer\Code Editor + + + The Introjucer\BinaryData + + + The Introjucer\BinaryData + + + The Introjucer\BinaryData + + + The Introjucer\BinaryData + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\json + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\lookandfeel + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra Juce Library Code diff --git a/extras/Introjucer/Builds/VisualStudio2010/icon.ico b/extras/Introjucer/Builds/VisualStudio2010/icon.ico index b5dbab53ed..8a216cd7f4 100644 Binary files a/extras/Introjucer/Builds/VisualStudio2010/icon.ico and b/extras/Introjucer/Builds/VisualStudio2010/icon.ico differ diff --git a/extras/Introjucer/Introjucer.jucer b/extras/Introjucer/Introjucer.jucer index 04798859c4..f3655fc78a 100644 --- a/extras/Introjucer/Introjucer.jucer +++ b/extras/Introjucer/Introjucer.jucer @@ -10,31 +10,60 @@ pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0" pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="TheIntrojucerAU" pluginAUViewClass="TheIntrojucerAU_V1" - pluginRTASCategory="" bundleIdentifier="com.rawmaterialsoftware.introjucer" - bigIcon="rVgowdy"> + pluginRTASCategory="" bundleIdentifier="com.rawmaterialsoftware.introjucer"> + juceFolder="../.." documentExtensions=".jucer" objCExtraSuffix="zNNCr" + bigIcon="rVgowdy"> + + + + + + rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1" + bigIcon="rVgowdy"> + + + + + - + rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1" + bigIcon="rVgowdy"> + + + + + + + + + + + + rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="../.." + bigIcon="rVgowdy"> + + + + + - - - - + + - - - - + + + - - - - - - - - - + + + + + + + + + + + @@ -153,6 +183,12 @@ + + + + @@ -183,13 +219,18 @@ + JUCE_USE_FLAC="disabled" JUCE_USE_CDBURNER="disabled" JUCE_USE_CDREADER="disabled" + JUCE_USE_CAMERA="disabled" JUCE_PLUGINHOST_VST="disabled" JUCE_PLUGINHOST_AU="disabled" + JUCE_USE_OGGVORBIS="disabled" JUCE_USE_COREIMAGE_LOADER="disabled"/> + + + + + + + + + + + diff --git a/extras/Introjucer/JuceLibraryCode/AppConfig.h b/extras/Introjucer/JuceLibraryCode/AppConfig.h index f40ea35f2c..1a37c9571c 100644 --- a/extras/Introjucer/JuceLibraryCode/AppConfig.h +++ b/extras/Introjucer/JuceLibraryCode/AppConfig.h @@ -3,39 +3,80 @@ IMPORTANT! This file is auto-generated each time you save your project - if you alter its contents, your changes may be overwritten! - If you want to change any of these values, use the Introjucer to do so, rather than - editing this file directly! + If you want to change any of these values, use the Introjucer to do so, + rather than editing this file directly! - Any commented-out settings will fall back to using the default values that - they are given in juce_Config.h + Any commented-out settings will assume their default values. */ -//#define JUCE_FORCE_DEBUG -//#define JUCE_LOG_ASSERTIONS -#define JUCE_ASIO 0 -#define JUCE_WASAPI 0 -#define JUCE_DIRECTSOUND 0 -//#define JUCE_DIRECTSHOW -//#define JUCE_MEDIAFOUNDATION -#define JUCE_ALSA 0 -#define JUCE_QUICKTIME 0 -#define JUCE_OPENGL 0 -//#define JUCE_DIRECT2D -#define JUCE_USE_FLAC 0 -#define JUCE_USE_OGGVORBIS 0 -#define JUCE_USE_CDBURNER 0 -#define JUCE_USE_CDREADER 0 -#define JUCE_USE_CAMERA 0 -//#define JUCE_ENABLE_REPAINT_DEBUGGING -//#define JUCE_USE_XINERAMA -//#define JUCE_USE_XSHM -//#define JUCE_USE_XRENDER -//#define JUCE_USE_XCURSOR -#define JUCE_PLUGINHOST_VST 0 -#define JUCE_PLUGINHOST_AU 0 -//#define JUCE_ONLY_BUILD_CORE_LIBRARY -//#define JUCE_WEB_BROWSER -//#define JUCE_SUPPORT_CARBON -//#define JUCE_CHECK_MEMORY_LEAKS -//#define JUCE_CATCH_UNHANDLED_EXCEPTIONS +#ifndef __JUCE_APPCONFIG_M70QFTRRK__ +#define __JUCE_APPCONFIG_M70QFTRRK__ + +//============================================================================== +#define JUCE_MODULE_AVAILABLE_juce_core 1 +#define JUCE_MODULE_AVAILABLE_juce_cryptography 1 +#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 +#define JUCE_MODULE_AVAILABLE_juce_events 1 +#define JUCE_MODULE_AVAILABLE_juce_graphics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 + +//============================================================================== +// juce_core flags: + +#ifndef JUCE_FORCE_DEBUG + //#define JUCE_FORCE_DEBUG +#endif + +#ifndef JUCE_LOG_ASSERTIONS + //#define JUCE_LOG_ASSERTIONS +#endif + +#ifndef JUCE_CHECK_MEMORY_LEAKS + //#define JUCE_CHECK_MEMORY_LEAKS +#endif + +#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES + //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES +#endif + +//============================================================================== +// juce_graphics flags: + +#ifndef JUCE_USE_COREIMAGE_LOADER + #define JUCE_USE_COREIMAGE_LOADER 0 +#endif + +#ifndef JUCE_USE_DIRECTWRITE + //#define JUCE_USE_DIRECTWRITE +#endif + +//============================================================================== +// juce_gui_basics flags: + +#ifndef JUCE_ENABLE_REPAINT_DEBUGGING + //#define JUCE_ENABLE_REPAINT_DEBUGGING +#endif + +#ifndef JUCE_USE_XSHM + //#define JUCE_USE_XSHM +#endif + +#ifndef JUCE_USE_XRENDER + //#define JUCE_USE_XRENDER +#endif + +#ifndef JUCE_USE_XCURSOR + //#define JUCE_USE_XCURSOR +#endif + +//============================================================================== +// juce_gui_extra flags: + +#ifndef JUCE_WEB_BROWSER + //#define JUCE_WEB_BROWSER +#endif + + +#endif // __JUCE_APPCONFIG_M70QFTRRK__ diff --git a/extras/Introjucer/JuceLibraryCode/BinaryData.cpp b/extras/Introjucer/JuceLibraryCode/BinaryData.cpp index 733c4c6032..d9fa19fcf3 100644 --- a/extras/Introjucer/JuceLibraryCode/BinaryData.cpp +++ b/extras/Introjucer/JuceLibraryCode/BinaryData.cpp @@ -5,38 +5,8 @@ */ -#include "BinaryData.h" - - -const char* BinaryData::getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +namespace BinaryData { - int hash = 0; - if (resourceNameUTF8 != 0) - while (*resourceNameUTF8 != 0) - hash = 31 * hash + *resourceNameUTF8++; - - switch (hash) - { - case 0x44be9398: numBytes = BinaryData::AudioPluginXCodeScript_txtSize; return BinaryData::AudioPluginXCodeScript_txt; - case 0x950fd7dd: numBytes = BinaryData::brushed_aluminium_pngSize; return BinaryData::brushed_aluminium_png; - case 0x27c5a93a: numBytes = BinaryData::jucer_AudioPluginEditorTemplate_cppSize; return BinaryData::jucer_AudioPluginEditorTemplate_cpp; - case 0x4d0721bf: numBytes = BinaryData::jucer_AudioPluginEditorTemplate_hSize; return BinaryData::jucer_AudioPluginEditorTemplate_h; - case 0x51b49ac5: numBytes = BinaryData::jucer_AudioPluginFilterTemplate_cppSize; return BinaryData::jucer_AudioPluginFilterTemplate_cpp; - case 0x488afa0a: numBytes = BinaryData::jucer_AudioPluginFilterTemplate_hSize; return BinaryData::jucer_AudioPluginFilterTemplate_h; - case 0x8905395b: numBytes = BinaryData::jucer_MainConsoleAppTemplate_cppSize; return BinaryData::jucer_MainConsoleAppTemplate_cpp; - case 0x7a0186b1: numBytes = BinaryData::jucer_MainTemplate_cppSize; return BinaryData::jucer_MainTemplate_cpp; - case 0x02a2a077: numBytes = BinaryData::jucer_NewCppFileTemplate_cppSize; return BinaryData::jucer_NewCppFileTemplate_cpp; - case 0x0842c43c: numBytes = BinaryData::jucer_NewCppFileTemplate_hSize; return BinaryData::jucer_NewCppFileTemplate_h; - case 0x3f052be8: numBytes = BinaryData::jucer_WindowTemplate_cppSize; return BinaryData::jucer_WindowTemplate_cpp; - case 0xb20377ed: numBytes = BinaryData::jucer_WindowTemplate_hSize; return BinaryData::jucer_WindowTemplate_h; - case 0x154a7275: numBytes = BinaryData::juce_icon_pngSize; return BinaryData::juce_icon_png; - default: break; - } - - numBytes = 0; - return 0; -} - //================== AudioPluginXCodeScript.txt ================== static const unsigned char temp_43731c40[] = @@ -85,7 +55,7 @@ static const unsigned char temp_43731c40[] = " cp -r \"$original\" \"$RTAS\"\r\n" "fi\r\n"; -const char* BinaryData::AudioPluginXCodeScript_txt = (const char*) temp_43731c40; +const char* AudioPluginXCodeScript_txt = (const char*) temp_43731c40; //================== brushed_aluminium.png ================== static const unsigned char temp_9aa09877[] = @@ -297,14 +267,14 @@ static const unsigned char temp_9aa09877[] = 141,20,180,27,72,224,103,149,105,220,112,255,4,89,131,64,4,23,42,115,215,231,245,156,43,234,151,42,11,138,116,121,82,135,79,3,255,178,101,152,75,177,57,53,232,244,11,46,246,251,67,98,174,121,193,110,222,30,8,28,132,216,112,88,219,73,10,62,169,115,60, 233,137,16,177,58,98,69,178,95,87,93,157,5,174,93,143,182,244,186,210,167,70,131,11,5,88,2,12,0,52,103,80,26,178,200,170,15,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* BinaryData::brushed_aluminium_png = (const char*) temp_9aa09877; +const char* brushed_aluminium_png = (const char*) temp_9aa09877; //================== jucer_AudioPluginEditorTemplate.cpp ================== static const unsigned char temp_6eda5614[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated by the Introjucer!\r\n" "\r\n" " It contains the basic startup code for a Juce application.\r\n" "\r\n" @@ -337,14 +307,14 @@ static const unsigned char temp_6eda5614[] = " Justification::centred, 1);\r\n" "}\r\n"; -const char* BinaryData::jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_6eda5614; +const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_6eda5614; //================== jucer_AudioPluginEditorTemplate.h ================== static const unsigned char temp_67353d19[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated by the Introjucer!\r\n" "\r\n" " It contains the basic startup code for a Juce application.\r\n" "\r\n" @@ -374,14 +344,14 @@ static const unsigned char temp_67353d19[] = "\r\n" "#endif // HEADERGUARD\r\n"; -const char* BinaryData::jucer_AudioPluginEditorTemplate_h = (const char*) temp_67353d19; +const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_67353d19; //================== jucer_AudioPluginFilterTemplate.cpp ================== static const unsigned char temp_98c9479f[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated!\r\n" "\r\n" " It contains the basic startup code for a Juce application.\r\n" "\r\n" @@ -556,14 +526,14 @@ static const unsigned char temp_98c9479f[] = " return new FILTERCLASSNAME();\r\n" "}\r\n"; -const char* BinaryData::jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_98c9479f; +const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_98c9479f; //================== jucer_AudioPluginFilterTemplate.h ================== static const unsigned char temp_62b91564[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated!\r\n" "\r\n" " It contains the basic startup code for a Juce application.\r\n" "\r\n" @@ -633,14 +603,14 @@ static const unsigned char temp_62b91564[] = "\r\n" "#endif // HEADERGUARD\r\n"; -const char* BinaryData::jucer_AudioPluginFilterTemplate_h = (const char*) temp_62b91564; +const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_62b91564; //================== jucer_MainConsoleAppTemplate.cpp ================== static const unsigned char temp_794304c3[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated!\r\n" "\r\n" " It contains the basic startup code for a Juce application.\r\n" "\r\n" @@ -660,14 +630,14 @@ static const unsigned char temp_794304c3[] = " return 0;\r\n" "}\r\n"; -const char* BinaryData::jucer_MainConsoleAppTemplate_cpp = (const char*) temp_794304c3; +const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_794304c3; //================== jucer_MainTemplate.cpp ================== static const unsigned char temp_292512d9[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated by the Introjucer!\r\n" "\r\n" " It contains the basic startup code for a Juce application.\r\n" "\r\n" @@ -738,7 +708,7 @@ static const unsigned char temp_292512d9[] = "// This macro generates the main() routine that starts the app.\r\n" "START_JUCE_APPLICATION(APPCLASSNAME)\r\n"; -const char* BinaryData::jucer_MainTemplate_cpp = (const char*) temp_292512d9; +const char* jucer_MainTemplate_cpp = (const char*) temp_292512d9; //================== jucer_NewCppFileTemplate.cpp ================== static const unsigned char temp_79decf5f[] = @@ -753,7 +723,7 @@ static const unsigned char temp_79decf5f[] = "*/\r\n" "\r\n"; -const char* BinaryData::jucer_NewCppFileTemplate_cpp = (const char*) temp_79decf5f; +const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_79decf5f; //================== jucer_NewCppFileTemplate.h ================== static const unsigned char temp_70d8d24[] = @@ -776,14 +746,14 @@ static const unsigned char temp_70d8d24[] = "\r\n" "#endif // HEADERGUARD\r\n"; -const char* BinaryData::jucer_NewCppFileTemplate_h = (const char*) temp_70d8d24; +const char* jucer_NewCppFileTemplate_h = (const char*) temp_70d8d24; //================== jucer_WindowTemplate.cpp ================== static const unsigned char temp_6fd7e50[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated!\r\n" "\r\n" " It contains the basic outline for a simple desktop window.\r\n" "\r\n" @@ -812,14 +782,14 @@ static const unsigned char temp_6fd7e50[] = " JUCEApplication::getInstance()->systemRequestedQuit();\r\n" "}\r\n"; -const char* BinaryData::jucer_WindowTemplate_cpp = (const char*) temp_6fd7e50; +const char* jucer_WindowTemplate_cpp = (const char*) temp_6fd7e50; //================== jucer_WindowTemplate.h ================== static const unsigned char temp_613d4455[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" -" This file was auto-generated by the Jucer!\r\n" +" This file was auto-generated!\r\n" "\r\n" " It contains the basic outline for a simple desktop window.\r\n" "\r\n" @@ -858,7 +828,7 @@ static const unsigned char temp_613d4455[] = "\r\n" "#endif // HEADERGUARD\r\n"; -const char* BinaryData::jucer_WindowTemplate_h = (const char*) temp_613d4455; +const char* jucer_WindowTemplate_h = (const char*) temp_613d4455; //================== juce_icon.png ================== static const unsigned char temp_ee6f0c0f[] = @@ -1139,4 +1109,49 @@ static const unsigned char temp_ee6f0c0f[] = 169,9,0,87,15,129,129,1,247,197,140,255,7,123,160,2,4,208,80,74,0,184,18,2,250,200,222,95,34,70,253,24,73,176,3,215,216,5,190,132,57,100,0,64,0,13,197,4,64,76,201,64,40,146,73,77,0,164,202,15,25,0,16,96,0,155,121,235,71,10,157,3,42,0,0,0,0,73,69,78,68, 174,66,96,130,0,0 }; -const char* BinaryData::juce_icon_png = (const char*) temp_ee6f0c0f; +const char* juce_icon_png = (const char*) temp_ee6f0c0f; + + +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +{ + int hash = 0; + if (resourceNameUTF8 != 0) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + *resourceNameUTF8++; + + switch (hash) + { + case 0x44be9398: + case 0x2981a553: numBytes = 1449; return AudioPluginXCodeScript_txt; + case 0x950fd7dd: + case 0xa6cfe0e2: numBytes = 14724; return brushed_aluminium_png; + case 0x27c5a93a: + case 0xb6575890: numBytes = 1008; return jucer_AudioPluginEditorTemplate_cpp; + case 0x4d0721bf: + case 0xc244271a: numBytes = 799; return jucer_AudioPluginEditorTemplate_h; + case 0x51b49ac5: + case 0xc68aa4a1: numBytes = 4455; return jucer_AudioPluginFilterTemplate_cpp; + case 0x488afa0a: + case 0x99c7f951: numBytes = 2400; return jucer_AudioPluginFilterTemplate_h; + case 0x8905395b: + case 0x84a71cc0: numBytes = 470; return jucer_MainConsoleAppTemplate_cpp; + case 0x7a0186b1: + case 0x73760f7c: numBytes = 1825; return jucer_MainTemplate_cpp; + case 0x02a2a077: + case 0x9a5d0862: numBytes = 232; return jucer_NewCppFileTemplate_cpp; + case 0x0842c43c: + case 0xfbfcda3c: numBytes = 308; return jucer_NewCppFileTemplate_h; + case 0x3f052be8: + case 0xb905d1ba: numBytes = 781; return jucer_WindowTemplate_cpp; + case 0xb20377ed: + case 0x959d5d38: numBytes = 1216; return jucer_WindowTemplate_h; + case 0x154a7275: + case 0xcd05ca61: numBytes = 19826; return juce_icon_png; + default: break; + } + + numBytes = 0; + return 0; +} + +} diff --git a/extras/Introjucer/JuceLibraryCode/BinaryData.h b/extras/Introjucer/JuceLibraryCode/BinaryData.h index c6d94d1f68..0fd7c5355d 100644 --- a/extras/Introjucer/JuceLibraryCode/BinaryData.h +++ b/extras/Introjucer/JuceLibraryCode/BinaryData.h @@ -14,22 +14,22 @@ namespace BinaryData const int brushed_aluminium_pngSize = 14724; extern const char* jucer_AudioPluginEditorTemplate_cpp; - const int jucer_AudioPluginEditorTemplate_cppSize = 1003; + const int jucer_AudioPluginEditorTemplate_cppSize = 1008; extern const char* jucer_AudioPluginEditorTemplate_h; - const int jucer_AudioPluginEditorTemplate_hSize = 794; + const int jucer_AudioPluginEditorTemplate_hSize = 799; extern const char* jucer_AudioPluginFilterTemplate_cpp; - const int jucer_AudioPluginFilterTemplate_cppSize = 4468; + const int jucer_AudioPluginFilterTemplate_cppSize = 4455; extern const char* jucer_AudioPluginFilterTemplate_h; - const int jucer_AudioPluginFilterTemplate_hSize = 2413; + const int jucer_AudioPluginFilterTemplate_hSize = 2400; extern const char* jucer_MainConsoleAppTemplate_cpp; - const int jucer_MainConsoleAppTemplate_cppSize = 483; + const int jucer_MainConsoleAppTemplate_cppSize = 470; extern const char* jucer_MainTemplate_cpp; - const int jucer_MainTemplate_cppSize = 1820; + const int jucer_MainTemplate_cppSize = 1825; extern const char* jucer_NewCppFileTemplate_cpp; const int jucer_NewCppFileTemplate_cppSize = 232; @@ -38,10 +38,10 @@ namespace BinaryData const int jucer_NewCppFileTemplate_hSize = 308; extern const char* jucer_WindowTemplate_cpp; - const int jucer_WindowTemplate_cppSize = 794; + const int jucer_WindowTemplate_cppSize = 781; extern const char* jucer_WindowTemplate_h; - const int jucer_WindowTemplate_hSize = 1229; + const int jucer_WindowTemplate_hSize = 1216; extern const char* juce_icon_png; const int juce_icon_pngSize = 19826; @@ -49,4 +49,25 @@ namespace BinaryData // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); + + //============================================================================== + // This class acts as an ImageProvider that will access the BinaryData images + class ImageProvider : public juce::ComponentBuilder::ImageProvider + { + public: + ImageProvider() noexcept {} + + juce::Image getImageForIdentifier (const juce::var& imageIdentifier) + { + int dataSize = 0; + const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize); + + if (data != nullptr) + return juce::ImageCache::getFromMemory (data, dataSize); + + return juce::Image(); + } + + juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); } + }; } diff --git a/extras/Introjucer/JuceLibraryCode/JuceHeader.h b/extras/Introjucer/JuceLibraryCode/JuceHeader.h index cd2f7133c8..77cab3b5ed 100644 --- a/extras/Introjucer/JuceLibraryCode/JuceHeader.h +++ b/extras/Introjucer/JuceLibraryCode/JuceHeader.h @@ -4,8 +4,8 @@ project - if you alter its contents, your changes may be overwritten! This is the header file that your files should include in order to get all the - Juce library headers. You should NOT include juce.h or juce_amalgamated.h directly in - your own source files, because that wouldn't pick up the correct Juce configuration + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration options for your app. */ @@ -14,9 +14,21 @@ #define __APPHEADERFILE_M70QFTRRK__ #include "AppConfig.h" -#include "../../../juce_amalgamated.h" +#include "modules/juce_core/juce_core.h" +#include "modules/juce_cryptography/juce_cryptography.h" +#include "modules/juce_data_structures/juce_data_structures.h" +#include "modules/juce_events/juce_events.h" +#include "modules/juce_graphics/juce_graphics.h" +#include "modules/juce_gui_basics/juce_gui_basics.h" +#include "modules/juce_gui_extra/juce_gui_extra.h" #include "BinaryData.h" +#if ! DONT_SET_USING_JUCE_NAMESPACE + // If your code uses a lot of JUCE classes, then this will obviously save you + // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. + using namespace juce; +#endif + namespace ProjectInfo { const char* const projectName = "The Introjucer"; diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode1.cpp b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode1.cpp deleted file mode 100644 index 2d6380298b..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode1.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated1.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode1.mm b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode1.mm deleted file mode 100644 index 2d6380298b..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode1.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated1.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode2.cpp b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode2.cpp deleted file mode 100644 index 655d816baf..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode2.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated2.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode2.mm b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode2.mm deleted file mode 100644 index 655d816baf..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode2.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated2.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode3.cpp b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode3.cpp deleted file mode 100644 index 5d7de97f50..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode3.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated3.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode3.mm b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode3.mm deleted file mode 100644 index 5d7de97f50..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode3.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated3.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode4.cpp b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode4.cpp deleted file mode 100644 index 1ece5dc3d2..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode4.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated4.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode4.mm b/extras/Introjucer/JuceLibraryCode/JuceLibraryCode4.mm deleted file mode 100644 index 1ece5dc3d2..0000000000 --- a/extras/Introjucer/JuceLibraryCode/JuceLibraryCode4.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated4.cpp" diff --git a/extras/Introjucer/JuceLibraryCode/ReadMe.txt b/extras/Introjucer/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000000..f6c3564e99 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Introjucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Introjucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Introjucer has saved its changes). diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_core/juce_core.h b/extras/Introjucer/JuceLibraryCode/modules/juce_core/juce_core.h new file mode 100644 index 0000000000..ee07e01a50 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_core/juce_core.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_core/juce_core.h" + diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h b/extras/Introjucer/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h new file mode 100644 index 0000000000..860c0221c7 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_cryptography/juce_cryptography.h" + diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h b/extras/Introjucer/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h new file mode 100644 index 0000000000..00f01d46aa --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_data_structures/juce_data_structures.h" + diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_events/juce_events.h b/extras/Introjucer/JuceLibraryCode/modules/juce_events/juce_events.h new file mode 100644 index 0000000000..d0b4133815 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_events/juce_events.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_events/juce_events.h" + diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_graphics/juce_graphics.h b/extras/Introjucer/JuceLibraryCode/modules/juce_graphics/juce_graphics.h new file mode 100644 index 0000000000..f287a18ee6 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_graphics/juce_graphics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_graphics/juce_graphics.h" + diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h b/extras/Introjucer/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h new file mode 100644 index 0000000000..c678c1cfc9 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_gui_basics/juce_gui_basics.h" + diff --git a/extras/Introjucer/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h b/extras/Introjucer/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h new file mode 100644 index 0000000000..7efee1d103 --- /dev/null +++ b/extras/Introjucer/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_gui_extra/juce_gui_extra.h" + diff --git a/extras/Introjucer/Source/Application/jucer_Application.h b/extras/Introjucer/Source/Application/jucer_Application.h index 93e8072482..1c131b606e 100644 --- a/extras/Introjucer/Source/Application/jucer_Application.h +++ b/extras/Introjucer/Source/Application/jucer_Application.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,13 +23,13 @@ ============================================================================== */ -#ifndef __JUCER_APPLICATION_H_6595C2A8__ -#define __JUCER_APPLICATION_H_6595C2A8__ +#ifndef __JUCER_APPLICATION_JUCEHEADER__ +#define __JUCER_APPLICATION_JUCEHEADER__ #include "../jucer_Headers.h" #include "jucer_MainWindow.h" #include "jucer_JuceUpdater.h" -#include "../Project/jucer_NewProjectWizard.h" +#include "jucer_CommandLine.h" //============================================================================== @@ -37,21 +37,22 @@ class JucerApplication : public JUCEApplication { public: //============================================================================== - JucerApplication() {} + JucerApplication() {} ~JucerApplication() {} //============================================================================== void initialise (const String& commandLine) { - /* Running a command-line of the form "Jucer --resave foobar.jucer" will try to load that - jucer file and re-export all of its projects. - */ - if (commandLine.startsWithIgnoreCase ("-resave ") || commandLine.startsWithIgnoreCase ("--resave ")) + if (commandLine.isNotEmpty()) { - Project::resaveJucerFile (File::getCurrentWorkingDirectory() - .getChildFile (commandLine.fromFirstOccurrenceOf (" ", false, false).unquoted())); - quit(); - return; + const int appReturnCode = performCommandLine (commandLine); + + if (appReturnCode != commandLineNotPerformed) + { + setApplicationReturnValue (appReturnCode); + quit(); + return; + } } commandManager = new ApplicationCommandManager(); @@ -75,31 +76,39 @@ public: openFile (projects.getReference(i)); } + makeSureUserHasSelectedModuleFolder(); + if (mainWindows.size() == 0) createNewMainWindow()->makeVisible(); - #if JUCE_MAC + #if JUCE_MAC MenuBarModel::setMacMainMenu (menuModel); - #endif + #endif } void shutdown() { - #if JUCE_MAC + #if JUCE_MAC MenuBarModel::setMacMainMenu (nullptr); - #endif + #endif menuModel = nullptr; StoredSettings::deleteInstance(); mainWindows.clear(); OpenDocumentManager::deleteInstance(); - deleteAndZero (commandManager); + commandManager = nullptr; } //============================================================================== void systemRequestedQuit() { + if (cancelAnyModalComponents()) + { + new AsyncQuitRetrier(); + return; + } + while (mainWindows.size() > 0) { if (! mainWindows[0]->closeCurrentProject()) @@ -116,10 +125,10 @@ public: jassert (mainWindows.contains (w)); mainWindows.removeObject (w); - #if ! JUCE_MAC + #if ! JUCE_MAC if (mainWindows.size() == 0) systemRequestedQuit(); - #endif + #endif updateRecentProjectList(); } @@ -137,11 +146,11 @@ public: bool moreThanOneInstanceAllowed() { - #ifndef JUCE_LINUX + #ifndef JUCE_LINUX return false; - #else + #else return true; //xxx should be false but doesn't work on linux.. - #endif + #endif } void anotherInstanceStarted (const String& commandLine) @@ -151,6 +160,11 @@ public: virtual void doExtraInitialisation() {} + static JucerApplication* getApp() + { + return dynamic_cast (JUCEApplication::getInstance()); + } + //============================================================================== class MainMenuModel : public MenuBarModel { @@ -162,11 +176,11 @@ public: const StringArray getMenuBarNames() { - const char* const names[] = { "File", "Edit", "View", "Window", "Update", 0 }; + const char* const names[] = { "File", "Edit", "View", "Window", "Tools", 0 }; return StringArray ((const char**) names); } - const PopupMenu getMenuForIndex (int topLevelMenuIndex, const String& menuName) + const PopupMenu getMenuForIndex (int topLevelMenuIndex, const String& /*menuName*/) { PopupMenu menu; @@ -253,15 +267,16 @@ public: menu.addSeparator(); menu.addCommandItem (commandManager, CommandIDs::closeAllDocuments); } - else if (topLevelMenuIndex == 4) // "Juce" menu + else if (topLevelMenuIndex == 4) // "Tools" menu { - menu.addCommandItem (commandManager, CommandIDs::showJuceVersion); + menu.addCommandItem (commandManager, CommandIDs::updateModules); + menu.addCommandItem (commandManager, CommandIDs::showUTF8Tool); } return menu; } - void menuItemSelected (int menuItemID, int topLevelMenuIndex) + void menuItemSelected (int menuItemID, int /*topLevelMenuIndex*/) { if (menuItemID >= 100 && menuItemID < 200) { @@ -277,14 +292,9 @@ public: MainWindow* w = getApp()->getOrCreateFrontmostWindow(); w->makeVisible(); w->getProjectContentComponent()->showDocument (doc); + getApp()->avoidSuperimposedWindows (w); } } - - private: - JucerApplication* getApp() const - { - return static_cast (JUCEApplication::getInstance()); - } }; //============================================================================== @@ -297,7 +307,8 @@ public: CommandIDs::showPrefs, CommandIDs::closeAllDocuments, CommandIDs::saveAll, - CommandIDs::showJuceVersion }; + CommandIDs::updateModules, + CommandIDs::showUTF8Tool }; commands.addArray (ids, numElementsInArray (ids)); } @@ -331,8 +342,12 @@ public: result.setActive (OpenDocumentManager::getInstance()->anyFilesNeedSaving()); break; - case CommandIDs::showJuceVersion: - result.setInfo ("Download the latest JUCE version", "Checks online for any Juce updates", CommandCategories::general, 0); + case CommandIDs::updateModules: + result.setInfo ("Download the latest JUCE modules", "Checks online for any JUCE modules updates and installs them", CommandCategories::general, 0); + break; + + case CommandIDs::showUTF8Tool: + result.setInfo ("UTF-8 String-Literal Helper", "Shows the UTF-8 string literal utility", CommandCategories::general, 0); break; default: @@ -350,7 +365,9 @@ public: case CommandIDs::showPrefs: showPrefsPanel(); break; case CommandIDs::saveAll: OpenDocumentManager::getInstance()->saveAll(); break; case CommandIDs::closeAllDocuments: closeAllDocuments (true); break; - case CommandIDs::showJuceVersion: JuceUpdater::show (mainWindows[0]); break; + case CommandIDs::showUTF8Tool: showUTF8ToolWindow(); break; + case CommandIDs::updateModules: runModuleUpdate (String::empty); break; + default: return JUCEApplication::perform (info); } @@ -365,17 +382,11 @@ public: void createNewProject() { - MainWindow* mw = createNewMainWindow(); - ScopedPointer newProj (NewProjectWizard::runNewProjectWizard (mw)); - - if (newProj != nullptr) + if (makeSureUserHasSelectedModuleFolder()) { - mw->setProject (newProj.release()); - mw->makeVisible(); - } - else - { - closeWindow (mw); + MainWindow* mw = getOrCreateEmptyWindow(); + mw->showNewProjectWizard(); + avoidSuperimposedWindows (mw); } } @@ -408,6 +419,7 @@ public: MainWindow* w = getOrCreateEmptyWindow(); w->setProject (newDoc.release()); w->makeVisible(); + avoidSuperimposedWindows (w); return true; } } @@ -417,6 +429,7 @@ public: const bool ok = w->openFile (file); w->makeVisible(); + avoidSuperimposedWindows (w); return ok; } @@ -425,18 +438,7 @@ public: bool closeAllDocuments (bool askUserToSave) { - for (int i = OpenDocumentManager::getInstance()->getNumOpenDocuments(); --i >= 0;) - { - OpenDocumentManager::Document* doc = OpenDocumentManager::getInstance()->getOpenDocument (i); - - for (int j = mainWindows.size(); --j >= 0;) - mainWindows.getUnchecked(j)->getProjectContentComponent()->hideDocument (doc); - - if (! OpenDocumentManager::getInstance()->closeDocument (i, askUserToSave)) - return false; - } - - return true; + return OpenDocumentManager::getInstance()->closeAll (askUserToSave); } void updateRecentProjectList() @@ -454,6 +456,35 @@ public: StoredSettings::getInstance()->setLastProjects (projects); } + bool makeSureUserHasSelectedModuleFolder() + { + if (! ModuleList::isLocalModulesFolderValid()) + { + if (! runModuleUpdate ("Please select a location to store your local set of JUCE modules,\n" + "and download the ones that you'd like to use!")) + { + AlertWindow::showMessageBox (AlertWindow::WarningIcon, + "Introjucer", + "Unless you create a local JUCE folder containing some modules, you'll be unable to save any projects correctly!\n\n" + "Use the option on the 'Tools' menu to set this up!"); + + return false; + } + } + + return true; + } + + bool runModuleUpdate (const String& message) + { + ModuleList list; + list.rescan (ModuleList::getDefaultModulesFolder (nullptr)); + JuceUpdater::show (list, mainWindows[0], message); + + ModuleList::setLocalModulesFolder (list.getModulesFolder()); + return ModuleList::isJuceOrModulesFolder (list.getModulesFolder()); + } + ScopedPointer menuModel; private: @@ -462,13 +493,9 @@ private: MainWindow* createNewMainWindow() { MainWindow* mw = new MainWindow(); - - for (int i = mainWindows.size(); --i >= 0;) - if (mw->getBounds() == mainWindows.getUnchecked(i)->getBounds()) - mw->setBounds (mw->getBounds().translated (20, 20)); - mainWindows.add (mw); mw->restoreWindowPosition(); + avoidSuperimposedWindows (mw); return mw; } @@ -501,7 +528,61 @@ private: return createNewMainWindow(); } + + void avoidSuperimposedWindows (MainWindow* const mw) + { + for (int i = mainWindows.size(); --i >= 0;) + { + MainWindow* const other = mainWindows.getUnchecked(i); + + const Rectangle b1 (mw->getBounds()); + const Rectangle b2 (other->getBounds()); + + if (mw != other + && std::abs (b1.getX() - b2.getX()) < 3 + && std::abs (b1.getY() - b2.getY()) < 3 + && std::abs (b1.getRight() - b2.getRight()) < 3 + && std::abs (b1.getBottom() - b2.getBottom()) < 3) + { + int dx = 40, dy = 30; + + if (b1.getCentreX() >= mw->getScreenBounds().getCentreX()) dx = -dx; + if (b1.getCentreY() >= mw->getScreenBounds().getCentreY()) dy = -dy; + + mw->setBounds (b1.translated (dx, dy)); + } + } + } + + //============================================================================== + static bool cancelAnyModalComponents() + { + const int numModal = ModalComponentManager::getInstance()->getNumModalComponents(); + + for (int i = numModal; --i >= 0;) + if (ModalComponentManager::getInstance()->getModalComponent(i) != nullptr) + ModalComponentManager::getInstance()->getModalComponent(i)->exitModalState (0); + + return numModal > 0; + } + + class AsyncQuitRetrier : public Timer + { + public: + AsyncQuitRetrier() { startTimer (500); } + + void timerCallback() + { + stopTimer(); + delete this; + + if (getApp() != nullptr) + getApp()->systemRequestedQuit(); + } + + JUCE_DECLARE_NON_COPYABLE (AsyncQuitRetrier); + }; }; -#endif // __JUCER_APPLICATION_H_6595C2A8__ +#endif // __JUCER_APPLICATION_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Application/jucer_CommandIDs.h b/extras/Introjucer/Source/Application/jucer_CommandIDs.h index 47942af57c..a564d99f14 100644 --- a/extras/Introjucer/Source/Application/jucer_CommandIDs.h +++ b/extras/Introjucer/Source/Application/jucer_CommandIDs.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -40,7 +40,8 @@ namespace CommandIDs static const int openInIDE = 0x200072; static const int saveAndOpenInIDE = 0x200073; static const int showProjectSettings = 0x200074; - static const int showJuceVersion = 0x200075; + static const int updateModules = 0x200075; + static const int showUTF8Tool = 0x200076; static const int saveAll = 0x200080; static const int undo = 0x200090; diff --git a/extras/Introjucer/Source/Application/jucer_CommandLine.cpp b/extras/Introjucer/Source/Application/jucer_CommandLine.cpp new file mode 100644 index 0000000000..239eb68f5c --- /dev/null +++ b/extras/Introjucer/Source/Application/jucer_CommandLine.cpp @@ -0,0 +1,263 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#include "../Project/jucer_Project.h" +#include "../Project/jucer_Module.h" +#include "jucer_CommandLine.h" + + +//============================================================================== +namespace +{ + File getFile (const String& filename) + { + return File::getCurrentWorkingDirectory().getChildFile (filename.unquoted()); + } + + bool checkArgumentCount (const StringArray& tokens, int minNumArgs) + { + if (tokens.size() < minNumArgs) + { + std::cout << "Not enough arguments!" << std::endl; + return false; + } + + return true; + } + + //============================================================================== + /* Running a command-line of the form "introjucer --resave foobar.jucer" will try to load + that project and re-export all of its targets. + */ + int resaveProject (const File& file) + { + if (! file.exists()) + { + std::cout << "The file " << file.getFullPathName() << " doesn't exist!" << std::endl; + return 1; + } + + if (! file.hasFileExtension (Project::projectFileExtension)) + { + std::cout << file.getFullPathName() << " isn't a valid jucer project file!" << std::endl; + return 1; + } + + Project newDoc (file); + + if (! newDoc.loadFrom (file, true)) + { + std::cout << "Failed to load the project file: " << file.getFullPathName() << std::endl; + return 1; + } + + std::cout << "The Introjucer - Re-saving file: " << file.getFullPathName() << std::endl; + String error (newDoc.saveDocument (file)); + + if (error.isNotEmpty()) + { + std::cout << "Error when writing project: " << error << std::endl; + return 1; + } + + return 0; + } + + //============================================================================== + String getModulePackageName (const LibraryModule& module) + { + return module.getID() + ".jucemodule"; + } + + int zipModule (const File& targetFolder, const File& moduleFolder) + { + jassert (targetFolder.isDirectory()); + + const File moduleFolderParent (moduleFolder.getParentDirectory()); + LibraryModule module (moduleFolder.getChildFile (LibraryModule::getInfoFileName())); + + if (! module.isValid()) + { + std::cout << moduleFolder.getFullPathName() << " is not a valid module folder!" << std::endl; + return 1; + } + + const File targetFile (targetFolder.getChildFile (getModulePackageName (module))); + + ZipFile::Builder zip; + + { + DirectoryIterator i (moduleFolder, true, "*", File::findFiles); + + while (i.next()) + if (! i.getFile().isHidden()) + zip.addFile (i.getFile(), 9, i.getFile().getRelativePathFrom (moduleFolderParent)); + } + + std::cout << "Writing: " << targetFile.getFullPathName() << std::endl; + + TemporaryFile temp (targetFile); + ScopedPointer out (temp.getFile().createOutputStream()); + + bool ok = out != nullptr && zip.writeToStream (*out); + out = nullptr; + ok = ok && temp.overwriteTargetFileWithTemporary(); + + if (! ok) + { + std::cout << "Failed to write to the target file: " << targetFile.getFullPathName() << std::endl; + return 1; + } + + return 0; + } + + int buildModules (const StringArray& tokens, const bool buildAllWithIndex) + { + if (! checkArgumentCount (tokens, 3)) + return 1; + + const File targetFolder (getFile (tokens[1])); + + if (! targetFolder.isDirectory()) + { + std::cout << "The first argument must be the directory to put the result." << std::endl; + return 1; + } + + if (buildAllWithIndex) + { + const File folderToSearch (getFile (tokens[2])); + DirectoryIterator i (folderToSearch, false, "*", File::findDirectories); + var infoList; + + while (i.next()) + { + LibraryModule module (i.getFile().getChildFile (LibraryModule::getInfoFileName())); + + if (module.isValid()) + { + const int result = zipModule (targetFolder, i.getFile()); + + if (result != 0) + return result; + + var moduleInfo (new DynamicObject()); + moduleInfo.getDynamicObject()->setProperty ("file", getModulePackageName (module)); + moduleInfo.getDynamicObject()->setProperty ("info", module.moduleInfo); + infoList.append (moduleInfo); + } + } + + const File indexFile (targetFolder.getChildFile ("modulelist")); + std::cout << "Writing: " << indexFile.getFullPathName() << std::endl; + indexFile.replaceWithText (JSON::toString (infoList), false, false); + } + else + { + for (int i = 2; i < tokens.size(); ++i) + { + const int result = zipModule (targetFolder, getFile (tokens[i])); + + if (result != 0) + return result; + } + } + + return 0; + } + + int listModules() + { + std::cout << "Downloading list of available modules..." << std::endl; + ModuleList list; + list.loadFromWebsite(); + + for (int i = 0; i < list.modules.size(); ++i) + { + ModuleList::Module* m = list.modules.getUnchecked(i); + + std::cout << m->uid << ": " << m->version << std::endl; + } + + return 0; + } + + int showStatus (const StringArray& tokens) + { + if (! checkArgumentCount (tokens, 2)) + return 1; + + const File projectFile (getFile (tokens[1])); + + Project proj (projectFile); + + if (proj.loadDocument (projectFile).isNotEmpty()) + { + std::cout << "Failed to load project: " << projectFile.getFullPathName() << std::endl; + return 1; + } + + std::cout << "Project file: " << projectFile.getFullPathName() << std::endl + << "Name: " << proj.getProjectName().toString() << std::endl + << "UID: " << proj.getProjectUID() << std::endl; + + const int numModules = proj.getNumModules(); + if (numModules > 0) + { + std::cout << "Modules:" << std::endl; + + for (int i = 0; i < numModules; ++i) + std::cout << " " << proj.getModuleID (i) << std::endl; + } + + return 0; + } +} + +//============================================================================== +int performCommandLine (const String& commandLine) +{ + StringArray tokens; + tokens.addTokens (commandLine, true); + tokens.trim(); + + if (tokens[0] == "-resave" || tokens[0] == "--resave" || tokens[0] == "resave") + return resaveProject (getFile (tokens[1])); + + if (tokens[0] == "buildmodule") + return buildModules (tokens, false); + + if (tokens[0] == "buildallmodules") + return buildModules (tokens, true); + + if (tokens[0] == "listmodules") + return listModules(); + + if (tokens[0] == "status") + return showStatus (tokens); + + return commandLineNotPerformed; +} diff --git a/extras/Introjucer/Source/Application/jucer_CommandLine.h b/extras/Introjucer/Source/Application/jucer_CommandLine.h new file mode 100644 index 0000000000..5d19abf745 --- /dev/null +++ b/extras/Introjucer/Source/Application/jucer_CommandLine.h @@ -0,0 +1,35 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_COMMANDLINE_JUCEHEADER__ +#define __JUCER_COMMANDLINE_JUCEHEADER__ + + +int performCommandLine (const String& commandLine); + +enum { commandLineNotPerformed = 0x72346231 }; + + +#endif // __JUCER_COMMANDLINE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Application/jucer_CommonHeaders.h b/extras/Introjucer/Source/Application/jucer_CommonHeaders.h index 33e002bdbb..8cc17acf96 100644 --- a/extras/Introjucer/Source/Application/jucer_CommonHeaders.h +++ b/extras/Introjucer/Source/Application/jucer_CommonHeaders.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef __JUCER_COMMONINCLUDES_H__ -#define __JUCER_COMMONINCLUDES_H__ +#ifndef __JUCER_COMMONHEADERS_JUCEHEADER__ +#define __JUCER_COMMONHEADERS_JUCEHEADER__ #include "../Utility/jucer_StoredSettings.h" @@ -37,7 +37,7 @@ #include "jucer_CommandIDs.h" //============================================================================== -extern ApplicationCommandManager* commandManager; +extern ScopedPointer commandManager; //============================================================================== const char* const projectItemDragType = "Project Items"; @@ -48,4 +48,4 @@ const char* const sourceFileExtensions = "cpp;mm;m;c;cc;cxx"; const char* const headerFileExtensions = "h;hpp;hxx"; const char* const sourceOrHeaderFileExtensions = "cpp;mm;m;c;cc;cxx;h;hpp;hxx"; -#endif \ No newline at end of file +#endif // __JUCER_COMMONHEADERS_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.cpp b/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.cpp index 2556144c47..21631c6bb1 100644 --- a/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.cpp +++ b/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -91,6 +91,7 @@ void DocumentEditorComponent::getCommandInfo (const CommandID commandID, Applica result.setInfo ("Save" + name + " As...", "Saves the current document to a different filename", CommandCategories::general, 0); + result.setActive (document != nullptr && document->canSaveAs()); result.defaultKeypresses.add (KeyPress ('s', ModifierKeys::commandModifier | ModifierKeys::shiftModifier, 0)); break; @@ -98,7 +99,11 @@ void DocumentEditorComponent::getCommandInfo (const CommandID commandID, Applica result.setInfo ("Close" + name, "Closes the current document", CommandCategories::general, 0); + #if JUCE_MAC + result.defaultKeypresses.add (KeyPress ('w', ModifierKeys::commandModifier | ModifierKeys::ctrlModifier, 0)); + #else result.defaultKeypresses.add (KeyPress ('w', ModifierKeys::commandModifier | ModifierKeys::shiftModifier, 0)); + #endif break; default: @@ -115,8 +120,7 @@ bool DocumentEditorComponent::perform (const InvocationInfo& info) return true; case CommandIDs::saveDocumentAs: - jassertfalse //xxxx - //document.save(); + document->saveAs(); return true; case CommandIDs::closeDocument: diff --git a/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.h b/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.h index bfbd036287..b396c663e9 100644 --- a/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.h +++ b/extras/Introjucer/Source/Application/jucer_DocumentEditorComponent.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.cpp b/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.cpp index 847d36db8e..b630217eec 100644 --- a/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.cpp +++ b/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.h b/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.h index d15dc59af3..16c1ef805f 100644 --- a/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.h +++ b/extras/Introjucer/Source/Application/jucer_FilePreviewComponent.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef __JUCER_ITEMPREVIEWCOMPONENT_JUCEHEADER__ -#define __JUCER_ITEMPREVIEWCOMPONENT_JUCEHEADER__ +#ifndef __JUCER_FILEPREVIEWCOMPONENT_JUCEHEADER__ +#define __JUCER_FILEPREVIEWCOMPONENT_JUCEHEADER__ //============================================================================== @@ -49,4 +49,4 @@ private: }; -#endif // __JUCER_ITEMPREVIEWCOMPONENT_JUCEHEADER__ +#endif // __JUCER_FILEPREVIEWCOMPONENT_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Application/jucer_JuceUpdater.cpp b/extras/Introjucer/Source/Application/jucer_JuceUpdater.cpp index 57b36e194c..e406f591dd 100644 --- a/extras/Introjucer/Source/Application/jucer_JuceUpdater.cpp +++ b/extras/Introjucer/Source/Application/jucer_JuceUpdater.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -25,30 +25,48 @@ #include "../jucer_Headers.h" #include "jucer_JuceUpdater.h" +#include "../Project/jucer_Module.h" //============================================================================== -JuceUpdater::JuceUpdater() - : filenameComp ("Juce Folder", StoredSettings::getInstance()->getLastKnownJuceFolder(), +JuceUpdater::JuceUpdater (ModuleList& moduleList_, const String& message) + : moduleList (moduleList_), + messageLabel (String::empty, message), + filenameComp ("Juce Folder", ModuleList::getLocalModulesFolder (nullptr), true, true, false, "*", String::empty, "Select your Juce folder"), - checkNowButton ("Check Online for Available Updates...", - "Contacts the website to see if this version is up-to-date") + checkNowButton ("Check for available updates on the JUCE website...", + "Contacts the website to see if new modules are available"), + installButton ("Download and install selected modules..."), + selectAllButton ("Select/Deselect All") { + messageLabel.setJustificationType (Justification::centred); + addAndMakeVisible (&messageLabel); + addAndMakeVisible (&label); + addAndMakeVisible (¤tVersionLabel); addAndMakeVisible (&filenameComp); addAndMakeVisible (&checkNowButton); - addAndMakeVisible (¤tVersionLabel); + addAndMakeVisible (&installButton); + addAndMakeVisible (&selectAllButton); checkNowButton.addListener (this); + installButton.addListener (this); + selectAllButton.addListener (this); filenameComp.addListener (this); currentVersionLabel.setFont (Font (14.0f, Font::italic)); label.setFont (Font (12.0f)); - label.setText ("Destination folder:", false); + label.setText ("Local modules folder:", false); addAndMakeVisible (&availableVersionsList); availableVersionsList.setModel (this); - setSize (600, 300); + updateInstallButtonStatus(); + versionsToDownload = ValueTree ("modules"); + versionsToDownload.addListener (this); + + setSize (600, 500); + + checkNow(); } JuceUpdater::~JuceUpdater() @@ -57,22 +75,52 @@ JuceUpdater::~JuceUpdater() filenameComp.removeListener (this); } -void JuceUpdater::show (Component* mainWindow) +//============================================================================== +class UpdateDialogWindow : public DialogWindow { - JuceUpdater updater; - DialogWindow::showModalDialog ("Juce Update...", &updater, mainWindow, - Colours::lightgrey, - true, false, false); +public: + UpdateDialogWindow (JuceUpdater* updater, Component* componentToCentreAround) + : DialogWindow ("JUCE Module Updater", + Colours::lightgrey, true, true) + { + setUsingNativeTitleBar (true); + setContentOwned (updater, true); + centreAroundComponent (componentToCentreAround, getWidth(), getHeight()); + setResizable (true, true); + } + + void closeButtonPressed() + { + setVisible (false); + } + +private: + JUCE_DECLARE_NON_COPYABLE (UpdateDialogWindow); +}; + +void JuceUpdater::show (ModuleList& moduleList, Component* mainWindow, const String& message) +{ + UpdateDialogWindow w (new JuceUpdater (moduleList, message), mainWindow); + w.runModalLoop(); } void JuceUpdater::resized() { - filenameComp.setBounds (20, 40, getWidth() - 40, 22); + messageLabel.setBounds (20, 10, getWidth() - 40, messageLabel.getText().isEmpty() ? 0 : 30); + + filenameComp.setBounds (20, messageLabel.getBottom() + 20, getWidth() - 40, 22); label.setBounds (filenameComp.getX(), filenameComp.getY() - 18, filenameComp.getWidth(), 18); currentVersionLabel.setBounds (filenameComp.getX(), filenameComp.getBottom(), filenameComp.getWidth(), 25); - checkNowButton.changeWidthToFitText (20); - checkNowButton.setCentrePosition (getWidth() / 2, filenameComp.getBottom() + 40); - availableVersionsList.setBounds (filenameComp.getX(), checkNowButton.getBottom() + 20, filenameComp.getWidth(), getHeight() - (checkNowButton.getBottom() + 20)); + checkNowButton.changeWidthToFitText (22); + checkNowButton.setCentrePosition (getWidth() / 2, filenameComp.getBottom() + 20); + availableVersionsList.setBounds (filenameComp.getX(), checkNowButton.getBottom() + 20, + filenameComp.getWidth(), + getHeight() - 30 - (checkNowButton.getBottom() + 20)); + installButton.changeWidthToFitText (22); + installButton.setTopRightPosition (availableVersionsList.getRight(), getHeight() - 28); + selectAllButton.setBounds (availableVersionsList.getX(), + availableVersionsList.getBottom() + 4, + installButton.getX() - availableVersionsList.getX() - 20, 22); } void JuceUpdater::paint (Graphics& g) @@ -80,325 +128,330 @@ void JuceUpdater::paint (Graphics& g) g.fillAll (Colours::white); } -String findVersionNum (const String& file, const String& token) +void JuceUpdater::buttonClicked (Button* b) { - return file.fromFirstOccurrenceOf (token, false, false) - .upToFirstOccurrenceOf ("\n", false, false) - .trim(); + if (b == &installButton) + install(); + else if (b == &selectAllButton) + selectAll(); + else + checkNow(); +} + +void JuceUpdater::refresh() +{ + availableVersionsList.updateContent(); + availableVersionsList.repaint(); } -String JuceUpdater::getCurrentVersion() +class WebsiteContacterThread : public Thread, + private AsyncUpdater { - const String header (filenameComp.getCurrentFile() - .getChildFile ("src/core/juce_StandardHeader.h").loadFileAsString()); +public: + WebsiteContacterThread (JuceUpdater& owner_, const ModuleList& latestList) + : Thread ("Module updater"), + owner (owner_), + downloaded (latestList) + { + startThread(); + } + + ~WebsiteContacterThread() + { + stopThread (10000); + } - const String v1 (findVersionNum (header, "JUCE_MAJOR_VERSION")); - const String v2 (findVersionNum (header, "JUCE_MINOR_VERSION")); - const String v3 (findVersionNum (header, "JUCE_BUILDNUMBER")); + void run() + { + if (downloaded.loadFromWebsite()) + triggerAsyncUpdate(); + else + AlertWindow::showMessageBox (AlertWindow::InfoIcon, + "Module Update", + "Couldn't connect to the JUCE webserver!"); + } - if ((v1 + v2 + v3).isEmpty()) - return String::empty; + void handleAsyncUpdate() + { + owner.backgroundUpdateComplete (downloaded); + } - return v1 + "." + v2 + "." + v3; +private: + JuceUpdater& owner; + ModuleList downloaded; +}; + +void JuceUpdater::checkNow() +{ + websiteContacterThread = nullptr; + websiteContacterThread = new WebsiteContacterThread (*this, latestList); } -XmlElement* JuceUpdater::downloadVersionList() +void JuceUpdater::backgroundUpdateComplete (const ModuleList& newList) { - return URL ("http://www.rawmaterialsoftware.com/juce/downloads/juce_versions.php").readEntireXmlStream(); + latestList = newList; + websiteContacterThread = nullptr; + + if (latestList == moduleList) + AlertWindow::showMessageBox (AlertWindow::InfoIcon, + "Module Update", + "No new modules are available"); + refresh(); } -void JuceUpdater::updateVersions (const XmlElement& xml) +int JuceUpdater::getNumCheckedModules() const { - availableVersions.clear(); + int numChecked = 0; - forEachXmlChildElementWithTagName (xml, v, "VERSION") - { - VersionInfo* vi = new VersionInfo(); - vi->url = URL (v->getStringAttribute ("url")); - vi->desc = v->getStringAttribute ("desc"); - vi->version = v->getStringAttribute ("version"); - vi->date = v->getStringAttribute ("date"); - availableVersions.add (vi); - } + for (int i = latestList.modules.size(); --i >= 0;) + if (versionsToDownload [latestList.modules.getUnchecked(i)->uid]) + ++numChecked; - availableVersionsList.updateContent(); + return numChecked; } -void JuceUpdater::buttonClicked (Button*) +bool JuceUpdater::isLatestVersion (const String& moduleID) const { - ScopedPointer xml (downloadVersionList()); + const ModuleList::Module* m1 = moduleList.findModuleInfo (moduleID); + const ModuleList::Module* m2 = latestList.findModuleInfo (moduleID); - if (xml == nullptr || xml->hasTagName ("html")) - { - AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Connection Problems...", - "Couldn't connect to the Raw Material Software website!"); + return m1 != nullptr && m2 != nullptr && m1->version == m2->version; +} - return; - } +void JuceUpdater::updateInstallButtonStatus() +{ + const int numChecked = getNumCheckedModules(); + installButton.setEnabled (numChecked > 0); + selectAllButton.setToggleState (numChecked > latestList.modules.size() / 2, false); +} - if (! xml->hasTagName ("JUCEVERSIONS")) - { - AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Update Problems...", - "This version of the Jucer may be too old to receive automatic updates!\n\n" - "Please visit www.rawmaterialsoftware.com and get the latest version manually!"); - return; - } +void JuceUpdater::filenameComponentChanged (FilenameComponent*) +{ + moduleList.rescan (filenameComp.getCurrentFile()); + filenameComp.setCurrentFile (moduleList.getModulesFolder(), true, false); - const String currentVersion (getCurrentVersion()); + if (! ModuleList::isModulesFolder (moduleList.getModulesFolder())) + currentVersionLabel.setText ("(Not a Juce folder)", false); + else + currentVersionLabel.setText (String::empty, false); - OwnedArray versions; - updateVersions (*xml); + refresh(); } -//============================================================================== -class NewVersionDownloader : public ThreadWithProgressWindow +void JuceUpdater::selectAll() { -public: - NewVersionDownloader (const String& title, const URL& url_, const File& target_) - : ThreadWithProgressWindow (title, true, true), - url (url_), target (target_) + bool enable = getNumCheckedModules() < latestList.modules.size() / 2; + + versionsToDownload.removeAllProperties (nullptr); + + if (enable) { + for (int i = latestList.modules.size(); --i >= 0;) + if (! isLatestVersion (latestList.modules.getUnchecked(i)->uid)) + versionsToDownload.setProperty (latestList.modules.getUnchecked(i)->uid, true, nullptr); } +} - void run() - { - setStatusMessage ("Contacting website..."); +//============================================================================== +int JuceUpdater::getNumRows() +{ + return latestList.modules.size(); +} - ScopedPointer input (url.createInputStream (false)); +void JuceUpdater::paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) +{ + if (rowIsSelected) + g.fillAll (findColour (TextEditor::highlightColourId)); +} - if (input == nullptr) +Component* JuceUpdater::refreshComponentForRow (int rowNumber, bool isRowSelected, Component* existingComponentToUpdate) +{ + class UpdateListComponent : public Component + { + public: + UpdateListComponent (JuceUpdater& updater_) + : updater (updater_) { - error = "Couldn't connect to the website..."; - return; + addChildComponent (&toggle); + toggle.setBounds ("2, 2, parent.height - 2, parent.height - 2"); + toggle.setWantsKeyboardFocus (false); + setInterceptsMouseClicks (false, true); } - if (! target.deleteFile()) + void setModule (const ModuleList::Module* newModule, + const ModuleList::Module* existingModule, + const Value& value) { - error = "Couldn't delete the destination file..."; - return; + if (newModule != nullptr) + { + toggle.getToggleStateValue().referTo (value); + toggle.setVisible (true); + toggle.setEnabled (true); + + name = newModule->uid; + status = String::empty; + + if (existingModule == nullptr) + { + status << " (not currently installed)"; + } + else if (existingModule->version != newModule->version) + { + status << " installed: " << existingModule->version + << ", available: " << newModule->version; + } + else + { + status << " (latest version already installed: " << existingModule->version << ")"; + toggle.setEnabled (false); + } + } + else + { + name = status = String::empty; + toggle.setVisible (false); + } } - ScopedPointer output (target.createOutputStream (32768)); - - if (output == nullptr) + void paint (Graphics& g) { - error = "Couldn't write to the destination file..."; - return; - } + g.setColour (Colours::green.withAlpha (0.12f)); - setStatusMessage ("Downloading..."); + g.fillRect (0, 1, getWidth(), getHeight() - 2); + g.setColour (Colours::black); + g.setFont (getHeight() * 0.7f); - int totalBytes = (int) input->getTotalLength(); - int bytesSoFar = 0; + g.drawText (name, toggle.getRight() + 4, 0, getWidth() / 2 - toggle.getRight() - 4, getHeight(), + Justification::centredLeft, true); - while (! (input->isExhausted() || threadShouldExit())) - { - HeapBlock buffer (8192); - const int num = input->read (buffer, 8192); + g.drawText (status, getWidth() / 2, 0, getWidth() / 2, getHeight(), + Justification::centredLeft, true); + } - if (num == 0) - break; + private: + JuceUpdater& updater; + ToggleButton toggle; + String name, status; + }; - output->write (buffer, num); - bytesSoFar += num; + UpdateListComponent* c = dynamic_cast (existingComponentToUpdate); + if (c == nullptr) + c = new UpdateListComponent (*this); - setProgress (totalBytes > 0 ? bytesSoFar / (double) totalBytes : -1.0); - } - } + ModuleList::Module* m = latestList.modules [rowNumber]; - String error; + if (m != nullptr) + c->setModule (m, + moduleList.findModuleInfo (m->uid), + versionsToDownload.getPropertyAsValue (m->uid, nullptr)); + else + c->setModule (nullptr, nullptr, Value()); -private: - URL url; - File target; -}; + return c; +} //============================================================================== -class Unzipper : public ThreadWithProgressWindow +class InstallThread : public ThreadWithProgressWindow { public: - Unzipper (ZipFile& zipFile_, const File& targetDir_) - : ThreadWithProgressWindow ("Unzipping...", true, true), - worked (true), zipFile (zipFile_), targetDir (targetDir_) + InstallThread (const ModuleList& targetList_, + const ModuleList& list_, const StringArray& itemsToInstall_) + : ThreadWithProgressWindow ("Installing New Modules", true, true), + result (Result::ok()), + targetList (targetList_), + list (list_), + itemsToInstall (itemsToInstall_) { } void run() { - for (int i = 0; i < zipFile.getNumEntries(); ++i) + for (int i = 0; i < itemsToInstall.size(); ++i) { - if (threadShouldExit()) - break; - - const ZipFile::ZipEntry* e = zipFile.getEntry (i); - setStatusMessage ("Unzipping " + e->filename + "..."); - setProgress (i / (double) zipFile.getNumEntries()); + const ModuleList::Module* m = list.findModuleInfo (itemsToInstall[i]); - worked = zipFile.uncompressEntry (i, targetDir, true) && worked; - } - } + jassert (m != nullptr); + if (m != nullptr) + { + setProgress (i / (double) itemsToInstall.size()); - bool worked; + MemoryBlock downloaded; + result = download (*m, downloaded); -private: - ZipFile& zipFile; - File targetDir; -}; + if (result.failed()) + break; -//============================================================================== -void JuceUpdater::applyVersion (VersionInfo* version) -{ - File destDir (filenameComp.getCurrentFile()); + if (threadShouldExit()) + break; - const bool destDirExisted = destDir.isDirectory(); + result = unzip (*m, downloaded); - if (destDirExisted && destDir.getNumberOfChildFiles (File::findFilesAndDirectories, "*") > 0) - { - int r = AlertWindow::showYesNoCancelBox (AlertWindow::WarningIcon, "Folder already exists", - "The folder " + destDir.getFullPathName() + "\nalready contains some files...\n\n" - "Do you want to delete everything in the folder and replace it entirely, or just merge the new files into the existing folder?", - "Delete and replace entire folder", - "Add and overwrite existing files", - "Cancel"); - - if (r == 0) - return; - - if (r == 1) - { - if (! destDir.deleteRecursively()) - { - AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Problems...", - "Couldn't delete the existing folder!"); - return; + if (result.failed()) + break; } + + if (threadShouldExit()) + break; } } - if (! (destDir.isDirectory() || destDir.createDirectory())) + Result download (const ModuleList::Module& m, MemoryBlock& dest) { - AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Problems...", - "Couldn't create that target folder.."); - return; - } - - File zipFile (destDir.getNonexistentChildFile ("juce_download", ".tar.gz", false)); + setStatusMessage ("Downloading " + m.uid + "..."); - bool worked = false; + if (m.url.readEntireBinaryStream (dest, false)) + return Result::ok(); - { - NewVersionDownloader downloader ("Downloading Version " + version->version + "...", - version->url, zipFile); - worked = downloader.runThread(); + return Result::fail ("Failed to download from: " + m.url.toString (false)); } - if (worked) + Result unzip (const ModuleList::Module& m, const MemoryBlock& data) { - ZipFile zip (zipFile); - Unzipper unzipper (zip, destDir); - worked = unzipper.runThread() && unzipper.worked; - } - - zipFile.deleteFile(); + setStatusMessage ("Installing " + m.uid + "..."); - if ((! destDirExisted) && (destDir.getNumberOfChildFiles (File::findFilesAndDirectories, "*") == 0 || ! worked)) - destDir.deleteRecursively(); + MemoryInputStream input (data, false); + ZipFile zip (input); - filenameComponentChanged (&filenameComp); -} + if (zip.getNumEntries() == 0) + return Result::fail ("The downloaded file wasn't a valid module file!"); -void JuceUpdater::filenameComponentChanged (FilenameComponent*) -{ - const String version (getCurrentVersion()); + return zip.uncompressTo (targetList.getModulesFolder(), true); + } - if (version.isEmpty()) - currentVersionLabel.setText ("(Not a Juce folder)", false); - else - currentVersionLabel.setText ("(Current version in this folder: " + version + ")", false); -} + Result result; -//============================================================================== -int JuceUpdater::getNumRows() -{ - return availableVersions.size(); -} - -void JuceUpdater::paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) -{ - if (rowIsSelected) - g.fillAll (findColour (TextEditor::highlightColourId)); -} +private: + ModuleList targetList, list; + StringArray itemsToInstall; +}; -Component* JuceUpdater::refreshComponentForRow (int rowNumber, bool isRowSelected, Component* existingComponentToUpdate) +void JuceUpdater::install() { - class UpdateListComponent : public Component, - public ButtonListener + if (! moduleList.getModulesFolder().createDirectory()) { - public: - UpdateListComponent (JuceUpdater& updater_) - : updater (updater_), - version (nullptr), - applyButton ("Install this version...") - { - addAndMakeVisible (&applyButton); - applyButton.addListener (this); - setInterceptsMouseClicks (false, true); - } - - ~UpdateListComponent() - { - applyButton.removeListener (this); - } - - void setVersion (VersionInfo* v) - { - if (version != v) - { - version = v; - repaint(); - resized(); - } - } - - void paint (Graphics& g) - { - if (version != nullptr) - { - g.setColour (Colours::green.withAlpha (0.12f)); - - g.fillRect (0, 1, getWidth(), getHeight() - 2); - g.setColour (Colours::black); - g.setFont (getHeight() * 0.7f); - - String s; - s << "Version " << version->version << " - " << version->desc << " - " << version->date; - - g.drawText (s, 4, 0, applyButton.getX() - 4, getHeight(), Justification::centredLeft, true); - } - } - - void resized() - { - applyButton.changeWidthToFitText (getHeight() - 4); - applyButton.setTopRightPosition (getWidth(), 2); - applyButton.setVisible (version != nullptr); - } + AlertWindow::showMessageBox (AlertWindow::WarningIcon, + "Module Update", + "Couldn't create the target folder!"); + return; + } - void buttonClicked (Button*) - { - updater.applyVersion (version); - } + StringArray itemsWanted; - private: - JuceUpdater& updater; - VersionInfo* version; - TextButton applyButton; - }; + for (int i = latestList.modules.size(); --i >= 0;) + if (versionsToDownload [latestList.modules.getUnchecked(i)->uid]) + itemsWanted.add (latestList.modules.getUnchecked(i)->uid); - UpdateListComponent* c = dynamic_cast (existingComponentToUpdate); - if (c == nullptr) - c = new UpdateListComponent (*this); + { + InstallThread thread (moduleList, latestList, itemsWanted); + thread.runThread(); + } - c->setVersion (availableVersions [rowNumber]); - return c; + moduleList.rescan(); + refresh(); } + +void JuceUpdater::valueTreePropertyChanged (ValueTree&, const Identifier&) { updateInstallButtonStatus(); } +void JuceUpdater::valueTreeChildAdded (ValueTree&, ValueTree&) {} +void JuceUpdater::valueTreeChildRemoved (ValueTree&, ValueTree&) {} +void JuceUpdater::valueTreeChildOrderChanged (ValueTree&) {} +void JuceUpdater::valueTreeParentChanged (ValueTree&) {} diff --git a/extras/Introjucer/Source/Application/jucer_JuceUpdater.h b/extras/Introjucer/Source/Application/jucer_JuceUpdater.h index b57083cebb..e082edbe7d 100644 --- a/extras/Introjucer/Source/Application/jucer_JuceUpdater.h +++ b/extras/Introjucer/Source/Application/jucer_JuceUpdater.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,21 +23,24 @@ ============================================================================== */ -#ifndef __JUCER_JUCEUPDATER_H_81537815__ -#define __JUCER_JUCEUPDATER_H_81537815__ +#ifndef __JUCER_JUCEUPDATER_JUCEHEADER__ +#define __JUCER_JUCEUPDATER_JUCEHEADER__ + +#include "../Project/jucer_Module.h" //============================================================================== class JuceUpdater : public Component, - public ButtonListener, - public FilenameComponentListener, - public ListBoxModel + private ButtonListener, + private FilenameComponentListener, + private ListBoxModel, + private ValueTree::Listener { public: - JuceUpdater(); + JuceUpdater (ModuleList& moduleList, const String& message); ~JuceUpdater(); - static void show (Component* mainWindow); + static void show (ModuleList& moduleList, Component* mainWindow, const String& message); //============================================================================== void resized(); @@ -49,29 +52,36 @@ public: void paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected); Component* refreshComponentForRow (int rowNumber, bool isRowSelected, Component* existingComponentToUpdate); + void backgroundUpdateComplete (const ModuleList& newList); + private: - Label label, currentVersionLabel; + ModuleList& moduleList; + ModuleList latestList; + + Label messageLabel, label, currentVersionLabel; FilenameComponent filenameComp; TextButton checkNowButton; ListBox availableVersionsList; - - XmlElement* downloadVersionList(); - String getCurrentVersion(); - bool isAlreadyUpToDate(); - - struct VersionInfo - { - URL url; - String desc; - String version; - String date; - }; - - OwnedArray availableVersions; - - void updateVersions (const XmlElement& xml); - void applyVersion (VersionInfo* version); + ValueTree versionsToDownload; + TextButton installButton; + ToggleButton selectAllButton; + ScopedPointer websiteContacterThread; + + void checkNow(); + void install(); + void updateInstallButtonStatus(); + void refresh(); + void selectAll(); + int getNumCheckedModules() const; + bool isLatestVersion (const String& moduleID) const; + + void valueTreePropertyChanged (ValueTree&, const Identifier&); + void valueTreeChildAdded (ValueTree&, ValueTree&); + void valueTreeChildRemoved (ValueTree&, ValueTree&); + void valueTreeChildOrderChanged (ValueTree&); + void valueTreeParentChanged (ValueTree&); + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceUpdater); }; - -#endif // __JUCER_JUCEUPDATER_H_81537815__ +#endif // __JUCER_JUCEUPDATER_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Application/jucer_Main.cpp b/extras/Introjucer/Source/Application/jucer_Main.cpp index 082eb38bd8..c4e8bc6b6f 100644 --- a/extras/Introjucer/Source/Application/jucer_Main.cpp +++ b/extras/Introjucer/Source/Application/jucer_Main.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Application/jucer_MainWindow.cpp b/extras/Introjucer/Source/Application/jucer_MainWindow.cpp index a41d49a191..1402a837de 100644 --- a/extras/Introjucer/Source/Application/jucer_MainWindow.cpp +++ b/extras/Introjucer/Source/Application/jucer_MainWindow.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -30,48 +30,47 @@ #include "../Code Editor/jucer_SourceCodeEditor.h" #include "../Project/jucer_NewProjectWizard.h" -ApplicationCommandManager* commandManager = nullptr; +ScopedPointer commandManager; //============================================================================== MainWindow::MainWindow() - : DocumentWindow (JUCEApplication::getInstance()->getApplicationName(), + : DocumentWindow (JucerApplication::getApp()->getApplicationName(), Colour::greyLevel (0.6f), DocumentWindow::allButtons, false) { setUsingNativeTitleBar (true); - setContentOwned (new ProjectContentComponent(), false); + createProjectContentCompIfNeeded(); #if ! JUCE_MAC - JucerApplication* app = static_cast (JUCEApplication::getInstance()); - setMenuBar (app->menuModel); + setMenuBar (JucerApplication::getApp()->menuModel); #endif setResizable (true, false); - - centreWithSize (700, 600); + centreWithSize (800, 600); // Register all the app commands.. { commandManager->registerAllCommandsForTarget (this); + commandManager->registerAllCommandsForTarget (getProjectContentComponent()); - // use a temporary one of these to harvest its commands.. - ProjectContentComponent pcc; - commandManager->registerAllCommandsForTarget (&pcc); - + // use some temporary objects to harvest their commands.. DocumentEditorComponent dec (nullptr); commandManager->registerAllCommandsForTarget (&dec); } - commandManager->getKeyMappings()->resetToDefaultMappings(); + // update key mappings.. + { + commandManager->getKeyMappings()->resetToDefaultMappings(); - ScopedPointer keys (StoredSettings::getInstance()->getProps().getXmlValue ("keyMappings")); + ScopedPointer keys (StoredSettings::getInstance()->getProps().getXmlValue ("keyMappings")); - if (keys != nullptr) - commandManager->getKeyMappings()->restoreFromXml (*keys); + if (keys != nullptr) + commandManager->getKeyMappings()->restoreFromXml (*keys); - addKeyListener (commandManager->getKeyMappings()); + addKeyListener (commandManager->getKeyMappings()); + } // don't want the window to take focus when the title-bar is clicked.. setWantsKeyboardFocus (false); @@ -96,11 +95,20 @@ MainWindow::~MainWindow() currentProject = nullptr; } +void MainWindow::createProjectContentCompIfNeeded() +{ + if (getProjectContentComponent() == nullptr) + { + clearContentComponent(); + setContentOwned (new ProjectContentComponent(), false); + } +} + void MainWindow::makeVisible() { setVisible (true); + addToDesktop(); // (must add before restoring size so that fullscreen will work) restoreWindowPosition(); - addToDesktop(); getContentComponent()->grabKeyboardFocus(); } @@ -115,8 +123,7 @@ void MainWindow::closeButtonPressed() if (! closeCurrentProject()) return; - JucerApplication* jucer = static_cast (JUCEApplication::getInstance()); - jucer->closeWindow (this); + JucerApplication::getApp()->closeWindow (this); } bool MainWindow::closeProject (Project* project) @@ -132,6 +139,11 @@ bool MainWindow::closeProject (Project* project) if (! OpenDocumentManager::getInstance()->closeAllDocumentsUsingProject (*project, true)) return false; + ProjectContentComponent* const pcc = getProjectContentComponent(); + + if (pcc != nullptr) + pcc->saveTreeViewState(); + FileBasedDocument::SaveResult r = project->saveIfNeededAndUserAgrees(); if (r == FileBasedDocument::savedOk) @@ -150,6 +162,7 @@ bool MainWindow::closeCurrentProject() void MainWindow::setProject (Project* newProject) { + createProjectContentCompIfNeeded(); getProjectContentComponent()->setProject (newProject); currentProject = newProject; commandManager->commandStatusChanged(); @@ -157,7 +170,7 @@ void MainWindow::setProject (Project* newProject) // (mustn't do this when the project is 0, because that'll happen on shutdown, // which will erase the list of recent projects) if (newProject != nullptr) - static_cast (JUCEApplication::getInstance())->updateRecentProjectList(); + JucerApplication::getApp()->updateRecentProjectList(); } void MainWindow::restoreWindowPosition() @@ -181,6 +194,8 @@ bool MainWindow::canOpenFile (const File& file) const bool MainWindow::openFile (const File& file) { + createProjectContentCompIfNeeded(); + if (file.hasFileExtension (Project::projectFileExtension)) { ScopedPointer newDoc (new Project (file)); @@ -232,7 +247,7 @@ void MainWindow::activeWindowStatusChanged() void MainWindow::updateTitle (const String& documentName) { - String name (JUCEApplication::getInstance()->getApplicationName()); + String name (JucerApplication::getApp()->getApplicationName()); if (currentProject != nullptr) name = currentProject->getDocumentTitle() + " - " + name; @@ -243,6 +258,12 @@ void MainWindow::updateTitle (const String& documentName) setName (name); } +void MainWindow::showNewProjectWizard() +{ + jassert (currentProject == nullptr); + setContentOwned (NewProjectWizard::createComponent(), true); + makeVisible(); +} //============================================================================== ApplicationCommandTarget* MainWindow::getNextCommandTarget() diff --git a/extras/Introjucer/Source/Application/jucer_MainWindow.h b/extras/Introjucer/Source/Application/jucer_MainWindow.h index f0eb4b4ae4..613e07f07b 100644 --- a/extras/Introjucer/Source/Application/jucer_MainWindow.h +++ b/extras/Introjucer/Source/Application/jucer_MainWindow.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -57,6 +57,8 @@ public: bool closeProject (Project* project); bool closeCurrentProject(); + void showNewProjectWizard(); + bool isInterestedInFileDrag (const StringArray& files); void filesDropped (const StringArray& filenames, int mouseX, int mouseY); @@ -84,6 +86,8 @@ private: return "projectWindowPos_" + currentProject->getProjectUID(); } + void createProjectContentCompIfNeeded(); + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow); }; diff --git a/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.cpp b/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.cpp index 44718051b4..c14a1276d7 100644 --- a/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.cpp +++ b/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -40,17 +40,9 @@ public: reloadFromFile(); } - ~SourceCodeDocument() - { - } - //============================================================================== - class Type : public OpenDocumentManager::DocumentType + struct Type : public OpenDocumentManager::DocumentType { - public: - Type() {} - ~Type() {} - bool canOpenFile (const File& file) { return SourceCodeEditor::isTextFile (file); } Document* openFile (Project*, const File& file) { return new SourceCodeDocument (file); } }; @@ -60,6 +52,7 @@ public: bool isForFile (const File& file) const { return modDetector.getFile() == file; } bool isForNode (const ValueTree& node) const { return false; } bool refersToProject (Project& project) const { return false; } + bool canSaveAs() const { return true; } String getName() const { return modDetector.getFile().getFileName(); } String getType() const { return modDetector.getFile().getFileExtension() + " file"; } bool needsSaving() const { return codeDoc != nullptr && codeDoc->hasChangedSinceSavePoint(); } @@ -92,6 +85,12 @@ public: return true; } + bool saveAs() + { + jassertfalse; //xxx todo + return false; + } + Component* createEditor() { CodeTokeniser* tokeniser = nullptr; @@ -120,16 +119,10 @@ public: reloadFromFile(); } - ~UnknownDocument() {} - //============================================================================== - class Type : public OpenDocumentManager::DocumentType + struct Type : public OpenDocumentManager::DocumentType { - public: - Type() {} - ~Type() {} - - bool canOpenFile (const File& file) { return true; } + bool canOpenFile (const File&) { return true; } Document* openFile (Project* project, const File& file) { return new UnknownDocument (project, file); } }; @@ -140,6 +133,8 @@ public: bool refersToProject (Project& p) const { return project == &p; } bool needsSaving() const { return false; } bool save() { return true; } + bool canSaveAs() const { return false; } + bool saveAs() { return false; } bool hasFileBeenModifiedExternally() { return fileModificationTime != file.getLastModificationTime(); } void reloadFromFile() { fileModificationTime = file.getLastModificationTime(); } String getName() const { return file.getFileName(); } @@ -206,7 +201,7 @@ bool OpenDocumentManager::canOpenFile (const File& file) return false; } -OpenDocumentManager::Document* OpenDocumentManager::getDocumentForFile (Project* project, const File& file) +OpenDocumentManager::Document* OpenDocumentManager::openFile (Project* project, const File& file) { for (int i = documents.size(); --i >= 0;) if (documents.getUnchecked(i)->isForFile (file)) @@ -223,11 +218,9 @@ OpenDocumentManager::Document* OpenDocumentManager::getDocumentForFile (Project* } } - jassert (d != nullptr); - - if (d != nullptr) - documents.add (d); + jassert (d != nullptr); // should always at least have been picked up by UnknownDocument + documents.add (d); commandManager->commandStatusChanged(); return d; } @@ -322,6 +315,15 @@ void OpenDocumentManager::closeFile (const File& f, bool saveIfNeeded) } } +bool OpenDocumentManager::closeAll (bool askUserToSave) +{ + for (int i = getNumOpenDocuments(); --i >= 0;) + if (! closeDocument (i, askUserToSave)) + return false; + + return true; +} + bool OpenDocumentManager::closeAllDocumentsUsingProject (Project& project, bool saveIfNeeded) { for (int i = documents.size(); --i >= 0;) diff --git a/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.h b/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.h index 297b2dbbc0..5d6dfa0a6f 100644 --- a/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.h +++ b/extras/Introjucer/Source/Application/jucer_OpenDocumentManager.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -56,6 +56,8 @@ public: virtual String getType() const = 0; virtual bool needsSaving() const = 0; virtual bool save() = 0; + virtual bool canSaveAs() const = 0; + virtual bool saveAs() = 0; virtual bool hasFileBeenModifiedExternally() = 0; virtual void reloadFromFile() = 0; virtual Component* createEditor() = 0; @@ -63,16 +65,16 @@ public: virtual void fileHasBeenRenamed (const File& newFile) = 0; }; - Document* getDocumentForFile (Project* project, const File& file); - bool canOpenFile (const File& file); - //============================================================================== int getNumOpenDocuments() const; Document* getOpenDocument (int index) const; void moveDocumentToTopOfStack (Document* doc); + bool canOpenFile (const File& file); + Document* openFile (Project* project, const File& file); bool closeDocument (int index, bool saveIfNeeded); bool closeDocument (Document* document, bool saveIfNeeded); + bool closeAll (bool askUserToSave); bool closeAllDocumentsUsingProject (Project& project, bool saveIfNeeded); void closeFile (const File& f, bool saveIfNeeded); bool anyFilesNeedSaving() const; diff --git a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp index 5c7fef48bf..ae75de1247 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.cpp @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated by the Introjucer! It contains the basic startup code for a Juce application. diff --git a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.h b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.h index 45c00f9b03..2553c4554c 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.h +++ b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginEditorTemplate.h @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated by the Introjucer! It contains the basic startup code for a Juce application. diff --git a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp index 56ab9425bf..e826aef0a8 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated! It contains the basic startup code for a Juce application. diff --git a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.h b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.h index 11c1f69621..fd976734d5 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.h +++ b/extras/Introjucer/Source/BinaryData/jucer_AudioPluginFilterTemplate.h @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated! It contains the basic startup code for a Juce application. diff --git a/extras/Introjucer/Source/BinaryData/jucer_MainConsoleAppTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_MainConsoleAppTemplate.cpp index 2612f392c4..4fb8dde760 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_MainConsoleAppTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_MainConsoleAppTemplate.cpp @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated! It contains the basic startup code for a Juce application. diff --git a/extras/Introjucer/Source/BinaryData/jucer_MainTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_MainTemplate.cpp index ea271a63dc..f36084b0a9 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_MainTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_MainTemplate.cpp @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated by the Introjucer! It contains the basic startup code for a Juce application. diff --git a/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.cpp index b6464917e0..dfd4b54427 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.cpp @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated! It contains the basic outline for a simple desktop window. diff --git a/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.h b/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.h index a4df1854a9..52832f0ba9 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.h +++ b/extras/Introjucer/Source/BinaryData/jucer_WindowTemplate.h @@ -1,7 +1,7 @@ /* ============================================================================== - This file was auto-generated by the Jucer! + This file was auto-generated! It contains the basic outline for a simple desktop window. diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp index 93e5371f6f..ca2a03e4a1 100644 --- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp +++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -52,7 +52,7 @@ SourceCodeEditor::~SourceCodeEditor() void SourceCodeEditor::resized() { - editor.setBounds (0, 0, getWidth(), getHeight()); + editor.setBounds (getLocalBounds()); } bool SourceCodeEditor::isTextFile (const File& file) diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h index f643d89315..ed6b82977c 100644 --- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h +++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h new file mode 100644 index 0000000000..916cfd5718 --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h @@ -0,0 +1,458 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_PROJECTEXPORT_ANDROID_JUCEHEADER__ +#define __JUCER_PROJECTEXPORT_ANDROID_JUCEHEADER__ + +#include "jucer_ProjectExporter.h" + + +//============================================================================== +class AndroidProjectExporter : public ProjectExporter +{ +public: + //============================================================================== + static const char* getNameAndroid() { return "Android Project"; } + static const char* getValueTreeTypeName() { return "ANDROID"; } + + static AndroidProjectExporter* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new AndroidProjectExporter (project, settings); + + return 0; + } + + //============================================================================== + AndroidProjectExporter (Project& project_, const ValueTree& settings_) + : ProjectExporter (project_, settings_) + { + name = getNameAndroid(); + + if (getTargetLocation().toString().isEmpty()) + getTargetLocation() = getDefaultBuildsRootFolder() + "Android"; + + if (getSDKPath().toString().isEmpty()) + getSDKPath() = "${user.home}/SDKs/android-sdk-macosx"; + + if (getNDKPath().toString().isEmpty()) + getNDKPath() = "${user.home}/SDKs/android-ndk-r7"; + + if (getInternetNeeded().toString().isEmpty()) + getInternetNeeded() = true; + } + + //============================================================================== + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_ANDROID + return 1; + #else + return 0; + #endif + } + + bool isPossibleForCurrentProject() { return projectType.isGUIApplication(); } + bool usesMMFiles() const { return false; } + bool canCopeWithDuplicateFiles() { return false; } + + void launchProject() + { + } + + void createPropertyEditors (PropertyListBuilder& props) + { + ProjectExporter::createPropertyEditors (props); + + props.add (new TextPropertyComponent (getSDKPath(), "Android SDK Path", 1024, false), + "The path to the Android SDK folder on the target build machine"); + + props.add (new TextPropertyComponent (getNDKPath(), "Android NDK Path", 1024, false), + "The path to the Android NDK folder on the target build machine"); + + props.add (new BooleanPropertyComponent (getInternetNeeded(), "Internet Access", "Specify internet access permission in the manifest"), + "If enabled, this will set the android.permission.INTERNET flag in the manifest."); + } + + Value getSDKPath() const { return getSetting (Ids::androidSDKPath); } + Value getNDKPath() const { return getSetting (Ids::androidNDKPath); } + Value getInternetNeeded() const { return getSetting (Ids::androidInternetNeeded); } + + //============================================================================== + void create() + { + const File target (getTargetFolder()); + const File jniFolder (target.getChildFile ("jni")); + + createDirectoryOrThrow (target.getChildFile ("src/com")); + createDirectoryOrThrow (jniFolder); + createDirectoryOrThrow (target.getChildFile ("res/drawable-hdpi")); + createDirectoryOrThrow (target.getChildFile ("res/drawable-mdpi")); + createDirectoryOrThrow (target.getChildFile ("res/drawable-ldpi")); + createDirectoryOrThrow (target.getChildFile ("res/values")); + createDirectoryOrThrow (target.getChildFile ("libs")); + createDirectoryOrThrow (target.getChildFile ("bin")); + + { + ScopedPointer manifest (createManifestXML()); + writeXmlOrThrow (*manifest, target.getChildFile ("AndroidManifest.xml"), "utf-8", 100, true); + } + + writeApplicationMk (jniFolder.getChildFile ("Application.mk")); + writeAndroidMk (jniFolder.getChildFile ("Android.mk")); + + { + ScopedPointer antBuildXml (createAntBuildXML()); + writeXmlOrThrow (*antBuildXml, target.getChildFile ("build.xml"), "UTF-8", 100); + } + + writeProjectPropertiesFile (target.getChildFile ("project.properties")); + writeLocalPropertiesFile (target.getChildFile ("local.properties")); + + writeIcon (target.getChildFile ("res/drawable-hdpi/icon.png"), 72); + writeIcon (target.getChildFile ("res/drawable-mdpi/icon.png"), 48); + writeIcon (target.getChildFile ("res/drawable-ldpi/icon.png"), 36); + + writeStringsFile (target.getChildFile ("res/values/strings.xml")); + } + +protected: + //============================================================================== + class AndroidBuildConfiguration : public BuildConfiguration + { + public: + AndroidBuildConfiguration (Project& project, const ValueTree& settings) + : BuildConfiguration (project, settings) + { + androidDynamicLibs.add ("GLESv1_CM"); + androidDynamicLibs.add ("GLESv2"); + } + + void createPropertyEditors (PropertyListBuilder& props) + { + createBasicPropertyEditors (props); + + } + + StringArray androidDynamicLibs; + }; + + BuildConfiguration::Ptr createBuildConfig (const ValueTree& settings) const + { + return new AndroidBuildConfiguration (project, settings); + } + +private: + //============================================================================== + XmlElement* createManifestXML() + { + XmlElement* manifest = new XmlElement ("manifest"); + + manifest->setAttribute ("xmlns:android", "http://schemas.android.com/apk/res/android"); + manifest->setAttribute ("android:versionCode", "1"); + manifest->setAttribute ("android:versionName", "1.0"); + manifest->setAttribute ("package", "com.juce"); + + XmlElement* screens = manifest->createNewChildElement ("supports-screens"); + screens->setAttribute ("android:smallScreens", "true"); + screens->setAttribute ("android:normalScreens", "true"); + screens->setAttribute ("android:largeScreens", "true"); + //screens->setAttribute ("android:xlargeScreens", "true"); + screens->setAttribute ("android:anyDensity", "true"); + + if (getInternetNeeded().getValue()) + { + XmlElement* permission = manifest->createNewChildElement ("uses-permission"); + permission->setAttribute ("android:name", "android.permission.INTERNET"); + } + + XmlElement* app = manifest->createNewChildElement ("application"); + app->setAttribute ("android:label", "@string/app_name"); + app->setAttribute ("android:icon", "@drawable/icon"); + + XmlElement* act = app->createNewChildElement ("activity"); + act->setAttribute ("android:name", "JuceAppActivity"); + act->setAttribute ("android:label", "@string/app_name"); + + XmlElement* intent = act->createNewChildElement ("intent-filter"); + intent->createNewChildElement ("action")->setAttribute ("android:name", "android.intent.action.MAIN"); + intent->createNewChildElement ("category")->setAttribute ("android:name", "android.intent.category.LAUNCHER"); + + return manifest; + } + + //============================================================================== + void findAllFilesToCompile (const Project::Item& projectItem, Array& results) + { + if (projectItem.isGroup()) + { + for (int i = 0; i < projectItem.getNumChildren(); ++i) + findAllFilesToCompile (projectItem.getChild(i), results); + } + else + { + if (projectItem.shouldBeCompiled()) + results.add (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder)); + } + } + + void writeApplicationMk (const File& file) + { + MemoryOutputStream mo; + + mo << "# Automatically generated makefile, created by the Introjucer" << newLine + << "# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project!" << newLine + << newLine + << "APP_STL := gnustl_static" << newLine + << "APP_CPPFLAGS += -fsigned-char -fexceptions -frtti" << newLine + << "APP_PLATFORM := android-7" << newLine; + + overwriteFileIfDifferentOrThrow (file, mo); + } + + void writeAndroidMk (const File& file) + { + Array files; + + for (int i = 0; i < groups.size(); ++i) + findAllFilesToCompile (groups.getReference(i), files); + + MemoryOutputStream mo; + writeAndroidMk (mo, files); + + overwriteFileIfDifferentOrThrow (file, mo); + } + + void writeAndroidMk (OutputStream& out, const Array& files) + { + out << "# Automatically generated makefile, created by the Introjucer" << newLine + << "# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project!" << newLine + << newLine + << "LOCAL_PATH := $(call my-dir)" << newLine + << newLine + << "include $(CLEAR_VARS)" << newLine + << newLine + << "LOCAL_MODULE := juce_jni" << newLine + << "LOCAL_SRC_FILES := \\" << newLine; + + for (int i = 0; i < files.size(); ++i) + out << " ../" << escapeSpaces (files.getReference(i).toUnixStyle()) << "\\" << newLine; + + String debugSettings, releaseSettings; + + out << newLine + << "ifeq ($(CONFIG),Debug)" << newLine; + writeConfigSettings (out, true); + out << "else" << newLine; + writeConfigSettings (out, false); + out << "endif" << newLine + << newLine + << "include $(BUILD_SHARED_LIBRARY)" << newLine; + } + + void writeConfigSettings (OutputStream& out, bool forDebug) + { + for (ConfigIterator config (*this); config.next();) + { + if (config->isDebug() == forDebug) + { + out << " LOCAL_CPPFLAGS += " << createCPPFlags (*config) << newLine + << getDynamicLibs (dynamic_cast (*config)); + + break; + } + } + } + + String getDynamicLibs (const AndroidBuildConfiguration& config) + { + if (config.androidDynamicLibs.size() == 0) + return String::empty; + + String flags (" LOCAL_LDLIBS :="); + + flags << config.getGCCLibraryPathFlags(); + + for (int i = 0; i < config.androidDynamicLibs.size(); ++i) + flags << " -l" << config.androidDynamicLibs[i]; + + return flags + newLine; + } + + String createIncludePathFlags (const BuildConfiguration& config) + { + String flags; + StringArray searchPaths (extraSearchPaths); + searchPaths.addArray (config.getHeaderSearchPaths()); + searchPaths.removeDuplicates (false); + + for (int i = 0; i < searchPaths.size(); ++i) + flags << " -I " << FileHelpers::unixStylePath (replacePreprocessorTokens (config, searchPaths[i])).quoted(); + + return flags; + } + + String createCPPFlags (const BuildConfiguration& config) + { + StringPairArray defines; + defines.set ("JUCE_ANDROID", "1"); + + String flags ("-fsigned-char -fexceptions -frtti"); + + if (config.isDebug().getValue()) + { + flags << " -g"; + defines.set ("DEBUG", "1"); + defines.set ("_DEBUG", "1"); + } + else + { + defines.set ("NDEBUG", "1"); + } + + flags << createIncludePathFlags (config) + << " -O" << config.getGCCOptimisationFlag(); + + defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); + return flags + createGCCPreprocessorFlags (defines); + } + + //============================================================================== + XmlElement* createAntBuildXML() + { + XmlElement* proj = new XmlElement ("project"); + proj->setAttribute ("name", projectName); + proj->setAttribute ("default", "debug"); + + proj->createNewChildElement ("loadproperties")->setAttribute ("srcFile", "local.properties"); + proj->createNewChildElement ("loadproperties")->setAttribute ("srcFile", "project.properties"); + + XmlElement* path = proj->createNewChildElement ("path"); + path->setAttribute ("id", "android.antlibs"); + path->createNewChildElement ("pathelement")->setAttribute ("path", "${sdk.dir}/tools/lib/anttasks.jar"); + path->createNewChildElement ("pathelement")->setAttribute ("path", "${sdk.dir}/tools/lib/sdklib.jar"); + path->createNewChildElement ("pathelement")->setAttribute ("path", "${sdk.dir}/tools/lib/androidprefs.jar"); + + XmlElement* taskdef = proj->createNewChildElement ("taskdef"); + taskdef->setAttribute ("name", "setup"); + taskdef->setAttribute ("classname", "com.android.ant.SetupTask"); + taskdef->setAttribute ("classpathref", "android.antlibs"); + + addNDKBuildStep (proj, "clean", "clean"); + + //addLinkStep (proj, "${basedir}/" + rebaseFromProjectFolderToBuildTarget (RelativePath()).toUnixStyle() + "/", "jni/app"); + addLinkStep (proj, "${basedir}/" + getJucePathFromTargetFolder().toUnixStyle() + "/modules/juce_core/native/java/", "src/com/juce"); + + addNDKBuildStep (proj, "debug", "CONFIG=Debug"); + addNDKBuildStep (proj, "release", "CONFIG=Release"); + + proj->createNewChildElement ("import")->setAttribute ("file", "${sdk.dir}/tools/ant/build.xml"); + + return proj; + } + + static void addNDKBuildStep (XmlElement* project, const String& type, const String& arg) + { + XmlElement* target = project->createNewChildElement ("target"); + target->setAttribute ("name", type); + + XmlElement* executable = target->createNewChildElement ("exec"); + executable->setAttribute ("executable", "${ndk.dir}/ndk-build"); + executable->setAttribute ("dir", "${basedir}"); + executable->setAttribute ("failonerror", "true"); + + executable->createNewChildElement ("arg")->setAttribute ("value", "--jobs=2"); + executable->createNewChildElement ("arg")->setAttribute ("value", arg); + } + + static void addLinkStep (XmlElement* project, const String& from, const String& to) + { + XmlElement* executable = project->createNewChildElement ("exec"); + executable->setAttribute ("executable", "ln"); + executable->setAttribute ("dir", "${basedir}"); + executable->setAttribute ("failonerror", "false"); + + executable->createNewChildElement ("arg")->setAttribute ("value", "-s"); + executable->createNewChildElement ("arg")->setAttribute ("value", from); + executable->createNewChildElement ("arg")->setAttribute ("value", to); + } + + void writeProjectPropertiesFile (const File& file) + { + MemoryOutputStream mo; + mo << "# This file is used to override default values used by the Ant build system." << newLine + << "# It is automatically generated - DO NOT EDIT IT or your changes will be lost!." << newLine + << newLine + << "target=Google Inc.:Google APIs:7" << newLine + << newLine; + + overwriteFileIfDifferentOrThrow (file, mo); + } + + void writeLocalPropertiesFile (const File& file) + { + MemoryOutputStream mo; + mo << "# This file is used to override default values used by the Ant build system." << newLine + << "# It is automatically generated by the Introjucer - DO NOT EDIT IT or your changes will be lost!." << newLine + << newLine + << "sdk.dir=" << escapeSpaces (replacePreprocessorDefs (getAllPreprocessorDefs(), getSDKPath().toString())) << newLine + << "ndk.dir=" << escapeSpaces (replacePreprocessorDefs (getAllPreprocessorDefs(), getNDKPath().toString())) << newLine + << newLine; + + overwriteFileIfDifferentOrThrow (file, mo); + } + + void writeIcon (const File& file, int size) + { + Image im (getBestIconForSize (size, false)); + + if (im.isValid()) + { + PNGImageFormat png; + MemoryOutputStream mo; + + if (! png.writeImageToStream (im, mo)) + throw SaveError ("Can't generate Android icon file"); + + overwriteFileIfDifferentOrThrow (file, mo); + } + } + + void writeStringsFile (const File& file) + { + XmlElement strings ("resources"); + XmlElement* name = strings.createNewChildElement ("string"); + name->setAttribute ("name", "app_name"); + name->addTextElement (projectName); + + writeXmlOrThrow (strings, file, "utf-8", 100); + } + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE (AndroidProjectExporter); +}; + + +#endif // __JUCER_PROJECTEXPORT_ANDROID_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h new file mode 100644 index 0000000000..04e05228f6 --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h @@ -0,0 +1,1555 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ +#define __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ + +#include "jucer_ProjectExporter.h" +#include "jucer_ProjectSaver.h" + +//============================================================================== +class MSVCProjectExporterBase : public ProjectExporter +{ +public: + //============================================================================== + MSVCProjectExporterBase (Project& project_, const ValueTree& settings_, const char* const folderName) + : ProjectExporter (project_, settings_), hasIcon (false) + { + if (getTargetLocation().toString().isEmpty()) + getTargetLocation() = getDefaultBuildsRootFolder() + folderName; + + if ((int) getLibraryType().getValue() <= 0) + getLibraryType() = 1; + + projectGUID = createGUID (project.getProjectUID()); + + const String oldStylePrebuildCommand (getSetting (Ids::prebuildCommand).toString()); + if (oldStylePrebuildCommand.isNotEmpty()) // update an old project format.. + { + for (ConfigIterator config (*this); config.next();) + dynamic_cast (*config).getPrebuildCommand() = oldStylePrebuildCommand; + + settings.removeProperty (Ids::prebuildCommand, nullptr); + } + } + + //============================================================================== + bool isPossibleForCurrentProject() { return true; } + bool usesMMFiles() const { return false; } + bool isVisualStudio() const { return true; } + bool canCopeWithDuplicateFiles() { return false; } + + void createPropertyEditors (PropertyListBuilder& props) + { + ProjectExporter::createPropertyEditors (props); + + if (projectType.isLibrary()) + { + const char* const libTypes[] = { "Static Library (.lib)", "Dynamic Library (.dll)", 0 }; + const int libTypeValues[] = { 1, 2, 0 }; + props.add (new ChoicePropertyComponent (getLibraryType(), "Library Type", + StringArray (libTypes), Array (libTypeValues))); + + props.add (new TextPropertyComponent (getSetting (Ids::libraryName_Debug), "Library Name (Debug)", 128, false), + "If set, this name will override the binary name specified in the configuration settings, for a debug build. " + "You must include the .lib or .dll suffix on this filename."); + + props.add (new TextPropertyComponent (getSetting (Ids::libraryName_Release), "Library Name (Release)", 128, false), + "If set, this name will override the binary name specified in the configuration settings, for a release build. " + "You must include the .lib or .dll suffix on this filename."); + } + } + +protected: + String projectGUID; + File rcFile, iconFile; + bool hasIcon; + + File getProjectFile (const String& extension) const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (extension); } + + Value getLibraryType() const { return getSetting (Ids::libraryType); } + bool isLibraryDLL() const { return msvcIsDLL || (projectType.isLibrary() && getLibraryType() == 2); } + + //============================================================================== + class MSVCBuildConfiguration : public BuildConfiguration + { + public: + MSVCBuildConfiguration (Project& project, const ValueTree& settings) + : BuildConfiguration (project, settings) + { + if (getWarningLevel() == 0) + getWarningLevelValue() = 4; + + msvcPreBuildCommand = getPrebuildCommand().toString(); + msvcPostBuildCommand = getPostbuildCommand().toString(); + + if (shouldGenerateManifest().getValue().isVoid()) + shouldGenerateManifest() = var (true); + } + + Value getWarningLevelValue() const { return getValue (Ids::winWarningLevel); } + int getWarningLevel() const { return getWarningLevelValue().getValue(); } + + Value getPrebuildCommand() const { return getValue (Ids::prebuildCommand); } + Value getPostbuildCommand() const { return getValue (Ids::postbuildCommand); } + + Value shouldGenerateManifest() const { return getValue (Ids::generateManifest); } + + void createPropertyEditors (PropertyListBuilder& props) + { + createBasicPropertyEditors (props); + + const char* const warningLevelNames[] = { "Low", "Medium", "High", nullptr }; + const int warningLevels[] = { 2, 3, 4, 0 }; + + props.add (new ChoicePropertyComponent (getWarningLevelValue(), "Warning Level", + StringArray (warningLevelNames), Array (warningLevels))); + + props.add (new TextPropertyComponent (getPrebuildCommand(), "Pre-build Command", 2048, false)); + props.add (new TextPropertyComponent (getPostbuildCommand(), "Post-build Command", 2048, false)); + props.add (new BooleanPropertyComponent (shouldGenerateManifest(), "Manifest", "Generate Manifest")); + } + }; + + BuildConfiguration::Ptr createBuildConfig (const ValueTree& settings) const + { + return new MSVCBuildConfiguration (project, settings); + } + + static int getWarningLevel (const BuildConfiguration& config) + { + return dynamic_cast (config).getWarningLevel(); + } + + //============================================================================== + String getIntermediatesPath (const BuildConfiguration& config) const + { + return ".\\" + File::createLegalFileName (config.getName().toString().trim()); + } + + String getConfigTargetPath (const BuildConfiguration& config) const + { + const String binaryPath (config.getTargetBinaryRelativePath().toString().trim()); + if (binaryPath.isEmpty()) + return getIntermediatesPath (config); + + RelativePath binaryRelPath (binaryPath, RelativePath::projectFolder); + + if (binaryRelPath.isAbsolute()) + return binaryRelPath.toWindowsStyle(); + + return ".\\" + binaryRelPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder) + .toWindowsStyle(); + } + + String getPreprocessorDefs (const BuildConfiguration& config, const String& joinString) const + { + StringPairArray defines (msvcExtraPreprocessorDefs); + defines.set ("WIN32", ""); + defines.set ("_WINDOWS", ""); + + if (config.isDebug().getValue()) + { + defines.set ("DEBUG", ""); + defines.set ("_DEBUG", ""); + } + else + { + defines.set ("NDEBUG", ""); + } + + defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); + + StringArray result; + + for (int i = 0; i < defines.size(); ++i) + { + String def (defines.getAllKeys()[i]); + const String value (defines.getAllValues()[i]); + if (value.isNotEmpty()) + def << "=" << value; + + result.add (def); + } + + return result.joinIntoString (joinString); + } + + StringArray getHeaderSearchPaths (const BuildConfiguration& config) const + { + StringArray searchPaths (extraSearchPaths); + searchPaths.addArray (config.getHeaderSearchPaths()); + searchPaths.removeDuplicates (false); + return searchPaths; + } + + String getBinaryFileForConfig (const BuildConfiguration& config) const + { + const String targetBinary (getSetting (config.isDebug().getValue() ? Ids::libraryName_Debug : Ids::libraryName_Release).toString().trim()); + if (targetBinary.isNotEmpty()) + return targetBinary; + + return config.getTargetBinaryName().toString() + msvcTargetSuffix; + } + + virtual String createConfigName (const BuildConfiguration& config) const + { + return config.getName().toString() + "|Win32"; + } + + //============================================================================== + void writeSolutionFile (OutputStream& out, const String& versionString, String commentString, const File& vcProject) + { + if (commentString.isNotEmpty()) + commentString += newLine; + + out << "Microsoft Visual Studio Solution File, Format Version " << versionString << newLine + << commentString + << "Project(\"" << createGUID (projectName + "sln_guid") << "\") = \"" << projectName << "\", \"" + << vcProject.getFileName() << "\", \"" << projectGUID << '"' << newLine + << "EndProject" << newLine + << "Global" << newLine + << "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution" << newLine; + + for (ConfigIterator i (*this); i.next();) + { + const String configName (createConfigName (*i)); + out << "\t\t" << configName << " = " << configName << newLine; + } + + out << "\tEndGlobalSection" << newLine + << "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution" << newLine; + + for (ConfigIterator i (*this); i.next();) + { + const String configName (createConfigName (*i)); + out << "\t\t" << projectGUID << "." << configName << ".ActiveCfg = " << configName << newLine; + out << "\t\t" << projectGUID << "." << configName << ".Build.0 = " << configName << newLine; + } + + out << "\tEndGlobalSection" << newLine + << "\tGlobalSection(SolutionProperties) = preSolution" << newLine + << "\t\tHideSolutionNode = FALSE" << newLine + << "\tEndGlobalSection" << newLine + << "EndGlobal" << newLine; + } + + //============================================================================== + static bool writeRCFile (const File& file, const File& iconFile) + { + return file.deleteFile() + && file.appendText ("IDI_ICON1 ICON DISCARDABLE " + + iconFile.getFileName().quoted(), false, false); + } + + static void writeBMPImage (const Image& image, const int w, const int h, MemoryOutputStream& out) + { + const int maskStride = (w / 8 + 3) & ~3; + + out.writeInt (40); // bitmapinfoheader size + out.writeInt (w); + out.writeInt (h * 2); + out.writeShort (1); // planes + out.writeShort (32); // bits + out.writeInt (0); // compression + out.writeInt ((h * w * 4) + (h * maskStride)); // size image + out.writeInt (0); // x pixels per meter + out.writeInt (0); // y pixels per meter + out.writeInt (0); // clr used + out.writeInt (0); // clr important + + const Image::BitmapData bitmap (image, Image::BitmapData::readOnly); + const int alphaThreshold = 5; + + int y; + for (y = h; --y >= 0;) + { + for (int x = 0; x < w; ++x) + { + const Colour pixel (bitmap.getPixelColour (x, y)); + + if (pixel.getAlpha() <= alphaThreshold) + { + out.writeInt (0); + } + else + { + out.writeByte ((char) pixel.getBlue()); + out.writeByte ((char) pixel.getGreen()); + out.writeByte ((char) pixel.getRed()); + out.writeByte ((char) pixel.getAlpha()); + } + } + } + + for (y = h; --y >= 0;) + { + int mask = 0, count = 0; + + for (int x = 0; x < w; ++x) + { + const Colour pixel (bitmap.getPixelColour (x, y)); + + mask <<= 1; + if (pixel.getAlpha() <= alphaThreshold) + mask |= 1; + + if (++count == 8) + { + out.writeByte ((char) mask); + count = 0; + mask = 0; + } + } + + if (mask != 0) + out.writeByte ((char) mask); + + for (int i = maskStride - w / 8; --i >= 0;) + out.writeByte (0); + } + } + + static void writeIconFile (const Array& images, MemoryOutputStream& out) + { + out.writeShort (0); // reserved + out.writeShort (1); // .ico tag + out.writeShort ((short) images.size()); + + MemoryOutputStream dataBlock; + + const int imageDirEntrySize = 16; + const int dataBlockStart = 6 + images.size() * imageDirEntrySize; + + for (int i = 0; i < images.size(); ++i) + { + const size_t oldDataSize = dataBlock.getDataSize(); + + const Image& image = images.getReference (i); + const int w = image.getWidth(); + const int h = image.getHeight(); + + if (w >= 256 || h >= 256) + { + PNGImageFormat pngFormat; + pngFormat.writeImageToStream (image, dataBlock); + } + else + { + writeBMPImage (image, w, h, dataBlock); + } + + out.writeByte ((char) w); + out.writeByte ((char) h); + out.writeByte (0); + out.writeByte (0); + out.writeShort (1); // colour planes + out.writeShort (32); // bits per pixel + out.writeInt ((int) (dataBlock.getDataSize() - oldDataSize)); + out.writeInt (dataBlockStart + oldDataSize); + } + + jassert (out.getPosition() == dataBlockStart); + out << dataBlock; + } + + bool createIconFile() + { + Array images; + + const int sizes[] = { 16, 32, 48, 256 }; + + for (int i = 0; i < numElementsInArray (sizes); ++i) + { + Image im (getBestIconForSize (sizes[i], true)); + if (im.isValid()) + images.add (im); + } + + if (images.size() == 0) + return true; + + MemoryOutputStream mo; + writeIconFile (images, mo); + + iconFile = getTargetFolder().getChildFile ("icon.ico"); + rcFile = getTargetFolder().getChildFile ("resources.rc"); + + hasIcon = FileHelpers::overwriteFileWithNewDataIfDifferent (iconFile, mo) + && writeRCFile (rcFile, iconFile); + return hasIcon; + } + + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterBase); +}; + + +//============================================================================== +class MSVCProjectExporterVC2008 : public MSVCProjectExporterBase +{ +public: + //============================================================================== + MSVCProjectExporterVC2008 (Project& project_, const ValueTree& settings_, const char* folderName = "VisualStudio2008") + : MSVCProjectExporterBase (project_, settings_, folderName) + { + name = getName(); + } + + static const char* getName() { return "Visual Studio 2008"; } + static const char* getValueTreeTypeName() { return "VS2008"; } + + void launchProject() { getSLNFile().startAsProcess(); } + + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_WINDOWS + return 4; + #else + return 0; + #endif + } + + static MSVCProjectExporterVC2008* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC2008 (project, settings); + + return nullptr; + } + + //============================================================================== + void create() + { + createIconFile(); + + if (hasIcon) + { + for (int i = 0; i < groups.size(); ++i) + { + Project::Item& group = groups.getReference(i); + + if (group.getID() == ProjectSaver::getGeneratedGroupID()) + { + group.addFile (iconFile, -1, true); + group.addFile (rcFile, -1, true); + + group.findItemForFile (iconFile).getShouldAddToResourceValue() = false; + group.findItemForFile (rcFile).getShouldAddToResourceValue() = false; + break; + } + } + } + + { + XmlElement projectXml ("VisualStudioProject"); + fillInProjectXml (projectXml); + writeXmlOrThrow (projectXml, getVCProjFile(), "UTF-8", 10); + } + + { + MemoryOutputStream mo; + writeSolutionFile (mo, getSolutionVersionString(), String::empty, getVCProjFile()); + + overwriteFileIfDifferentOrThrow (getSLNFile(), mo); + } + } + +protected: + virtual String getProjectVersionString() const { return "9.00"; } + virtual String getSolutionVersionString() const { return "10.00" + newLine + "# Visual C++ Express 2008"; } + + File getVCProjFile() const { return getProjectFile (".vcproj"); } + File getSLNFile() const { return getProjectFile (".sln"); } + + //============================================================================== + void fillInProjectXml (XmlElement& projectXml) + { + projectXml.setAttribute ("ProjectType", "Visual C++"); + projectXml.setAttribute ("Version", getProjectVersionString()); + projectXml.setAttribute ("Name", projectName); + projectXml.setAttribute ("ProjectGUID", projectGUID); + projectXml.setAttribute ("TargetFrameworkVersion", "131072"); + + { + XmlElement* platforms = projectXml.createNewChildElement ("Platforms"); + XmlElement* platform = platforms->createNewChildElement ("Platform"); + platform->setAttribute ("Name", "Win32"); + } + + projectXml.createNewChildElement ("ToolFiles"); + createConfigs (*projectXml.createNewChildElement ("Configurations")); + projectXml.createNewChildElement ("References"); + createFiles (*projectXml.createNewChildElement ("Files")); + projectXml.createNewChildElement ("Globals"); + } + + //============================================================================== + void addFile (const RelativePath& file, XmlElement& parent, const bool excludeFromBuild, const bool useStdcall) + { + jassert (file.getRoot() == RelativePath::buildTargetFolder); + + XmlElement* fileXml = parent.createNewChildElement ("File"); + fileXml->setAttribute ("RelativePath", file.toWindowsStyle()); + + if (excludeFromBuild || useStdcall) + { + for (ConfigIterator i (*this); i.next();) + { + XmlElement* fileConfig = fileXml->createNewChildElement ("FileConfiguration"); + fileConfig->setAttribute ("Name", createConfigName (*i)); + + if (excludeFromBuild) + fileConfig->setAttribute ("ExcludedFromBuild", "true"); + + XmlElement* tool = createToolElement (*fileConfig, "VCCLCompilerTool"); + + if (useStdcall) + tool->setAttribute ("CallingConvention", "2"); + } + } + } + + XmlElement* createGroup (const String& groupName, XmlElement& parent) + { + XmlElement* filter = parent.createNewChildElement ("Filter"); + filter->setAttribute ("Name", groupName); + return filter; + } + + void addFiles (const Project::Item& projectItem, XmlElement& parent) + { + if (projectItem.isGroup()) + { + XmlElement* filter = createGroup (projectItem.getName().toString(), parent); + + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addFiles (projectItem.getChild(i), *filter); + } + else if (projectItem.shouldBeAddedToTargetProject()) + { + const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + + addFile (path, parent, + projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled()), + shouldFileBeCompiledByDefault (path) && (bool) projectItem.getShouldUseStdCallValue().getValue()); + } + } + + void createFiles (XmlElement& files) + { + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + addFiles (groups.getReference(i), files); + } + + //============================================================================== + XmlElement* createToolElement (XmlElement& parent, const String& toolName) const + { + XmlElement* const e = parent.createNewChildElement ("Tool"); + e->setAttribute ("Name", toolName); + return e; + } + + void createConfig (XmlElement& xml, const MSVCBuildConfiguration& config) const + { + String binariesPath (getConfigTargetPath (config)); + String intermediatesPath (getIntermediatesPath (config)); + const bool isDebug = (bool) config.isDebug().getValue(); + const String binaryName (File::createLegalFileName (config.getTargetBinaryName().toString())); + + xml.setAttribute ("Name", createConfigName (config)); + xml.setAttribute ("OutputDirectory", FileHelpers::windowsStylePath (binariesPath)); + xml.setAttribute ("IntermediateDirectory", FileHelpers::windowsStylePath (intermediatesPath)); + xml.setAttribute ("ConfigurationType", isLibraryDLL() ? "2" : (projectType.isLibrary() ? "4" : "1")); + xml.setAttribute ("UseOfMFC", "0"); + xml.setAttribute ("ATLMinimizesCRunTimeLibraryUsage", "false"); + xml.setAttribute ("CharacterSet", "2"); + + if (! isDebug) + xml.setAttribute ("WholeProgramOptimization", "1"); + + XmlElement* preBuildEvent = createToolElement (xml, "VCPreBuildEventTool"); + + if (config.msvcPreBuildCommand.isNotEmpty()) + { + preBuildEvent->setAttribute ("Description", "Pre-build"); + preBuildEvent->setAttribute ("CommandLine", config.msvcPreBuildCommand); + } + + createToolElement (xml, "VCCustomBuildTool"); + createToolElement (xml, "VCXMLDataGeneratorTool"); + createToolElement (xml, "VCWebServiceProxyGeneratorTool"); + + if (! projectType.isLibrary()) + { + XmlElement* midl = createToolElement (xml, "VCMIDLTool"); + midl->setAttribute ("PreprocessorDefinitions", isDebug ? "_DEBUG" : "NDEBUG"); + midl->setAttribute ("MkTypLibCompatible", "true"); + midl->setAttribute ("SuppressStartupBanner", "true"); + midl->setAttribute ("TargetEnvironment", "1"); + midl->setAttribute ("TypeLibraryName", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".tlb")); + midl->setAttribute ("HeaderFileName", ""); + } + + { + XmlElement* compiler = createToolElement (xml, "VCCLCompilerTool"); + + const int optimiseLevel = (int) config.getOptimisationLevel().getValue(); + compiler->setAttribute ("Optimization", optimiseLevel <= 1 ? "0" : (optimiseLevel == 2 ? "1" : "2")); + + if (isDebug) + { + compiler->setAttribute ("BufferSecurityCheck", ""); + compiler->setAttribute ("DebugInformationFormat", projectType.isLibrary() ? "3" : "4"); + } + else + { + compiler->setAttribute ("InlineFunctionExpansion", "1"); + compiler->setAttribute ("StringPooling", "true"); + } + + compiler->setAttribute ("AdditionalIncludeDirectories", replacePreprocessorTokens (config, getHeaderSearchPaths (config).joinIntoString (";"))); + compiler->setAttribute ("PreprocessorDefinitions", getPreprocessorDefs (config, ";")); + compiler->setAttribute ("RuntimeLibrary", msvcNeedsDLLRuntimeLib ? (isDebug ? 3 : 2) // MT DLL + : (isDebug ? 1 : 0)); // MT static + compiler->setAttribute ("RuntimeTypeInfo", "true"); + compiler->setAttribute ("UsePrecompiledHeader", "0"); + compiler->setAttribute ("PrecompiledHeaderFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pch")); + compiler->setAttribute ("AssemblerListingLocation", FileHelpers::windowsStylePath (intermediatesPath + "/")); + compiler->setAttribute ("ObjectFile", FileHelpers::windowsStylePath (intermediatesPath + "/")); + compiler->setAttribute ("ProgramDataBaseFileName", FileHelpers::windowsStylePath (intermediatesPath + "/")); + compiler->setAttribute ("WarningLevel", String (getWarningLevel (config))); + compiler->setAttribute ("SuppressStartupBanner", "true"); + + const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim()); + if (extraFlags.isNotEmpty()) + compiler->setAttribute ("AdditionalOptions", extraFlags); + } + + createToolElement (xml, "VCManagedResourceCompilerTool"); + + { + XmlElement* resCompiler = createToolElement (xml, "VCResourceCompilerTool"); + resCompiler->setAttribute ("PreprocessorDefinitions", isDebug ? "_DEBUG" : "NDEBUG"); + } + + createToolElement (xml, "VCPreLinkEventTool"); + + const String outputFileName (getBinaryFileForConfig (config)); + + if (! projectType.isLibrary()) + { + XmlElement* linker = createToolElement (xml, "VCLinkerTool"); + + linker->setAttribute ("OutputFile", FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); + linker->setAttribute ("SuppressStartupBanner", "true"); + + linker->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); + linker->setAttribute ("GenerateDebugInformation", isDebug ? "true" : "false"); + linker->setAttribute ("ProgramDatabaseFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); + linker->setAttribute ("SubSystem", msvcIsWindowsSubsystem ? "2" : "1"); + + const StringArray librarySearchPaths (config.getLibrarySearchPaths()); + if (librarySearchPaths.size() > 0) + linker->setAttribute ("AdditionalLibraryDirectories", librarySearchPaths.joinIntoString (";")); + + linker->setAttribute ("GenerateManifest", config.shouldGenerateManifest().getValue() ? "true" : "false"); + + if (! isDebug) + { + linker->setAttribute ("OptimizeReferences", "2"); + linker->setAttribute ("EnableCOMDATFolding", "2"); + } + + linker->setAttribute ("TargetMachine", "1"); // (64-bit build = 5) + + if (msvcDelayLoadedDLLs.isNotEmpty()) + linker->setAttribute ("DelayLoadDLLs", msvcDelayLoadedDLLs); + + if (config.msvcModuleDefinitionFile.isNotEmpty()) + linker->setAttribute ("ModuleDefinitionFile", config.msvcModuleDefinitionFile); + + String extraLinkerOptions (getExtraLinkerFlags().toString()); + + if (config.msvcExtraLinkerOptions.isNotEmpty()) + extraLinkerOptions << ' ' << config.msvcExtraLinkerOptions; + + if (extraLinkerOptions.isNotEmpty()) + linker->setAttribute ("AdditionalOptions", replacePreprocessorTokens (config, extraLinkerOptions).trim()); + } + else + { + if (isLibraryDLL()) + { + XmlElement* linker = createToolElement (xml, "VCLinkerTool"); + + String extraLinkerOptions (getExtraLinkerFlags().toString()); + extraLinkerOptions << " /IMPLIB:" << FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName.upToLastOccurrenceOf (".", false, false) + ".lib"); + linker->setAttribute ("AdditionalOptions", replacePreprocessorTokens (config, extraLinkerOptions).trim()); + + linker->setAttribute ("OutputFile", FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); + linker->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); + } + else + { + XmlElement* librarian = createToolElement (xml, "VCLibrarianTool"); + + librarian->setAttribute ("OutputFile", FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); + librarian->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); + } + } + + createToolElement (xml, "VCALinkTool"); + createToolElement (xml, "VCManifestTool"); + createToolElement (xml, "VCXDCMakeTool"); + + { + XmlElement* bscMake = createToolElement (xml, "VCBscMakeTool"); + bscMake->setAttribute ("SuppressStartupBanner", "true"); + bscMake->setAttribute ("OutputFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".bsc")); + } + + createToolElement (xml, "VCFxCopTool"); + + if (! projectType.isLibrary()) + createToolElement (xml, "VCAppVerifierTool"); + + XmlElement* postBuildEvent = createToolElement (xml, "VCPostBuildEventTool"); + + if (config.msvcPostBuildCommand.isNotEmpty()) + { + postBuildEvent->setAttribute ("Description", "Post-build"); + postBuildEvent->setAttribute ("CommandLine", config.msvcPostBuildCommand); + } + } + + void createConfigs (XmlElement& xml) + { + for (ConfigIterator config (*this); config.next();) + createConfig (*xml.createNewChildElement ("Configuration"), + dynamic_cast (*config)); + } + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2008); +}; + + +//============================================================================== +class MSVCProjectExporterVC2005 : public MSVCProjectExporterVC2008 +{ +public: + MSVCProjectExporterVC2005 (Project& project_, const ValueTree& settings_) + : MSVCProjectExporterVC2008 (project_, settings_, "VisualStudio2005") + { + name = getName(); + } + + static const char* getName() { return "Visual Studio 2005"; } + static const char* getValueTreeTypeName() { return "VS2005"; } + + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_WINDOWS + return 2; + #else + return 0; + #endif + } + + static MSVCProjectExporterVC2005* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC2005 (project, settings); + + return 0; + } + +protected: + String getProjectVersionString() const { return "8.00"; } + String getSolutionVersionString() const { return "9.00" + newLine + "# Visual C++ Express 2005"; } + + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2005); +}; + + +//============================================================================== +class MSVCProjectExporterVC6 : public MSVCProjectExporterBase +{ +public: + //============================================================================== + MSVCProjectExporterVC6 (Project& project_, const ValueTree& settings_) + : MSVCProjectExporterBase (project_, settings_, "MSVC6") + { + name = getName(); + } + + static const char* getName() { return "Visual C++ 6.0"; } + static const char* getValueTreeTypeName() { return "MSVC6"; } + + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_WINDOWS + return 1; + #else + return 0; + #endif + } + + void launchProject() { getDSWFile().startAsProcess(); } + + static MSVCProjectExporterVC6* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC6 (project, settings); + + return nullptr; + } + + //============================================================================== + void create() + { + { + MemoryOutputStream mo; + writeProject (mo); + overwriteFileIfDifferentOrThrow (getDSPFile(), mo); + } + + { + MemoryOutputStream mo; + writeDSWFile (mo); + overwriteFileIfDifferentOrThrow (getDSWFile(), mo); + } + } + +private: + File getDSPFile() const { return getProjectFile (".dsp"); } + File getDSWFile() const { return getProjectFile (".dsw"); } + + //============================================================================== + String createConfigName (const BuildConfiguration& config) const + { + return projectName + " - Win32 " + config.getName().toString(); + } + + void writeProject (OutputStream& out) + { + const String defaultConfigName (createConfigName (*getConfiguration(0))); + + String targetType, targetCode; + + if (isLibraryDLL()) { targetType = "\"Win32 (x86) Dynamic-Link Library\""; targetCode = "0x0102"; } + else if (projectType.isLibrary()) { targetType = "\"Win32 (x86) Static Library\""; targetCode = "0x0104"; } + else if (projectType.isCommandLineApp()) { targetType = "\"Win32 (x86) Console Application\""; targetCode = "0x0103"; } + else { targetType = "\"Win32 (x86) Application\""; targetCode = "0x0101"; } + + out << "# Microsoft Developer Studio Project File - Name=\"" << projectName + << "\" - Package Owner=<4>" << newLine + << "# Microsoft Developer Studio Generated Build File, Format Version 6.00" << newLine + << "# ** DO NOT EDIT **" << newLine + << "# TARGTYPE " << targetType << " " << targetCode << newLine + << "CFG=" << defaultConfigName << newLine + << "!MESSAGE This is not a valid makefile. To build this project using NMAKE," << newLine + << "!MESSAGE use the Export Makefile command and run" << newLine + << "!MESSAGE " << newLine + << "!MESSAGE NMAKE /f \"" << projectName << ".mak.\"" << newLine + << "!MESSAGE " << newLine + << "!MESSAGE You can specify a configuration when running NMAKE" << newLine + << "!MESSAGE by defining the macro CFG on the command line. For example:" << newLine + << "!MESSAGE " << newLine + << "!MESSAGE NMAKE /f \"" << projectName << ".mak\" CFG=\"" << defaultConfigName << '"' << newLine + << "!MESSAGE " << newLine + << "!MESSAGE Possible choices for configuration are:" << newLine + << "!MESSAGE " << newLine; + + for (ConfigIterator i (*this); i.next();) + out << "!MESSAGE \"" << createConfigName (*i) << "\" (based on " << targetType << ")" << newLine; + + out << "!MESSAGE " << newLine + << "# Begin Project" << newLine + << "# PROP AllowPerConfigDependencies 0" << newLine + << "# PROP Scc_ProjName \"\"" << newLine + << "# PROP Scc_LocalPath \"\"" << newLine + << "CPP=cl.exe" << newLine + << "MTL=midl.exe" << newLine + << "RSC=rc.exe" << newLine; + + String targetList; + + for (ConfigIterator config (*this); config.next();) + { + const String configName (createConfigName (*config)); + targetList << "# Name \"" << configName << '"' << newLine; + + const String binariesPath (getConfigTargetPath (*config)); + const String targetBinary (FileHelpers::windowsStylePath (binariesPath + "/" + getBinaryFileForConfig (*config))); + const String optimisationFlag (((int) config->getOptimisationLevel().getValue() <= 1) ? "Od" : (config->getOptimisationLevel() == 2 ? "O2" : "O3")); + const String defines (getPreprocessorDefs (*config, " /D ")); + const bool isDebug = (bool) config->isDebug().getValue(); + const String extraDebugFlags (isDebug ? "/Gm /ZI /GZ" : ""); + + out << (config.index == 0 ? "!IF" : "!ELSEIF") << " \"$(CFG)\" == \"" << configName << '"' << newLine + << "# PROP BASE Use_MFC 0" << newLine + << "# PROP BASE Use_Debug_Libraries " << (isDebug ? "1" : "0") << newLine + << "# PROP BASE Output_Dir \"" << binariesPath << '"' << newLine + << "# PROP BASE Intermediate_Dir \"" << getIntermediatesPath (*config) << '"' << newLine + << "# PROP BASE Target_Dir \"\"" << newLine + << "# PROP Use_MFC 0" << newLine + << "# PROP Use_Debug_Libraries " << (isDebug ? "1" : "0") << newLine + << "# PROP Output_Dir \"" << binariesPath << '"' << newLine + << "# PROP Intermediate_Dir \"" << getIntermediatesPath (*config) << '"' << newLine + << "# PROP Ignore_Export_Lib 0" << newLine + << "# PROP Target_Dir \"\"" << newLine + << "# ADD BASE CPP /nologo /W3 /GX /" << optimisationFlag << " /D " << defines + << " /YX /FD /c " << extraDebugFlags << " /Zm1024" << newLine + << "# ADD CPP /nologo " << (isDebug ? "/MTd" : "/MT") << " /W3 /GR /GX /" << optimisationFlag + << " /I " << replacePreprocessorTokens (*config, getHeaderSearchPaths (*config).joinIntoString (" /I ")) + << " /D " << defines << " /D \"_UNICODE\" /D \"UNICODE\" /FD /c /Zm1024 " << extraDebugFlags + << " " << replacePreprocessorTokens (*config, getExtraCompilerFlags().toString()).trim() << newLine; + + if (! isDebug) + out << "# SUBTRACT CPP /YX" << newLine; + + if (! projectType.isLibrary()) + out << "# ADD BASE MTL /nologo /D " << defines << " /mktyplib203 /win32" << newLine + << "# ADD MTL /nologo /D " << defines << " /mktyplib203 /win32" << newLine; + + out << "# ADD BASE RSC /l 0x40c /d " << defines << newLine + << "# ADD RSC /l 0x40c /d " << defines << newLine + << "BSC32=bscmake.exe" << newLine + << "# ADD BASE BSC32 /nologo" << newLine + << "# ADD BSC32 /nologo" << newLine; + + if (projectType.isLibrary()) + { + out << "LIB32=link.exe -lib" << newLine + << "# ADD BASE LIB32 /nologo" << newLine + << "# ADD LIB32 /nologo /out:\"" << targetBinary << '"' << newLine; + } + else + { + out << "LINK32=link.exe" << newLine + << "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386" << newLine + << "# ADD LINK32 \"C:\\Program Files\\Microsoft Visual Studio\\VC98\\LIB\\shell32.lib\" " // This is avoid debug information corruption when mixing Platform SDK + << "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib " + << (isDebug ? " /debug" : "") + << " /nologo /machine:I386 /out:\"" << targetBinary << "\" " + << (isLibraryDLL() ? "/dll" : (msvcIsWindowsSubsystem ? "/subsystem:windows " + : "/subsystem:console ")) + << replacePreprocessorTokens (*config, getExtraLinkerFlags().toString()).trim() << newLine; + } + } + + out << "!ENDIF" << newLine + << "# Begin Target" << newLine + << targetList; + + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + writeFiles (out, groups.getReference(i)); + + out << "# End Target" << newLine + << "# End Project" << newLine; + } + + void writeFile (OutputStream& out, const RelativePath& file, const bool excludeFromBuild) + { + jassert (file.getRoot() == RelativePath::buildTargetFolder); + + out << "# Begin Source File" << newLine + << "SOURCE=" << file.toWindowsStyle().quoted() << newLine; + + if (excludeFromBuild) + out << "# PROP Exclude_From_Build 1" << newLine; + + out << "# End Source File" << newLine; + } + + void writeFiles (OutputStream& out, const Project::Item& projectItem) + { + if (projectItem.isGroup()) + { + out << "# Begin Group \"" << projectItem.getName() << '"' << newLine + << "# PROP Default_Filter \"cpp;c;cc;cxx;rc;def;r;odl;idl;hpj;bat\"" << newLine; + + for (int i = 0; i < projectItem.getNumChildren(); ++i) + writeFiles (out, projectItem.getChild (i)); + + out << "# End Group" << newLine; + } + else if (projectItem.shouldBeAddedToTargetProject()) + { + const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + writeFile (out, path, projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled())); + } + } + + void writeGroup (OutputStream& out, const String& groupName, const Array& files) + { + if (files.size() > 0) + { + out << "# Begin Group \"" << groupName << '"' << newLine; + for (int i = 0; i < files.size(); ++i) + if (files.getReference(i).hasFileExtension ("cpp;cc;c;cxx;h;hpp;hxx")) + writeFile (out, files.getReference(i), false); + + out << "# End Group" << newLine; + } + } + + void writeDSWFile (OutputStream& out) + { + out << "Microsoft Developer Studio Workspace File, Format Version 6.00 " << newLine + << "Project: \"" << projectName << "\" = .\\" << getDSPFile().getFileName() << " - Package Owner=<4>" << newLine + << "Package=<5>" << newLine + << "{{{" << newLine + << "}}}" << newLine + << "Package=<4>" << newLine + << "{{{" << newLine + << "}}}" << newLine + << "Global:" << newLine + << "Package=<5>" << newLine + << "{{{" << newLine + << "}}}" << newLine + << "Package=<3>" << newLine + << "{{{" << newLine + << "}}}" << newLine; + } + + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC6); +}; + + +//============================================================================== +class MSVCProjectExporterVC2010 : public MSVCProjectExporterBase +{ +public: + MSVCProjectExporterVC2010 (Project& project_, const ValueTree& settings_) + : MSVCProjectExporterBase (project_, settings_, "VisualStudio2010") + { + name = getName(); + } + + static const char* getName() { return "Visual Studio 2010"; } + static const char* getValueTreeTypeName() { return "VS2010"; } + + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_WINDOWS + return 3; + #else + return 0; + #endif + } + + void launchProject() { getSLNFile().startAsProcess(); } + + static MSVCProjectExporterVC2010* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC2010 (project, settings); + + return nullptr; + } + + //============================================================================== + void create() + { + createIconFile(); + + { + XmlElement projectXml ("Project"); + fillInProjectXml (projectXml); + writeXmlOrThrow (projectXml, getVCProjFile(), "utf-8", 100); + } + + { + XmlElement filtersXml ("Project"); + fillInFiltersXml (filtersXml); + writeXmlOrThrow (filtersXml, getVCProjFiltersFile(), "utf-8", 100); + } + + { + MemoryOutputStream mo; + writeSolutionFile (mo, "11.00", "# Visual Studio 2010", getVCProjFile()); + + overwriteFileIfDifferentOrThrow (getSLNFile(), mo); + } + } + +protected: + //============================================================================== + class VC2010BuildConfiguration : public MSVCBuildConfiguration + { + public: + VC2010BuildConfiguration (Project& project, const ValueTree& settings) + : MSVCBuildConfiguration (project, settings) + { + if (getArchitectureType().toString().isEmpty()) + getArchitectureType() = get32BitArchName(); + } + + //============================================================================== + static const char* get32BitArchName() { return "32-bit"; } + static const char* get64BitArchName() { return "x64"; } + + Value getArchitectureType() const { return getValue (Ids::winArchitecture); } + bool is64Bit() const { return getArchitectureType().toString() == get64BitArchName(); } + + //============================================================================== + void createPropertyEditors (PropertyListBuilder& props) + { + MSVCBuildConfiguration::createPropertyEditors (props); + + const char* const archTypes[] = { get32BitArchName(), get64BitArchName(), nullptr }; + props.add (new ChoicePropertyComponent (getArchitectureType(), "Architecture", + StringArray (archTypes), Array (archTypes))); + } + }; + + BuildConfiguration::Ptr createBuildConfig (const ValueTree& settings) const + { + return new VC2010BuildConfiguration (project, settings); + } + + static bool is64Bit (const BuildConfiguration& config) + { + return dynamic_cast (config).is64Bit(); + } + + //============================================================================== + File getVCProjFile() const { return getProjectFile (".vcxproj"); } + File getVCProjFiltersFile() const { return getProjectFile (".vcxproj.filters"); } + File getSLNFile() const { return getProjectFile (".sln"); } + + String createConfigName (const BuildConfiguration& config) const + { + return config.getName().toString() + (is64Bit (config) ? "|x64" + : "|Win32"); + } + + void setConditionAttribute (XmlElement& xml, const BuildConfiguration& config) + { + xml.setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); + } + + //============================================================================== + void fillInProjectXml (XmlElement& projectXml) + { + projectXml.setAttribute ("DefaultTargets", "Build"); + projectXml.setAttribute ("ToolsVersion", "4.0"); + projectXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); + + { + XmlElement* configsGroup = projectXml.createNewChildElement ("ItemGroup"); + configsGroup->setAttribute ("Label", "ProjectConfigurations"); + + for (ConfigIterator config (*this); config.next();) + { + XmlElement* e = configsGroup->createNewChildElement ("ProjectConfiguration"); + e->setAttribute ("Include", createConfigName (*config)); + e->createNewChildElement ("Configuration")->addTextElement (config->getName().toString()); + e->createNewChildElement ("Platform")->addTextElement (is64Bit (*config) ? "x64" : "Win32"); + } + } + + { + XmlElement* globals = projectXml.createNewChildElement ("PropertyGroup"); + globals->setAttribute ("Label", "Globals"); + globals->createNewChildElement ("ProjectGuid")->addTextElement (projectGUID); + } + + { + XmlElement* imports = projectXml.createNewChildElement ("Import"); + imports->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); + } + + for (ConfigIterator config (*this); config.next();) + { + XmlElement* e = projectXml.createNewChildElement ("PropertyGroup"); + setConditionAttribute (*e, *config); + e->setAttribute ("Label", "Configuration"); + e->createNewChildElement ("ConfigurationType")->addTextElement (getProjectType()); + e->createNewChildElement ("UseOfMfc")->addTextElement ("false"); + e->createNewChildElement ("CharacterSet")->addTextElement ("MultiByte"); + + if (! config->isDebug().getValue()) + e->createNewChildElement ("WholeProgramOptimization")->addTextElement ("true"); + + if (is64Bit (*config)) + e->createNewChildElement ("PlatformToolset")->addTextElement ("Windows7.1SDK"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("Import"); + e->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); + e->setAttribute ("Label", "ExtensionSettings"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); + e->setAttribute ("Label", "PropertySheets"); + XmlElement* p = e->createNewChildElement ("Import"); + p->setAttribute ("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props"); + p->setAttribute ("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')"); + p->setAttribute ("Label", "LocalAppDataPlatform"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("PropertyGroup"); + e->setAttribute ("Label", "UserMacros"); + } + + { + XmlElement* props = projectXml.createNewChildElement ("PropertyGroup"); + props->createNewChildElement ("_ProjectFileVersion")->addTextElement ("10.0.30319.1"); + + for (ConfigIterator i (*this); i.next();) + { + const MSVCBuildConfiguration& config = dynamic_cast (*i); + + { + XmlElement* outdir = props->createNewChildElement ("OutDir"); + setConditionAttribute (*outdir, config); + outdir->addTextElement (getConfigTargetPath (config) + "\\"); + } + + { + XmlElement* intdir = props->createNewChildElement ("IntDir"); + setConditionAttribute (*intdir, config); + intdir->addTextElement (getConfigTargetPath (config) + "\\"); + } + + { + XmlElement* name = props->createNewChildElement ("TargetName"); + setConditionAttribute (*name, config); + name->addTextElement (getBinaryFileForConfig (config).upToLastOccurrenceOf (".", false, false)); + } + + { + XmlElement* manifest = props->createNewChildElement ("GenerateManifest"); + setConditionAttribute (*manifest, config); + manifest->addTextElement (config.shouldGenerateManifest().getValue() ? "true" : "false"); + } + + const StringArray librarySearchPaths (config.getLibrarySearchPaths()); + + if (librarySearchPaths.size() > 0) + { + XmlElement* libPath = props->createNewChildElement ("LibraryPath"); + setConditionAttribute (*libPath, config); + libPath->addTextElement ("$(LibraryPath);" + librarySearchPaths.joinIntoString (";")); + } + } + } + + for (ConfigIterator i (*this); i.next();) + { + const MSVCBuildConfiguration& config = dynamic_cast (*i); + + String binariesPath (getConfigTargetPath (config)); + String intermediatesPath (getIntermediatesPath (config)); + const bool isDebug = (bool) config.isDebug().getValue(); + const String binaryName (File::createLegalFileName (config.getTargetBinaryName().toString())); + const String outputFileName (getBinaryFileForConfig (config)); + + XmlElement* group = projectXml.createNewChildElement ("ItemDefinitionGroup"); + setConditionAttribute (*group, config); + + { + XmlElement* midl = group->createNewChildElement ("Midl"); + midl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (isDebug ? "_DEBUG;%(PreprocessorDefinitions)" + : "NDEBUG;%(PreprocessorDefinitions)"); + midl->createNewChildElement ("MkTypLibCompatible")->addTextElement ("true"); + midl->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + midl->createNewChildElement ("TargetEnvironment")->addTextElement ("Win32"); + midl->createNewChildElement ("HeaderFileName"); + } + + { + XmlElement* cl = group->createNewChildElement ("ClCompile"); + cl->createNewChildElement ("Optimization")->addTextElement (isDebug ? "Disabled" : "MaxSpeed"); + + if (isDebug) + cl->createNewChildElement ("DebugInformationFormat")->addTextElement (is64Bit (config) ? "ProgramDatabase" + : "EditAndContinue"); + + StringArray includePaths (getHeaderSearchPaths (config)); + includePaths.add ("%(AdditionalIncludeDirectories)"); + cl->createNewChildElement ("AdditionalIncludeDirectories")->addTextElement (includePaths.joinIntoString (";")); + cl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (getPreprocessorDefs (config, ";") + ";%(PreprocessorDefinitions)"); + cl->createNewChildElement ("RuntimeLibrary")->addTextElement (msvcNeedsDLLRuntimeLib ? (isDebug ? "MultiThreadedDLLDebug" : "MultiThreadedDLL") + : (isDebug ? "MultiThreadedDebug" : "MultiThreaded")); + cl->createNewChildElement ("RuntimeTypeInfo")->addTextElement ("true"); + cl->createNewChildElement ("PrecompiledHeader"); + cl->createNewChildElement ("AssemblerListingLocation")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); + cl->createNewChildElement ("ObjectFileName")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); + cl->createNewChildElement ("ProgramDataBaseFileName")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); + cl->createNewChildElement ("WarningLevel")->addTextElement ("Level" + String (getWarningLevel (config))); + cl->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + cl->createNewChildElement ("MultiProcessorCompilation")->addTextElement ("true"); + + const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim()); + if (extraFlags.isNotEmpty()) + cl->createNewChildElement ("AdditionalOptions")->addTextElement (extraFlags + " %(AdditionalOptions)"); + } + + { + XmlElement* res = group->createNewChildElement ("ResourceCompile"); + res->createNewChildElement ("PreprocessorDefinitions")->addTextElement (isDebug ? "_DEBUG;%(PreprocessorDefinitions)" + : "NDEBUG;%(PreprocessorDefinitions)"); + } + + { + XmlElement* link = group->createNewChildElement ("Link"); + link->createNewChildElement ("OutputFile")->addTextElement (FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); + link->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + link->createNewChildElement ("IgnoreSpecificDefaultLibraries")->addTextElement (isDebug ? "libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries)" + : "%(IgnoreSpecificDefaultLibraries)"); + link->createNewChildElement ("GenerateDebugInformation")->addTextElement (isDebug ? "true" : "false"); + link->createNewChildElement ("ProgramDatabaseFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); + link->createNewChildElement ("SubSystem")->addTextElement (msvcIsWindowsSubsystem ? "Windows" : "Console"); + + if (! is64Bit (config)) + link->createNewChildElement ("TargetMachine")->addTextElement ("MachineX86"); + + if (! isDebug) + { + link->createNewChildElement ("OptimizeReferences")->addTextElement ("true"); + link->createNewChildElement ("EnableCOMDATFolding")->addTextElement ("true"); + } + + String extraLinkerOptions (getExtraLinkerFlags().toString()); + if (extraLinkerOptions.isNotEmpty()) + link->createNewChildElement ("AdditionalOptions")->addTextElement (replacePreprocessorTokens (config, extraLinkerOptions).trim() + + " %(AdditionalOptions)"); + } + + { + XmlElement* bsc = group->createNewChildElement ("Bscmake"); + bsc->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + bsc->createNewChildElement ("OutputFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".bsc")); + } + + if (config.msvcPreBuildCommand.isNotEmpty()) + group->createNewChildElement ("PreBuildEvent") + ->createNewChildElement ("Command") + ->addTextElement (config.msvcPreBuildCommand); + + if (config.msvcPostBuildCommand.isNotEmpty()) + group->createNewChildElement ("PostBuildEvent") + ->createNewChildElement ("Command") + ->addTextElement (config.msvcPostBuildCommand); + } + + { + XmlElement* cppFiles = projectXml.createNewChildElement ("ItemGroup"); + XmlElement* headerFiles = projectXml.createNewChildElement ("ItemGroup"); + + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + addFilesToCompile (groups.getReference(i), *cppFiles, *headerFiles, false); + } + + if (hasIcon) + { + { + XmlElement* iconGroup = projectXml.createNewChildElement ("ItemGroup"); + XmlElement* e = iconGroup->createNewChildElement ("None"); + e->setAttribute ("Include", ".\\" + iconFile.getFileName()); + } + + { + XmlElement* rcGroup = projectXml.createNewChildElement ("ItemGroup"); + XmlElement* e = rcGroup->createNewChildElement ("ResourceCompile"); + e->setAttribute ("Include", ".\\" + rcFile.getFileName()); + } + } + + { + XmlElement* e = projectXml.createNewChildElement ("Import"); + e->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); + e->setAttribute ("Label", "ExtensionTargets"); + } + } + + String getProjectType() const + { + if (projectType.isGUIApplication() || projectType.isCommandLineApp()) return "Application"; + else if (isLibraryDLL()) return "DynamicLibrary"; + else if (projectType.isLibrary()) return "StaticLibrary"; + + jassertfalse; + return String::empty; + } + + //============================================================================== + void addFileToCompile (const RelativePath& file, XmlElement& cpps, XmlElement& headers, const bool excludeFromBuild, const bool useStdcall) + { + jassert (file.getRoot() == RelativePath::buildTargetFolder); + + if (file.hasFileExtension ("cpp;cc;cxx;c")) + { + XmlElement* e = cpps.createNewChildElement ("ClCompile"); + e->setAttribute ("Include", file.toWindowsStyle()); + + if (excludeFromBuild) + e->createNewChildElement ("ExcludedFromBuild")->addTextElement ("true"); + + if (useStdcall) + { + jassertfalse; + } + } + else if (file.hasFileExtension (headerFileExtensions)) + { + headers.createNewChildElement ("ClInclude")->setAttribute ("Include", file.toWindowsStyle()); + } + } + + void addFilesToCompile (const Array& files, XmlElement& cpps, XmlElement& headers, bool useStdCall) + { + for (int i = 0; i < files.size(); ++i) + addFileToCompile (files.getReference(i), cpps, headers, false, useStdCall); + } + + void addFilesToCompile (const Project::Item& projectItem, XmlElement& cpps, XmlElement& headers, bool useStdCall) + { + if (projectItem.isGroup()) + { + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addFilesToCompile (projectItem.getChild(i), cpps, headers, useStdCall); + } + else + { + if (projectItem.shouldBeAddedToTargetProject()) + { + const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + + if (path.hasFileExtension (headerFileExtensions) || (path.hasFileExtension ("cpp;cc;c;cxx"))) + addFileToCompile (path, cpps, headers, ! projectItem.shouldBeCompiled(), useStdCall); + } + } + } + + //============================================================================== + void addFilterGroup (XmlElement& groups, const String& path) + { + XmlElement* e = groups.createNewChildElement ("Filter"); + e->setAttribute ("Include", path); + e->createNewChildElement ("UniqueIdentifier")->addTextElement (createGUID (path + "_guidpathsaltxhsdf")); + } + + void addFileToFilter (const RelativePath& file, const String& groupPath, XmlElement& cpps, XmlElement& headers) + { + XmlElement* e; + + if (file.hasFileExtension (headerFileExtensions)) + e = headers.createNewChildElement ("ClInclude"); + else + e = cpps.createNewChildElement ("ClCompile"); + + jassert (file.getRoot() == RelativePath::buildTargetFolder); + e->setAttribute ("Include", file.toWindowsStyle()); + e->createNewChildElement ("Filter")->addTextElement (groupPath); + } + + void addFilesToFilter (const Project::Item& projectItem, const String& path, XmlElement& cpps, XmlElement& headers, XmlElement& groups) + { + if (projectItem.isGroup()) + { + addFilterGroup (groups, path); + + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addFilesToFilter (projectItem.getChild(i), + (path.isEmpty() ? String::empty : (path + "\\")) + projectItem.getChild(i).getName().toString(), + cpps, headers, groups); + } + else + { + if (projectItem.shouldBeAddedToTargetProject()) + { + addFileToFilter (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder), + path.upToLastOccurrenceOf ("\\", false, false), cpps, headers); + } + } + } + + void addFilesToFilter (const Array& files, const String& path, XmlElement& cpps, XmlElement& headers, XmlElement& groups) + { + if (files.size() > 0) + { + addFilterGroup (groups, path); + + for (int i = 0; i < files.size(); ++i) + addFileToFilter (files.getReference(i), path, cpps, headers); + } + } + + void fillInFiltersXml (XmlElement& filterXml) + { + filterXml.setAttribute ("ToolsVersion", "4.0"); + filterXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); + + XmlElement* groupsXml = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* cpps = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* headers = filterXml.createNewChildElement ("ItemGroup"); + + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + addFilesToFilter (groups.getReference(i), groups.getReference(i).getName().toString(), *cpps, *headers, *groupsXml); + + if (iconFile.exists()) + { + { + XmlElement* iconGroup = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* e = iconGroup->createNewChildElement ("None"); + e->setAttribute ("Include", ".\\" + iconFile.getFileName()); + e->createNewChildElement ("Filter")->addTextElement (ProjectSaver::getJuceCodeGroupName()); + } + + { + XmlElement* rcGroup = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* e = rcGroup->createNewChildElement ("ResourceCompile"); + e->setAttribute ("Include", ".\\" + rcFile.getFileName()); + e->createNewChildElement ("Filter")->addTextElement (ProjectSaver::getJuceCodeGroupName()); + } + } + } + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2010); +}; + + +#endif // __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h new file mode 100644 index 0000000000..efd241ab8d --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h @@ -0,0 +1,335 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_PROJECTEXPORT_MAKE_JUCEHEADER__ +#define __JUCER_PROJECTEXPORT_MAKE_JUCEHEADER__ + +#include "jucer_ProjectExporter.h" + + +//============================================================================== +class MakefileProjectExporter : public ProjectExporter +{ +public: + //============================================================================== + static const char* getNameLinux() { return "Linux Makefile"; } + static const char* getValueTreeTypeName() { return "LINUX_MAKE"; } + + static MakefileProjectExporter* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MakefileProjectExporter (project, settings); + + return 0; + } + + + //============================================================================== + MakefileProjectExporter (Project& project_, const ValueTree& settings_) + : ProjectExporter (project_, settings_) + { + name = getNameLinux(); + + if (getTargetLocation().toString().isEmpty()) + getTargetLocation() = getDefaultBuildsRootFolder() + "Linux"; + } + + //============================================================================== + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_LINUX + return 1; + #else + return 0; + #endif + } + + bool isPossibleForCurrentProject() { return true; } + bool usesMMFiles() const { return false; } + bool isLinux() const { return true; } + bool canCopeWithDuplicateFiles() { return false; } + + void launchProject() + { + // what to do on linux? + } + + void createPropertyEditors (PropertyListBuilder& props) + { + ProjectExporter::createPropertyEditors (props); + } + + //============================================================================== + void create() + { + Array files; + for (int i = 0; i < groups.size(); ++i) + findAllFilesToCompile (groups.getReference(i), files); + + MemoryOutputStream mo; + writeMakefile (mo, files); + + overwriteFileIfDifferentOrThrow (getTargetFolder().getChildFile ("Makefile"), mo); + } + +protected: + //============================================================================== + class MakeBuildConfiguration : public BuildConfiguration + { + public: + MakeBuildConfiguration (Project& project, const ValueTree& settings) + : BuildConfiguration (project, settings) + { + if (getLibrarySearchPath().getValue().isVoid()) + getLibrarySearchPath() = "/usr/X11R6/lib/"; + } + + void createPropertyEditors (PropertyListBuilder& props) + { + createBasicPropertyEditors (props); + } + }; + + BuildConfiguration::Ptr createBuildConfig (const ValueTree& settings) const + { + return new MakeBuildConfiguration (project, settings); + } + +private: + //============================================================================== + void findAllFilesToCompile (const Project::Item& projectItem, Array& results) + { + if (projectItem.isGroup()) + { + for (int i = 0; i < projectItem.getNumChildren(); ++i) + findAllFilesToCompile (projectItem.getChild(i), results); + } + else + { + if (projectItem.shouldBeCompiled()) + results.add (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder)); + } + } + + void writeDefineFlags (OutputStream& out, const BuildConfiguration& config) + { + StringPairArray defines; + defines.set ("LINUX", "1"); + + if (config.isDebug().getValue()) + { + defines.set ("DEBUG", "1"); + defines.set ("_DEBUG", "1"); + } + else + { + defines.set ("NDEBUG", "1"); + } + + out << createGCCPreprocessorFlags (mergePreprocessorDefs (defines, getAllPreprocessorDefs (config))); + } + + void writeHeaderPathFlags (OutputStream& out, const BuildConfiguration& config) + { + StringArray searchPaths (extraSearchPaths); + searchPaths.addArray (config.getHeaderSearchPaths()); + + searchPaths.insert (0, "/usr/include/freetype2"); + searchPaths.insert (0, "/usr/include"); + + searchPaths.removeDuplicates (false); + + for (int i = 0; i < searchPaths.size(); ++i) + out << " -I " << addQuotesIfContainsSpaces (FileHelpers::unixStylePath (replacePreprocessorTokens (config, searchPaths[i]))); + } + + void writeCppFlags (OutputStream& out, const BuildConfiguration& config) + { + out << " CPPFLAGS := $(DEPFLAGS)"; + writeDefineFlags (out, config); + writeHeaderPathFlags (out, config); + out << newLine; + } + + void writeLinkerFlags (OutputStream& out, const BuildConfiguration& config) + { + out << " LDFLAGS += -L$(BINDIR) -L$(LIBDIR)"; + + if (makefileIsDLL) + out << " -shared"; + + out << config.getGCCLibraryPathFlags(); + + const char* defaultLibs[] = { "freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "Xext", 0 }; + StringArray libs (defaultLibs); + + for (int i = 0; i < libs.size(); ++i) + out << " -l" << libs[i]; + + out << " " << replacePreprocessorTokens (config, getExtraLinkerFlags().toString()).trim() + << newLine; + } + + void writeConfig (OutputStream& out, const BuildConfiguration& config) + { + const String buildDirName ("build"); + const String intermediatesDirName (buildDirName + "/intermediate/" + config.getName().toString()); + String outputDir (buildDirName); + + if (config.getTargetBinaryRelativePath().toString().isNotEmpty()) + { + RelativePath binaryPath (config.getTargetBinaryRelativePath().toString(), RelativePath::projectFolder); + outputDir = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder).toUnixStyle(); + } + + out << "ifeq ($(CONFIG)," << escapeSpaces (config.getName().toString()) << ")" << newLine; + out << " BINDIR := " << escapeSpaces (buildDirName) << newLine + << " LIBDIR := " << escapeSpaces (buildDirName) << newLine + << " OBJDIR := " << escapeSpaces (intermediatesDirName) << newLine + << " OUTDIR := " << escapeSpaces (outputDir) << newLine; + + writeCppFlags (out, config); + + out << " CFLAGS += $(CPPFLAGS) $(TARGET_ARCH)"; + + if (config.isDebug().getValue()) + out << " -g -ggdb"; + + if (makefileIsDLL) + out << " -fPIC"; + + out << " -O" << config.getGCCOptimisationFlag() << newLine; + + out << " CXXFLAGS += $(CFLAGS) " << replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim() << newLine; + + writeLinkerFlags (out, config); + + out << " LDDEPS :=" << newLine + << " RESFLAGS := "; + writeDefineFlags (out, config); + writeHeaderPathFlags (out, config); + out << newLine; + + String targetName (config.getTargetBinaryName().getValue().toString()); + + if (projectType.isLibrary()) + targetName = getLibbedFilename (targetName); + else + targetName = targetName.upToLastOccurrenceOf (".", false, false) + makefileTargetSuffix; + + out << " TARGET := " << escapeSpaces (targetName) << newLine; + + if (projectType.isLibrary()) + out << " BLDCMD = ar -rcs $(OUTDIR)/$(TARGET) $(OBJECTS) $(TARGET_ARCH)" << newLine; + else + out << " BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)" << newLine; + + out << "endif" << newLine << newLine; + } + + void writeObjects (OutputStream& out, const Array& files) + { + out << "OBJECTS := \\" << newLine; + + for (int i = 0; i < files.size(); ++i) + if (shouldFileBeCompiledByDefault (files.getReference(i))) + out << " $(OBJDIR)/" << escapeSpaces (getObjectFileFor (files.getReference(i))) << " \\" << newLine; + + out << newLine; + } + + void writeMakefile (OutputStream& out, const Array& files) + { + out << "# Automatically generated makefile, created by the Introjucer" << newLine + << "# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project!" << newLine + << newLine; + + out << "ifndef CONFIG" << newLine + << " CONFIG=" << escapeSpaces (getConfiguration(0)->getName().toString()) << newLine + << "endif" << newLine + << newLine; + + if (! projectType.isLibrary()) + out << "ifeq ($(TARGET_ARCH),)" << newLine + << " TARGET_ARCH := -march=native" << newLine + << "endif" << newLine << newLine; + + out << "# (this disables dependency generation if multiple architectures are set)" << newLine + << "DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)" << newLine + << newLine; + + for (ConfigIterator config (*this); config.next();) + writeConfig (out, *config); + + writeObjects (out, files); + + out << ".PHONY: clean" << newLine + << newLine; + + out << "$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)" << newLine + << "\t@echo Linking " << projectName << newLine + << "\t-@mkdir -p $(BINDIR)" << newLine + << "\t-@mkdir -p $(LIBDIR)" << newLine + << "\t-@mkdir -p $(OUTDIR)" << newLine + << "\t@$(BLDCMD)" << newLine + << newLine; + + out << "clean:" << newLine + << "\t@echo Cleaning " << projectName << newLine + << "\t-@rm -f $(OUTDIR)/$(TARGET)" << newLine + << "\t-@rm -rf $(OBJDIR)/*" << newLine + << "\t-@rm -rf $(OBJDIR)" << newLine + << newLine; + + for (int i = 0; i < files.size(); ++i) + { + if (shouldFileBeCompiledByDefault (files.getReference(i))) + { + jassert (files.getReference(i).getRoot() == RelativePath::buildTargetFolder); + + out << "$(OBJDIR)/" << escapeSpaces (getObjectFileFor (files.getReference(i))) + << ": " << escapeSpaces (files.getReference(i).toUnixStyle()) << newLine + << "\t-@mkdir -p $(OBJDIR)" << newLine + << "\t@echo \"Compiling " << files.getReference(i).getFileName() << "\"" << newLine + << (files.getReference(i).hasFileExtension (".c") ? "\t@$(CC) $(CFLAGS) -o \"$@\" -c \"$<\"" + : "\t@$(CXX) $(CXXFLAGS) -o \"$@\" -c \"$<\"") + << newLine << newLine; + } + } + + out << "-include $(OBJECTS:%.o=%.d)" << newLine; + } + + String getObjectFileFor (const RelativePath& file) const + { + return file.getFileNameWithoutExtension() + + "_" + String::toHexString (file.toUnixStyle().hashCode()) + ".o"; + } + + JUCE_DECLARE_NON_COPYABLE (MakefileProjectExporter); +}; + + +#endif // __JUCER_PROJECTEXPORT_MAKE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h new file mode 100644 index 0000000000..7fd682e2db --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h @@ -0,0 +1,1116 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_PROJECTEXPORT_XCODE_JUCEHEADER__ +#define __JUCER_PROJECTEXPORT_XCODE_JUCEHEADER__ + +#include "jucer_ProjectExporter.h" + +namespace +{ + const char* const osxVersionDefault = "default"; + const char* const osxVersion10_4 = "10.4 SDK"; + const char* const osxVersion10_5 = "10.5 SDK"; + const char* const osxVersion10_6 = "10.6 SDK"; + + const char* const osxArch_Default = "default"; + const char* const osxArch_Native = "Native"; + const char* const osxArch_32BitUniversal = "32BitUniversal"; + const char* const osxArch_64BitUniversal = "64BitUniversal"; + const char* const osxArch_64Bit = "64BitIntel"; +} + +//============================================================================== +class XCodeProjectExporter : public ProjectExporter +{ +public: + //============================================================================== + static const char* getNameMac() { return "XCode (MacOSX)"; } + static const char* getNameiOS() { return "XCode (iOS)"; } + static const char* getValueTreeTypeName (bool iOS) { return iOS ? "XCODE_IPHONE" : "XCODE_MAC"; } + + //============================================================================== + XCodeProjectExporter (Project& project_, const ValueTree& settings_, const bool iOS_) + : ProjectExporter (project_, settings_), + iOS (iOS_) + { + name = iOS ? getNameiOS() : getNameMac(); + + if (getTargetLocation().toString().isEmpty()) + getTargetLocation() = getDefaultBuildsRootFolder() + (iOS ? "iOS" : "MacOSX"); + + if (getSettings() ["objCExtraSuffix"].isVoid()) + getObjCSuffix() = createAlphaNumericUID(); + } + + static XCodeProjectExporter* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName (false))) + return new XCodeProjectExporter (project, settings, false); + else if (settings.hasType (getValueTreeTypeName (true))) + return new XCodeProjectExporter (project, settings, true); + + return 0; + } + + //============================================================================== + Value getObjCSuffix() { return getSetting ("objCExtraSuffix"); } + Value getPListToMerge() { return getSetting ("customPList"); } + + int getLaunchPreferenceOrderForCurrentOS() + { + #if JUCE_MAC + return iOS ? 1 : 2; + #else + return 0; + #endif + } + + bool isAvailableOnCurrentOS() + { + #if JUCE_MAC + return true; + #else + return false; + #endif + } + + bool isPossibleForCurrentProject() { return projectType.isGUIApplication() || ! iOS; } + bool usesMMFiles() const { return true; } + bool isXcode() const { return true; } + bool isOSX() const { return ! iOS; } + bool canCopeWithDuplicateFiles() { return true; } + + void createPropertyEditors (PropertyListBuilder& props) + { + ProjectExporter::createPropertyEditors (props); + + props.add (new TextPropertyComponent (getObjCSuffix(), "Objective-C class name suffix", 64, false), + "Because objective-C linkage is done by string-matching, you can get horrible linkage mix-ups when different modules containing the " + "same class-names are loaded simultaneously. This setting lets you provide a unique string that will be used in naming " + "the obj-C classes in your executable to avoid this."); + + if (projectType.isGUIApplication() && ! iOS) + { + props.add (new TextPropertyComponent (getSetting ("documentExtensions"), "Document file extensions", 128, false), + "A comma-separated list of file extensions for documents that your app can open."); + } + else if (iOS) + { + props.add (new BooleanPropertyComponent (getSetting ("UIFileSharingEnabled"), "File Sharing Enabled", "Enabled"), + "Enable this to expose your app's files to iTunes."); + + props.add (new BooleanPropertyComponent (getSetting ("UIStatusBarHidden"), "Status Bar Hidden", "Enabled"), + "Enable this to disable the status bar in your app."); + } + + props.add (new TextPropertyComponent (getPListToMerge(), "Custom PList", 8192, true), + "You can paste the contents of an XML PList file in here, and the settings that it contains will override any " + "settings that the Introjucer creates. BEWARE! When doing this, be careful to remove from the XML any " + "values that you DO want the introjucer to change!"); + } + + void launchProject() + { + getProjectBundle().startAsProcess(); + } + + //============================================================================== + void create() + { + infoPlistFile = getTargetFolder().getChildFile ("Info.plist"); + + createIconFile(); + + File projectBundle (getProjectBundle()); + createDirectoryOrThrow (projectBundle); + + createObjects(); + + File projectFile (projectBundle.getChildFile ("project.pbxproj")); + + { + MemoryOutputStream mo; + writeProjectFile (mo); + overwriteFileIfDifferentOrThrow (projectFile, mo); + } + + writeInfoPlistFile(); + } + +protected: + //============================================================================== + class XcodeBuildConfiguration : public BuildConfiguration + { + public: + XcodeBuildConfiguration (Project& project, const ValueTree& settings) + : BuildConfiguration (project, settings) + { + } + + Value getMacSDKVersion() const { return getValue (Ids::osxSDK); } + Value getMacCompatibilityVersion() const { return getValue (Ids::osxCompatibility); } + Value getMacArchitecture() const { return getValue (Ids::osxArchitecture); } + + void createPropertyEditors (PropertyListBuilder& props) + { + createBasicPropertyEditors (props); + + if (getMacSDKVersion().toString().isEmpty()) + getMacSDKVersion() = osxVersionDefault; + + const char* osxVersions[] = { "Use Default", osxVersion10_4, osxVersion10_5, osxVersion10_6, 0 }; + const char* osxVersionValues[] = { osxVersionDefault, osxVersion10_4, osxVersion10_5, osxVersion10_6, 0 }; + + props.add (new ChoicePropertyComponent (getMacSDKVersion(), "OSX Base SDK Version", StringArray (osxVersions), Array (osxVersionValues)), + "The version of OSX to link against in the XCode build."); + + if (getMacCompatibilityVersion().toString().isEmpty()) + getMacCompatibilityVersion() = osxVersionDefault; + + props.add (new ChoicePropertyComponent (getMacCompatibilityVersion(), "OSX Compatibility Version", StringArray (osxVersions), Array (osxVersionValues)), + "The minimum version of OSX that the target binary will be compatible with."); + + const char* osxArch[] = { "Use Default", "Native architecture of build machine", "Universal Binary (32-bit)", "Universal Binary (64-bit)", "64-bit Intel", 0 }; + const char* osxArchValues[] = { osxArch_Default, osxArch_Native, osxArch_32BitUniversal, osxArch_64BitUniversal, osxArch_64Bit, 0 }; + + if (getMacArchitecture().toString().isEmpty()) + getMacArchitecture() = osxArch_Default; + + props.add (new ChoicePropertyComponent (getMacArchitecture(), "OSX Architecture", StringArray (osxArch), Array (osxArchValues)), + "The type of OSX binary that will be produced."); + } + }; + + BuildConfiguration::Ptr createBuildConfig (const ValueTree& settings) const + { + return new XcodeBuildConfiguration (project, settings); + } + +private: + OwnedArray pbxBuildFiles, pbxFileReferences, pbxGroups, misc, projectConfigs, targetConfigs; + StringArray buildPhaseIDs, resourceIDs, sourceIDs, frameworkIDs; + StringArray frameworkFileIDs, rezFileIDs, resourceFileRefs; + File infoPlistFile, iconFile; + const bool iOS; + + static String sanitisePath (const String& path) + { + if (path.startsWithChar ('~')) + return "$(HOME)" + path.substring (1); + + return path; + } + + File getProjectBundle() const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (".xcodeproj"); } + + //============================================================================== + void createObjects() + { + addFrameworks(); + addMainBuildProduct(); + + if (xcodeCreatePList) + { + RelativePath plistPath (infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder); + addFileReference (plistPath.toUnixStyle()); + resourceFileRefs.add (createFileRefID (plistPath)); + } + + if (iconFile.exists()) + { + RelativePath iconPath (iconFile, getTargetFolder(), RelativePath::buildTargetFolder); + addFileReference (iconPath.toUnixStyle()); + resourceIDs.add (addBuildFile (iconPath, false, false)); + resourceFileRefs.add (createFileRefID (iconPath)); + } + + { + StringArray topLevelGroupIDs; + + for (int i = 0; i < groups.size(); ++i) + if (groups.getReference(i).getNumChildren() > 0) + topLevelGroupIDs.add (addProjectItem (groups.getReference(i))); + + { // Add 'resources' group + String resourcesGroupID (createID ("__resources")); + addGroup (resourcesGroupID, "Resources", resourceFileRefs); + topLevelGroupIDs.add (resourcesGroupID); + } + + { // Add 'frameworks' group + String frameworksGroupID (createID ("__frameworks")); + addGroup (frameworksGroupID, "Frameworks", frameworkFileIDs); + topLevelGroupIDs.add (frameworksGroupID); + } + + { // Add 'products' group + String productsGroupID (createID ("__products")); + StringArray products; + products.add (createID ("__productFileID")); + addGroup (productsGroupID, "Products", products); + topLevelGroupIDs.add (productsGroupID); + } + + addGroup (createID ("__mainsourcegroup"), "Source", topLevelGroupIDs); + } + + for (ConfigIterator config (*this); config.next();) + { + addProjectConfig (config->getName().getValue(), getProjectSettings (*config)); + addTargetConfig (config->getName().getValue(), getTargetSettings (dynamic_cast (*config))); + } + + addConfigList (projectConfigs, createID ("__projList")); + addConfigList (targetConfigs, createID ("__configList")); + + if (! projectType.isLibrary()) + addBuildPhase ("PBXResourcesBuildPhase", resourceIDs); + + if (rezFileIDs.size() > 0) + addBuildPhase ("PBXRezBuildPhase", rezFileIDs); + + addBuildPhase ("PBXSourcesBuildPhase", sourceIDs); + + if (! projectType.isLibrary()) + addBuildPhase ("PBXFrameworksBuildPhase", frameworkIDs); + + addShellScriptPhase(); + + addTargetObject(); + addProjectObject(); + } + + static Image fixMacIconImageSize (Image& image) + { + const int w = image.getWidth(); + const int h = image.getHeight(); + + if (w != h || (w != 16 && w != 32 && w != 48 && w != 64)) + { + const int newSize = w >= 128 ? 128 : (w >= 64 ? 64 : (w >= 32 ? 32 : 16)); + Image newIm (Image::ARGB, newSize, newSize, true, SoftwareImageType()); + Graphics g (newIm); + g.drawImageWithin (image, 0, 0, newSize, newSize, + RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, false); + return newIm; + } + + return image; + } + + void writeIcnsFile (const Array& images, OutputStream& out) + { + MemoryOutputStream data; + + for (int i = 0; i < images.size(); ++i) + { + Image image (fixMacIconImageSize (images.getReference (i))); + + const int w = image.getWidth(); + const int h = image.getHeight(); + + const char* type = nullptr; + const char* maskType = nullptr; + + if (w == h) + { + if (w == 16) { type = "is32"; maskType = "s8mk"; } + if (w == 32) { type = "il32"; maskType = "l8mk"; } + if (w == 48) { type = "ih32"; maskType = "h8mk"; } + if (w == 128) { type = "it32"; maskType = "t8mk"; } + } + + if (type != nullptr) + { + data.write (type, 4); + data.writeIntBigEndian (8 + 4 * w * h); + + const Image::BitmapData bitmap (image, Image::BitmapData::readOnly); + + int y; + for (y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const Colour pixel (bitmap.getPixelColour (x, y)); + data.writeByte ((char) pixel.getAlpha()); + data.writeByte ((char) pixel.getRed()); + data.writeByte ((char) pixel.getGreen()); + data.writeByte ((char) pixel.getBlue()); + } + } + + data.write (maskType, 4); + data.writeIntBigEndian (8 + w * h); + + for (y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const Colour pixel (bitmap.getPixelColour (x, y)); + data.writeByte ((char) pixel.getAlpha()); + } + } + } + } + + jassert (data.getDataSize() > 0); // no suitable sized images? + + out.write ("icns", 4); + out.writeIntBigEndian (data.getDataSize() + 8); + out << data; + } + + void createIconFile() + { + Array images; + + Image bigIcon (getBigIcon()); + if (bigIcon.isValid()) + images.add (bigIcon); + + Image smallIcon (getSmallIcon()); + if (smallIcon.isValid()) + images.add (smallIcon); + + if (images.size() > 0) + { + MemoryOutputStream mo; + writeIcnsFile (images, mo); + + iconFile = getTargetFolder().getChildFile ("Icon.icns"); + overwriteFileIfDifferentOrThrow (iconFile, mo); + } + } + + void writeInfoPlistFile() + { + if (! xcodeCreatePList) + return; + + ScopedPointer plist (XmlDocument::parse (getPListToMerge().toString())); + + if (plist == nullptr || ! plist->hasTagName ("plist")) + plist = new XmlElement ("plist"); + + XmlElement* dict = plist->getChildByName ("dict"); + + if (dict == nullptr) + dict = plist->createNewChildElement ("dict"); + + if (iOS) + addPlistDictionaryKeyBool (dict, "LSRequiresIPhoneOS", true); + + addPlistDictionaryKey (dict, "CFBundleExecutable", "${EXECUTABLE_NAME}"); + addPlistDictionaryKey (dict, "CFBundleIconFile", iconFile.exists() ? iconFile.getFileName() : String::empty); + addPlistDictionaryKey (dict, "CFBundleIdentifier", project.getBundleIdentifier().toString()); + addPlistDictionaryKey (dict, "CFBundleName", projectName); + addPlistDictionaryKey (dict, "CFBundlePackageType", xcodePackageType); + addPlistDictionaryKey (dict, "CFBundleSignature", xcodeBundleSignature); + addPlistDictionaryKey (dict, "CFBundleShortVersionString", project.getVersion().toString()); + addPlistDictionaryKey (dict, "CFBundleVersion", project.getVersion().toString()); + + StringArray documentExtensions; + documentExtensions.addTokens (replacePreprocessorDefs (getAllPreprocessorDefs(), getSetting ("documentExtensions").toString()), + ",", String::empty); + documentExtensions.trim(); + documentExtensions.removeEmptyStrings (true); + + if (documentExtensions.size() > 0) + { + dict->createNewChildElement ("key")->addTextElement ("CFBundleDocumentTypes"); + XmlElement* dict2 = dict->createNewChildElement ("array")->createNewChildElement ("dict"); + + for (int i = 0; i < documentExtensions.size(); ++i) + { + String ex (documentExtensions[i]); + if (ex.startsWithChar ('.')) + ex = ex.substring (1); + + dict2->createNewChildElement ("key")->addTextElement ("CFBundleTypeExtensions"); + dict2->createNewChildElement ("array")->createNewChildElement ("string")->addTextElement (ex); + addPlistDictionaryKey (dict2, "CFBundleTypeName", ex); + addPlistDictionaryKey (dict2, "CFBundleTypeRole", "Editor"); + addPlistDictionaryKey (dict2, "NSPersistentStoreTypeKey", "XML"); + } + } + + if (getSetting ("UIFileSharingEnabled").getValue()) + addPlistDictionaryKeyBool (dict, "UIFileSharingEnabled", true); + + if (getSetting ("UIStatusBarHidden").getValue()) + addPlistDictionaryKeyBool (dict, "UIStatusBarHidden", true); + + for (int i = 0; i < xcodeExtraPListEntries.size(); ++i) + dict->addChildElement (new XmlElement (xcodeExtraPListEntries.getReference(i))); + + MemoryOutputStream mo; + plist->writeToStream (mo, ""); + + overwriteFileIfDifferentOrThrow (infoPlistFile, mo); + } + + StringArray getHeaderSearchPaths (const BuildConfiguration& config) + { + StringArray searchPaths (extraSearchPaths); + searchPaths.addArray (config.getHeaderSearchPaths()); + searchPaths.removeDuplicates (false); + return searchPaths; + } + + static void getLinkerFlagsForStaticLibrary (const RelativePath& library, StringArray& flags, StringArray& librarySearchPaths) + { + jassert (library.getFileNameWithoutExtension().substring (0, 3) == "lib"); + + flags.add ("-l" + library.getFileNameWithoutExtension().substring (3)); + + String searchPath (library.toUnixStyle().upToLastOccurrenceOf ("/", false, false)); + if (! library.isAbsolute()) + searchPath = "$(SRCROOT)/" + searchPath; + + librarySearchPaths.add (sanitisePath (searchPath)); + } + + void getLinkerFlags (const BuildConfiguration& config, StringArray& flags, StringArray& librarySearchPaths) + { + if (xcodeIsBundle) + flags.add ("-bundle"); + + const Array& extraLibs = config.isDebug().getValue() ? xcodeExtraLibrariesDebug + : xcodeExtraLibrariesRelease; + + for (int i = 0; i < extraLibs.size(); ++i) + getLinkerFlagsForStaticLibrary (extraLibs.getReference(i), flags, librarySearchPaths); + + flags.add (replacePreprocessorTokens (config, getExtraLinkerFlags().toString())); + flags.removeEmptyStrings (true); + } + + StringArray getProjectSettings (const BuildConfiguration& config) + { + StringArray s; + s.add ("ALWAYS_SEARCH_USER_PATHS = NO"); + s.add ("GCC_C_LANGUAGE_STANDARD = c99"); + s.add ("GCC_WARN_ABOUT_RETURN_TYPE = YES"); + s.add ("GCC_WARN_CHECK_SWITCH_STATEMENTS = YES"); + s.add ("GCC_WARN_UNUSED_VARIABLE = YES"); + s.add ("GCC_WARN_MISSING_PARENTHESES = YES"); + s.add ("GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES"); + s.add ("GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES"); + s.add ("WARNING_CFLAGS = -Wreorder"); + s.add ("GCC_MODEL_TUNING = G5"); + + if (projectType.isLibrary()) + { + s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = NO"); + s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = NO"); + } + else + { + s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = YES"); + } + + if (iOS) + { + s.add ("\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\""); + s.add ("SDKROOT = iphoneos"); + s.add ("TARGETED_DEVICE_FAMILY = \"1,2\""); + } + + s.add ("ZERO_LINK = NO"); + + if (xcodeCanUseDwarf) + s.add ("DEBUG_INFORMATION_FORMAT = \"dwarf\""); + + s.add ("PRODUCT_NAME = \"" + config.getTargetBinaryName().toString() + "\""); + return s; + } + + StringArray getTargetSettings (const XcodeBuildConfiguration& config) + { + StringArray s; + + const String arch (config.getMacArchitecture().toString()); + if (arch == osxArch_Native) s.add ("ARCHS = \"$(ARCHS_NATIVE)\""); + else if (arch == osxArch_32BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_BIT)\""); + else if (arch == osxArch_64BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\""); + else if (arch == osxArch_64Bit) s.add ("ARCHS = \"$(ARCHS_STANDARD_64_BIT)\""); + + s.add ("HEADER_SEARCH_PATHS = \"" + replacePreprocessorTokens (config, getHeaderSearchPaths (config).joinIntoString (" ")) + " $(inherited)\""); + s.add ("GCC_OPTIMIZATION_LEVEL = " + config.getGCCOptimisationFlag()); + s.add ("INFOPLIST_FILE = " + infoPlistFile.getFileName()); + + const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim()); + if (extraFlags.isNotEmpty()) + s.add ("OTHER_CPLUSPLUSFLAGS = \"" + extraFlags + "\""); + + if (xcodeProductInstallPath.isNotEmpty()) + s.add ("INSTALL_PATH = \"" + xcodeProductInstallPath + "\""); + + if (xcodeIsBundle) + { + s.add ("LIBRARY_STYLE = Bundle"); + s.add ("WRAPPER_EXTENSION = " + xcodeBundleExtension.substring (1)); + s.add ("GENERATE_PKGINFO_FILE = YES"); + } + + if (xcodeOtherRezFlags.isNotEmpty()) + s.add ("OTHER_REZFLAGS = \"" + xcodeOtherRezFlags + "\""); + + if (projectType.isLibrary()) + { + if (config.getTargetBinaryRelativePath().toString().isNotEmpty()) + { + RelativePath binaryPath (config.getTargetBinaryRelativePath().toString(), RelativePath::projectFolder); + binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder); + + s.add ("DSTROOT = " + sanitisePath (binaryPath.toUnixStyle())); + s.add ("SYMROOT = " + sanitisePath (binaryPath.toUnixStyle())); + } + + s.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\""); + s.add ("DEPLOYMENT_LOCATION = YES"); + } + + String gccVersion ("com.apple.compilers.llvm.clang.1_0"); + + if (! iOS) + { + const String sdk (config.getMacSDKVersion().toString()); + const String sdkCompat (config.getMacCompatibilityVersion().toString()); + + if (sdk == osxVersion10_4) + { + s.add ("SDKROOT = macosx10.4"); + gccVersion = "4.0"; + } + else if (sdk == osxVersion10_5) + { + s.add ("SDKROOT = macosx10.5"); + } + else if (sdk == osxVersion10_6) + { + s.add ("SDKROOT = macosx10.6"); + } + + if (sdkCompat == osxVersion10_4) s.add ("MACOSX_DEPLOYMENT_TARGET = 10.4"); + else if (sdkCompat == osxVersion10_5) s.add ("MACOSX_DEPLOYMENT_TARGET = 10.5"); + else if (sdkCompat == osxVersion10_6) s.add ("MACOSX_DEPLOYMENT_TARGET = 10.6"); + + s.add ("MACOSX_DEPLOYMENT_TARGET_ppc = 10.4"); + } + + s.add ("GCC_VERSION = " + gccVersion); + s.add ("CLANG_CXX_LANGUAGE_STANDARD = \"c++0x\""); + + { + StringArray linkerFlags, librarySearchPaths; + getLinkerFlags (config, linkerFlags, librarySearchPaths); + + if (linkerFlags.size() > 0) + s.add ("OTHER_LDFLAGS = \"" + linkerFlags.joinIntoString (" ") + "\""); + + librarySearchPaths.addArray (config.getLibrarySearchPaths()); + librarySearchPaths.removeDuplicates (false); + + if (librarySearchPaths.size() > 0) + { + String libPaths ("LIBRARY_SEARCH_PATHS = (\"$(inherited)\""); + + for (int i = 0; i < librarySearchPaths.size(); ++i) + libPaths += ", \"\\\"" + librarySearchPaths[i] + "\\\"\""; + + s.add (libPaths + ")"); + } + } + + StringPairArray defines; + + if (config.isDebug().getValue()) + { + defines.set ("_DEBUG", "1"); + defines.set ("DEBUG", "1"); + s.add ("ONLY_ACTIVE_ARCH = YES"); + s.add ("COPY_PHASE_STRIP = NO"); + s.add ("GCC_DYNAMIC_NO_PIC = NO"); + } + else + { + defines.set ("_NDEBUG", "1"); + defines.set ("NDEBUG", "1"); + s.add ("GCC_GENERATE_DEBUGGING_SYMBOLS = NO"); + s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = YES"); + } + + { + const String objCSuffix (getObjCSuffix().toString().trim()); + if (objCSuffix.isNotEmpty()) + defines.set ("JUCE_ObjCExtraSuffix", replacePreprocessorTokens (config, objCSuffix)); + } + + { + defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); + + StringArray defsList; + + for (int i = 0; i < defines.size(); ++i) + { + String def (defines.getAllKeys()[i]); + const String value (defines.getAllValues()[i]); + if (value.isNotEmpty()) + def << "=" << value; + + defsList.add (def.quoted()); + } + + s.add ("GCC_PREPROCESSOR_DEFINITIONS = (" + indentList (defsList, ",") + ")"); + } + + return s; + } + + void addFrameworks() + { + if (! projectType.isLibrary()) + { + StringArray s (xcodeFrameworks); + s.trim(); + s.removeDuplicates (true); + s.sort (true); + + for (int i = 0; i < s.size(); ++i) + addFramework (s[i]); + } + } + + //============================================================================== + void writeProjectFile (OutputStream& output) + { + output << "// !$*UTF8*$!\n{\n" + "\tarchiveVersion = 1;\n" + "\tclasses = {\n\t};\n" + "\tobjectVersion = 46;\n" + "\tobjects = {\n\n"; + + Array objects; + objects.addArray (pbxBuildFiles); + objects.addArray (pbxFileReferences); + objects.addArray (pbxGroups); + objects.addArray (targetConfigs); + objects.addArray (projectConfigs); + objects.addArray (misc); + + for (int i = 0; i < objects.size(); ++i) + { + ValueTree& o = *objects.getUnchecked(i); + output << "\t\t" << o.getType().toString() << " = { "; + + for (int j = 0; j < o.getNumProperties(); ++j) + { + const Identifier propertyName (o.getPropertyName(j)); + String val (o.getProperty (propertyName).toString()); + + if (val.isEmpty() || (val.containsAnyOf (" \t;<>()=,&+-_\r\n") + && ! (val.trimStart().startsWithChar ('(') + || val.trimStart().startsWithChar ('{')))) + val = val.quoted(); + + output << propertyName.toString() << " = " << val << "; "; + } + + output << "};\n"; + } + + output << "\t};\n\trootObject = " << createID ("__root") << ";\n}\n"; + } + + static void addPlistDictionaryKey (XmlElement* xml, const String& key, const String& value) + { + forEachXmlChildElementWithTagName (*xml, e, "key") + { + if (e->getAllSubText().trim().equalsIgnoreCase (key)) + { + if (e->getNextElement() != nullptr && e->getNextElement()->hasTagName ("key")) + { + // try to fix broken plist format.. + xml->removeChildElement (e, true); + break; + } + else + { + return; // (value already exists) + } + } + } + + xml->createNewChildElement ("key") ->addTextElement (key); + xml->createNewChildElement ("string")->addTextElement (value); + } + + static void addPlistDictionaryKeyBool (XmlElement* xml, const String& key, const bool value) + { + xml->createNewChildElement ("key")->addTextElement (key); + xml->createNewChildElement (value ? "true" : "false"); + } + + String addBuildFile (const String& path, const String& fileRefID, bool addToSourceBuildPhase, bool inhibitWarnings) + { + String fileID (createID (path + "buildref")); + + if (addToSourceBuildPhase) + sourceIDs.add (fileID); + + ValueTree* v = new ValueTree (fileID); + v->setProperty ("isa", "PBXBuildFile", 0); + v->setProperty ("fileRef", fileRefID, 0); + + if (inhibitWarnings) + v->setProperty ("settings", "{COMPILER_FLAGS = \"-w\"; }", 0); + + pbxBuildFiles.add (v); + return fileID; + } + + String addBuildFile (const RelativePath& path, bool addToSourceBuildPhase, bool inhibitWarnings) + { + return addBuildFile (path.toUnixStyle(), createFileRefID (path), addToSourceBuildPhase, inhibitWarnings); + } + + String addFileReference (String pathString) + { + String sourceTree ("SOURCE_ROOT"); + RelativePath path (pathString, RelativePath::unknown); + + if (pathString.startsWith ("${")) + { + sourceTree = pathString.substring (2).upToFirstOccurrenceOf ("}", false, false); + pathString = pathString.fromFirstOccurrenceOf ("}/", false, false); + } + else if (path.isAbsolute()) + { + sourceTree = ""; + } + + const String fileRefID (createFileRefID (pathString)); + + ScopedPointer v (new ValueTree (fileRefID)); + v->setProperty ("isa", "PBXFileReference", 0); + v->setProperty ("lastKnownFileType", getFileType (path), 0); + v->setProperty (Ids::name, pathString.fromLastOccurrenceOf ("/", false, false), 0); + v->setProperty ("path", sanitisePath (pathString), 0); + v->setProperty ("sourceTree", sourceTree, 0); + + const int existing = pbxFileReferences.indexOfSorted (*this, v); + + if (existing >= 0) + { + // If this fails, there's either a string hash collision, or the same file is being added twice (incorrectly) + jassert (pbxFileReferences.getUnchecked (existing)->isEquivalentTo (*v)); + } + else + { + pbxFileReferences.addSorted (*this, v.release()); + } + + return fileRefID; + } + +public: + static int compareElements (const ValueTree* first, const ValueTree* second) + { + return first->getType().toString().compare (second->getType().toString()); + } + +private: + static String getFileType (const RelativePath& file) + { + if (file.hasFileExtension ("cpp;cc;cxx")) return "sourcecode.cpp.cpp"; + else if (file.hasFileExtension (".mm")) return "sourcecode.cpp.objcpp"; + else if (file.hasFileExtension (".m")) return "sourcecode.c.objc"; + else if (file.hasFileExtension (headerFileExtensions)) return "sourcecode.c.h"; + else if (file.hasFileExtension (".framework")) return "wrapper.framework"; + else if (file.hasFileExtension (".jpeg;.jpg")) return "image.jpeg"; + else if (file.hasFileExtension ("png;gif")) return "image" + file.getFileExtension(); + else if (file.hasFileExtension ("html;htm")) return "text.html"; + else if (file.hasFileExtension ("xml;zip;wav")) return "file" + file.getFileExtension(); + else if (file.hasFileExtension ("txt;rtf")) return "text" + file.getFileExtension(); + else if (file.hasFileExtension ("plist")) return "text.plist.xml"; + else if (file.hasFileExtension ("app")) return "wrapper.application"; + else if (file.hasFileExtension ("component;vst;plugin")) return "wrapper.cfbundle"; + else if (file.hasFileExtension ("xcodeproj")) return "wrapper.pb-project"; + else if (file.hasFileExtension ("a")) return "archive.ar"; + + return "file" + file.getFileExtension(); + } + + String addFile (const RelativePath& path, bool shouldBeCompiled, bool inhibitWarnings) + { + const String pathAsString (path.toUnixStyle()); + const String refID (addFileReference (path.toUnixStyle())); + + if (shouldBeCompiled) + { + if (path.hasFileExtension (".r")) + rezFileIDs.add (addBuildFile (pathAsString, refID, false, inhibitWarnings)); + else + addBuildFile (pathAsString, refID, true, inhibitWarnings); + } + + return refID; + } + + String addProjectItem (const Project::Item& projectItem) + { + if (projectItem.isGroup()) + { + StringArray childIDs; + for (int i = 0; i < projectItem.getNumChildren(); ++i) + { + const String childID (addProjectItem (projectItem.getChild(i))); + + if (childID.isNotEmpty()) + childIDs.add (childID); + } + + return addGroup (projectItem, childIDs); + } + else + { + if (projectItem.shouldBeAddedToTargetProject()) + { + String itemPath (projectItem.getFilePath()); + bool inhibitWarnings = projectItem.getShouldInhibitWarningsValue().getValue(); + + if (itemPath.startsWith ("${")) + { + const RelativePath path (itemPath, RelativePath::unknown); + return addFile (path, projectItem.shouldBeCompiled(), inhibitWarnings); + } + else + { + const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + return addFile (path, projectItem.shouldBeCompiled(), inhibitWarnings); + } + } + } + + return String::empty; + } + + void addFramework (const String& frameworkName) + { + const String path ("System/Library/Frameworks/" + frameworkName + ".framework"); + const String fileRefID (createFileRefID (path)); + addFileReference ("${SDKROOT}/" + path); + frameworkIDs.add (addBuildFile (path, fileRefID, false, false)); + frameworkFileIDs.add (fileRefID); + } + + void addGroup (const String& groupID, const String& groupName, const StringArray& childIDs) + { + ValueTree* v = new ValueTree (groupID); + v->setProperty ("isa", "PBXGroup", 0); + v->setProperty ("children", "(" + indentList (childIDs, ",") + " )", 0); + v->setProperty (Ids::name, groupName, 0); + v->setProperty ("sourceTree", "", 0); + pbxGroups.add (v); + } + + String addGroup (const Project::Item& item, StringArray& childIDs) + { + const String groupName (item.getName().toString()); + const String groupID (getIDForGroup (item)); + addGroup (groupID, groupName, childIDs); + return groupID; + } + + void addMainBuildProduct() + { + jassert (xcodeFileType.isNotEmpty()); + jassert (xcodeBundleExtension.isEmpty() || xcodeBundleExtension.startsWithChar('.')); + String productName (getConfiguration(0)->getTargetBinaryName().toString()); + + if (xcodeFileType == "archive.ar") + productName = getLibbedFilename (productName); + else + productName += xcodeBundleExtension; + + addBuildProduct (xcodeFileType, productName); + } + + void addBuildProduct (const String& fileType, const String& binaryName) + { + ValueTree* v = new ValueTree (createID ("__productFileID")); + v->setProperty ("isa", "PBXFileReference", 0); + v->setProperty ("explicitFileType", fileType, 0); + v->setProperty ("includeInIndex", (int) 0, 0); + v->setProperty ("path", sanitisePath (binaryName), 0); + v->setProperty ("sourceTree", "BUILT_PRODUCTS_DIR", 0); + pbxFileReferences.add (v); + } + + void addTargetConfig (const String& configName, const StringArray& buildSettings) + { + ValueTree* v = new ValueTree (createID ("targetconfigid_" + configName)); + v->setProperty ("isa", "XCBuildConfiguration", 0); + v->setProperty ("buildSettings", "{" + indentList (buildSettings, ";") + " }", 0); + v->setProperty (Ids::name, configName, 0); + targetConfigs.add (v); + } + + void addProjectConfig (const String& configName, const StringArray& buildSettings) + { + ValueTree* v = new ValueTree (createID ("projectconfigid_" + configName)); + v->setProperty ("isa", "XCBuildConfiguration", 0); + v->setProperty ("buildSettings", "{" + indentList (buildSettings, ";") + " }", 0); + v->setProperty (Ids::name, configName, 0); + projectConfigs.add (v); + } + + void addConfigList (const OwnedArray & configsToUse, const String& listID) + { + StringArray configIDs; + + for (int i = 0; i < configsToUse.size(); ++i) + configIDs.add (configsToUse[i]->getType().toString()); + + ValueTree* v = new ValueTree (listID); + v->setProperty ("isa", "XCConfigurationList", 0); + v->setProperty ("buildConfigurations", "(" + indentList (configIDs, ",") + " )", 0); + v->setProperty ("defaultConfigurationIsVisible", (int) 0, 0); + + if (configsToUse[0] != nullptr) + v->setProperty ("defaultConfigurationName", configsToUse[0]->getProperty (Ids::name), 0); + + misc.add (v); + } + + ValueTree* addBuildPhase (const String& phaseType, const StringArray& fileIds) + { + String phaseId (createID (phaseType + "resbuildphase")); + buildPhaseIDs.add (phaseId); + + ValueTree* v = new ValueTree (phaseId); + v->setProperty ("isa", phaseType, 0); + v->setProperty ("buildActionMask", "2147483647", 0); + v->setProperty ("files", "(" + indentList (fileIds, ",") + " )", 0); + v->setProperty ("runOnlyForDeploymentPostprocessing", (int) 0, 0); + misc.add (v); + return v; + } + + void addTargetObject() + { + ValueTree* const v = new ValueTree (createID ("__target")); + v->setProperty ("isa", "PBXNativeTarget", 0); + v->setProperty ("buildConfigurationList", createID ("__configList"), 0); + v->setProperty ("buildPhases", "(" + indentList (buildPhaseIDs, ",") + " )", 0); + v->setProperty ("buildRules", "( )", 0); + v->setProperty ("dependencies", "( )", 0); + v->setProperty (Ids::name, projectName, 0); + v->setProperty ("productName", projectName, 0); + v->setProperty ("productReference", createID ("__productFileID"), 0); + + if (xcodeProductInstallPath.isNotEmpty()) + v->setProperty ("productInstallPath", xcodeProductInstallPath, 0); + + jassert (xcodeProductType.isNotEmpty()); + v->setProperty ("productType", xcodeProductType, 0); + + misc.add (v); + } + + void addProjectObject() + { + ValueTree* const v = new ValueTree (createID ("__root")); + v->setProperty ("isa", "PBXProject", 0); + v->setProperty ("buildConfigurationList", createID ("__projList"), 0); + v->setProperty ("compatibilityVersion", "Xcode 3.2", 0); + v->setProperty ("hasScannedForEncodings", (int) 0, 0); + v->setProperty ("mainGroup", createID ("__mainsourcegroup"), 0); + v->setProperty ("projectDirPath", "\"\"", 0); + v->setProperty ("projectRoot", "\"\"", 0); + v->setProperty ("targets", "( " + createID ("__target") + " )", 0); + misc.add (v); + } + + void addShellScriptPhase() + { + if (xcodeShellScript.isNotEmpty()) + { + ValueTree* const v = addBuildPhase ("PBXShellScriptBuildPhase", StringArray()); + v->setProperty (Ids::name, xcodeShellScriptTitle, 0); + v->setProperty ("shellPath", "/bin/sh", 0); + v->setProperty ("shellScript", xcodeShellScript.replace ("\\", "\\\\") + .replace ("\"", "\\\"") + .replace ("\r\n", "\\n") + .replace ("\n", "\\n"), 0); + } + } + + //============================================================================== + static String indentList (const StringArray& list, const String& separator) + { + if (list.size() == 0) + return " "; + + return "\n\t\t\t\t" + list.joinIntoString (separator + "\n\t\t\t\t") + + (separator == ";" ? separator : String::empty); + } + + String createID (String rootString) const + { + if (rootString.startsWith ("${")) + rootString = rootString.fromFirstOccurrenceOf ("}/", false, false); + + rootString += project.getProjectUID(); + + return MD5 (rootString.toUTF8()).toHexString().substring (0, 24).toUpperCase(); + } + + String createFileRefID (const RelativePath& path) const + { + return createFileRefID (path.toUnixStyle()); + } + + String createFileRefID (const String& path) const + { + return createID ("__fileref_" + path); + } + + String getIDForGroup (const Project::Item& item) const + { + return createID (item.getID()); + } + + bool shouldFileBeCompiledByDefault (const RelativePath& file) const + { + return file.hasFileExtension (sourceFileExtensions); + } +}; + + +#endif // __JUCER_PROJECTEXPORT_XCODE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp new file mode 100644 index 0000000000..bbddcffbe8 --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.cpp @@ -0,0 +1,524 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#include "jucer_ProjectExporter.h" +#include "jucer_ProjectExport_Make.h" +#include "jucer_ProjectExport_MSVC.h" +#include "jucer_ProjectExport_XCode.h" +#include "jucer_ProjectExport_Android.h" + + +//============================================================================== +int ProjectExporter::getNumExporters() +{ + return 6; +} + +StringArray ProjectExporter::getExporterNames() +{ + StringArray s; + s.add (XCodeProjectExporter::getNameMac()); + s.add (XCodeProjectExporter::getNameiOS()); + s.add (MSVCProjectExporterVC6::getName()); + s.add (MSVCProjectExporterVC2005::getName()); + s.add (MSVCProjectExporterVC2008::getName()); + s.add (MSVCProjectExporterVC2010::getName()); + s.add (MakefileProjectExporter::getNameLinux()); + s.add (AndroidProjectExporter::getNameAndroid()); + return s; +} + +StringArray ProjectExporter::getDefaultExporters() +{ + StringArray s; + s.add (XCodeProjectExporter::getNameMac()); + s.add (MSVCProjectExporterVC2008::getName()); + s.add (MSVCProjectExporterVC2010::getName()); + s.add (MakefileProjectExporter::getNameLinux()); + return s; +} + +ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int index) +{ + ProjectExporter* exp = nullptr; + + switch (index) + { + case 0: exp = new XCodeProjectExporter (project, ValueTree (XCodeProjectExporter ::getValueTreeTypeName (false)), false); break; + case 1: exp = new XCodeProjectExporter (project, ValueTree (XCodeProjectExporter ::getValueTreeTypeName (true)), true); break; + case 2: exp = new MSVCProjectExporterVC6 (project, ValueTree (MSVCProjectExporterVC6 ::getValueTreeTypeName())); break; + case 3: exp = new MSVCProjectExporterVC2005 (project, ValueTree (MSVCProjectExporterVC2005::getValueTreeTypeName())); break; + case 4: exp = new MSVCProjectExporterVC2008 (project, ValueTree (MSVCProjectExporterVC2008::getValueTreeTypeName())); break; + case 5: exp = new MSVCProjectExporterVC2010 (project, ValueTree (MSVCProjectExporterVC2010::getValueTreeTypeName())); break; + case 6: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter ::getValueTreeTypeName())); break; + case 7: exp = new AndroidProjectExporter (project, ValueTree (AndroidProjectExporter ::getValueTreeTypeName())); break; + default: jassertfalse; return 0; + } + + File juceFolder (ModuleList::getLocalModulesFolder (&project)); + File target (exp->getTargetFolder()); + + if (FileHelpers::shouldPathsBeRelative (juceFolder.getFullPathName(), project.getFile().getFullPathName())) + exp->getJuceFolder() = juceFolder.getRelativePathFrom (project.getFile().getParentDirectory()); + else + exp->getJuceFolder() = juceFolder.getFullPathName(); + + exp->createDefaultConfigs(); + + return exp; +} + +ProjectExporter* ProjectExporter::createNewExporter (Project& project, const String& name) +{ + return createNewExporter (project, getExporterNames().indexOf (name)); +} + +ProjectExporter* ProjectExporter::createExporter (Project& project, const ValueTree& settings) +{ + ProjectExporter* exp = MSVCProjectExporterVC6 ::createForSettings (project, settings); + if (exp == nullptr) exp = MSVCProjectExporterVC2005::createForSettings (project, settings); + if (exp == nullptr) exp = MSVCProjectExporterVC2008::createForSettings (project, settings); + if (exp == nullptr) exp = MSVCProjectExporterVC2010::createForSettings (project, settings); + if (exp == nullptr) exp = XCodeProjectExporter ::createForSettings (project, settings); + if (exp == nullptr) exp = MakefileProjectExporter ::createForSettings (project, settings); + if (exp == nullptr) exp = AndroidProjectExporter ::createForSettings (project, settings); + + jassert (exp != nullptr); + return exp; +} + +ProjectExporter* ProjectExporter::createPlatformDefaultExporter (Project& project) +{ + ScopedPointer best; + int bestPref = 0; + + for (Project::ExporterIterator exporter (project); exporter.next();) + { + const int pref = exporter->getLaunchPreferenceOrderForCurrentOS(); + + if (pref > bestPref) + { + bestPref = pref; + best = exporter.exporter; + } + } + + return best.release(); +} + +//============================================================================== +ProjectExporter::ProjectExporter (Project& project_, const ValueTree& settings_) + : xcodeIsBundle (false), + xcodeCreatePList (false), + xcodeCanUseDwarf (true), + makefileIsDLL (false), + msvcIsDLL (false), + msvcIsWindowsSubsystem (true), + msvcNeedsDLLRuntimeLib (false), + settings (settings_), + project (project_), + projectType (project_.getProjectType()), + projectName (project_.getProjectName().toString()), + projectFolder (project_.getFile().getParentDirectory()), + modulesGroup (nullptr) +{ + groups.add (project.getMainGroup().createCopy()); +} + +ProjectExporter::~ProjectExporter() +{ +} + +File ProjectExporter::getTargetFolder() const +{ + return project.resolveFilename (getTargetLocation().toString()); +} + +String ProjectExporter::getIncludePathForFileInJuceFolder (const String& pathFromJuceFolder, const File& targetIncludeFile) const +{ + String juceFolderPath (getJuceFolder().toString()); + + if (juceFolderPath.startsWithChar ('<')) + { + juceFolderPath = FileHelpers::unixStylePath (File::addTrailingSeparator (juceFolderPath.substring (1).dropLastCharacters(1))); + if (juceFolderPath == "/") + juceFolderPath = String::empty; + + return "<" + juceFolderPath + pathFromJuceFolder + ">"; + } + else + { + const RelativePath juceFromProject (juceFolderPath, RelativePath::projectFolder); + const RelativePath fileFromProject (juceFromProject.getChildFile (pathFromJuceFolder)); + const RelativePath fileFromHere (fileFromProject.rebased (project.getFile().getParentDirectory(), + targetIncludeFile.getParentDirectory(), RelativePath::unknown)); + return fileFromHere.toUnixStyle().quoted(); + } +} + +RelativePath ProjectExporter::getJucePathFromProjectFolder() const +{ + return RelativePath (getJuceFolder().toString(), RelativePath::projectFolder); +} + +RelativePath ProjectExporter::getJucePathFromTargetFolder() const +{ + return rebaseFromProjectFolderToBuildTarget (getJucePathFromProjectFolder()); +} + +RelativePath ProjectExporter::rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const +{ + return path.rebased (project.getFile().getParentDirectory(), getTargetFolder(), RelativePath::buildTargetFolder); +} + +bool ProjectExporter::shouldFileBeCompiledByDefault (const RelativePath& file) const +{ + return file.hasFileExtension ("cpp;cc;c;cxx"); +} + +void ProjectExporter::createPropertyEditors (PropertyListBuilder& props) +{ + props.add (new TextPropertyComponent (getTargetLocation(), "Target Project Folder", 1024, false), + "The location of the folder in which the " + name + " project will be created. This path can be absolute, but it's much more sensible to make it relative to the jucer project directory."); + + props.add (new TextPropertyComponent (getJuceFolder(), "Local JUCE folder", 1024, false), + "The location of the Juce library folder that the " + name + " project will use to when compiling. This can be an absolute path, or relative to the jucer project folder, but it must be valid on the filesystem of the machine you use to actually do the compiling."); + + OwnedArray modules; + ModuleList moduleList; + moduleList.rescan (ModuleList::getDefaultModulesFolder (&project)); + project.createRequiredModules (moduleList, modules); + for (int i = 0; i < modules.size(); ++i) + modules.getUnchecked(i)->createPropertyEditors (*this, props); + + props.add (new TextPropertyComponent (getExporterPreprocessorDefs(), "Extra Preprocessor Definitions", 32768, false), + "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); + + props.add (new TextPropertyComponent (getExtraCompilerFlags(), "Extra compiler flags", 2048, false), + "Extra command-line flags to be passed to the compiler. This string can contain references to preprocessor definitions in the form ${NAME_OF_DEFINITION}, which will be replaced with their values."); + props.add (new TextPropertyComponent (getExtraLinkerFlags(), "Extra linker flags", 2048, false), + "Extra command-line flags to be passed to the linker. You might want to use this for adding additional libraries. This string can contain references to preprocessor definitions in the form ${NAME_OF_VALUE}, which will be replaced with their values."); + + { + OwnedArray images; + project.findAllImageItems (images); + + StringArray choices; + Array ids; + + choices.add (""); + ids.add (var::null); + choices.add (String::empty); + ids.add (var::null); + + for (int i = 0; i < images.size(); ++i) + { + choices.add (images.getUnchecked(i)->getName().toString()); + ids.add (images.getUnchecked(i)->getID()); + } + + props.add (new ChoicePropertyComponent (getSmallIconImageItemID(), "Icon (small)", choices, ids), + "Sets an icon to use for the executable."); + + props.add (new ChoicePropertyComponent (getBigIconImageItemID(), "Icon (large)", choices, ids), + "Sets an icon to use for the executable."); + } +} + +StringPairArray ProjectExporter::getAllPreprocessorDefs (const ProjectExporter::BuildConfiguration& config) const +{ + StringPairArray defs (mergePreprocessorDefs (config.getAllPreprocessorDefs(), + parsePreprocessorDefs (getExporterPreprocessorDefs().toString()))); + defs.set (getExporterIdentifierMacro(), "1"); + return defs; +} + +StringPairArray ProjectExporter::getAllPreprocessorDefs() const +{ + StringPairArray defs (mergePreprocessorDefs (project.getPreprocessorDefs(), + parsePreprocessorDefs (getExporterPreprocessorDefs().toString()))); + defs.set (getExporterIdentifierMacro(), "1"); + return defs; +} + +String ProjectExporter::replacePreprocessorTokens (const ProjectExporter::BuildConfiguration& config, const String& sourceString) const +{ + return replacePreprocessorDefs (getAllPreprocessorDefs (config), sourceString); +} + +Project::Item& ProjectExporter::getModulesGroup() +{ + if (modulesGroup == nullptr) + { + groups.add (Project::Item::createGroup (project, "Juce Modules", "__modulesgroup__")); + modulesGroup = &(groups.getReference (groups.size() - 1)); + } + + return *modulesGroup; +} + +void ProjectExporter::addToExtraSearchPaths (const RelativePath& pathFromProjectFolder) +{ + RelativePath localPath (rebaseFromProjectFolderToBuildTarget (pathFromProjectFolder)); + + const String path (isVisualStudio() ? localPath.toWindowsStyle() : localPath.toUnixStyle()); + extraSearchPaths.addIfNotAlreadyThere (path, false); +} + + +//============================================================================== +const Identifier ProjectExporter::configurations ("CONFIGURATIONS"); +const Identifier ProjectExporter::configuration ("CONFIGURATION"); + +ValueTree ProjectExporter::getConfigurations() const +{ + return settings.getChildWithName (configurations); +} + +int ProjectExporter::getNumConfigurations() const +{ + return getConfigurations().getNumChildren(); +} + +ProjectExporter::BuildConfiguration::Ptr ProjectExporter::getConfiguration (int index) const +{ + return createBuildConfig (getConfigurations().getChild (index)); +} + +bool ProjectExporter::hasConfigurationNamed (const String& name) const +{ + const ValueTree configs (getConfigurations()); + for (int i = configs.getNumChildren(); --i >= 0;) + if (configs.getChild(i) [Ids::name].toString() == name) + return true; + + return false; +} + +String ProjectExporter::getUniqueConfigName (String name) const +{ + String nameRoot (name); + while (CharacterFunctions::isDigit (nameRoot.getLastCharacter())) + nameRoot = nameRoot.dropLastCharacters (1); + + nameRoot = nameRoot.trim(); + + int suffix = 2; + while (hasConfigurationNamed (name)) + name = nameRoot + " " + String (suffix++); + + return name; +} + +void ProjectExporter::addNewConfiguration (const BuildConfiguration* configToCopy) +{ + const String configName (getUniqueConfigName (configToCopy != nullptr ? configToCopy->config [Ids::name].toString() + : "New Build Configuration")); + + ValueTree configs (getConfigurations()); + + if (! configs.isValid()) + { + settings.addChild (ValueTree (configurations), 0, project.getUndoManagerFor (settings)); + configs = getConfigurations(); + } + + ValueTree newConfig (configuration); + if (configToCopy != nullptr) + newConfig = configToCopy->config.createCopy(); + + newConfig.setProperty (Ids::name, configName, 0); + + configs.addChild (newConfig, -1, project.getUndoManagerFor (configs)); +} + +void ProjectExporter::deleteConfiguration (int index) +{ + ValueTree configs (getConfigurations()); + configs.removeChild (index, project.getUndoManagerFor (configs)); +} + +void ProjectExporter::createDefaultConfigs() +{ + settings.getOrCreateChildWithName (configurations, nullptr); + + for (int i = 0; i < 2; ++i) + { + addNewConfiguration (nullptr); + BuildConfiguration::Ptr config (getConfiguration (i)); + + const bool debugConfig = i == 0; + + config->getName() = debugConfig ? "Debug" : "Release"; + config->isDebug() = debugConfig; + config->getOptimisationLevel() = debugConfig ? 1 : 2; + config->getTargetBinaryName() = project.getProjectFilenameRoot(); + } +} + +Image ProjectExporter::getBigIcon() +{ + return project.getMainGroup().findItemWithID (getBigIconImageItemID().toString()).loadAsImageFile(); +} + +Image ProjectExporter::getSmallIcon() +{ + return project.getMainGroup().findItemWithID (getSmallIconImageItemID().toString()).loadAsImageFile(); +} + +Image ProjectExporter::getBestIconForSize (int size, bool returnNullIfNothingBigEnough) +{ + Image im; + + const Image im1 (getSmallIcon()); + const Image im2 (getBigIcon()); + + if (im1.isValid() && im2.isValid()) + { + if (im1.getWidth() >= size && im2.getWidth() >= size) + im = im1.getWidth() < im2.getWidth() ? im1 : im2; + else if (im1.getWidth() >= size) + im = im1; + else if (im2.getWidth() >= size) + im = im2; + else + return Image::null; + } + else + { + im = im1.isValid() ? im1 : im2; + } + + if (size == im.getWidth() && size == im.getHeight()) + return im; + + if (returnNullIfNothingBigEnough && im.getWidth() < size && im.getHeight() < size) + return Image::null; + + Image newIm (Image::ARGB, size, size, true, SoftwareImageType()); + Graphics g (newIm); + g.drawImageWithin (im, 0, 0, size, size, + RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, false); + return newIm; +} + +//============================================================================== +ProjectExporter::ConfigIterator::ConfigIterator (ProjectExporter& exporter_) + : index (-1), exporter (exporter_) +{ +} + +bool ProjectExporter::ConfigIterator::next() +{ + if (++index >= exporter.getNumConfigurations()) + return false; + + config = exporter.getConfiguration (index); + return true; +} + +//============================================================================== +ProjectExporter::BuildConfiguration::BuildConfiguration (Project& project_, const ValueTree& configNode) + : config (configNode), project (project_) +{ +} + +ProjectExporter::BuildConfiguration::~BuildConfiguration() +{ +} + +String ProjectExporter::BuildConfiguration::getGCCOptimisationFlag() const +{ + const int level = (int) getOptimisationLevel().getValue(); + return String (level <= 1 ? "0" : (level == 2 ? "s" : "3")); +} + +void ProjectExporter::BuildConfiguration::createBasicPropertyEditors (PropertyListBuilder& props) +{ + props.add (new TextPropertyComponent (getName(), "Name", 96, false), + "The name of this configuration."); + + props.add (new BooleanPropertyComponent (isDebug(), "Debug mode", "Debugging enabled"), + "If enabled, this means that the configuration should be built with debug synbols."); + + const char* optimisationLevels[] = { "No optimisation", "Optimise for size and speed", "Optimise for maximum speed", 0 }; + const int optimisationLevelValues[] = { 1, 2, 3, 0 }; + props.add (new ChoicePropertyComponent (getOptimisationLevel(), "Optimisation", StringArray (optimisationLevels), Array (optimisationLevelValues)), + "The optimisation level for this configuration"); + + props.add (new TextPropertyComponent (getTargetBinaryName(), "Binary name", 256, false), + "The filename to use for the destination binary executable file. Don't add a suffix to this, because platform-specific suffixes will be added for each target platform."); + + props.add (new TextPropertyComponent (getTargetBinaryRelativePath(), "Binary location", 1024, false), + "The folder in which the finished binary should be placed. Leave this blank to cause the binary to be placed in its default location in the build folder."); + + props.add (new TextPropertyComponent (getHeaderSearchPath(), "Header search paths", 16384, false), + "Extra header search paths. Use semi-colons to separate multiple paths."); + + props.add (new TextPropertyComponent (getLibrarySearchPath(), "Extra library search paths", 16384, false), + "Extra library search paths. Use semi-colons to separate multiple paths."); + + props.add (new TextPropertyComponent (getBuildConfigPreprocessorDefs(), "Preprocessor definitions", 32768, false), + "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); + + props.setPreferredHeight (22); +} + +StringPairArray ProjectExporter::BuildConfiguration::getAllPreprocessorDefs() const +{ + return mergePreprocessorDefs (project.getPreprocessorDefs(), + parsePreprocessorDefs (getBuildConfigPreprocessorDefs().toString())); +} + +StringArray ProjectExporter::BuildConfiguration::getHeaderSearchPaths() const +{ + StringArray s; + s.addTokens (getHeaderSearchPath().toString(), ";", String::empty); + s.trim(); + s.removeEmptyStrings(); + s.removeDuplicates (false); + return s; +} + +StringArray ProjectExporter::BuildConfiguration::getLibrarySearchPaths() const +{ + StringArray s; + s.addTokens (getLibrarySearchPath().toString(), ";", String::empty); + s.trim(); + s.removeEmptyStrings(); + s.removeDuplicates (false); + return s; +} + +String ProjectExporter::BuildConfiguration::getGCCLibraryPathFlags() const +{ + String s; + const StringArray libraryPaths (getLibrarySearchPaths()); + + for (int i = 0; i < libraryPaths.size(); ++i) + s << " -L" << addQuotesIfContainsSpaces (libraryPaths[i]); + + return s; +} diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h new file mode 100644 index 0000000000..6f87456828 --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h @@ -0,0 +1,291 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_PROJECTEXPORTER_JUCEHEADER__ +#define __JUCER_PROJECTEXPORTER_JUCEHEADER__ + +#include "../jucer_Headers.h" +#include "../Project/jucer_Project.h" +#include "../Project/jucer_ProjectType.h" + + +//============================================================================== +class ProjectExporter +{ +public: + ProjectExporter (Project&, const ValueTree& settings); + virtual ~ProjectExporter(); + + static int getNumExporters(); + static StringArray getExporterNames(); + + static ProjectExporter* createNewExporter (Project&, const int index); + static ProjectExporter* createNewExporter (Project&, const String& name); + static ProjectExporter* createExporter (Project&, const ValueTree& settings); + static ProjectExporter* createPlatformDefaultExporter (Project&); + + static StringArray getDefaultExporters(); + + //============================================================================= + // return 0 if this can't be opened in the current OS, or a higher value, where higher numbers are more preferable. + virtual int getLaunchPreferenceOrderForCurrentOS() = 0; + virtual bool isPossibleForCurrentProject() = 0; + virtual bool usesMMFiles() const = 0; + virtual void createPropertyEditors (PropertyListBuilder&); + virtual void launchProject() = 0; + virtual void create() = 0; // may throw a SaveError + virtual bool shouldFileBeCompiledByDefault (const RelativePath& path) const; + virtual bool canCopeWithDuplicateFiles() = 0; + + virtual bool isXcode() const { return false; } + virtual bool isVisualStudio() const { return false; } + virtual bool isLinux() const { return false; } + virtual bool isOSX() const { return false; } + + //============================================================================== + String getName() const { return name; } + File getTargetFolder() const; + + Project& getProject() noexcept { return project; } + const Project& getProject() const noexcept { return project; } + + const ValueTree& getSettings() const { return settings; } + Value getSetting (const Identifier& name_) const { return settings.getPropertyAsValue (name_, project.getUndoManagerFor (settings)); } + + Value getJuceFolder() const { return getSetting (Ids::juceFolder); } + Value getTargetLocation() const { return getSetting (Ids::targetFolder); } + + Value getExtraCompilerFlags() const { return getSetting (Ids::extraCompilerFlags); } + Value getExtraLinkerFlags() const { return getSetting (Ids::extraLinkerFlags); } + + // This adds the quotes, and may return angle-brackets, eg: or normal quotes. + String getIncludePathForFileInJuceFolder (const String& pathFromJuceFolder, const File& targetIncludeFile) const; + + RelativePath rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const; + void addToExtraSearchPaths (const RelativePath& pathFromProjectFolder); + + Value getBigIconImageItemID() const { return getSetting (Ids::bigIcon); } + Value getSmallIconImageItemID() const { return getSetting (Ids::smallIcon); } + Image getBigIcon(); + Image getSmallIcon(); + Image getBestIconForSize (int size, bool returnNullIfNothingBigEnough); + + String getExporterIdentifierMacro() const + { + return "JUCER_" + settings.getType().toString() + "_" + + String::toHexString (settings [Ids::targetFolder].toString().hashCode()).toUpperCase(); + } + + // An exception that can be thrown by the create() method. + class SaveError + { + public: + SaveError (const String& error) : message (error) + {} + + SaveError (const File& fileThatFailedToWrite) + : message ("Can't write to the file: " + fileThatFailedToWrite.getFullPathName()) + {} + + String message; + }; + + RelativePath getJucePathFromTargetFolder() const; + RelativePath getJucePathFromProjectFolder() const; + + //============================================================================== + Array groups; + Project::Item& getModulesGroup(); + + //============================================================================== + String xcodePackageType, xcodeBundleSignature, xcodeBundleExtension; + String xcodeProductType, xcodeProductInstallPath, xcodeFileType; + String xcodeShellScript, xcodeShellScriptTitle, xcodeOtherRezFlags; + bool xcodeIsBundle, xcodeCreatePList, xcodeCanUseDwarf; + StringArray xcodeFrameworks; + Array xcodeExtraLibrariesDebug, xcodeExtraLibrariesRelease; + Array xcodeExtraPListEntries; + + //============================================================================== + String makefileTargetSuffix; + bool makefileIsDLL; + + //============================================================================== + String msvcTargetSuffix; + StringPairArray msvcExtraPreprocessorDefs; + bool msvcIsDLL, msvcIsWindowsSubsystem, msvcNeedsDLLRuntimeLib; + String msvcDelayLoadedDLLs; + + //============================================================================== + StringArray extraSearchPaths; + + //============================================================================== + class BuildConfiguration : public ReferenceCountedObject + { + public: + BuildConfiguration (Project& project, const ValueTree& configNode); + ~BuildConfiguration(); + + typedef ReferenceCountedObjectPtr Ptr; + + //============================================================================== + virtual void createPropertyEditors (PropertyListBuilder&) = 0; + + //============================================================================== + Value getName() const { return getValue (Ids::name); } + Value isDebug() const { return getValue (Ids::isDebug); } + Value getTargetBinaryName() const { return getValue (Ids::targetName); } + // the path relative to the build folder in which the binary should go + Value getTargetBinaryRelativePath() const { return getValue (Ids::binaryPath); } + Value getOptimisationLevel() const { return getValue (Ids::optimisation); } + String getGCCOptimisationFlag() const; + Value getBuildConfigPreprocessorDefs() const { return getValue (Ids::defines); } + StringPairArray getAllPreprocessorDefs() const; // includes inherited definitions + Value getHeaderSearchPath() const { return getValue (Ids::headerPath); } + StringArray getHeaderSearchPaths() const; + Value getLibrarySearchPath() const { return getValue (Ids::libraryPath); } + StringArray getLibrarySearchPaths() const; + String getGCCLibraryPathFlags() const; + + //============================================================================== + ValueTree config; + + //============================================================================== + String msvcExtraLinkerOptions, msvcModuleDefinitionFile; + String msvcPreBuildCommand, msvcPostBuildCommand; + + protected: + Project& project; + + Value getValue (const Identifier& name) const { return config.getPropertyAsValue (name, getUndoManager()); } + UndoManager* getUndoManager() const { return project.getUndoManagerFor (config); } + + void createBasicPropertyEditors (PropertyListBuilder&); + + private: + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BuildConfiguration); + }; + + void addNewConfiguration (const BuildConfiguration* configToCopy); + void deleteConfiguration (int index); + bool hasConfigurationNamed (const String& name) const; + String getUniqueConfigName (String name) const; + + //============================================================================== + struct ConfigIterator + { + ConfigIterator (ProjectExporter& exporter); + + bool next(); + + BuildConfiguration& operator*() const { return *config; } + BuildConfiguration* operator->() const { return config; } + + BuildConfiguration::Ptr config; + int index; + + private: + ProjectExporter& exporter; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ConfigIterator); + }; + + int getNumConfigurations() const; + BuildConfiguration::Ptr getConfiguration (int index) const; + + ValueTree getConfigurations() const; + void createDefaultConfigs(); + + static const Identifier configurations, configuration; + + //============================================================================== + Value getExporterPreprocessorDefs() const { return getSetting (Ids::extraDefs); } + + // includes exporter, project + config defs + StringPairArray getAllPreprocessorDefs (const BuildConfiguration& config) const; + // includes exporter + project defs.. + StringPairArray getAllPreprocessorDefs() const; + + String replacePreprocessorTokens (const BuildConfiguration&, const String& sourceString) const; + + ValueTree settings; + +protected: + //============================================================================== + String name; + Project& project; + const ProjectType& projectType; + const String projectName; + const File projectFolder; + Project::Item* modulesGroup; + + virtual BuildConfiguration::Ptr createBuildConfig (const ValueTree&) const = 0; + + static String getDefaultBuildsRootFolder() { return "Builds/"; } + + static String getLibbedFilename (String name) + { + if (! name.startsWith ("lib")) + name = "lib" + name; + if (! name.endsWithIgnoreCase (".a")) + name = name + ".a"; + return name; + } + + //============================================================================== + static void overwriteFileIfDifferentOrThrow (const File& file, const MemoryOutputStream& newData) + { + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (file, newData)) + throw SaveError (file); + } + + static void createDirectoryOrThrow (const File& dirToCreate) + { + if (! dirToCreate.createDirectory()) + throw SaveError ("Can't create folder: " + dirToCreate.getFullPathName()); + } + + static void writeXmlOrThrow (const XmlElement& xml, const File& file, const String& encoding, int maxCharsPerLine, bool useUnixNewLines = false) + { + MemoryOutputStream mo; + xml.writeToStream (mo, String::empty, false, true, encoding, maxCharsPerLine); + + if (useUnixNewLines) + { + MemoryOutputStream mo2; + mo2 << mo.toString().replace ("\r\n", "\n"); + overwriteFileIfDifferentOrThrow (file, mo2); + } + else + { + overwriteFileIfDifferentOrThrow (file, mo); + } + } + +private: + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectExporter); +}; + + +#endif // __JUCER_PROJECTEXPORTER_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h new file mode 100644 index 0000000000..ac7589fbd0 --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h @@ -0,0 +1,453 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_PROJECTSAVER_JUCEHEADER__ +#define __JUCER_PROJECTSAVER_JUCEHEADER__ + +#include "jucer_ResourceFile.h" +#include "../Project/jucer_Module.h" +#include "jucer_ProjectExporter.h" + + +//============================================================================== +class ProjectSaver +{ +public: + ProjectSaver (Project& project_, const File& projectFile_) + : project (project_), + projectFile (projectFile_), + generatedCodeFolder (project.getGeneratedCodeFolder()), + generatedFilesGroup (Project::Item::createGroup (project, getJuceCodeGroupName(), "__generatedcode__")) + { + generatedFilesGroup.setID (getGeneratedGroupID()); + + if (generatedCodeFolder.exists()) + deleteNonHiddenFilesIn (generatedCodeFolder); + } + + Project& getProject() noexcept { return project; } + + String save() + { + jassert (generatedFilesGroup.getNumChildren() == 0); // this method can't be called more than once! + + const File oldFile (project.getFile()); + project.setFile (projectFile); + + writeMainProjectFile(); + + OwnedArray modules; + + { + ModuleList moduleList; + moduleList.rescan (ModuleList::getDefaultModulesFolder (&project)); + project.createRequiredModules (moduleList, modules); + } + + if (errors.size() == 0) + writeAppConfigFile (modules); + + if (errors.size() == 0) + writeBinaryDataFiles(); + + if (errors.size() == 0) + writeAppHeader (modules); + + if (errors.size() == 0) + writeProjects (modules); + + if (errors.size() == 0) + writeAppConfigFile (modules); // (this is repeated in case the projects added anything to it) + + if (generatedCodeFolder.exists() && errors.size() == 0) + writeReadmeFile(); + + if (errors.size() > 0) + project.setFile (oldFile); + + return errors[0]; + } + + Project::Item saveGeneratedFile (const String& filePath, const MemoryOutputStream& newData) + { + if (! generatedCodeFolder.createDirectory()) + { + errors.add ("Couldn't create folder: " + generatedCodeFolder.getFullPathName()); + return Project::Item (project, ValueTree::invalid); + } + + const File file (generatedCodeFolder.getChildFile (filePath)); + + if (replaceFileIfDifferent (file, newData)) + return addFileToGeneratedGroup (file); + + return Project::Item (project, ValueTree::invalid); + } + + Project::Item addFileToGeneratedGroup (const File& file) + { + Project::Item item (generatedFilesGroup.findItemForFile (file)); + + if (item.isValid()) + return item; + + generatedFilesGroup.addFile (file, -1, true); + return generatedFilesGroup.findItemForFile (file); + } + + void setExtraAppConfigFileContent (const String& content) + { + extraAppConfigContent = content; + } + + static void writeAutoGenWarningComment (OutputStream& out) + { + out << "/*" << newLine << newLine + << " IMPORTANT! This file is auto-generated each time you save your" << newLine + << " project - if you alter its contents, your changes may be overwritten!" << newLine + << newLine; + } + + static const char* getGeneratedGroupID() noexcept { return "__jucelibfiles"; } + Project::Item& getGeneratedCodeGroup() { return generatedFilesGroup; } + + static String getJuceCodeGroupName() { return "Juce Library Code"; } + + File getGeneratedCodeFolder() const { return generatedCodeFolder; } + + bool replaceFileIfDifferent (const File& f, const MemoryOutputStream& newData) + { + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (f, newData)) + { + errors.add ("Can't write to file: " + f.getFullPathName()); + return false; + } + + return true; + } + +private: + Project& project; + const File projectFile, generatedCodeFolder; + Project::Item generatedFilesGroup; + String extraAppConfigContent; + StringArray errors; + + File appConfigFile, binaryDataCpp; + + // Recursively clears out a folder's contents, but leaves behind any folders + // containing hidden files used by version-control systems. + static bool deleteNonHiddenFilesIn (const File& parent) + { + bool folderIsNowEmpty = true; + DirectoryIterator i (parent, false, "*", File::findFilesAndDirectories); + Array filesToDelete; + + bool isFolder; + while (i.next (&isFolder, nullptr, nullptr, nullptr, nullptr, nullptr)) + { + const File f (i.getFile()); + + if (shouldFileBeKept (f.getFileName())) + { + folderIsNowEmpty = false; + } + else if (isFolder) + { + if (deleteNonHiddenFilesIn (f)) + filesToDelete.add (f); + else + folderIsNowEmpty = false; + } + else + { + filesToDelete.add (f); + } + } + + for (int j = filesToDelete.size(); --j >= 0;) + filesToDelete.getReference(j).deleteRecursively(); + + return folderIsNowEmpty; + } + + static bool shouldFileBeKept (const String& filename) + { + const char* filesToKeep[] = { ".svn", ".cvs", "CMakeLists.txt" }; + + for (int i = 0; i < numElementsInArray (filesToKeep); ++i) + if (filename == filesToKeep[i]) + return true; + + return false; + } + + void writeMainProjectFile() + { + ScopedPointer xml (project.getProjectRoot().createXml()); + jassert (xml != nullptr); + + if (xml != nullptr) + { + MemoryOutputStream mo; + xml->writeToStream (mo, String::empty); + replaceFileIfDifferent (projectFile, mo); + } + } + + static int findLongestModuleName (const OwnedArray& modules) + { + int longest = 0; + + for (int i = modules.size(); --i >= 0;) + longest = jmax (longest, modules.getUnchecked(i)->getID().length()); + + return longest; + } + + void writeAppConfig (OutputStream& out, const OwnedArray& modules) + { + writeAutoGenWarningComment (out); + out << " If you want to change any of these values, use the Introjucer to do so," << newLine + << " rather than editing this file directly!" << newLine + << newLine + << " Any commented-out settings will assume their default values." << newLine + << newLine + << "*/" << newLine + << newLine; + + const String headerGuard ("__JUCE_APPCONFIG_" + project.getProjectUID().toUpperCase() + "__"); + out << "#ifndef " << headerGuard << newLine + << "#define " << headerGuard << newLine + << newLine + << "//==============================================================================" << newLine; + + const int longestName = findLongestModuleName (modules); + + for (int k = 0; k < modules.size(); ++k) + { + LibraryModule* const m = modules.getUnchecked(k); + out << "#define JUCE_MODULE_AVAILABLE_" << m->getID() + << String::repeatedString (" ", longestName + 5 - m->getID().length()) << " 1" << newLine; + } + + out << newLine; + + for (int j = 0; j < modules.size(); ++j) + { + LibraryModule* const m = modules.getUnchecked(j); + OwnedArray flags; + m->getConfigFlags (project, flags); + + if (flags.size() > 0) + { + out << "//==============================================================================" << newLine + << "// " << m->getID() << " flags:" << newLine + << newLine; + + for (int i = 0; i < flags.size(); ++i) + { + flags.getUnchecked(i)->value.referTo (project.getConfigFlag (flags.getUnchecked(i)->symbol)); + + const Project::ConfigFlag* const f = flags[i]; + const String value (project.getConfigFlag (f->symbol).toString()); + + out << "#ifndef " << f->symbol << newLine; + + if (value == Project::configFlagEnabled) + out << " #define " << f->symbol << " 1"; + else if (value == Project::configFlagDisabled) + out << " #define " << f->symbol << " 0"; + else + out << " //#define " << f->symbol; + + out << newLine + << "#endif" << newLine + << newLine; + } + } + } + + if (extraAppConfigContent.isNotEmpty()) + out << newLine << extraAppConfigContent.trimEnd() << newLine; + + out << newLine + << "#endif // " << headerGuard << newLine; + } + + void writeAppConfigFile (const OwnedArray& modules) + { + appConfigFile = generatedCodeFolder.getChildFile (project.getAppConfigFilename()); + + MemoryOutputStream mem; + writeAppConfig (mem, modules); + saveGeneratedFile (project.getAppConfigFilename(), mem); + } + + void writeAppHeader (OutputStream& out, const OwnedArray& modules) + { + writeAutoGenWarningComment (out); + + out << " This is the header file that your files should include in order to get all the" << newLine + << " JUCE library headers. You should avoid including the JUCE headers directly in" << newLine + << " your own source files, because that wouldn't pick up the correct configuration" << newLine + << " options for your app." << newLine + << newLine + << "*/" << newLine << newLine; + + String headerGuard ("__APPHEADERFILE_" + project.getProjectUID().toUpperCase() + "__"); + out << "#ifndef " << headerGuard << newLine + << "#define " << headerGuard << newLine << newLine; + + if (appConfigFile.exists()) + out << CodeHelpers::createIncludeStatement (project.getAppConfigFilename()) << newLine; + + for (int i = 0; i < modules.size(); ++i) + modules.getUnchecked(i)->writeIncludes (*this, out); + + if (binaryDataCpp.exists()) + out << CodeHelpers::createIncludeStatement (binaryDataCpp.withFileExtension (".h"), appConfigFile) << newLine; + + out << newLine + << "#if ! DONT_SET_USING_JUCE_NAMESPACE" << newLine + << " // If your code uses a lot of JUCE classes, then this will obviously save you" << newLine + << " // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE." << newLine + << " using namespace juce;" << newLine + << "#endif" << newLine + << newLine + << "namespace ProjectInfo" << newLine + << "{" << newLine + << " const char* const projectName = " << CodeHelpers::addEscapeChars (project.getProjectName().toString()).quoted() << ";" << newLine + << " const char* const versionString = " << CodeHelpers::addEscapeChars (project.getVersion().toString()).quoted() << ";" << newLine + << " const int versionNumber = " << project.getVersionAsHex() << ";" << newLine + << "}" << newLine + << newLine + << "#endif // " << headerGuard << newLine; + } + + void writeAppHeader (const OwnedArray& modules) + { + MemoryOutputStream mem; + writeAppHeader (mem, modules); + saveGeneratedFile (project.getJuceSourceHFilename(), mem); + } + + void writeBinaryDataFiles() + { + binaryDataCpp = generatedCodeFolder.getChildFile ("BinaryData.cpp"); + + ResourceFile resourceFile (project); + + if (resourceFile.getNumFiles() > 0) + { + resourceFile.setClassName ("BinaryData"); + + if (resourceFile.write (binaryDataCpp)) + { + generatedFilesGroup.addFile (binaryDataCpp, -1, true); + generatedFilesGroup.addFile (binaryDataCpp.withFileExtension (".h"), -1, false); + } + else + { + errors.add ("Can't create binary resources file: " + binaryDataCpp.getFullPathName()); + } + } + else + { + binaryDataCpp.deleteFile(); + binaryDataCpp.withFileExtension ("h").deleteFile(); + } + } + + void writeReadmeFile() + { + MemoryOutputStream out; + out << newLine + << " Important Note!!" << newLine + << " ================" << newLine + << newLine + << "The purpose of this folder is to contain files that are auto-generated by the Introjucer," << newLine + << "and ALL files in this folder will be mercilessly DELETED and completely re-written whenever" << newLine + << "the Introjucer saves your project." << newLine + << newLine + << "Therefore, it's a bad idea to make any manual changes to the files in here, or to" << newLine + << "put any of your own files in here if you don't want to lose them. (Of course you may choose" << newLine + << "to add the folder's contents to your version-control system so that you can re-merge your own" << newLine + << "modifications after the Introjucer has saved its changes)." << newLine; + + replaceFileIfDifferent (generatedCodeFolder.getChildFile ("ReadMe.txt"), out); + } + + static void sortGroupRecursively (Project::Item group) + { + group.sortAlphabetically (true); + + for (int i = group.getNumChildren(); --i >= 0;) + sortGroupRecursively (group.getChild(i)); + } + + void writeProjects (const OwnedArray& modules) + { + // keep a copy of the basic generated files group, as each exporter may modify it. + const ValueTree originalGeneratedGroup (generatedFilesGroup.state.createCopy()); + + for (Project::ExporterIterator exporter (project); exporter.next();) + { + std::cout << "Writing files for: " << exporter->getName() << std::endl; + + if (exporter->getTargetFolder().createDirectory()) + { + exporter->addToExtraSearchPaths (RelativePath ("JuceLibraryCode", RelativePath::projectFolder)); + + generatedFilesGroup.state = originalGeneratedGroup.createCopy(); + project.getProjectType().prepareExporter (*exporter); + + for (int j = 0; j < modules.size(); ++j) + modules.getUnchecked(j)->prepareExporter (*exporter, *this); + + sortGroupRecursively (generatedFilesGroup); + exporter->groups.add (generatedFilesGroup); + + try + { + exporter->create(); + } + catch (ProjectExporter::SaveError& error) + { + errors.add (error.message); + } + } + else + { + errors.add ("Can't create folder: " + exporter->getTargetFolder().getFullPathName()); + } + } + } + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectSaver); +}; + + +#endif // __JUCER_PROJECTSAVER_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp new file mode 100644 index 0000000000..7a85623d0f --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp @@ -0,0 +1,239 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#include "jucer_ResourceFile.h" +#include "../Project/jucer_ProjectTreeViewBase.h" +#include "../Application/jucer_OpenDocumentManager.h" + +static const char* resourceFileIdentifierString = "JUCER_BINARY_RESOURCE"; + + +//============================================================================== +ResourceFile::ResourceFile (Project& project_) + : project (project_), + className ("BinaryData") +{ + addResourcesFromProjectItem (project.getMainGroup()); +} + +ResourceFile::~ResourceFile() +{ +} + +bool ResourceFile::isResourceFile (const File& file) +{ + if (file.hasFileExtension ("cpp;cc;h")) + { + ScopedPointer in (file.createInputStream()); + + if (in != nullptr) + { + MemoryBlock mb; + in->readIntoMemoryBlock (mb, 256); + return mb.toString().contains (resourceFileIdentifierString); + } + } + + return false; +} + +//============================================================================== +void ResourceFile::addResourcesFromProjectItem (const Project::Item& projectItem) +{ + if (projectItem.isGroup()) + { + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addResourcesFromProjectItem (projectItem.getChild(i)); + } + else + { + if (projectItem.shouldBeAddedToBinaryResources()) + addFile (projectItem.getFile(), projectItem.getImageFileID()); + } +} + +//============================================================================== +void ResourceFile::setClassName (const String& className_) +{ + className = className_; +} + +void ResourceFile::addFile (const File& file, const String& imageProviderId) +{ + files.add (file); + + const String variableNameRoot (CodeHelpers::makeBinaryDataIdentifierName (file)); + String variableName (variableNameRoot); + + int suffix = 2; + while (variableNames.contains (variableName)) + variableName = variableNameRoot + String (suffix++); + + if (imageProviderId.isNotEmpty()) + variableName << "|" << imageProviderId; + + variableNames.add (variableName); +} + +String ResourceFile::getDataVariableFor (const File& file) const +{ + jassert (files.indexOf (file) >= 0); + return variableNames [files.indexOf (file)]; +} + +String ResourceFile::getSizeVariableFor (const File& file) const +{ + jassert (files.indexOf (file) >= 0); + return variableNames [files.indexOf (file)] + "Size"; +} + +int64 ResourceFile::getTotalDataSize() const +{ + int64 total = 0; + + for (int i = 0; i < files.size(); ++i) + total += files.getReference(i).getSize(); + + return total; +} + +bool ResourceFile::write (const File& cppFile, OutputStream& cpp, OutputStream& header) +{ + String comment; + comment << newLine << newLine + << " This is an auto-generated file, created by " << JUCEApplication::getInstance()->getApplicationName() << newLine + << " Do not edit anything in this file!" << newLine << newLine + << "*/" << newLine << newLine; + + header << "/* =========================================================================================" + << comment; + + cpp << "/* ==================================== " << resourceFileIdentifierString << " ====================================" + << comment; + + const String namespaceName (className); + + cpp << "namespace " << namespaceName << newLine << "{" << newLine; + header << "namespace " << namespaceName << newLine << "{" << newLine; + + StringArray returnCodes; + + for (int i = 0; i < files.size(); ++i) + { + const File& file = files.getReference(i); + const int64 dataSize = file.getSize(); + + const String variableName (variableNames[i].upToFirstOccurrenceOf ("|", false, false)); + + returnCodes.add ("numBytes = " + String (dataSize) + "; return " + variableName + ";"); + + ScopedPointer fileStream (file.createInputStream()); + jassert (fileStream != nullptr); + + if (fileStream != nullptr) + { + const String tempVariable ("temp_" + String::toHexString (file.hashCode())); + + header << " extern const char* " << variableName << ";" << newLine; + header << " const int " << variableName << "Size = " << (int) dataSize << ";" << newLine << newLine; + + cpp << newLine << "//================== " << file.getFileName() << " ==================" << newLine + << "static const unsigned char " << tempVariable << "[] =" << newLine; + + { + MemoryBlock data; + fileStream->readIntoMemoryBlock (data); + CodeHelpers::writeDataAsCppLiteral (data, cpp, true, true); + } + + cpp << newLine << newLine + << "const char* " << variableName << " = (const char*) " << tempVariable << ";" << newLine; + } + } + + cpp << newLine + << newLine + << "const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw()" << newLine + << "{" << newLine; + + CodeHelpers::createStringMatcher (cpp, "resourceNameUTF8", variableNames, returnCodes, 4); + + cpp << " numBytes = 0;" << newLine + << " return 0;" << newLine + << "}" << newLine + << newLine + << "}" << newLine; + + header << " // If you provide the name of one of the binary resource variables above, this function will" << newLine + << " // return the corresponding data and its size (or a null pointer if the name isn't found)." << newLine + << " const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw();" << newLine + << newLine + << " //==============================================================================" << newLine + << " // This class acts as an ImageProvider that will access the BinaryData images" << newLine + << " class ImageProvider : public juce::ComponentBuilder::ImageProvider" << newLine + << " {" << newLine + << " public:" << newLine + << " ImageProvider() noexcept {}" << newLine + << newLine + << " juce::Image getImageForIdentifier (const juce::var& imageIdentifier)" << newLine + << " {" << newLine + << " int dataSize = 0;" << newLine + << " const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize);" << newLine + << newLine + << " if (data != nullptr)" << newLine + << " return juce::ImageCache::getFromMemory (data, dataSize);" << newLine + << newLine + << " return juce::Image();" << newLine + << " }" << newLine + << newLine + << " juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); }" << newLine + << " };" << newLine + << "}" << newLine; + + return true; +} + +bool ResourceFile::write (const File& cppFile) +{ + TemporaryFile tempH (cppFile.withFileExtension (".h"), TemporaryFile::useHiddenFile); + TemporaryFile tempCpp (cppFile, TemporaryFile::useHiddenFile); + + ScopedPointer cppOut (tempCpp.getFile().createOutputStream (32768)); + ScopedPointer hppOut (tempH.getFile().createOutputStream (32768)); + + if (cppOut != nullptr && hppOut != nullptr) + { + if (write (cppFile, *cppOut, *hppOut)) + { + cppOut = nullptr; + hppOut = nullptr; + + return (tempCpp.getFile().hasIdenticalContentTo (tempCpp.getTargetFile()) || tempCpp.overwriteTargetFileWithTemporary()) + && (tempH.getFile().hasIdenticalContentTo (tempH.getTargetFile()) || tempH.overwriteTargetFileWithTemporary()); + } + } + + return false; +} diff --git a/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.h b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.h new file mode 100644 index 0000000000..1b2fc80e7d --- /dev/null +++ b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.h @@ -0,0 +1,71 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_RESOURCEFILE_JUCEHEADER__ +#define __JUCER_RESOURCEFILE_JUCEHEADER__ + +#include "../jucer_Headers.h" +#include "../Project/jucer_Project.h" + + +//============================================================================== +class ResourceFile +{ +public: + //============================================================================== + ResourceFile (Project& project); + ~ResourceFile(); + + //============================================================================== + static bool isResourceFile (const File& file); + + //============================================================================== + void setClassName (const String& className); + String getClassName() const { return className; } + + void addFile (const File& file, const String& imageProviderId); + String getDataVariableFor (const File& file) const; + String getSizeVariableFor (const File& file) const; + + int getNumFiles() const { return files.size(); } + int64 getTotalDataSize() const; + + bool write (const File& cppFile); + bool write (const File& cppFile, OutputStream& cpp, OutputStream& header); + + //============================================================================== +private: + Array files; + StringArray variableNames; + Project& project; + String className; + + void addResourcesFromProjectItem (const Project::Item& node); + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResourceFile); +}; + + +#endif // __JUCER_RESOURCEFILE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h b/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h new file mode 100644 index 0000000000..7f89da8d9c --- /dev/null +++ b/extras/Introjucer/Source/Project/jucer_AudioPluginModule.h @@ -0,0 +1,425 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_AUDIOPLUGINMODULE_JUCEHEADER__ +#define __JUCER_AUDIOPLUGINMODULE_JUCEHEADER__ + + +//============================================================================== +namespace +{ + Value shouldBuildVST (const Project& project) { return project.getProjectValue ("buildVST"); } + Value shouldBuildRTAS (const Project& project) { return project.getProjectValue ("buildRTAS"); } + Value shouldBuildAU (const Project& project) { return project.getProjectValue ("buildAU"); } + + Value getPluginName (const Project& project) { return project.getProjectValue ("pluginName"); } + Value getPluginDesc (const Project& project) { return project.getProjectValue ("pluginDesc"); } + Value getPluginManufacturer (const Project& project) { return project.getProjectValue ("pluginManufacturer"); } + Value getPluginManufacturerCode (const Project& project) { return project.getProjectValue ("pluginManufacturerCode"); } + Value getPluginCode (const Project& project) { return project.getProjectValue ("pluginCode"); } + Value getPluginChannelConfigs (const Project& project) { return project.getProjectValue ("pluginChannelConfigs"); } + Value getPluginIsSynth (const Project& project) { return project.getProjectValue ("pluginIsSynth"); } + Value getPluginWantsMidiInput (const Project& project) { return project.getProjectValue ("pluginWantsMidiIn"); } + Value getPluginProducesMidiOut (const Project& project) { return project.getProjectValue ("pluginProducesMidiOut"); } + Value getPluginSilenceInProducesSilenceOut (const Project& project) { return project.getProjectValue ("pluginSilenceInIsSilenceOut"); } + Value getPluginTailLengthSeconds (const Project& project) { return project.getProjectValue ("pluginTailLength"); } + Value getPluginEditorNeedsKeyFocus (const Project& project) { return project.getProjectValue ("pluginEditorRequiresKeys"); } + Value getPluginAUExportPrefix (const Project& project) { return project.getProjectValue ("pluginAUExportPrefix"); } + Value getPluginAUCocoaViewClassName (const Project& project) { return project.getProjectValue ("pluginAUViewClass"); } + Value getPluginRTASCategory (const Project& project) { return project.getProjectValue ("pluginRTASCategory"); } + + String getPluginRTASCategoryCode (const Project& project) + { + if (static_cast (getPluginIsSynth (project).getValue())) + return "ePlugInCategory_SWGenerators"; + + String s (getPluginRTASCategory (project).toString()); + if (s.isEmpty()) + s = "ePlugInCategory_None"; + + return s; + } + + int countMaxPluginChannels (const String& configString, bool isInput) + { + StringArray configs; + configs.addTokens (configString, ", {}", String::empty); + configs.trim(); + configs.removeEmptyStrings(); + jassert ((configs.size() & 1) == 0); // looks like a syntax error in the configs? + + int maxVal = 0; + for (int i = (isInput ? 0 : 1); i < configs.size(); i += 2) + maxVal = jmax (maxVal, configs[i].getIntValue()); + + return maxVal; + } + + String valueToBool (const Value& v) + { + return static_cast (v.getValue()) ? "1" : "0"; + } + + void writePluginCharacteristicsFile (ProjectSaver& projectSaver) + { + Project& project = projectSaver.getProject(); + + StringPairArray flags; + flags.set ("JucePlugin_Build_VST", valueToBool (shouldBuildVST (project))); + flags.set ("JucePlugin_Build_AU", valueToBool (shouldBuildAU (project))); + flags.set ("JucePlugin_Build_RTAS", valueToBool (shouldBuildRTAS (project))); + flags.set ("JucePlugin_Name", getPluginName (project).toString().quoted()); + flags.set ("JucePlugin_Desc", getPluginDesc (project).toString().quoted()); + flags.set ("JucePlugin_Manufacturer", getPluginManufacturer (project).toString().quoted()); + flags.set ("JucePlugin_ManufacturerCode", getPluginManufacturerCode (project).toString().trim().substring (0, 4).quoted ('\'')); + flags.set ("JucePlugin_PluginCode", getPluginCode (project).toString().trim().substring (0, 4).quoted ('\'')); + flags.set ("JucePlugin_MaxNumInputChannels", String (countMaxPluginChannels (getPluginChannelConfigs (project).toString(), true))); + flags.set ("JucePlugin_MaxNumOutputChannels", String (countMaxPluginChannels (getPluginChannelConfigs (project).toString(), false))); + flags.set ("JucePlugin_PreferredChannelConfigurations", getPluginChannelConfigs (project).toString()); + flags.set ("JucePlugin_IsSynth", valueToBool (getPluginIsSynth (project))); + flags.set ("JucePlugin_WantsMidiInput", valueToBool (getPluginWantsMidiInput (project))); + flags.set ("JucePlugin_ProducesMidiOutput", valueToBool (getPluginProducesMidiOut (project))); + flags.set ("JucePlugin_SilenceInProducesSilenceOut", valueToBool (getPluginSilenceInProducesSilenceOut (project))); + flags.set ("JucePlugin_TailLengthSeconds", String (static_cast (getPluginTailLengthSeconds (project).getValue()))); + flags.set ("JucePlugin_EditorRequiresKeyboardFocus", valueToBool (getPluginEditorNeedsKeyFocus (project))); + flags.set ("JucePlugin_VersionCode", project.getVersionAsHex()); + flags.set ("JucePlugin_VersionString", project.getVersion().toString().quoted()); + flags.set ("JucePlugin_VSTUniqueID", "JucePlugin_PluginCode"); + flags.set ("JucePlugin_VSTCategory", static_cast (getPluginIsSynth (project).getValue()) ? "kPlugCategSynth" : "kPlugCategEffect"); + flags.set ("JucePlugin_AUMainType", static_cast (getPluginIsSynth (project).getValue()) ? "kAudioUnitType_MusicDevice" : "kAudioUnitType_Effect"); + flags.set ("JucePlugin_AUSubType", "JucePlugin_PluginCode"); + flags.set ("JucePlugin_AUExportPrefix", getPluginAUExportPrefix (project).toString()); + flags.set ("JucePlugin_AUExportPrefixQuoted", getPluginAUExportPrefix (project).toString().quoted()); + flags.set ("JucePlugin_AUManufacturerCode", "JucePlugin_ManufacturerCode"); + flags.set ("JucePlugin_CFBundleIdentifier", project.getBundleIdentifier().toString()); + flags.set ("JucePlugin_AUCocoaViewClassName", getPluginAUCocoaViewClassName (project).toString()); + flags.set ("JucePlugin_RTASCategory", getPluginRTASCategoryCode (project)); + flags.set ("JucePlugin_RTASManufacturerCode", "JucePlugin_ManufacturerCode"); + flags.set ("JucePlugin_RTASProductId", "JucePlugin_PluginCode"); + + MemoryOutputStream mem; + + mem << "//==============================================================================" << newLine + << "// Audio plugin settings.." << newLine + << newLine; + + for (int i = 0; i < flags.size(); ++i) + { + mem << "#ifndef " << flags.getAllKeys()[i] << newLine + << " #define " << flags.getAllKeys()[i].paddedRight (' ', 32) << " " + << flags.getAllValues()[i] << newLine + << "#endif" << newLine; + } + + projectSaver.setExtraAppConfigFileContent (mem.toString()); + } +} + +//============================================================================== +namespace VSTHelpers +{ + static Value getVSTFolder (const ProjectExporter& exporter) { return exporter.getSetting (Ids::vstFolder); } + + static void addVSTFolderToPath (const ProjectExporter& exporter, StringArray& searchPaths) + { + const String vstFolder (getVSTFolder (exporter).toString()); + + if (vstFolder.isNotEmpty()) + { + RelativePath path (exporter.rebaseFromProjectFolderToBuildTarget (RelativePath (vstFolder, RelativePath::projectFolder))); + + if (exporter.isVisualStudio()) + searchPaths.add (path.toWindowsStyle()); + else if (exporter.isLinux() || exporter.isXcode()) + searchPaths.insert (0, path.toUnixStyle()); + } + } + + static void createVSTPathEditor (const ProjectExporter& exporter, PropertyListBuilder& props) + { + props.add (new TextPropertyComponent (getVSTFolder (exporter), "VST Folder", 1024, false), + "If you're building a VST, this must be the folder containing the VST SDK. This should be an absolute path."); + } + + static void fixMissingVSTValues (const ProjectExporter& exporter) + { + if (getVSTFolder(exporter).toString().isEmpty()) + getVSTFolder(exporter) = (exporter.isVisualStudio() ? "c:\\SDKs\\vstsdk2.4" + : "~/SDKs/vstsdk2.4"); + } + + static void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) + { + fixMissingVSTValues (exporter); + writePluginCharacteristicsFile (projectSaver); + + exporter.makefileTargetSuffix = ".so"; + + Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), + "Juce VST Wrapper", "__jucevstfiles")); + + RelativePath juceWrapperFolder (exporter.getProject().getGeneratedCodeFolder(), + exporter.getTargetFolder(), RelativePath::buildTargetFolder); + + addVSTFolderToPath (exporter, exporter.extraSearchPaths); + + if (exporter.isVisualStudio()) + exporter.extraSearchPaths.add (juceWrapperFolder.toWindowsStyle()); + else if (exporter.isLinux()) + exporter.extraSearchPaths.add (juceWrapperFolder.toUnixStyle()); + } + + static void createPropertyEditors (const ProjectExporter& exporter, PropertyListBuilder& props) + { + fixMissingVSTValues (exporter); + createVSTPathEditor (exporter, props); + } +} + +//============================================================================== +namespace RTASHelpers +{ + static Value getRTASFolder (const ProjectExporter& exporter) { return exporter.getSetting (Ids::rtasFolder); } + + static void fixMissingRTASValues (const ProjectExporter& exporter) + { + if (getRTASFolder (exporter).toString().isEmpty()) + { + if (exporter.isVisualStudio()) + getRTASFolder (exporter) = "c:\\SDKs\\PT_80_SDK"; + else + getRTASFolder (exporter) = "~/SDKs/PT_80_SDK"; + } + } + + static void addExtraSearchPaths (ProjectExporter& exporter) + { + RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder); + + if (exporter.isVisualStudio()) + { + RelativePath juceWrapperFolder (exporter.getProject().getGeneratedCodeFolder(), + exporter.getTargetFolder(), RelativePath::buildTargetFolder); + + exporter.extraSearchPaths.add (juceWrapperFolder.toWindowsStyle()); + + const char* p[] = { "AlturaPorts/TDMPlugins/PluginLibrary/EffectClasses", + "AlturaPorts/TDMPlugins/PluginLibrary/ProcessClasses", + "AlturaPorts/TDMPlugins/PluginLibrary/ProcessClasses/Interfaces", + "AlturaPorts/TDMPlugins/PluginLibrary/Utilities", + "AlturaPorts/TDMPlugins/PluginLibrary/RTASP_Adapt", + "AlturaPorts/TDMPlugins/PluginLibrary/CoreClasses", + "AlturaPorts/TDMPlugins/PluginLibrary/Controls", + "AlturaPorts/TDMPlugins/PluginLibrary/Meters", + "AlturaPorts/TDMPlugins/PluginLibrary/ViewClasses", + "AlturaPorts/TDMPlugins/PluginLibrary/DSPClasses", + "AlturaPorts/TDMPlugins/PluginLibrary/Interfaces", + "AlturaPorts/TDMPlugins/common", + "AlturaPorts/TDMPlugins/common/Platform", + "AlturaPorts/TDMPlugins/SignalProcessing/Public", + "AlturaPorts/TDMPlugIns/DSPManager/Interfaces", + "AlturaPorts/SADriver/Interfaces", + "AlturaPorts/DigiPublic/Interfaces", + "AlturaPorts/Fic/Interfaces/DAEClient", + "AlturaPorts/NewFileLibs/Cmn", + "AlturaPorts/NewFileLibs/DOA", + "AlturaPorts/AlturaSource/PPC_H", + "AlturaPorts/AlturaSource/AppSupport", + "AvidCode/AVX2sdk/AVX/avx2/avx2sdk/inc", + "xplat/AVX/avx2/avx2sdk/inc" }; + + for (int i = 0; i < numElementsInArray (p); ++i) + exporter.addToExtraSearchPaths (rtasFolder.getChildFile (p[i])); + } + else if (exporter.isXcode()) + { + exporter.extraSearchPaths.add ("/Developer/Headers/FlatCarbon"); + + const char* p[] = { "AlturaPorts/TDMPlugIns/PlugInLibrary/Controls", + "AlturaPorts/TDMPlugIns/PlugInLibrary/CoreClasses", + "AlturaPorts/TDMPlugIns/PlugInLibrary/DSPClasses", + "AlturaPorts/TDMPlugIns/PlugInLibrary/EffectClasses", + "AlturaPorts/TDMPlugIns/PlugInLibrary/MacBuild", + "AlturaPorts/TDMPlugIns/PlugInLibrary/Meters", + "AlturaPorts/TDMPlugIns/PlugInLibrary/ProcessClasses", + "AlturaPorts/TDMPlugIns/PlugInLibrary/ProcessClasses/Interfaces", + "AlturaPorts/TDMPlugIns/PlugInLibrary/RTASP_Adapt", + "AlturaPorts/TDMPlugIns/PlugInLibrary/Utilities", + "AlturaPorts/TDMPlugIns/PlugInLibrary/ViewClasses", + "AlturaPorts/TDMPlugIns/DSPManager/**", + "AlturaPorts/TDMPlugIns/SupplementalPlugInLib/Encryption", + "AlturaPorts/TDMPlugIns/SupplementalPlugInLib/GraphicsExtensions", + "AlturaPorts/TDMPlugIns/common/**", + "AlturaPorts/TDMPlugIns/common/PI_LibInterface", + "AlturaPorts/TDMPlugIns/PACEProtection/**", + "AlturaPorts/TDMPlugIns/SignalProcessing/**", + "AlturaPorts/OMS/Headers", + "AlturaPorts/Fic/Interfaces/**", + "AlturaPorts/Fic/Source/SignalNets", + "AlturaPorts/DSIPublicInterface/PublicHeaders", + "DAEWin/Include", + "AlturaPorts/DigiPublic/Interfaces", + "AlturaPorts/DigiPublic", + "AlturaPorts/NewFileLibs/DOA", + "AlturaPorts/NewFileLibs/Cmn", + "xplat/AVX/avx2/avx2sdk/inc", + "xplat/AVX/avx2/avx2sdk/utils" }; + + for (int i = 0; i < numElementsInArray (p); ++i) + exporter.addToExtraSearchPaths (rtasFolder.getChildFile (p[i])); + } + } + + static void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver, const File& moduleFolder) + { + fixMissingRTASValues (exporter); + + exporter.xcodeCanUseDwarf = false; + + exporter.msvcTargetSuffix = ".dpm"; + exporter.msvcNeedsDLLRuntimeLib = true; + + RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder); + exporter.msvcExtraPreprocessorDefs.set ("JucePlugin_WinBag_path", CodeHelpers::addEscapeChars (rtasFolder.getChildFile ("WinBag") + .toWindowsStyle().quoted())); + + String msvcPathToRTASFolder (exporter.getJucePathFromTargetFolder() + .getChildFile ("modules/juce_audio_plugin_client/RTAS") + .toWindowsStyle() + "\\"); + + exporter.msvcDelayLoadedDLLs = "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll"; + + for (ProjectExporter::ConfigIterator config (exporter); config.next();) + { + config->msvcExtraLinkerOptions = "/FORCE:multiple"; + config->msvcModuleDefinitionFile = msvcPathToRTASFolder + "juce_RTAS_WinExports.def"; + + if (config->msvcPostBuildCommand.isEmpty()) + config->msvcPostBuildCommand = "copy /Y \"" + msvcPathToRTASFolder + "juce_RTAS_WinResources.rsr" + + "\" \"$(TargetPath)\".rsr"; + } + + exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); + exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); + + writePluginCharacteristicsFile (projectSaver); + + addExtraSearchPaths (exporter); + } + + static void createPropertyEditors (const ProjectExporter& exporter, PropertyListBuilder& props) + { + if (exporter.isXcode() || exporter.isVisualStudio()) + { + fixMissingRTASValues (exporter); + + props.add (new TextPropertyComponent (getRTASFolder (exporter), "RTAS Folder", 1024, false), + "If you're building an RTAS, this must be the folder containing the RTAS SDK. This should be an absolute path."); + } + } +} + +//============================================================================== +namespace AUHelpers +{ + static void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) + { + writePluginCharacteristicsFile (projectSaver); + + if (exporter.isXcode()) + { + exporter.extraSearchPaths.add ("$(DEVELOPER_DIR)/Extras/CoreAudio/PublicUtility"); + exporter.extraSearchPaths.add ("$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/Utility"); + + exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); + + Project::Item subGroup (projectSaver.getGeneratedCodeGroup().addNewSubGroup ("Juce AU Wrapper", -1)); + subGroup.setID ("__juceappleaufiles"); + + { + #define JUCE_AU_PUBLICUTILITY "${DEVELOPER_DIR}/Extras/CoreAudio/PublicUtility/" + #define JUCE_AU_PUBLIC "${DEVELOPER_DIR}/Extras/CoreAudio/AudioUnits/AUPublic/" + + const char* appleAUFiles[] = { JUCE_AU_PUBLICUTILITY "CADebugMacros.h", + JUCE_AU_PUBLICUTILITY "CAAUParameter.cpp", + JUCE_AU_PUBLICUTILITY "CAAUParameter.h", + JUCE_AU_PUBLICUTILITY "CAAudioChannelLayout.cpp", + JUCE_AU_PUBLICUTILITY "CAAudioChannelLayout.h", + JUCE_AU_PUBLICUTILITY "CAMutex.cpp", + JUCE_AU_PUBLICUTILITY "CAMutex.h", + JUCE_AU_PUBLICUTILITY "CAStreamBasicDescription.cpp", + JUCE_AU_PUBLICUTILITY "CAStreamBasicDescription.h", + JUCE_AU_PUBLICUTILITY "CAVectorUnitTypes.h", + JUCE_AU_PUBLICUTILITY "CAVectorUnit.cpp", + JUCE_AU_PUBLICUTILITY "CAVectorUnit.h", + JUCE_AU_PUBLIC "AUViewBase/AUViewLocalizedStringKeys.h", + JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewDispatch.cpp", + JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewControl.cpp", + JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewControl.h", + JUCE_AU_PUBLIC "AUCarbonViewBase/CarbonEventHandler.cpp", + JUCE_AU_PUBLIC "AUCarbonViewBase/CarbonEventHandler.h", + JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewBase.cpp", + JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewBase.h", + JUCE_AU_PUBLIC "AUBase/AUBase.cpp", + JUCE_AU_PUBLIC "AUBase/AUBase.h", + JUCE_AU_PUBLIC "AUBase/AUDispatch.cpp", + JUCE_AU_PUBLIC "AUBase/AUDispatch.h", + JUCE_AU_PUBLIC "AUBase/AUInputElement.cpp", + JUCE_AU_PUBLIC "AUBase/AUInputElement.h", + JUCE_AU_PUBLIC "AUBase/AUOutputElement.cpp", + JUCE_AU_PUBLIC "AUBase/AUOutputElement.h", + JUCE_AU_PUBLIC "AUBase/AUResources.r", + JUCE_AU_PUBLIC "AUBase/AUScopeElement.cpp", + JUCE_AU_PUBLIC "AUBase/AUScopeElement.h", + JUCE_AU_PUBLIC "AUBase/ComponentBase.cpp", + JUCE_AU_PUBLIC "AUBase/ComponentBase.h", + JUCE_AU_PUBLIC "OtherBases/AUMIDIBase.cpp", + JUCE_AU_PUBLIC "OtherBases/AUMIDIBase.h", + JUCE_AU_PUBLIC "OtherBases/AUMIDIEffectBase.cpp", + JUCE_AU_PUBLIC "OtherBases/AUMIDIEffectBase.h", + JUCE_AU_PUBLIC "OtherBases/AUOutputBase.cpp", + JUCE_AU_PUBLIC "OtherBases/AUOutputBase.h", + JUCE_AU_PUBLIC "OtherBases/MusicDeviceBase.cpp", + JUCE_AU_PUBLIC "OtherBases/MusicDeviceBase.h", + JUCE_AU_PUBLIC "OtherBases/AUEffectBase.cpp", + JUCE_AU_PUBLIC "OtherBases/AUEffectBase.h", + JUCE_AU_PUBLIC "Utility/AUBuffer.cpp", + JUCE_AU_PUBLIC "Utility/AUBuffer.h", + JUCE_AU_PUBLIC "Utility/AUInputFormatConverter.h", + JUCE_AU_PUBLIC "Utility/AUSilentTimeout.h", + JUCE_AU_PUBLIC "Utility/AUTimestampGenerator.h", 0 }; + + for (const char** f = appleAUFiles; *f != 0; ++f) + { + const RelativePath file (*f, RelativePath::projectFolder); + subGroup.addRelativeFile (file, -1, file.hasFileExtension ("cpp;mm")); + subGroup.getChild (subGroup.getNumChildren() - 1).getShouldInhibitWarningsValue() = true; + } + } + } + } +} + +#endif // __JUCER_AUDIOPLUGINMODULE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.cpp b/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.cpp index 0b09ee0004..e9a90f7601 100644 --- a/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.cpp +++ b/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -34,12 +34,12 @@ GroupInformationComponent::GroupInformationComponent (const Project::Item& item_ addAndMakeVisible (&list); list.updateContent(); list.setRowHeight (20); - item.getNode().addListener (this); + item.state.addListener (this); } GroupInformationComponent::~GroupInformationComponent() { - item.getNode().removeListener (this); + item.state.removeListener (this); } void GroupInformationComponent::resized() diff --git a/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h b/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h index 1b4141a14c..d52227b6e4 100644 --- a/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h +++ b/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Project/jucer_Module.cpp b/extras/Introjucer/Source/Project/jucer_Module.cpp new file mode 100644 index 0000000000..252e7e9562 --- /dev/null +++ b/extras/Introjucer/Source/Project/jucer_Module.cpp @@ -0,0 +1,675 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#include "jucer_Module.h" +#include "jucer_ProjectType.h" +#include "../Project Saving/jucer_ProjectExporter.h" +#include "../Project Saving/jucer_ProjectSaver.h" +#include "jucer_AudioPluginModule.h" + + +//============================================================================== +ModuleList::ModuleList() +{ +} + +ModuleList::ModuleList (const ModuleList& other) + : moduleFolder (other.moduleFolder) +{ + modules.addCopiesOf (other.modules); +} + +ModuleList& ModuleList::operator= (const ModuleList& other) +{ + moduleFolder = other.moduleFolder; + modules.clear(); + modules.addCopiesOf (other.modules); + + return *this; +} + +bool ModuleList::operator== (const ModuleList& other) const +{ + if (modules.size() != other.modules.size()) + return false; + + for (int i = modules.size(); --i >= 0;) + { + const Module* m1 = modules.getUnchecked(i); + const Module* m2 = other.findModuleInfo (m1->uid); + + if (m2 == nullptr || *m1 != *m2) + return false; + } + + return true; +} + + +bool ModuleList::isLocalModulesFolderValid() +{ + return isModulesFolder (getModulesFolderForJuceOrModulesFolder (getLocalModulesFolder (nullptr))); +} + +bool ModuleList::isJuceFolder (const File& folder) +{ + return folder.getFileName().containsIgnoreCase ("juce") + && isModulesFolder (folder.getChildFile ("modules")); +} + +bool ModuleList::isModulesFolder (const File& folder) +{ + return folder.getFileName().equalsIgnoreCase ("modules") + && folder.isDirectory(); +} + +bool ModuleList::isJuceOrModulesFolder (const File& folder) +{ + return isJuceFolder (folder) || isModulesFolder (folder); +} + +File ModuleList::getModulesFolderForJuceOrModulesFolder (const File& f) +{ + if (f.getFileName() != "modules" && f.isDirectory() && f.getChildFile ("modules").isDirectory()) + return f.getChildFile ("modules"); + + return f; +} + +File ModuleList::getDefaultModulesFolder (Project* project) +{ + if (project != nullptr) + { + ScopedPointer exp (ProjectExporter::createPlatformDefaultExporter (*project)); + + if (exp != nullptr) + { + File f (project->resolveFilename (exp->getJuceFolder().toString())); + f = getModulesFolderForJuceOrModulesFolder (f); + + if (ModuleList::isModulesFolder (f)) + return f; + } + } + + #if JUCE_WINDOWS + return File::getSpecialLocation (File::userDocumentsDirectory) + #else + return File::getSpecialLocation (File::userHomeDirectory) + #endif + .getChildFile ("juce") + .getChildFile ("modules"); +} + +File ModuleList::getLocalModulesFolder (Project* project) +{ + File defaultJuceFolder (getDefaultModulesFolder (project)); + + File f (StoredSettings::getInstance()->getProps().getValue ("lastJuceFolder", defaultJuceFolder.getFullPathName())); + f = getModulesFolderForJuceOrModulesFolder (f); + + if ((! ModuleList::isModulesFolder (f)) && ModuleList::isModulesFolder (defaultJuceFolder)) + f = defaultJuceFolder; + + return f; +} + +File ModuleList::getModuleFolder (const String& uid) const +{ + return getModulesFolder().getChildFile (uid); +} + +void ModuleList::setLocalModulesFolder (const File& file) +{ + //jassert (FileHelpers::isJuceFolder (file)); + StoredSettings::getInstance()->getProps().setValue ("lastJuceFolder", file.getFullPathName()); +} + +struct ModuleSorter +{ + static int compareElements (const ModuleList::Module* m1, const ModuleList::Module* m2) + { + return m1->uid.compareIgnoreCase (m2->uid); + } +}; + +void ModuleList::sort() +{ + ModuleSorter sorter; + modules.sort (sorter); +} + +void ModuleList::rescan() +{ + rescan (moduleFolder); +} + +void ModuleList::rescan (const File& newModulesFolder) +{ + modules.clear(); + moduleFolder = getModulesFolderForJuceOrModulesFolder (newModulesFolder); + + if (moduleFolder.isDirectory()) + { + DirectoryIterator iter (moduleFolder, false, "*", File::findDirectories); + + while (iter.next()) + { + const File moduleDef (iter.getFile().getChildFile (LibraryModule::getInfoFileName())); + + if (moduleDef.exists()) + { + LibraryModule m (moduleDef); + jassert (m.isValid()); + + if (m.isValid()) + { + Module* info = new Module(); + modules.add (info); + + info->uid = m.getID(); + info->version = m.getVersion(); + info->name = m.moduleInfo ["name"]; + info->description = m.moduleInfo ["description"]; + info->file = moduleDef; + } + } + } + } + + sort(); +} + +bool ModuleList::loadFromWebsite() +{ + modules.clear(); + + URL baseURL ("http://www.rawmaterialsoftware.com/juce/modules"); + URL url (baseURL.getChildURL ("modulelist.php")); + + var infoList (JSON::parse (url.readEntireTextStream (false))); + + if (infoList.isArray()) + { + const Array* moduleList = infoList.getArray(); + + for (int i = 0; i < moduleList->size(); ++i) + { + const var& m = moduleList->getReference(i); + const String file (m ["file"].toString()); + + if (file.isNotEmpty()) + { + var moduleInfo (m ["info"]); + LibraryModule lm (moduleInfo); + + if (lm.isValid()) + { + Module* info = new Module(); + modules.add (info); + + info->uid = lm.getID(); + info->version = lm.getVersion(); + info->name = lm.getName(); + info->description = lm.getDescription(); + info->url = baseURL.getChildURL (file); + } + } + } + } + + sort(); + return infoList.isArray(); +} + +LibraryModule* ModuleList::Module::create() const +{ + return new LibraryModule (file); +} + +bool ModuleList::Module::operator== (const Module& other) const +{ + return uid == other.uid + && version == other.version + && name == other.name + && description == other.description + && file == other.file + && url == other.url; +} + +bool ModuleList::Module::operator!= (const Module& other) const +{ + return ! operator== (other); +} + +LibraryModule* ModuleList::loadModule (const String& uid) const +{ + const Module* const m = findModuleInfo (uid); + + return m != nullptr ? m->create() : nullptr; +} + +const ModuleList::Module* ModuleList::findModuleInfo (const String& uid) const +{ + for (int i = modules.size(); --i >= 0;) + if (modules.getUnchecked(i)->uid == uid) + return modules.getUnchecked(i); + + return nullptr; +} + +void ModuleList::getDependencies (const String& moduleID, StringArray& dependencies) const +{ + ScopedPointer m (loadModule (moduleID)); + + if (m != nullptr) + { + const var depsArray (m->moduleInfo ["dependencies"]); + const Array* const deps = depsArray.getArray(); + + if (deps != nullptr) + { + for (int i = 0; i < deps->size(); ++i) + { + const var& d = deps->getReference(i); + + String uid (d ["id"].toString()); + String version (d ["version"].toString()); + + if (! dependencies.contains (uid, true)) + { + dependencies.add (uid); + getDependencies (uid, dependencies); + } + } + } + } +} + +void ModuleList::createDependencies (const String& moduleID, OwnedArray& modules) const +{ + ScopedPointer m (loadModule (moduleID)); + + if (m != nullptr) + { + var depsArray (m->moduleInfo ["dependencies"]); + const Array* const deps = depsArray.getArray(); + + for (int i = 0; i < deps->size(); ++i) + { + const var& d = deps->getReference(i); + + String uid (d ["id"].toString()); + String version (d ["version"].toString()); + + //xxx to do - also need to find version conflicts + jassertfalse + + } + } +} + +StringArray ModuleList::getExtraDependenciesNeeded (Project& project, const ModuleList::Module& m) +{ + StringArray dependencies, extraDepsNeeded; + getDependencies (m.uid, dependencies); + + for (int i = 0; i < dependencies.size(); ++i) + if ((! project.isModuleEnabled (dependencies[i])) && dependencies[i] != m.uid) + extraDepsNeeded.add (dependencies[i]); + + return extraDepsNeeded; +} + +//============================================================================== +LibraryModule::LibraryModule (const File& file) + : moduleInfo (JSON::parse (file)), + moduleFile (file), + moduleFolder (file.getParentDirectory()) +{ + jassert (isValid()); +} + +LibraryModule::LibraryModule (const var& moduleInfo_) + : moduleInfo (moduleInfo_) +{ +} + +bool LibraryModule::isValid() const { return getID().isNotEmpty(); } + +bool LibraryModule::isPluginClient() const { return getID() == "juce_audio_plugin_client"; } +bool LibraryModule::isAUPluginHost (const Project& project) const { return getID() == "juce_audio_processors" && project.isConfigFlagEnabled ("JUCE_PLUGINHOST_AU"); } +bool LibraryModule::isVSTPluginHost (const Project& project) const { return getID() == "juce_audio_processors" && project.isConfigFlagEnabled ("JUCE_PLUGINHOST_VST"); } + +File LibraryModule::getLocalIncludeFolder (ProjectSaver& projectSaver) const +{ + return projectSaver.getGeneratedCodeFolder().getChildFile ("modules").getChildFile (getID()); +} + +File LibraryModule::getInclude (const File& folder) const +{ + return folder.getChildFile (moduleInfo ["include"]); +} + +RelativePath LibraryModule::getModuleRelativeToProject (ProjectExporter& exporter) const +{ + RelativePath p (exporter.getJuceFolder().toString(), RelativePath::projectFolder); + if (p.getFileName() != "modules") + p = p.getChildFile ("modules"); + + return p.getChildFile (getID()); +} + +RelativePath LibraryModule::getModuleOrLocalCopyRelativeToProject (ProjectExporter& exporter, const File& localModuleFolder) const +{ + if (exporter.getProject().shouldCopyModuleFilesLocally (getID()).getValue()) + return RelativePath (exporter.getProject().getRelativePathForFile (localModuleFolder), RelativePath::projectFolder); + + return getModuleRelativeToProject (exporter); +} + +//============================================================================== +void LibraryModule::writeIncludes (ProjectSaver& projectSaver, OutputStream& out) +{ + const File localModuleFolder (getLocalIncludeFolder (projectSaver)); + const File localHeader (getInclude (localModuleFolder)); + + if (projectSaver.getProject().shouldCopyModuleFilesLocally (getID()).getValue()) + { + moduleFolder.copyDirectoryTo (localModuleFolder); + } + else + { + localModuleFolder.createDirectory(); + createLocalHeaderWrapper (projectSaver, getInclude (moduleFolder), localHeader); + } + + out << CodeHelpers::createIncludeStatement (localHeader, projectSaver.getGeneratedCodeFolder().getChildFile ("AppConfig.h")) << newLine; +} + +static void writeGuardedInclude (OutputStream& out, StringArray paths, StringArray guards) +{ + StringArray uniquePaths (paths); + uniquePaths.removeDuplicates (false); + + if (uniquePaths.size() == 1) + { + out << "#include " << paths[0] << newLine; + } + else + { + int i = paths.size(); + for (; --i >= 0;) + { + for (int j = i; --j >= 0;) + { + if (paths[i] == paths[j] && guards[i] == guards[j]) + { + paths.remove (i); + guards.remove (i); + } + } + } + + for (i = 0; i < paths.size(); ++i) + { + out << (i == 0 ? "#if " : "#elif ") << guards[i] << newLine + << " #include " << paths[i] << newLine; + } + + out << "#else" << newLine + << " #error \"This file is designed to be used in an Introjucer-generated project!\"" << newLine + << "#endif" << newLine; + } +} + +void LibraryModule::createLocalHeaderWrapper (ProjectSaver& projectSaver, const File& originalHeader, const File& localHeader) const +{ + Project& project = projectSaver.getProject(); + + MemoryOutputStream out; + + out << "// This is an auto-generated file to redirect any included" << newLine + << "// module headers to the correct external folder." << newLine + << newLine; + + StringArray paths, guards; + + for (Project::ExporterIterator exporter (project); exporter.next();) + { + const RelativePath headerFromProject (getModuleRelativeToProject (*exporter) + .getChildFile (originalHeader.getFileName())); + + const RelativePath fileFromHere (headerFromProject.rebased (project.getFile().getParentDirectory(), + localHeader.getParentDirectory(), RelativePath::unknown)); + + paths.add (fileFromHere.toUnixStyle().quoted()); + guards.add ("defined (" + exporter->getExporterIdentifierMacro() + ")"); + } + + writeGuardedInclude (out, paths, guards); + out << newLine; + + projectSaver.replaceFileIfDifferent (localHeader, out); +} + +//============================================================================== +void LibraryModule::prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const +{ + Project& project = exporter.getProject(); + + File localFolder (moduleFolder); + if (project.shouldCopyModuleFilesLocally (getID()).getValue()) + localFolder = getLocalIncludeFolder (projectSaver); + + { + Array compiled; + findAndAddCompiledCode (exporter, projectSaver, localFolder, compiled); + + if (project.shouldShowAllModuleFilesInProject (getID()).getValue()) + addBrowsableCode (exporter, compiled, localFolder); + } + + if (isVSTPluginHost (project)) + VSTHelpers::addVSTFolderToPath (exporter, exporter.extraSearchPaths); + + if (exporter.isXcode()) + { + if (isAUPluginHost (project)) + exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); + + const String frameworks (moduleInfo [exporter.isOSX() ? "OSXFrameworks" : "iOSFrameworks"].toString()); + exporter.xcodeFrameworks.addTokens (frameworks, ", ", String::empty); + } + + if (isPluginClient()) + { + if (shouldBuildVST (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver); + if (shouldBuildRTAS (project).getValue()) RTASHelpers::prepareExporter (exporter, projectSaver, localFolder); + if (shouldBuildAU (project).getValue()) AUHelpers::prepareExporter (exporter, projectSaver); + } +} + +void LibraryModule::createPropertyEditors (const ProjectExporter& exporter, PropertyListBuilder& props) const +{ + if (isVSTPluginHost (exporter.getProject())) + VSTHelpers::createVSTPathEditor (exporter, props); + + if (isPluginClient()) + { + if (shouldBuildVST (exporter.getProject()).getValue()) VSTHelpers::createPropertyEditors (exporter, props); + if (shouldBuildRTAS (exporter.getProject()).getValue()) RTASHelpers::createPropertyEditors (exporter, props); + } +} + +void LibraryModule::getConfigFlags (Project& project, OwnedArray& flags) const +{ + const File header (getInclude (moduleFolder)); + jassert (header.exists()); + + StringArray lines; + header.readLines (lines); + + for (int i = 0; i < lines.size(); ++i) + { + String line (lines[i].trim()); + + if (line.startsWith ("/**") && line.containsIgnoreCase ("Config:")) + { + ScopedPointer config (new Project::ConfigFlag()); + config->sourceModuleID = getID(); + config->symbol = line.fromFirstOccurrenceOf (":", false, false).trim(); + + if (config->symbol.length() > 2) + { + ++i; + + while (! (lines[i].contains ("*/") || lines[i].contains ("@see"))) + { + if (lines[i].trim().isNotEmpty()) + config->description = config->description.trim() + " " + lines[i].trim(); + + ++i; + } + + config->description = config->description.upToFirstOccurrenceOf ("*/", false, false); + config->value.referTo (project.getConfigFlag (config->symbol)); + flags.add (config.release()); + } + } + } +} + +//============================================================================== +bool LibraryModule::fileTargetMatches (ProjectExporter& exporter, const String& target) +{ + if (target.startsWithChar ('!')) + return ! fileTargetMatches (exporter, target.substring (1).trim()); + + if (target == "xcode") return exporter.isXcode(); + if (target == "msvc") return exporter.isVisualStudio(); + if (target == "linux") return exporter.isLinux(); + + return true; +} + +void LibraryModule::findWildcardMatches (const File& localModuleFolder, const String& wildcardPath, Array& result) const +{ + String path (wildcardPath.upToLastOccurrenceOf ("/", false, false)); + String wildCard (wildcardPath.fromLastOccurrenceOf ("/", false, false)); + + Array tempList; + FileSorter sorter; + + DirectoryIterator iter (localModuleFolder.getChildFile (path), false, wildCard); + while (iter.next()) + if (! iter.getFile().isHidden()) + tempList.addSorted (sorter, iter.getFile()); + + result.addArray (tempList); +} + +void LibraryModule::findAndAddCompiledCode (ProjectExporter& exporter, ProjectSaver& projectSaver, + const File& localModuleFolder, Array& result) const +{ + const var compileArray (moduleInfo ["compile"]); // careful to keep this alive while the array is in use! + const Array* const files = compileArray.getArray(); + + if (files != nullptr) + { + for (int i = 0; i < files->size(); ++i) + { + const var& file = files->getReference(i); + const String filename (file ["file"].toString()); + + if (filename.isNotEmpty() + && fileTargetMatches (exporter, file ["target"].toString())) + { + const File compiledFile (localModuleFolder.getChildFile (filename)); + result.add (compiledFile); + + Project::Item item (projectSaver.addFileToGeneratedGroup (compiledFile)); + + if (file ["warnings"].toString().equalsIgnoreCase ("disabled")) + item.getShouldInhibitWarningsValue() = true; + + if (file ["stdcall"]) + item.getShouldUseStdCallValue() = true; + } + } + } +} + +static void addFileWithGroups (Project::Item& group, const RelativePath& file, const String& path) +{ + const int slash = path.indexOfChar (File::separator); + + if (slash >= 0) + { + const String topLevelGroup (path.substring (0, slash)); + const String remainingPath (path.substring (slash + 1)); + + Project::Item newGroup (group.getOrCreateSubGroup (topLevelGroup)); + addFileWithGroups (newGroup, file, remainingPath); + } + else + { + if (! group.containsChildForFile (file)) + group.addRelativeFile (file, -1, false); + } +} + +void LibraryModule::addBrowsableCode (ProjectExporter& exporter, const Array& compiled, const File& localModuleFolder) const +{ + if (sourceFiles.size() == 0) + { + const var filesArray (moduleInfo ["browse"]); + const Array* const files = filesArray.getArray(); + + for (int i = 0; i < files->size(); ++i) + findWildcardMatches (localModuleFolder, files->getReference(i), sourceFiles); + } + + Project::Item sourceGroup (Project::Item::createGroup (exporter.getProject(), getID(), "__mainsourcegroup" + getID())); + + const RelativePath moduleFromProject (getModuleOrLocalCopyRelativeToProject (exporter, localModuleFolder)); + + for (int i = 0; i < sourceFiles.size(); ++i) + { + const String pathWithinModule (sourceFiles.getReference(i).getRelativePathFrom (localModuleFolder)); + + // (Note: in exporters like MSVC we have to avoid adding the same file twice, even if one of those instances + // is flagged as being excluded from the build, because this overrides the other and it fails to compile) + if (exporter.canCopeWithDuplicateFiles() || ! compiled.contains (sourceFiles.getReference(i))) + addFileWithGroups (sourceGroup, + moduleFromProject.getChildFile (pathWithinModule), + pathWithinModule); + } + + sourceGroup.addFile (localModuleFolder.getChildFile (moduleFile.getRelativePathFrom (moduleFolder)), -1, false); + sourceGroup.addFile (getInclude (localModuleFolder), -1, false); + + exporter.getModulesGroup().state.addChild (sourceGroup.state.createCopy(), -1, nullptr); +} diff --git a/extras/Introjucer/Source/Project/jucer_Module.h b/extras/Introjucer/Source/Project/jucer_Module.h new file mode 100644 index 0000000000..e73e0ee7aa --- /dev/null +++ b/extras/Introjucer/Source/Project/jucer_Module.h @@ -0,0 +1,148 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCER_MODULE_JUCEHEADER__ +#define __JUCER_MODULE_JUCEHEADER__ + +#include "../jucer_Headers.h" +#include "jucer_Project.h" +class ProjectExporter; +class ProjectSaver; + +//============================================================================== +class LibraryModule +{ +public: + LibraryModule (const File& file); + LibraryModule (const var& moduleInfo); + + bool isValid() const; + + String getID() const { return moduleInfo ["id"].toString(); } + String getVersion() const { return moduleInfo ["version"].toString(); } + String getName() const { return moduleInfo ["name"].toString(); } + String getDescription() const { return moduleInfo ["description"].toString(); } + + void writeIncludes (ProjectSaver&, OutputStream&); + void prepareExporter (ProjectExporter&, ProjectSaver&) const; + void createPropertyEditors (const ProjectExporter&, PropertyListBuilder&) const; + void getConfigFlags (Project&, OwnedArray& flags) const; + + static String getInfoFileName() { return "juce_module_info"; } + + var moduleInfo; + +private: + File moduleFile, moduleFolder; + mutable Array sourceFiles; + + File getInclude (const File& folder) const; + File getLocalIncludeFolder (ProjectSaver& projectSaver) const; + static bool fileTargetMatches (ProjectExporter& exporter, const String& target); + + struct FileSorter + { + static int compareElements (const File& f1, const File& f2) + { + return f1.getFileName().compareIgnoreCase (f2.getFileName()); + } + }; + + void findWildcardMatches (const File& localModuleFolder, const String& wildcardPath, Array& result) const; + void findAndAddCompiledCode (ProjectExporter&, ProjectSaver&, const File& localModuleFolder, Array& result) const; + void addBrowsableCode (ProjectExporter&, const Array& compiled, const File& localModuleFolder) const; + void createLocalHeaderWrapper (ProjectSaver&, const File& originalHeader, const File& localHeader) const; + RelativePath getModuleRelativeToProject (ProjectExporter&) const; + RelativePath getModuleOrLocalCopyRelativeToProject (ProjectExporter&, const File& localModuleFolder) const; + + bool isPluginClient() const; + bool isAUPluginHost (const Project&) const; + bool isVSTPluginHost (const Project&) const; +}; + +//============================================================================== +class ModuleList +{ +public: + ModuleList(); + ModuleList (const ModuleList&); + ModuleList& operator= (const ModuleList&); + + //============================================================================== + void rescan (const File& newModulesFolder); + void rescan(); + File getModulesFolder() const { return moduleFolder; } + File getModuleFolder (const String& uid) const; + + bool loadFromWebsite(); + + LibraryModule* loadModule (const String& uid) const; + + void getDependencies (const String& moduleID, StringArray& dependencies) const; + void createDependencies (const String& moduleID, OwnedArray& modules) const; + + //============================================================================== + struct Module + { + LibraryModule* create() const; + + String uid, version, name, description; + File file; + URL url; + + bool operator== (const Module&) const; + bool operator!= (const Module&) const; + }; + + const Module* findModuleInfo (const String& uid) const; + + bool operator== (const ModuleList&) const; + + //============================================================================== + static bool isJuceFolder (const File& folder); + static bool isModulesFolder (const File& folder); + static bool isJuceOrModulesFolder (const File& folder); + + static File getDefaultModulesFolder (Project*); + static bool isLocalModulesFolderValid(); + + static File getLocalModulesFolder (Project*); + static void setLocalModulesFolder (const File& newFile); + + static File getModulesFolderForJuceOrModulesFolder (const File& f); + + StringArray getExtraDependenciesNeeded (Project&, const Module&); + + //============================================================================== + OwnedArray modules; + +private: + File moduleFolder; + + void sort(); +}; + + +#endif // __JUCER_MODULE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_NewFileWizard.cpp b/extras/Introjucer/Source/Project/jucer_NewFileWizard.cpp index 2c5e07b24b..95b723ebd2 100644 --- a/extras/Introjucer/Source/Project/jucer_NewFileWizard.cpp +++ b/extras/Introjucer/Source/Project/jucer_NewFileWizard.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -31,7 +31,7 @@ namespace { bool fillInNewCppFileTemplate (const File& file, const Project::Item& item, const char* templateName) { - String s = item.getProject().getFileTemplate (templateName) + String s = item.project.getFileTemplate (templateName) .replace ("FILENAME", file.getFileName(), false) .replace ("DATE", Time::getCurrentTime().toString (true, true, true), false) .replace ("AUTHOR", SystemStats::getFullUserName(), false) @@ -64,7 +64,7 @@ public: { if (fillInNewCppFileTemplate (newFile, parent, "jucer_NewCppFileTemplate_cpp")) { - parent.addFile (newFile, 0); + parent.addFile (newFile, 0, true); return true; } @@ -93,7 +93,7 @@ public: { if (fillInNewCppFileTemplate (newFile, parent, "jucer_NewCppFileTemplate_h")) { - parent.addFile (newFile, 0); + parent.addFile (newFile, 0, true); return true; } diff --git a/extras/Introjucer/Source/Project/jucer_NewFileWizard.h b/extras/Introjucer/Source/Project/jucer_NewFileWizard.h index 99239611c6..f207c8a639 100644 --- a/extras/Introjucer/Source/Project/jucer_NewFileWizard.h +++ b/extras/Introjucer/Source/Project/jucer_NewFileWizard.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Project/jucer_NewProjectWizard.cpp b/extras/Introjucer/Source/Project/jucer_NewProjectWizard.cpp index ffbfe3ce95..079641609f 100644 --- a/extras/Introjucer/Source/Project/jucer_NewProjectWizard.cpp +++ b/extras/Introjucer/Source/Project/jucer_NewProjectWizard.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -25,6 +25,39 @@ #include "jucer_NewProjectWizard.h" #include "jucer_ProjectType.h" +#include "jucer_Module.h" +#include "../Project Saving/jucer_ProjectExporter.h" +#include "../Application/jucer_Application.h" +#include "../Application/jucer_MainWindow.h" + +static void createFileCreationOptionComboBox (Component& setupComp, + OwnedArray& itemsCreated, + const char** types) +{ + ComboBox* c = new ComboBox(); + itemsCreated.add (c); + setupComp.addChildAndSetID (c, "filesToCreate"); + + const char* fileOptions[] = { "Create a Main.cpp file", + "Create a Main.cpp file and a basic window", + "Don't create any files", 0 }; + + c->addItemList (StringArray (fileOptions), 1); + c->setSelectedId (1, false); + + Label* l = new Label (String::empty, "Files to Auto-Generate:"); + l->attachToComponent (c, true); + itemsCreated.add (l); + + c->setBounds ("parent.width / 2 + 160, 10, parent.width - 10, top + 22"); +} + +static void setExecutableNameForAllTargets (Project& project, const String& exeName) +{ + for (Project::ExporterIterator exporter (project); exporter.next();) + for (ProjectExporter::ConfigIterator config (*exporter); config.next();) + config->getTargetBinaryName() = exeName; +} //============================================================================== class GUIAppWizard : public NewProjectWizard @@ -35,20 +68,22 @@ public: String getName() { return "GUI Application"; } String getDescription() { return "Creates a standard application"; } - void addItemsToAlertWindow (AlertWindow& aw) + void addSetupItems (Component& setupComp, OwnedArray& itemsCreated) { const char* fileOptions[] = { "Create a Main.cpp file", "Create a Main.cpp file and a basic window", "Don't create any files", 0 }; - aw.addComboBox ("files", StringArray (fileOptions), "Files to Auto-Generate"); + createFileCreationOptionComboBox (setupComp, itemsCreated, fileOptions); } - String processResultsFromAlertWindow (AlertWindow& aw) + Result processResultsFromSetupItems (Component& setupComp) { + ComboBox* cb = dynamic_cast (setupComp.findChildWithID ("filesToCreate")); + jassert (cb != nullptr); createMainCpp = createWindow = false; - switch (aw.getComboBoxComponent ("files")->getSelectedItemIndex()) + switch (cb->getSelectedItemIndex()) { case 0: createMainCpp = true; break; case 1: createMainCpp = createWindow = true; break; @@ -56,7 +91,7 @@ public: default: jassertfalse; break; } - return String::empty; + return Result::ok(); } bool initialiseProject (Project& project) @@ -73,8 +108,7 @@ public: Project::Item sourceGroup (project.getMainGroup().addNewSubGroup ("Source", 0)); - for (int i = project.getNumConfigurations(); --i >= 0;) - project.getConfiguration(i).getTargetBinaryName() = File::createLegalFileName (appTitle); + setExecutableNameForAllTargets (project, File::createLegalFileName (appTitle)); String appHeaders (CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), mainCppFile)); String initCode, shutdownCode, anotherInstanceStartedCode, privateMembers, memberInitialisers; @@ -101,8 +135,8 @@ public: if (! FileHelpers::overwriteFileWithNewDataIfDifferent (mainWindowCpp, windowCpp)) failedFiles.add (mainWindowCpp.getFullPathName()); - sourceGroup.addFile (mainWindowCpp, -1); - sourceGroup.addFile (mainWindowH, -1); + sourceGroup.addFile (mainWindowCpp, -1, true); + sourceGroup.addFile (mainWindowH, -1, false); } if (createMainCpp) @@ -122,7 +156,7 @@ public: if (! FileHelpers::overwriteFileWithNewDataIfDifferent (mainCppFile, mainCpp)) failedFiles.add (mainCppFile.getFullPathName()); - sourceGroup.addFile (mainCppFile, -1); + sourceGroup.addFile (mainCppFile, -1, true); } return true; @@ -141,26 +175,29 @@ public: String getName() { return "Console Application"; } String getDescription() { return "Creates a command-line application with no GUI features"; } - void addItemsToAlertWindow (AlertWindow& aw) + void addSetupItems (Component& setupComp, OwnedArray& itemsCreated) { const char* fileOptions[] = { "Create a Main.cpp file", "Don't create any files", 0 }; - aw.addComboBox ("files", StringArray (fileOptions), "Files to Auto-Generate"); + createFileCreationOptionComboBox (setupComp, itemsCreated, fileOptions); } - String processResultsFromAlertWindow (AlertWindow& aw) + Result processResultsFromSetupItems (Component& setupComp) { + ComboBox* cb = dynamic_cast (setupComp.findChildWithID ("filesToCreate")); + jassert (cb != nullptr); + createMainCpp = false; - switch (aw.getComboBoxComponent ("files")->getSelectedItemIndex()) + switch (cb->getSelectedItemIndex()) { case 0: createMainCpp = true; break; case 1: break; default: jassertfalse; break; } - return String::empty; + return Result::ok(); } bool initialiseProject (Project& project) @@ -174,8 +211,7 @@ public: Project::Item sourceGroup (project.getMainGroup().addNewSubGroup ("Source", 0)); - for (int i = project.getNumConfigurations(); --i >= 0;) - project.getConfiguration(i).getTargetBinaryName() = File::createLegalFileName (appTitle); + setExecutableNameForAllTargets (project, File::createLegalFileName (appTitle)); if (createMainCpp) { @@ -187,7 +223,7 @@ public: if (! FileHelpers::overwriteFileWithNewDataIfDifferent (mainCppFile, mainCpp)) failedFiles.add (mainCppFile.getFullPathName()); - sourceGroup.addFile (mainCppFile, -1); + sourceGroup.addFile (mainCppFile, -1, true); } return true; @@ -206,13 +242,13 @@ public: String getName() { return "Audio Plug-In"; } String getDescription() { return "Creates an audio plugin project"; } - void addItemsToAlertWindow (AlertWindow& aw) + void addSetupItems (Component& setupComp, OwnedArray& itemsCreated) { } - String processResultsFromAlertWindow (AlertWindow& aw) + Result processResultsFromSetupItems (Component& setupComp) { - return String::empty; + return Result::ok(); } bool initialiseProject (Project& project) @@ -230,15 +266,14 @@ public: File editorHFile = editorCppFile.withFileExtension (".h"); project.getProjectTypeValue() = ProjectType::getAudioPluginTypeName(); + project.addModule ("juce_audio_plugin_client", true); Project::Item sourceGroup (project.getMainGroup().addNewSubGroup ("Source", 0)); project.getConfigFlag ("JUCE_QUICKTIME") = Project::configFlagDisabled; // disabled because it interferes with RTAS build on PC - for (int i = project.getNumConfigurations(); --i >= 0;) - project.getConfiguration(i).getTargetBinaryName() = File::createLegalFileName (appTitle); + setExecutableNameForAllTargets (project, File::createLegalFileName (appTitle)); String appHeaders (CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), filterCppFile)); - appHeaders << newLine << CodeHelpers::createIncludeStatement (project.getPluginCharacteristicsFile(), filterCppFile); String filterCpp = project.getFileTemplate ("jucer_AudioPluginFilterTemplate_cpp") .replace ("FILTERHEADERS", CodeHelpers::createIncludeStatement (filterHFile, filterCppFile) @@ -275,49 +310,19 @@ public: if (! FileHelpers::overwriteFileWithNewDataIfDifferent (editorHFile, editorH)) failedFiles.add (editorHFile.getFullPathName()); - sourceGroup.addFile (filterCppFile, -1); - sourceGroup.addFile (filterHFile, -1); - sourceGroup.addFile (editorCppFile, -1); - sourceGroup.addFile (editorHFile, -1); + sourceGroup.addFile (filterCppFile, -1, true); + sourceGroup.addFile (filterHFile, -1, false); + sourceGroup.addFile (editorCppFile, -1, true); + sourceGroup.addFile (editorHFile, -1, false); return true; } }; //============================================================================== -/*class BrowserPluginAppWizard : public NewProjectWizard -{ -public: - BrowserPluginAppWizard() {} - ~BrowserPluginAppWizard() {} - - String getName() { return "Browser Plug-In"; } - String getDescription() { return "Creates an audio plugin project"; } - - void addItemsToAlertWindow (AlertWindow& aw) - { - } - - String processResultsFromAlertWindow (AlertWindow& aw) - { - return String::empty; - } - - bool initialiseProject (Project& project) - { - return true; - } -};*/ - //============================================================================== -//============================================================================== -NewProjectWizard::NewProjectWizard() -{ -} - -NewProjectWizard::~NewProjectWizard() -{ -} +NewProjectWizard::NewProjectWizard() {} +NewProjectWizard::~NewProjectWizard() {} StringArray NewProjectWizard::getWizards() { @@ -351,71 +356,42 @@ NewProjectWizard* NewProjectWizard::createWizard (int index) return 0; } +File& NewProjectWizard::getLastWizardFolder() +{ + #if JUCE_WINDOWS + static File lastFolder (File::getSpecialLocation (File::userDocumentsDirectory)); + #else + static File lastFolder (File::getSpecialLocation (File::userHomeDirectory)); + #endif + return lastFolder; +} + //============================================================================== -Project* NewProjectWizard::runWizard (Component* ownerWindow_) +Project* NewProjectWizard::runWizard (Component* ownerWindow_, + const String& projectName, + const File& targetFolder_) { ownerWindow = ownerWindow_; + appTitle = projectName; + targetFolder = targetFolder_; + if (! targetFolder.exists()) { - static File newProjectFolder; - FileChooser fc ("New Juce Project", newProjectFolder, "*"); - - if (! fc.browseForDirectory()) - return 0; - - targetFolder = newProjectFolder = fc.getResult(); - - if (! newProjectFolder.exists()) - { - if (! newProjectFolder.createDirectory()) - failedFiles.add (newProjectFolder.getFullPathName()); - } - - if (FileHelpers::containsAnyNonHiddenFiles (newProjectFolder)) - { - if (! AlertWindow::showOkCancelBox (AlertWindow::InfoIcon, "New Juce Project", - "The folder you chose isn't empty - are you sure you want to create the project there?\n\nAny existing files with the same names may be overwritten by the new files.")) - return 0; - } + if (! targetFolder.createDirectory()) + failedFiles.add (targetFolder.getFullPathName()); } - - if (failedFiles.size() == 0) + else if (FileHelpers::containsAnyNonHiddenFiles (targetFolder)) { - AlertWindow aw ("New " + getName(), - "Please choose some basic project options...", - AlertWindow::NoIcon, ownerWindow); - - aw.addTextEditor ("name", "", "Project Name", false); - - addItemsToAlertWindow (aw); - - aw.addButton ("Create Project", 1, KeyPress (KeyPress::returnKey)); - aw.addButton ("Cancel", 0, KeyPress (KeyPress::escapeKey)); - - for (;;) - { - if (aw.runModalLoop() == 0) - return 0; - - appTitle = aw.getTextEditorContents ("name").trim(); - - String error (processResultsFromAlertWindow (aw)); - - if (error.isEmpty() && appTitle.isEmpty()) - error = "Please enter a sensible project title!"; - - if (error.isEmpty()) - break; - - aw.setColour (AlertWindow::textColourId, Colours::red); - aw.setMessage (error); - } + if (! AlertWindow::showOkCancelBox (AlertWindow::InfoIcon, "New Juce Project", + "The folder you chose isn't empty - are you sure you want to create the project there?\n\nAny existing files with the same names may be overwritten by the new files.")) + return nullptr; } projectFile = targetFolder.getChildFile (File::createLegalFileName (appTitle)) .withFileExtension (Project::projectFileExtension); - ScopedPointer project (new Project (projectFile)); + ScopedPointer project (new Project (projectFile)); + project->addDefaultModules (true); if (failedFiles.size() == 0) { @@ -424,10 +400,10 @@ Project* NewProjectWizard::runWizard (Component* ownerWindow_) project->setBundleIdentifierToDefault(); if (! initialiseProject (*project)) - return 0; + return nullptr; if (project->save (false, true) != FileBasedDocument::savedOk) - return 0; + return nullptr; project->setChangedFlag (false); } @@ -438,48 +414,154 @@ Project* NewProjectWizard::runWizard (Component* ownerWindow_) "Errors in Creating Project!", "The following files couldn't be written:\n\n" + failedFiles.joinIntoString ("\n", 0, 10)); - return 0; + return nullptr; } return project.release(); } -Project* NewProjectWizard::runNewProjectWizard (Component* ownerWindow) +//============================================================================== +class NewProjectWizard::WizardComp : public Component, + private ButtonListener, + private ComboBoxListener, + private TextEditorListener { - ScopedPointer wizard; +public: + WizardComp() + : projectName ("Project name"), + nameLabel (String::empty, "Project Name:"), + typeLabel (String::empty, "Project Type:"), + fileBrowser (FileBrowserComponent::saveMode | FileBrowserComponent::canSelectDirectories, + getLastWizardFolder(), nullptr, nullptr), + fileOutline (String::empty, "Project Folder:"), + createButton ("Create..."), + cancelButton ("Cancel") + { + setOpaque (true); + setSize (600, 500); + + addChildAndSetID (&projectName, "projectName"); + projectName.setText ("NewProject"); + projectName.setBounds ("100, 14, parent.width / 2 - 10, top + 22"); + nameLabel.attachToComponent (&projectName, true); + projectName.addListener (this); + + addChildAndSetID (&projectType, "projectType"); + projectType.addItemList (getWizards(), 1); + projectType.setSelectedId (1, true); + projectType.setBounds ("100, projectName.bottom + 4, projectName.right, top + 22"); + typeLabel.attachToComponent (&projectType, true); + projectType.addListener (this); + + addChildAndSetID (&fileOutline, "fileOutline"); + fileOutline.setColour (GroupComponent::outlineColourId, Colours::black.withAlpha (0.2f)); + fileOutline.setTextLabelPosition (Justification::centred); + fileOutline.setBounds ("10, projectType.bottom + 20, projectType.right, parent.height - 10"); + + addChildAndSetID (&fileBrowser, "fileBrowser"); + fileBrowser.setBounds ("fileOutline.left + 10, fileOutline.top + 20, fileOutline.right - 10, fileOutline.bottom - 12"); + fileBrowser.setFilenameBoxLabel ("Folder:"); + + addChildAndSetID (&createButton, "createButton"); + createButton.setBounds ("right - 140, bottom - 24, parent.width - 10, parent.height - 10"); + createButton.addListener (this); + + addChildAndSetID (&cancelButton, "cancelButton"); + cancelButton.setBounds ("right - 140, createButton.top, createButton.left - 10, createButton.bottom"); + cancelButton.addListener (this); + + updateCustomItems(); + updateCreateButton(); + } + void paint (Graphics& g) { - AlertWindow aw ("New Juce Project", - "Select the type of project to create, and the location of your Juce folder", - AlertWindow::NoIcon, - ownerWindow); + g.fillAll (Colour::greyLevel (0.93f)); + } - aw.addComboBox ("type", getWizards(), "Project Type"); + void buttonClicked (Button* b) + { + if (b == &createButton) + { + createProject(); + } + else + { + MainWindow* mw = dynamic_cast (getTopLevelComponent()); + jassert (mw != nullptr); - FilenameComponent juceFolderSelector ("Juce Library Location", StoredSettings::getInstance()->getLastKnownJuceFolder(), - true, true, false, "*", String::empty, "(Please select the folder containing Juce!)"); - juceFolderSelector.setSize (350, 22); + JucerApplication::getApp()->closeWindow (mw); + } + } - aw.addCustomComponent (&juceFolderSelector); + void createProject() + { + MainWindow* mw = Component::findParentComponentOfClass(); + jassert (mw != nullptr); - aw.addButton ("Next", 1, KeyPress (KeyPress::returnKey)); - aw.addButton ("Cancel", 0, KeyPress (KeyPress::escapeKey)); + ScopedPointer wizard (createWizard()); - for (;;) + if (wizard != nullptr) { - if (aw.runModalLoop() == 0) - return 0; + Result result (wizard->processResultsFromSetupItems (*this)); - if (FileHelpers::isJuceFolder (juceFolderSelector.getCurrentFile())) + if (result.failed()) { - wizard = createWizard (aw.getComboBoxComponent ("type")->getSelectedItemIndex()); - break; + AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Create Project", result.getErrorMessage()); + return; } - aw.setColour (AlertWindow::textColourId, Colours::red); - aw.setMessage ("Please select a valid Juce folder for the project to use!"); + ScopedPointer project (wizard->runWizard (mw, projectName.getText(), + fileBrowser.getSelectedFile (0))); + + if (project != nullptr) + mw->setProject (project.release()); } } - return wizard != nullptr ? wizard->runWizard (ownerWindow) : 0; + void updateCustomItems() + { + customItems.clear(); + + ScopedPointer wizard (createWizard()); + + if (wizard != nullptr) + wizard->addSetupItems (*this, customItems); + } + + void comboBoxChanged (ComboBox*) + { + updateCustomItems(); + } + + void textEditorTextChanged (TextEditor&) + { + updateCreateButton(); + + fileBrowser.setFileName (File::createLegalFileName (projectName.getText())); + } + +private: + ComboBox projectType; + TextEditor projectName; + Label nameLabel, typeLabel; + FileBrowserComponent fileBrowser; + GroupComponent fileOutline; + TextButton createButton, cancelButton; + OwnedArray customItems; + + NewProjectWizard* createWizard() + { + return NewProjectWizard::createWizard (projectType.getSelectedItemIndex()); + } + + void updateCreateButton() + { + createButton.setEnabled (projectName.getText().trim().isNotEmpty()); + } +}; + +Component* NewProjectWizard::createComponent() +{ + return new WizardComp(); } diff --git a/extras/Introjucer/Source/Project/jucer_NewProjectWizard.h b/extras/Introjucer/Source/Project/jucer_NewProjectWizard.h index 53c1097b3c..5c6ae1dbfd 100644 --- a/extras/Introjucer/Source/Project/jucer_NewProjectWizard.h +++ b/extras/Introjucer/Source/Project/jucer_NewProjectWizard.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef __JUCER_PROJECTWIZARD_JUCEHEADER__ -#define __JUCER_PROJECTWIZARD_JUCEHEADER__ +#ifndef __JUCER_NEWPROJECTWIZARD_JUCEHEADER__ +#define __JUCER_NEWPROJECTWIZARD_JUCEHEADER__ #include "../jucer_Headers.h" #include "jucer_Project.h" @@ -41,14 +41,14 @@ public: static int getNumWizards(); static NewProjectWizard* createWizard (int index); - static Project* runNewProjectWizard (Component* ownerWindow); + static Component* createComponent(); //============================================================================== virtual String getName() = 0; virtual String getDescription() = 0; - virtual void addItemsToAlertWindow (AlertWindow& aw) = 0; - virtual String processResultsFromAlertWindow (AlertWindow& aw) = 0; + virtual void addSetupItems (Component& setupComp, OwnedArray& itemsCreated) = 0; + virtual Result processResultsFromSetupItems (Component& setupComp) = 0; virtual bool initialiseProject (Project& project) = 0; protected: @@ -59,10 +59,16 @@ protected: //============================================================================== NewProjectWizard(); - Project* runWizard (Component* ownerWindow); + Project* runWizard (Component* ownerWindow, + const String& projectName, + const File& targetFolder); + + class WizardComp; + friend class WizardComp; File getSourceFilesFolder() const { return projectFile.getSiblingFile ("Source"); } + static File& getLastWizardFolder(); }; -#endif // __JUCER_PROJECTWIZARD_JUCEHEADER__ +#endif // __JUCER_NEWPROJECTWIZARD_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_Project.cpp b/extras/Introjucer/Source/Project/jucer_Project.cpp index fba5d91e84..ee8e899b8e 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.cpp +++ b/extras/Introjucer/Source/Project/jucer_Project.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -25,9 +25,8 @@ #include "jucer_Project.h" #include "jucer_ProjectType.h" -#include "jucer_ProjectExporter.h" -#include "jucer_ResourceFile.h" -#include "jucer_ProjectSaver.h" +#include "../Project Saving/jucer_ProjectExporter.h" +#include "../Project Saving/jucer_ProjectSaver.h" #include "../Application/jucer_OpenDocumentManager.h" @@ -38,10 +37,10 @@ namespace Tags const Identifier projectMainGroup ("MAINGROUP"); const Identifier group ("GROUP"); const Identifier file ("FILE"); - const Identifier configurations ("CONFIGURATIONS"); - const Identifier configuration ("CONFIGURATION"); const Identifier exporters ("EXPORTFORMATS"); const Identifier configGroup ("JUCEOPTIONS"); + const Identifier modulesGroup ("MODULES"); + const Identifier module ("MODULE"); } const char* Project::projectFileExtension = ".jucer"; @@ -90,17 +89,17 @@ void Project::updateProjectSettings() void Project::setMissingDefaultValues() { - if (! projectRoot.hasProperty (Ids::id_)) - projectRoot.setProperty (Ids::id_, createAlphaNumericUID(), nullptr); + if (! projectRoot.hasProperty (ComponentBuilder::idProperty)) + projectRoot.setProperty (ComponentBuilder::idProperty, createAlphaNumericUID(), nullptr); // Create main file group if missing if (! projectRoot.getChildWithName (Tags::projectMainGroup).isValid()) { Item mainGroup (*this, ValueTree (Tags::projectMainGroup)); - projectRoot.addChild (mainGroup.getNode(), 0, 0); + projectRoot.addChild (mainGroup.state, 0, 0); } - getMainGroup().initialiseNodeValues(); + getMainGroup().initialiseMissingProperties(); if (getDocumentTitle().isEmpty()) setTitle ("Juce Project"); @@ -111,17 +110,13 @@ void Project::setMissingDefaultValues() if (! projectRoot.hasProperty (Ids::version)) getVersion() = "1.0.0"; - if (! projectRoot.hasProperty (Ids::juceLinkage)) - getJuceLinkageModeValue() = useAmalgamatedJuceViaMultipleTemplates; + updateOldStyleConfigList(); + moveOldPropertyFromProjectToAllExporters (Ids::bigIcon); + moveOldPropertyFromProjectToAllExporters (Ids::smallIcon); - const String juceFolderPath (getRelativePathForFile (StoredSettings::getInstance()->getLastKnownJuceFolder())); - - // Create configs group - if (! projectRoot.getChildWithName (Tags::configurations).isValid()) - { - projectRoot.addChild (ValueTree (Tags::configurations), 0, 0); - createDefaultConfigs(); - } + for (Project::ExporterIterator exporter (*this); exporter.next();) + if (exporter->getNumConfigurations() == 0) + exporter->createDefaultConfigs(); if (! projectRoot.getChildWithName (Tags::exporters).isValid()) createDefaultExporters(); @@ -130,6 +125,74 @@ void Project::setMissingDefaultValues() if (! projectRoot.hasProperty (Ids::bundleIdentifier)) setBundleIdentifierToDefault(); + + if (! projectRoot.getChildWithName (Tags::modulesGroup).isValid()) + addDefaultModules (false); +} + +void Project::updateOldStyleConfigList() +{ + ValueTree deprecatedConfigsList (projectRoot.getChildWithName (ProjectExporter::configurations)); + + if (deprecatedConfigsList.isValid()) + { + projectRoot.removeChild (deprecatedConfigsList, nullptr); + + for (Project::ExporterIterator exporter (*this); exporter.next();) + { + if (exporter->getNumConfigurations() == 0) + { + ValueTree newConfigs (deprecatedConfigsList.createCopy()); + + if (! exporter->isXcode()) + { + for (int j = newConfigs.getNumChildren(); --j >= 0;) + { + ValueTree config (newConfigs.getChild(j)); + + config.removeProperty (Ids::osxSDK, nullptr); + config.removeProperty (Ids::osxCompatibility, nullptr); + config.removeProperty (Ids::osxArchitecture, nullptr); + } + } + + exporter->settings.addChild (newConfigs, 0, nullptr); + } + } + } +} + +void Project::moveOldPropertyFromProjectToAllExporters (Identifier name) +{ + if (projectRoot.hasProperty (name)) + { + for (Project::ExporterIterator exporter (*this); exporter.next();) + exporter->settings.setProperty (name, projectRoot [name], nullptr); + + projectRoot.removeProperty (name, nullptr); + } +} + +void Project::addDefaultModules (bool shouldCopyFilesLocally) +{ + addModule ("juce_core", shouldCopyFilesLocally); + + if (! isConfigFlagEnabled ("JUCE_ONLY_BUILD_CORE_LIBRARY")) + { + addModule ("juce_events", shouldCopyFilesLocally); + addModule ("juce_graphics", shouldCopyFilesLocally); + addModule ("juce_data_structures", shouldCopyFilesLocally); + addModule ("juce_gui_basics", shouldCopyFilesLocally); + addModule ("juce_gui_extra", shouldCopyFilesLocally); + addModule ("juce_gui_audio", shouldCopyFilesLocally); + addModule ("juce_cryptography", shouldCopyFilesLocally); + addModule ("juce_video", shouldCopyFilesLocally); + addModule ("juce_opengl", shouldCopyFilesLocally); + addModule ("juce_audio_basics", shouldCopyFilesLocally); + addModule ("juce_audio_devices", shouldCopyFilesLocally); + addModule ("juce_audio_formats", shouldCopyFilesLocally); + addModule ("juce_audio_processors", shouldCopyFilesLocally); + } } //============================================================================== @@ -157,15 +220,7 @@ const String Project::loadDocument (const File& file) const String Project::saveDocument (const File& file) { updateProjectSettings(); - - { - // (getting these forces the values to be sanitised) - OwnedArray flags; - getAllConfigFlags (flags); - } - - if (FileHelpers::isJuceFolder (getLocalJuceFolder())) - StoredSettings::getInstance()->setLastKnownJuceFolder (getLocalJuceFolder().getFullPathName()); + sanitiseConfigFlags(); StoredSettings::getInstance()->recentFiles.addFile (file); @@ -192,9 +247,6 @@ void Project::valueTreePropertyChanged (ValueTree& tree, const Identifier& prope if (property == Ids::projectType) setMissingDefaultValues(); - if (getProjectType().isLibrary()) - getJuceLinkageModeValue() = notLinkedToJuce; - changed(); } @@ -271,35 +323,14 @@ const ProjectType& Project::getProjectType() const return *type; } -const char* const Project::notLinkedToJuce = "none"; -const char* const Project::useLinkedJuce = "static"; -const char* const Project::useAmalgamatedJuce = "amalg_big"; -const char* const Project::useAmalgamatedJuceViaSingleTemplate = "amalg_template"; -const char* const Project::useAmalgamatedJuceViaMultipleTemplates = "amalg_multi"; - -File Project::getLocalJuceFolder() -{ - ScopedPointer exp (ProjectExporter::createPlatformDefaultExporter (*this)); - - if (exp != nullptr) - { - File f (resolveFilename (exp->getJuceFolder().toString())); - - if (FileHelpers::isJuceFolder (f)) - return f; - } - - return StoredSettings::getInstance()->getLastKnownJuceFolder(); -} - //============================================================================== -void Project::createPropertyEditors (Array & props) +void Project::createPropertyEditors (PropertyListBuilder& props) { - props.add (new TextPropertyComponent (getProjectName(), "Project Name", 256, false)); - props.getLast()->setTooltip ("The name of the project."); + props.add (new TextPropertyComponent (getProjectName(), "Project Name", 256, false), + "The name of the project."); - props.add (new TextPropertyComponent (getVersion(), "Project Version", 16, false)); - props.getLast()->setTooltip ("The project's version number, This should be in the format major.minor.point"); + props.add (new TextPropertyComponent (getVersion(), "Project Version", 16, false), + "The project's version number, This should be in the format major.minor.point"); { StringArray projectTypeNames; @@ -316,46 +347,15 @@ void Project::createPropertyEditors (Array & props) props.add (new ChoicePropertyComponent (getProjectTypeValue(), "Project Type", projectTypeNames, projectTypeCodes)); } - const char* linkageTypes[] = { "Not linked to Juce", "Linked to Juce Static Library", "Include Juce Amalgamated Files", "Include Juce Source Code Directly (In a single file)", "Include Juce Source Code Directly (Split across several files)", 0 }; - const char* linkageTypeValues[] = { notLinkedToJuce, useLinkedJuce, useAmalgamatedJuce, useAmalgamatedJuceViaSingleTemplate, useAmalgamatedJuceViaMultipleTemplates, 0 }; - props.add (new ChoicePropertyComponent (getJuceLinkageModeValue(), "Juce Linkage Method", StringArray (linkageTypes), Array (linkageTypeValues))); - props.getLast()->setTooltip ("The method by which your project will be linked to Juce."); - - props.add (new TextPropertyComponent (getBundleIdentifier(), "Bundle Identifier", 256, false)); - props.getLast()->setTooltip ("A unique identifier for this product, mainly for use in Mac builds. It should be something like 'com.yourcompanyname.yourproductname'"); + props.add (new TextPropertyComponent (getBundleIdentifier(), "Bundle Identifier", 256, false), + "A unique identifier for this product, mainly for use in Mac builds. It should be something like 'com.yourcompanyname.yourproductname'"); - { - OwnedArray images; - findAllImageItems (images); - - StringArray choices; - Array ids; - - choices.add (""); - ids.add (var::null); - choices.add (String::empty); - ids.add (var::null); - - for (int i = 0; i < images.size(); ++i) - { - choices.add (images.getUnchecked(i)->getName().toString()); - ids.add (images.getUnchecked(i)->getID()); - } + getProjectType().createPropertyEditors (*this, props); - props.add (new ChoicePropertyComponent (getSmallIconImageItemID(), "Icon (small)", choices, ids)); - props.getLast()->setTooltip ("Sets an icon to use for the executable."); + props.add (new TextPropertyComponent (getProjectPreprocessorDefs(), "Preprocessor definitions", 32768, false), + "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); - props.add (new ChoicePropertyComponent (getBigIconImageItemID(), "Icon (large)", choices, ids)); - props.getLast()->setTooltip ("Sets an icon to use for the executable."); - } - - getProjectType().createPropertyEditors(*this, props); - - props.add (new TextPropertyComponent (getProjectPreprocessorDefs(), "Preprocessor definitions", 32768, false)); - props.getLast()->setTooltip ("Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); - - for (int i = props.size(); --i >= 0;) - props.getUnchecked(i)->setPreferredHeight (22); + props.setPreferredHeight (22); } String Project::getVersionAsHex() const @@ -373,26 +373,6 @@ String Project::getVersionAsHex() const return "0x" + String::toHexString (value); } -Image Project::getBigIcon() -{ - Item icon (getMainGroup().findItemWithID (getBigIconImageItemID().toString())); - - if (icon.isValid()) - return ImageCache::getFromFile (icon.getFile()); - - return Image::null; -} - -Image Project::getSmallIcon() -{ - Item icon (getMainGroup().findItemWithID (getSmallIconImageItemID().toString())); - - if (icon.isValid()) - return ImageCache::getFromFile (icon.getFile()); - - return Image::null; -} - StringPairArray Project::getPreprocessorDefs() const { return parsePreprocessorDefs (getProjectPreprocessorDefs().toString()); @@ -423,50 +403,46 @@ void Project::findAllImageItems (OwnedArray& items) } //============================================================================== -Project::Item::Item (Project& project_, const ValueTree& node_) - : project (&project_), node (node_) +Project::Item::Item (Project& project_, const ValueTree& state_) + : project (project_), state (state_) { } Project::Item::Item (const Item& other) - : project (other.project), node (other.node) + : project (other.project), state (other.state) { } -Project::Item& Project::Item::operator= (const Project::Item& other) -{ - project = other.project; - node = other.node; - return *this; -} +Project::Item Project::Item::createCopy() { Item i (*this); i.state = i.state.createCopy(); return i; } -Project::Item::~Item() -{ -} - -Project::Item Project::Item::createCopy() { Item i (*this); i.node = i.node.createCopy(); return i; } - -String Project::Item::getID() const { return node [Ids::id_]; } -void Project::Item::setID (const String& newID) { node.setProperty (Ids::id_, newID, nullptr); } +String Project::Item::getID() const { return state [ComponentBuilder::idProperty]; } +void Project::Item::setID (const String& newID) { state.setProperty (ComponentBuilder::idProperty, newID, nullptr); } String Project::Item::getImageFileID() const { return "id:" + getID(); } -Project::Item Project::Item::createGroup (Project& project, const String& name) +Image Project::Item::loadAsImageFile() const +{ + return isValid() ? ImageCache::getFromFile (getFile()) + : Image::null; +} + +Project::Item Project::Item::createGroup (Project& project, const String& name, const String& uid) { Item group (project, ValueTree (Tags::group)); - group.initialiseNodeValues(); + group.setID (uid); + group.initialiseMissingProperties(); group.getName() = name; return group; } -bool Project::Item::isFile() const { return node.hasType (Tags::file); } -bool Project::Item::isGroup() const { return node.hasType (Tags::group) || isMainGroup(); } -bool Project::Item::isMainGroup() const { return node.hasType (Tags::projectMainGroup); } +bool Project::Item::isFile() const { return state.hasType (Tags::file); } +bool Project::Item::isGroup() const { return state.hasType (Tags::group) || isMainGroup(); } +bool Project::Item::isMainGroup() const { return state.hasType (Tags::projectMainGroup); } bool Project::Item::isImageFile() const { return isFile() && getFile().hasFileExtension ("png;jpg;jpeg;gif;drawable"); } Project::Item Project::Item::findItemWithID (const String& targetId) const { - if (node [Ids::id_] == targetId) + if (state [ComponentBuilder::idProperty] == targetId) return *this; if (isGroup()) @@ -479,7 +455,7 @@ Project::Item Project::Item::findItemWithID (const String& targetId) const } } - return Item (*project, ValueTree::invalid); + return Item (project, ValueTree::invalid); } bool Project::Item::canContain (const Item& child) const @@ -494,25 +470,21 @@ bool Project::Item::canContain (const Item& child) const return false; } -bool Project::Item::shouldBeAddedToTargetProject() const -{ - return isFile(); -} +bool Project::Item::shouldBeAddedToTargetProject() const { return isFile(); } -bool Project::Item::shouldBeCompiled() const { return getShouldCompileValue().getValue(); } -Value Project::Item::getShouldCompileValue() const { return node.getPropertyAsValue (Ids::compile, getUndoManager()); } +bool Project::Item::shouldBeCompiled() const { return getShouldCompileValue().getValue(); } +Value Project::Item::getShouldCompileValue() const { return state.getPropertyAsValue (Ids::compile, getUndoManager()); } bool Project::Item::shouldBeAddedToBinaryResources() const { return getShouldAddToResourceValue().getValue(); } -Value Project::Item::getShouldAddToResourceValue() const { return node.getPropertyAsValue (Ids::resource, getUndoManager()); } - -Value Project::Item::getShouldInhibitWarningsValue() const { return node.getPropertyAsValue (Ids::noWarnings, getUndoManager()); } -Value Project::Item::getShouldUseStdCallValue() const { return node.getPropertyAsValue (Ids::useStdCall, nullptr); } +Value Project::Item::getShouldAddToResourceValue() const { return state.getPropertyAsValue (Ids::resource, getUndoManager()); } +Value Project::Item::getShouldInhibitWarningsValue() const { return state.getPropertyAsValue (Ids::noWarnings, getUndoManager()); } +Value Project::Item::getShouldUseStdCallValue() const { return state.getPropertyAsValue (Ids::useStdCall, nullptr); } String Project::Item::getFilePath() const { if (isFile()) - return node [Ids::file].toString(); + return state [Ids::file].toString(); else return String::empty; } @@ -520,14 +492,14 @@ String Project::Item::getFilePath() const File Project::Item::getFile() const { if (isFile()) - return getProject().resolveFilename (node [Ids::file].toString()); + return project.resolveFilename (state [Ids::file].toString()); else return File::nonexistent; } void Project::Item::setFile (const File& file) { - setFile (RelativePath (getProject().getRelativePathForFile (file), RelativePath::projectFolder)); + setFile (RelativePath (project.getRelativePathForFile (file), RelativePath::projectFolder)); jassert (getFile() == file); } @@ -535,8 +507,8 @@ void Project::Item::setFile (const RelativePath& file) { jassert (file.getRoot() == RelativePath::projectFolder); jassert (isFile()); - node.setProperty (Ids::file, file.toUnixStyle(), getUndoManager()); - node.setProperty (Ids::name, file.getFileName(), getUndoManager()); + state.setProperty (Ids::file, file.toUnixStyle(), getUndoManager()); + state.setProperty (Ids::name, file.getFileName(), getUndoManager()); } bool Project::Item::renameFile (const File& newFile) @@ -553,6 +525,11 @@ bool Project::Item::renameFile (const File& newFile) return false; } +bool Project::Item::containsChildForFile (const RelativePath& file) const +{ + return state.getChildWithProperty (Ids::file, file.toUnixStyle()).isValid(); +} + Project::Item Project::Item::findItemForFile (const File& file) const { if (getFile() == file) @@ -569,7 +546,7 @@ Project::Item Project::Item::findItemForFile (const File& file) const } } - return Item (getProject(), ValueTree::invalid); + return Item (project, ValueTree::invalid); } File Project::Item::determineGroupFolder() const @@ -595,7 +572,7 @@ File Project::Item::determineGroupFolder() const } else { - f = getProject().getFile().getParentDirectory(); + f = project.getFile().getParentDirectory(); if (f.getChildFile ("Source").isDirectory()) f = f.getChildFile ("Source"); @@ -604,35 +581,35 @@ File Project::Item::determineGroupFolder() const return f; } -void Project::Item::initialiseNodeValues() +void Project::Item::initialiseMissingProperties() { - if (! node.hasProperty (Ids::id_)) + if (! state.hasProperty (ComponentBuilder::idProperty)) setID (createAlphaNumericUID()); if (isFile()) { - node.setProperty (Ids::name, getFile().getFileName(), 0); + state.setProperty (Ids::name, getFile().getFileName(), 0); } else if (isGroup()) { for (int i = getNumChildren(); --i >= 0;) - getChild(i).initialiseNodeValues(); + getChild(i).initialiseMissingProperties(); } } Value Project::Item::getName() const { - return node.getPropertyAsValue (Ids::name, getUndoManager()); + return state.getPropertyAsValue (Ids::name, getUndoManager()); } void Project::Item::addChild (const Item& newChild, int insertIndex) { - node.addChild (newChild.getNode(), insertIndex, getUndoManager()); + state.addChild (newChild.state, insertIndex, getUndoManager()); } void Project::Item::removeItemFromProject() { - node.getParent().removeChild (node, getUndoManager()); + state.getParent().removeChild (state, getUndoManager()); } Project::Item Project::Item::getParent() const @@ -640,7 +617,7 @@ Project::Item Project::Item::getParent() const if (isMainGroup() || ! isGroup()) return *this; - return Item (getProject(), node.getParent()); + return Item (project, state.getParent()); } struct ItemSorter @@ -651,22 +628,56 @@ struct ItemSorter } }; -void Project::Item::sortAlphabetically() +struct ItemSorterWithGroupsAtStart { - ItemSorter sorter; - node.sort (sorter, getUndoManager(), true); + static int compareElements (const ValueTree& first, const ValueTree& second) + { + const bool firstIsGroup = first.hasType (Tags::group); + const bool secondIsGroup = second.hasType (Tags::group); + + if (firstIsGroup == secondIsGroup) + return first [Ids::name].toString().compareIgnoreCase (second [Ids::name].toString()); + else + return firstIsGroup ? -1 : 1; + } +}; + +void Project::Item::sortAlphabetically (bool keepGroupsAtStart) +{ + if (keepGroupsAtStart) + { + ItemSorterWithGroupsAtStart sorter; + state.sort (sorter, getUndoManager(), true); + } + else + { + ItemSorter sorter; + state.sort (sorter, getUndoManager(), true); + } +} + +Project::Item Project::Item::getOrCreateSubGroup (const String& name) +{ + for (int i = state.getNumChildren(); --i >= 0;) + { + const ValueTree child (state.getChild (i)); + if (child.getProperty (Ids::name) == name && child.hasType (Tags::group)) + return Item (project, child); + } + + return addNewSubGroup (name, -1); } Project::Item Project::Item::addNewSubGroup (const String& name, int insertIndex) { - Item group (createGroup (getProject(), name)); + Item group (createGroup (project, name, createGUID (getID() + name + String (getNumChildren())))); jassert (canContain (group)); addChild (group, insertIndex); return group; } -bool Project::Item::addFile (const File& file, int insertIndex) +bool Project::Item::addFile (const File& file, int insertIndex, const bool shouldCompile) { if (file == File::nonexistent || file.isHidden() || file.getFileName().startsWithChar ('.')) return false; @@ -678,28 +689,16 @@ bool Project::Item::addFile (const File& file, int insertIndex) DirectoryIterator iter (file, false, "*", File::findFilesAndDirectories); while (iter.next()) { - if (! getProject().getMainGroup().findItemForFile (iter.getFile()).isValid()) - group.addFile (iter.getFile(), -1); + if (! project.getMainGroup().findItemForFile (iter.getFile()).isValid()) + group.addFile (iter.getFile(), -1, shouldCompile); } - group.sortAlphabetically(); + group.sortAlphabetically (false); } else if (file.existsAsFile()) { - if (! getProject().getMainGroup().findItemForFile (file).isValid()) - { - Item item (getProject(), ValueTree (Tags::file)); - item.initialiseNodeValues(); - item.getName() = file.getFileName(); - item.getShouldCompileValue() = file.hasFileExtension ("cpp;mm;c;m;cc;cxx"); - item.getShouldAddToResourceValue() = getProject().shouldBeAddedToBinaryResourcesByDefault (file); - - if (canContain (item)) - { - item.setFile (file); - addChild (item, insertIndex); - } - } + if (! project.getMainGroup().findItemForFile (file).isValid()) + addFileUnchecked (file, insertIndex, shouldCompile); } else { @@ -709,13 +708,28 @@ bool Project::Item::addFile (const File& file, int insertIndex) return true; } +void Project::Item::addFileUnchecked (const File& file, int insertIndex, const bool shouldCompile) +{ + Item item (project, ValueTree (Tags::file)); + item.initialiseMissingProperties(); + item.getName() = file.getFileName(); + item.getShouldCompileValue() = shouldCompile && file.hasFileExtension ("cpp;mm;c;m;cc;cxx;r"); + item.getShouldAddToResourceValue() = project.shouldBeAddedToBinaryResourcesByDefault (file); + + if (canContain (item)) + { + item.setFile (file); + addChild (item, insertIndex); + } +} + bool Project::Item::addRelativeFile (const RelativePath& file, int insertIndex, bool shouldCompile) { - Item item (getProject(), ValueTree (Tags::file)); - item.initialiseNodeValues(); + Item item (project, ValueTree (Tags::file)); + item.initialiseMissingProperties(); item.getName() = file.getFileName(); item.getShouldCompileValue() = shouldCompile; - item.getShouldAddToResourceValue() = getProject().shouldBeAddedToBinaryResourcesByDefault (file); + item.getShouldAddToResourceValue() = project.shouldBeAddedToBinaryResourcesByDefault (file); if (canContain (item)) { @@ -738,7 +752,7 @@ const Drawable* Project::Item::getIcon() const } else if (isMainGroup()) { - return &(getProject().mainProjectIcon); + return &(project.mainProjectIcon); } return LookAndFeel::getDefaultLookAndFeel().getDefaultFolderImage(); @@ -750,19 +764,6 @@ ValueTree Project::getConfigNode() return projectRoot.getOrCreateChildWithName (Tags::configGroup, nullptr); } -void Project::getAllConfigFlags (OwnedArray & flags) -{ - OwnedArray modules; - getProjectType().createRequiredModules (*this, modules); - - int i; - for (i = 0; i < modules.size(); ++i) - modules.getUnchecked(i)->getConfigFlags (*this, flags); - - for (i = 0; i < flags.size(); ++i) - flags.getUnchecked(i)->value.referTo (getConfigFlag (flags.getUnchecked(i)->symbol)); -} - const char* const Project::configFlagDefault = "default"; const char* const Project::configFlagEnabled = "enabled"; const char* const Project::configFlagDisabled = "disabled"; @@ -783,197 +784,89 @@ bool Project::isConfigFlagEnabled (const String& name) const return projectRoot.getChildWithName (Tags::configGroup).getProperty (name) == configFlagEnabled; } -//============================================================================== -ValueTree Project::getConfigurations() const +void Project::sanitiseConfigFlags() { - return projectRoot.getChildWithName (Tags::configurations); -} + ValueTree configNode (getConfigNode()); -int Project::getNumConfigurations() const -{ - return getConfigurations().getNumChildren(); + for (int i = configNode.getNumProperties(); --i >= 0;) + { + const var value (configNode [configNode.getPropertyName(i)]); + + if (value != configFlagEnabled && value != configFlagDisabled) + configNode.removeProperty (configNode.getPropertyName(i), getUndoManagerFor (configNode)); + } } -Project::BuildConfiguration Project::getConfiguration (int index) +//============================================================================== +ValueTree Project::getModulesNode() { - jassert (index < getConfigurations().getNumChildren()); - return BuildConfiguration (this, getConfigurations().getChild (index)); + return projectRoot.getOrCreateChildWithName (Tags::modulesGroup, nullptr); } -bool Project::hasConfigurationNamed (const String& name) const +bool Project::isModuleEnabled (const String& moduleID) const { - const ValueTree configs (getConfigurations()); - for (int i = configs.getNumChildren(); --i >= 0;) - if (configs.getChild(i) [Ids::name].toString() == name) + ValueTree modules (projectRoot.getChildWithName (Tags::modulesGroup)); + + for (int i = 0; i < modules.getNumChildren(); ++i) + if (modules.getChild(i) [ComponentBuilder::idProperty] == moduleID) return true; return false; } -String Project::getUniqueConfigName (String name) const +Value Project::shouldShowAllModuleFilesInProject (const String& moduleID) { - String nameRoot (name); - while (CharacterFunctions::isDigit (nameRoot.getLastCharacter())) - nameRoot = nameRoot.dropLastCharacters (1); - - nameRoot = nameRoot.trim(); - - int suffix = 2; - while (hasConfigurationNamed (name)) - name = nameRoot + " " + String (suffix++); - - return name; + return getModulesNode().getChildWithProperty (ComponentBuilder::idProperty, moduleID) + .getPropertyAsValue (Ids::showAllCode, getUndoManagerFor (getModulesNode())); } -void Project::addNewConfiguration (BuildConfiguration* configToCopy) +Value Project::shouldCopyModuleFilesLocally (const String& moduleID) { - const String configName (getUniqueConfigName (configToCopy != nullptr ? configToCopy->config [Ids::name].toString() - : "New Build Configuration")); - - ValueTree configs (getConfigurations()); - - if (! configs.isValid()) - { - projectRoot.addChild (ValueTree (Tags::configurations), 0, getUndoManagerFor (projectRoot)); - configs = getConfigurations(); - } - - ValueTree newConfig (Tags::configuration); - if (configToCopy != nullptr) - newConfig = configToCopy->config.createCopy(); - - newConfig.setProperty (Ids::name, configName, 0); - - configs.addChild (newConfig, -1, getUndoManagerFor (configs)); -} - -void Project::deleteConfiguration (int index) -{ - ValueTree configs (getConfigurations()); - configs.removeChild (index, getUndoManagerFor (getConfigurations())); + return getModulesNode().getChildWithProperty (ComponentBuilder::idProperty, moduleID) + .getPropertyAsValue (Ids::useLocalCopy, getUndoManagerFor (getModulesNode())); } -void Project::createDefaultConfigs() +void Project::addModule (const String& moduleID, bool shouldCopyFilesLocally) { - for (int i = 0; i < 2; ++i) + if (! isModuleEnabled (moduleID)) { - addNewConfiguration (nullptr); - BuildConfiguration config = getConfiguration (i); + ValueTree module (Tags::module); + module.setProperty (ComponentBuilder::idProperty, moduleID, nullptr); - const bool debugConfig = i == 0; + ValueTree modules (getModulesNode()); + modules.addChild (module, -1, getUndoManagerFor (modules)); - config.getName() = debugConfig ? "Debug" : "Release"; - config.isDebug() = debugConfig; - config.getOptimisationLevel() = debugConfig ? 1 : 2; - config.getTargetBinaryName() = getProjectFilenameRoot(); + shouldShowAllModuleFilesInProject (moduleID) = true; } -} - -//============================================================================== -Project::BuildConfiguration::BuildConfiguration (Project* project_, const ValueTree& configNode) - : project (project_), - config (configNode) -{ -} - -Project::BuildConfiguration::BuildConfiguration (const BuildConfiguration& other) - : project (other.project), - config (other.config) -{ -} -const Project::BuildConfiguration& Project::BuildConfiguration::operator= (const BuildConfiguration& other) -{ - project = other.project; - config = other.config; - return *this; + if (shouldCopyFilesLocally) + shouldCopyModuleFilesLocally (moduleID) = true; } -Project::BuildConfiguration::~BuildConfiguration() +void Project::removeModule (const String& moduleID) { -} + ValueTree modules (getModulesNode()); -String Project::BuildConfiguration::getGCCOptimisationFlag() const -{ - const int level = (int) getOptimisationLevel().getValue(); - return String (level <= 1 ? "0" : (level == 2 ? "s" : "3")); + for (int i = 0; i < modules.getNumChildren(); ++i) + if (modules.getChild(i) [ComponentBuilder::idProperty] == moduleID) + modules.removeChild (i, getUndoManagerFor (modules)); } -const char* const Project::BuildConfiguration::osxVersionDefault = "default"; -const char* const Project::BuildConfiguration::osxVersion10_4 = "10.4 SDK"; -const char* const Project::BuildConfiguration::osxVersion10_5 = "10.5 SDK"; -const char* const Project::BuildConfiguration::osxVersion10_6 = "10.6 SDK"; - -const char* const Project::BuildConfiguration::osxArch_Default = "default"; -const char* const Project::BuildConfiguration::osxArch_Native = "Native"; -const char* const Project::BuildConfiguration::osxArch_32BitUniversal = "32BitUniversal"; -const char* const Project::BuildConfiguration::osxArch_64BitUniversal = "64BitUniversal"; -const char* const Project::BuildConfiguration::osxArch_64Bit = "64BitIntel"; - -void Project::BuildConfiguration::createPropertyEditors (Array & props) +void Project::createRequiredModules (const ModuleList& availableModules, OwnedArray& modules) const { - props.add (new TextPropertyComponent (getName(), "Name", 96, false)); - props.getLast()->setTooltip ("The name of this configuration."); - - props.add (new BooleanPropertyComponent (isDebug(), "Debug mode", "Debugging enabled")); - props.getLast()->setTooltip ("If enabled, this means that the configuration should be built with debug synbols."); - - const char* optimisationLevels[] = { "No optimisation", "Optimise for size and speed", "Optimise for maximum speed", 0 }; - const int optimisationLevelValues[] = { 1, 2, 3, 0 }; - props.add (new ChoicePropertyComponent (getOptimisationLevel(), "Optimisation", StringArray (optimisationLevels), Array (optimisationLevelValues))); - props.getLast()->setTooltip ("The optimisation level for this configuration"); - - props.add (new TextPropertyComponent (getTargetBinaryName(), "Binary name", 256, false)); - props.getLast()->setTooltip ("The filename to use for the destination binary executable file. Don't add a suffix to this, because platform-specific suffixes will be added for each target platform."); - - props.add (new TextPropertyComponent (getTargetBinaryRelativePath(), "Binary location", 1024, false)); - props.getLast()->setTooltip ("The folder in which the finished binary should be placed. Leave this blank to cause the binary to be placed in its default location in the build folder."); - - props.add (new TextPropertyComponent (getHeaderSearchPath(), "Header search path", 16384, false)); - props.getLast()->setTooltip ("Extra header search paths. Use semi-colons to separate multiple paths."); - - props.add (new TextPropertyComponent (getBuildConfigPreprocessorDefs(), "Preprocessor definitions", 32768, false)); - props.getLast()->setTooltip ("Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); - - if (getMacSDKVersion().toString().isEmpty()) - getMacSDKVersion() = osxVersionDefault; - - const char* osxVersions[] = { "Use Default", osxVersion10_4, osxVersion10_5, osxVersion10_6, 0 }; - const char* osxVersionValues[] = { osxVersionDefault, osxVersion10_4, osxVersion10_5, osxVersion10_6, 0 }; - - props.add (new ChoicePropertyComponent (getMacSDKVersion(), "OSX Base SDK Version", StringArray (osxVersions), Array (osxVersionValues))); - props.getLast()->setTooltip ("The version of OSX to link against in the XCode build."); - - if (getMacCompatibilityVersion().toString().isEmpty()) - getMacCompatibilityVersion() = osxVersionDefault; - - props.add (new ChoicePropertyComponent (getMacCompatibilityVersion(), "OSX Compatibility Version", StringArray (osxVersions), Array (osxVersionValues))); - props.getLast()->setTooltip ("The minimum version of OSX that the target binary will be compatible with."); - - const char* osxArch[] = { "Use Default", "Native architecture of build machine", "Universal Binary (32-bit)", "Universal Binary (64-bit)", "64-bit Intel", 0 }; - const char* osxArchValues[] = { osxArch_Default, osxArch_Native, osxArch_32BitUniversal, osxArch_64BitUniversal, osxArch_64Bit, 0 }; - - if (getMacArchitecture().toString().isEmpty()) - getMacArchitecture() = osxArch_Default; - - props.add (new ChoicePropertyComponent (getMacArchitecture(), "OSX Architecture", StringArray (osxArch), Array (osxArchValues))); - props.getLast()->setTooltip ("The type of OSX binary that will be produced."); - - for (int i = props.size(); --i >= 0;) - props.getUnchecked(i)->setPreferredHeight (22); + for (int i = 0; i < availableModules.modules.size(); ++i) + if (isModuleEnabled (availableModules.modules.getUnchecked(i)->uid)) + modules.add (availableModules.modules.getUnchecked(i)->create()); } -StringPairArray Project::BuildConfiguration::getAllPreprocessorDefs() const +int Project::getNumModules() const { - return mergePreprocessorDefs (project->getPreprocessorDefs(), - parsePreprocessorDefs (getBuildConfigPreprocessorDefs().toString())); + return projectRoot.getChildWithName (Tags::modulesGroup).getNumChildren(); } -StringArray Project::BuildConfiguration::getHeaderSearchPaths() const +String Project::getModuleID (int index) const { - StringArray s; - s.addTokens (getHeaderSearchPath().toString(), ";", String::empty); - return s; + return projectRoot.getChildWithName (Tags::modulesGroup).getChild (index) [ComponentBuilder::idProperty].toString(); } //============================================================================== @@ -1001,9 +894,9 @@ ProjectExporter* Project::createExporter (int index) return ProjectExporter::createExporter (*this, getExporters().getChild (index)); } -void Project::addNewExporter (int exporterIndex) +void Project::addNewExporter (const String& exporterName) { - ScopedPointer exp (ProjectExporter::createNewExporter (*this, exporterIndex)); + ScopedPointer exp (ProjectExporter::createNewExporter (*this, exporterName)); ValueTree exporters (getExporters()); exporters.addChild (exp->getSettings(), -1, getUndoManagerFor (exporters)); @@ -1020,8 +913,10 @@ void Project::createDefaultExporters() ValueTree exporters (getExporters()); exporters.removeAllChildren (getUndoManagerFor (exporters)); - for (int i = 0; i < ProjectExporter::getNumExporters(); ++i) - addNewExporter (i); + const StringArray exporterNames (ProjectExporter::getDefaultExporters()); + + for (int i = 0; i < exporterNames.size(); ++i) + addNewExporter (exporterNames[i]); } //============================================================================== @@ -1040,34 +935,21 @@ String Project::getFileTemplate (const String& templateName) } //============================================================================== -void Project::resaveJucerFile (const File& file) -{ - if (! file.exists()) - { - std::cout << "The file " << file.getFullPathName() << " doesn't exist!" << std::endl; - return; - } +Project::ExporterIterator::ExporterIterator (Project& project_) : index (-1), project (project_) {} +Project::ExporterIterator::~ExporterIterator() {} - if (! file.hasFileExtension (Project::projectFileExtension)) - { - std::cout << file.getFullPathName() << " isn't a valid jucer project file!" << std::endl; - return; - } +bool Project::ExporterIterator::next() +{ + if (++index >= project.getNumExporters()) + return false; - Project newDoc (file); + exporter = project.createExporter (index); - if (! newDoc.loadFrom (file, true)) + if (exporter == nullptr) { - std::cout << "Failed to load the project file: " << file.getFullPathName() << std::endl; - return; + jassertfalse; // corrupted project file? + return next(); } - std::cout << "The Jucer - Re-saving file: " << file.getFullPathName() << std::endl; - String error (newDoc.saveDocument (file)); - - if (error.isNotEmpty()) - { - std::cout << "Error when writing project: " << error << std::endl; - return; - } + return true; } diff --git a/extras/Introjucer/Source/Project/jucer_Project.h b/extras/Introjucer/Source/Project/jucer_Project.h index c43da6de00..3cb988ea0d 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.h +++ b/extras/Introjucer/Source/Project/jucer_Project.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -29,6 +29,8 @@ #include "../jucer_Headers.h" class ProjectExporter; class ProjectType; +class ModuleList; +class LibraryModule; //============================================================================== class Project : public FileBasedDocument, @@ -53,7 +55,7 @@ public: ValueTree getProjectRoot() const { return projectRoot; } Value getProjectName() { return getMainGroup().getName(); } String getProjectFilenameRoot() { return File::createLegalFileName (getDocumentTitle()); } - String getProjectUID() const { return projectRoot [Ids::id_]; } + String getProjectUID() const { return projectRoot [ComponentBuilder::idProperty]; } //============================================================================== template @@ -67,7 +69,7 @@ public: //============================================================================== // Creates editors for the project settings - void createPropertyEditors (Array & properties); + void createPropertyEditors (PropertyListBuilder&); //============================================================================== // project types @@ -76,41 +78,18 @@ public: Value getVersion() const { return getProjectValue ("version"); } String getVersionAsHex() const; - Value getBundleIdentifier() const { return getProjectValue ("bundleIdentifier"); } + Value getBundleIdentifier() const { return getProjectValue (Ids::bundleIdentifier); } void setBundleIdentifierToDefault() { getBundleIdentifier() = "com.yourcompany." + CodeHelpers::makeValidIdentifier (getProjectName().toString(), false, true, false); } - //============================================================================== - // linkage modes.. - static const char* const notLinkedToJuce; - static const char* const useLinkedJuce; - static const char* const useAmalgamatedJuce; - static const char* const useAmalgamatedJuceViaSingleTemplate; - static const char* const useAmalgamatedJuceViaMultipleTemplates; - - Value getJuceLinkageModeValue() const { return getProjectValue ("juceLinkage"); } - String getJuceLinkageMode() const { return getJuceLinkageModeValue().toString(); } - - bool isUsingWrapperFiles() const { return isUsingFullyAmalgamatedFile() || isUsingSingleTemplateFile() || isUsingMultipleTemplateFiles(); } - bool isUsingFullyAmalgamatedFile() const { return getJuceLinkageMode() == useAmalgamatedJuce; } - bool isUsingSingleTemplateFile() const { return getJuceLinkageMode() == useAmalgamatedJuceViaSingleTemplate; } - bool isUsingMultipleTemplateFiles() const { return getJuceLinkageMode() == useAmalgamatedJuceViaMultipleTemplates; } - //============================================================================== Value getProjectValue (const Identifier& name) const { return projectRoot.getPropertyAsValue (name, getUndoManagerFor (projectRoot)); } Value getProjectPreprocessorDefs() const { return getProjectValue (Ids::defines); } StringPairArray getPreprocessorDefs() const; - Value getBigIconImageItemID() const { return getProjectValue ("bigIcon"); } - Value getSmallIconImageItemID() const { return getProjectValue ("smallIcon"); } - Image getBigIcon(); - Image getSmallIcon(); - //============================================================================== File getAppIncludeFile() const { return getGeneratedCodeFolder().getChildFile (getJuceSourceHFilename()); } File getGeneratedCodeFolder() const { return getFile().getSiblingFile ("JuceLibraryCode"); } - File getPluginCharacteristicsFile() const { return getGeneratedCodeFolder().getChildFile (getPluginCharacteristicsFilename()); } - File getLocalJuceFolder(); //============================================================================== String getAmalgamatedHeaderFileName() const { return "juce_amalgamated.h"; } @@ -121,8 +100,6 @@ public: String getJuceSourceFilenameRoot() const { return "JuceLibraryCode"; } int getNumSeparateAmalgamatedFiles() const { return 4; } String getJuceSourceHFilename() const { return "JuceHeader.h"; } - String getJuceCodeGroupName() const { return "Juce Library Code"; } - String getPluginCharacteristicsFilename() const { return "JucePluginCharacteristics.h"; } //============================================================================== class Item @@ -131,18 +108,13 @@ public: //============================================================================== Item (Project& project, const ValueTree& itemNode); Item (const Item& other); - Item& operator= (const Item& other); - ~Item(); - static Item createGroup (Project& project, const String& name); - void initialiseNodeValues(); + static Item createGroup (Project& project, const String& name, const String& uid); + void initialiseMissingProperties(); //============================================================================== - bool isValid() const { return node.isValid(); } - const ValueTree& getNode() const noexcept { return node; } - ValueTree& getNode() noexcept { return node; } - Project& getProject() const noexcept { return *project; } - bool operator== (const Item& other) const { return node == other.node && project == other.project; } + bool isValid() const { return state.isValid(); } + bool operator== (const Item& other) const { return state == other.state && &project == &other.project; } bool operator!= (const Item& other) const { return ! operator== (other); } //============================================================================== @@ -152,9 +124,11 @@ public: bool isImageFile() const; String getID() const; + void setID (const String& newID); Item findItemWithID (const String& targetId) const; // (recursive search) + String getImageFileID() const; - void setID (const String& newID); + Image loadAsImageFile() const; //============================================================================== Value getName() const; @@ -175,28 +149,32 @@ public: //============================================================================== bool canContain (const Item& child) const; - int getNumChildren() const { return node.getNumChildren(); } - Item getChild (int index) const { return Item (getProject(), node.getChild (index)); } + int getNumChildren() const { return state.getNumChildren(); } + Item getChild (int index) const { return Item (project, state.getChild (index)); } Item addNewSubGroup (const String& name, int insertIndex); + Item getOrCreateSubGroup (const String& name); void addChild (const Item& newChild, int insertIndex); - bool addFile (const File& file, int insertIndex); + bool addFile (const File& file, int insertIndex, bool shouldCompile); + void addFileUnchecked (const File& file, int insertIndex, bool shouldCompile); bool addRelativeFile (const RelativePath& file, int insertIndex, bool shouldCompile); void removeItemFromProject(); - void sortAlphabetically(); + void sortAlphabetically (bool keepGroupsAtStart); Item findItemForFile (const File& file) const; + bool containsChildForFile (const RelativePath& file) const; Item getParent() const; Item createCopy(); + UndoManager* getUndoManager() const { return project.getUndoManagerFor (state); } + const Drawable* getIcon() const; - private: - //============================================================================== - Project* project; - ValueTree node; + Project& project; + ValueTree state; - UndoManager* getUndoManager() const { return getProject().getUndoManagerFor (node); } + private: + Item& operator= (const Item&); }; Item getMainGroup(); @@ -204,87 +182,57 @@ public: void findAllImageItems (OwnedArray& items); //============================================================================== - class BuildConfiguration + ValueTree getExporters(); + int getNumExporters(); + ProjectExporter* createExporter (int index); + void addNewExporter (const String& exporterName); + void deleteExporter (int index); + void createDefaultExporters(); + + struct ExporterIterator { - public: - BuildConfiguration (const BuildConfiguration&); - const BuildConfiguration& operator= (const BuildConfiguration&); - ~BuildConfiguration(); + ExporterIterator (Project& project); + ~ExporterIterator(); - //============================================================================== - Project& getProject() const { return *project; } + bool next(); - void createPropertyEditors (Array & properties); + ProjectExporter& operator*() const { return *exporter; } + ProjectExporter* operator->() const { return exporter; } - //============================================================================== - Value getName() const { return getValue (Ids::name); } - Value isDebug() const { return getValue (Ids::isDebug); } - Value getTargetBinaryName() const { return getValue (Ids::targetName); } - // the path relative to the build folder in which the binary should go - Value getTargetBinaryRelativePath() const { return getValue (Ids::binaryPath); } - Value getOptimisationLevel() const { return getValue (Ids::optimisation); } - String getGCCOptimisationFlag() const; - Value getBuildConfigPreprocessorDefs() const { return getValue (Ids::defines); } - StringPairArray getAllPreprocessorDefs() const; // includes inherited definitions - Value getHeaderSearchPath() const { return getValue (Ids::headerPath); } - StringArray getHeaderSearchPaths() const; - - static const char* const osxVersionDefault; - static const char* const osxVersion10_4; - static const char* const osxVersion10_5; - static const char* const osxVersion10_6; - Value getMacSDKVersion() const { return getValue (Ids::osxSDK); } - Value getMacCompatibilityVersion() const { return getValue (Ids::osxCompatibility); } - - static const char* const osxArch_Default; - static const char* const osxArch_Native; - static const char* const osxArch_32BitUniversal; - static const char* const osxArch_64BitUniversal; - static const char* const osxArch_64Bit; - Value getMacArchitecture() const { return getValue (Ids::osxArchitecture); } + ScopedPointer exporter; + int index; - //============================================================================== private: - friend class Project; - Project* project; - ValueTree config; - - Value getValue (const Identifier& name) const { return config.getPropertyAsValue (name, getUndoManager()); } - UndoManager* getUndoManager() const { return project->getUndoManagerFor (config); } - - BuildConfiguration (Project* project, const ValueTree& configNode); + Project& project; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ExporterIterator); }; - int getNumConfigurations() const; - BuildConfiguration getConfiguration (int index); - void addNewConfiguration (BuildConfiguration* configToCopy); - void deleteConfiguration (int index); - bool hasConfigurationNamed (const String& name) const; - String getUniqueConfigName (String name) const; - - //============================================================================== - ValueTree getExporters(); - int getNumExporters(); - ProjectExporter* createExporter (int index); - void addNewExporter (int exporterIndex); - void deleteExporter (int index); - void createDefaultExporters(); - //============================================================================== struct ConfigFlag { - String symbol, description; + String symbol, description, sourceModuleID; Value value; // 1 = true, 2 = false, anything else = use default }; - void getAllConfigFlags (OwnedArray & flags); - static const char* const configFlagDefault; static const char* const configFlagEnabled; static const char* const configFlagDisabled; Value getConfigFlag (const String& name); bool isConfigFlagEnabled (const String& name) const; + //============================================================================== + bool isModuleEnabled (const String& moduleID) const; + Value shouldShowAllModuleFilesInProject (const String& moduleID); + Value shouldCopyModuleFilesLocally (const String& moduleID); + + void addModule (const String& moduleID, bool shouldCopyFilesLocally); + void removeModule (const String& moduleID); + int getNumModules() const; + String getModuleID (int index) const; + void addDefaultModules (bool shouldCopyFilesLocally); + + void createRequiredModules (const ModuleList& availableModules, OwnedArray& modules) const; + //============================================================================== String getFileTemplate (const String& templateName); @@ -296,13 +244,11 @@ public: void valueTreeParentChanged (ValueTree& tree); //============================================================================== - UndoManager* getUndoManagerFor (const ValueTree& node) const { return 0; } + UndoManager* getUndoManagerFor (const ValueTree&) const { return nullptr; } //============================================================================== static const char* projectFileExtension; - static void resaveJucerFile (const File& file); - private: friend class Item; ValueTree projectRoot; @@ -310,10 +256,14 @@ private: DrawableImage mainProjectIcon; void updateProjectSettings(); + void sanitiseConfigFlags(); void setMissingDefaultValues(); ValueTree getConfigurations() const; - void createDefaultConfigs(); ValueTree getConfigNode(); + ValueTree getModulesNode(); + + void updateOldStyleConfigList(); + void moveOldPropertyFromProjectToAllExporters (Identifier name); JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Project); }; diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp index 80d124e35c..295a2f5c56 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -28,7 +28,7 @@ #include "../Code Editor/jucer_SourceCodeEditor.h" #include "jucer_ProjectInformationComponent.h" #include "jucer_TreeViewTypes.h" -#include "jucer_ProjectExporter.h" +#include "../Project Saving/jucer_ProjectExporter.h" //============================================================================== @@ -59,6 +59,8 @@ void ProjectContentComponent::setProject (Project* newProject) { if (project != newProject) { + PropertiesFile& settings = StoredSettings::getInstance()->getProps(); + if (project != nullptr) project->removeChangeListener (this); @@ -67,7 +69,7 @@ void ProjectContentComponent::setProject (Project* newProject) if (projectTree != nullptr) { - StoredSettings::getInstance()->getProps().setValue ("projectTreeviewWidth", projectTree->getWidth()); + settings.setValue ("projectTreeviewWidth", projectTree->getWidth()); projectTree->deleteRootItem(); projectTree = nullptr; } @@ -76,8 +78,7 @@ void ProjectContentComponent::setProject (Project* newProject) if (project != nullptr) { - addAndMakeVisible (projectTree = new TreeView()); - projectTree->setComponentID ("tree"); + addChildAndSetID (projectTree = new TreeView(), "tree"); projectTree->setRootItemVisible (true); projectTree->setMultiSelectEnabled (true); projectTree->setDefaultOpenness (true); @@ -87,15 +88,15 @@ void ProjectContentComponent::setProject (Project* newProject) projectTree->setRootItem (new GroupTreeViewItem (project->getMainGroup())); projectTree->getRootItem()->setOpen (true); - String lastTreeWidth (StoredSettings::getInstance()->getProps().getValue ("projectTreeviewWidth")); + String lastTreeWidth (settings.getValue ("projectTreeviewWidth")); if (lastTreeWidth.getIntValue() < 150) lastTreeWidth = "250"; projectTree->setBounds ("0, 0, left + " + lastTreeWidth + ", parent.height"); - addAndMakeVisible (resizerBar = new ResizableEdgeComponent (projectTree, &treeSizeConstrainer, - ResizableEdgeComponent::rightEdge)); - resizerBar->setComponentID ("resizer"); + addChildAndSetID (resizerBar = new ResizableEdgeComponent (projectTree, &treeSizeConstrainer, ResizableEdgeComponent::rightEdge), + "resizer"); + resizerBar->setBounds ("tree.right, 0, tree.right + 4, parent.height"); project->addChangeListener (this); @@ -104,10 +105,27 @@ void ProjectContentComponent::setProject (Project* newProject) invokeDirectly (CommandIDs::showProjectSettings, true); updateMissingFileStatuses(); + + const ScopedPointer treeOpenness (settings.getXmlValue ("treeViewState_" + project->getProjectUID())); + + if (treeOpenness != nullptr) + projectTree->restoreOpennessState (*treeOpenness, true); } } } +void ProjectContentComponent::saveTreeViewState() +{ + if (projectTree != nullptr) + { + const ScopedPointer opennessState (projectTree->getOpennessState (true)); + + if (opennessState != nullptr) + StoredSettings::getInstance()->getProps() + .setValue ("treeViewState_" + project->getProjectUID(), opennessState); + } +} + void ProjectContentComponent::changeListenerCallback (ChangeBroadcaster*) { updateMissingFileStatuses(); @@ -125,8 +143,7 @@ void ProjectContentComponent::updateMissingFileStatuses() bool ProjectContentComponent::showEditorForFile (const File& f) { - return showDocument (OpenDocumentManager::getInstance() - ->getDocumentForFile (project, f)); + return showDocument (OpenDocumentManager::getInstance()->openFile (project, f)); } bool ProjectContentComponent::showDocument (OpenDocumentManager::Document* doc) @@ -223,7 +240,6 @@ void ProjectContentComponent::getCommandInfo (const CommandID commandID, Applica "Closes the current project", CommandCategories::general, 0); result.setActive (project != nullptr); - result.defaultKeypresses.add (KeyPress ('w', ModifierKeys::commandModifier | ModifierKeys::shiftModifier, 0)); break; case CommandIDs::openInIDE: diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h index 7680dc9384..98cca0af4c 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -45,6 +45,7 @@ public: void paint (Graphics& g); void setProject (Project* project); + void saveTreeViewState(); bool showEditorForFile (const File& f); bool showDocument (OpenDocumentManager::Document* doc); diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h deleted file mode 100644 index c837c7e116..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h +++ /dev/null @@ -1,407 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_PROJECTEXPORT_ANDROID_JUCEHEADER__ -#define __JUCER_PROJECTEXPORT_ANDROID_JUCEHEADER__ - -#include "jucer_ProjectExporter.h" - - -//============================================================================== -class AndroidProjectExporter : public ProjectExporter -{ -public: - //============================================================================== - static const char* getNameAndroid() { return "Android Project"; } - static const char* getValueTreeTypeName() { return "ANDROID"; } - - static AndroidProjectExporter* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new AndroidProjectExporter (project, settings); - - return 0; - } - - //============================================================================== - AndroidProjectExporter (Project& project_, const ValueTree& settings_) - : ProjectExporter (project_, settings_) - { - name = getNameAndroid(); - - if (getTargetLocation().toString().isEmpty()) - getTargetLocation() = getDefaultBuildsRootFolder() + "Android"; - - if (getSDKPath().toString().isEmpty()) - getSDKPath() = "${user.home}/SDKs/android-sdk-mac_x86"; - - if (getNDKPath().toString().isEmpty()) - getNDKPath() = "${user.home}/SDKs/android-ndk-r5"; - - if (getInternetNeeded().toString().isEmpty()) - getInternetNeeded() = true; - } - - //============================================================================== - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_ANDROID - return 1; - #else - return 0; - #endif - } - - bool isPossibleForCurrentProject() { return projectType.isGUIApplication(); } - bool usesMMFiles() const { return false; } - - void launchProject() - { - } - - void createPropertyEditors (Array & props) - { - ProjectExporter::createPropertyEditors (props); - - props.add (new TextPropertyComponent (getSDKPath(), "Android SDK Path", 1024, false)); - props.getLast()->setTooltip ("The path to the Android SDK folder on the target build machine"); - - props.add (new TextPropertyComponent (getNDKPath(), "Android NDK Path", 1024, false)); - props.getLast()->setTooltip ("The path to the Android NDK folder on the target build machine"); - - props.add (new BooleanPropertyComponent (getInternetNeeded(), "Internet Access", "Specify internet access permission in the manifest")); - props.getLast()->setTooltip ("If enabled, this will set the android.permission.INTERNET flag in the manifest."); - } - - Value getSDKPath() const { return getSetting (Ids::androidSDKPath); } - Value getNDKPath() const { return getSetting (Ids::androidNDKPath); } - Value getInternetNeeded() const { return getSetting (Ids::androidInternetNeeded); } - - //============================================================================== - void create() - { - const File target (getTargetFolder()); - const File jniFolder (target.getChildFile ("jni")); - - createDirectoryOrThrow (target.getChildFile ("src/com")); - createDirectoryOrThrow (jniFolder); - createDirectoryOrThrow (target.getChildFile ("res/drawable-hdpi")); - createDirectoryOrThrow (target.getChildFile ("res/drawable-mdpi")); - createDirectoryOrThrow (target.getChildFile ("res/drawable-ldpi")); - createDirectoryOrThrow (target.getChildFile ("res/values")); - createDirectoryOrThrow (target.getChildFile ("libs")); - createDirectoryOrThrow (target.getChildFile ("bin")); - - { - ScopedPointer manifest (createManifestXML()); - writeXmlOrThrow (*manifest, target.getChildFile ("AndroidManifest.xml"), "utf-8", 100); - } - - writeApplicationMk (jniFolder.getChildFile ("Application.mk")); - writeAndroidMk (jniFolder.getChildFile ("Android.mk")); - - { - ScopedPointer antBuildXml (createAntBuildXML()); - writeXmlOrThrow (*antBuildXml, target.getChildFile ("build.xml"), "UTF-8", 100); - } - - writeBuildPropertiesFile (target.getChildFile ("build.properties")); - writeDefaultPropertiesFile (target.getChildFile ("default.properties")); - writeLocalPropertiesFile (target.getChildFile ("local.properties")); - - writeIcon (target.getChildFile ("res/drawable-hdpi/icon.png"), 72); - writeIcon (target.getChildFile ("res/drawable-mdpi/icon.png"), 48); - writeIcon (target.getChildFile ("res/drawable-ldpi/icon.png"), 36); - - writeStringsFile (target.getChildFile ("res/values/strings.xml")); - } - -private: - //============================================================================== - XmlElement* createManifestXML() - { - XmlElement* manifest = new XmlElement ("manifest"); - - manifest->setAttribute ("xmlns:android", "http://schemas.android.com/apk/res/android"); - manifest->setAttribute ("android:versionCode", "1"); - manifest->setAttribute ("android:versionName", "1.0"); - manifest->setAttribute ("package", "com.juce"); - - XmlElement* screens = manifest->createNewChildElement ("supports-screens"); - screens->setAttribute ("android:smallScreens", "true"); - screens->setAttribute ("android:normalScreens", "true"); - screens->setAttribute ("android:largeScreens", "true"); - screens->setAttribute ("android:xlargeScreens", "true"); - screens->setAttribute ("android:anyDensity", "true"); - - if (getInternetNeeded().getValue()) - { - XmlElement* permission = manifest->createNewChildElement ("uses-permission"); - permission->setAttribute ("android:name", "android.permission.INTERNET"); - } - - XmlElement* app = manifest->createNewChildElement ("application"); - app->setAttribute ("android:label", "@string/app_name"); - app->setAttribute ("android:icon", "@drawable/icon"); - - XmlElement* act = app->createNewChildElement ("activity"); - act->setAttribute ("android:name", "JuceAppActivity"); - act->setAttribute ("android:label", "@string/app_name"); - - XmlElement* intent = act->createNewChildElement ("intent-filter"); - intent->createNewChildElement ("action")->setAttribute ("android:name", "android.intent.action.MAIN"); - intent->createNewChildElement ("category")->setAttribute ("android:name", "android.intent.category.LAUNCHER"); - - return manifest; - } - - //============================================================================== - void findAllFilesToCompile (const Project::Item& projectItem, Array& results) - { - if (projectItem.isGroup()) - { - for (int i = 0; i < projectItem.getNumChildren(); ++i) - findAllFilesToCompile (projectItem.getChild(i), results); - } - else - { - if (projectItem.shouldBeCompiled()) - results.add (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder)); - } - } - - void writeApplicationMk (const File& file) - { - MemoryOutputStream mo; - - mo << "# Automatically generated makefile, created by the Jucer" << newLine - << "# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project!" << newLine - << newLine - << "APP_STL := gnustl_static" << newLine - << "APP_CPPFLAGS += -fsigned-char -fexceptions -frtti" << newLine; - - overwriteFileIfDifferentOrThrow (file, mo); - } - - void writeAndroidMk (const File& file) - { - Array files; - - for (int i = 0; i < groups.size(); ++i) - findAllFilesToCompile (groups.getReference(i), files); - - MemoryOutputStream mo; - writeAndroidMk (mo, files); - - overwriteFileIfDifferentOrThrow (file, mo); - } - - void writeAndroidMk (OutputStream& out, const Array& files) - { - out << "# Automatically generated makefile, created by the Jucer" << newLine - << "# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project!" << newLine - << newLine - << "LOCAL_PATH := $(call my-dir)" << newLine - << newLine - << "include $(CLEAR_VARS)" << newLine - << newLine - << "LOCAL_CPP_EXTENSION := cpp" << newLine - << "LOCAL_MODULE := juce_jni" << newLine - << "LOCAL_SRC_FILES := \\" << newLine; - - for (int i = 0; i < files.size(); ++i) - out << " ../" << escapeSpaces (files.getReference(i).toUnixStyle()) << "\\" << newLine; - - out << newLine - << "ifeq ($(CONFIG),Debug)" << newLine - << " LOCAL_CPPFLAGS += " << createCPPFlags (true) << newLine - << "else" << newLine - << " LOCAL_CPPFLAGS += " << createCPPFlags (false) << newLine - << "endif" << newLine - << newLine - << "include $(BUILD_SHARED_LIBRARY)" << newLine; - } - - String createCPPFlags (bool forDebug) - { - String flags ("-fsigned-char -fexceptions -frtti"); - - if (forDebug) - flags << " -g"; - - StringPairArray defines; - defines.set ("JUCE_ANDROID", "1"); - - if (forDebug) - { - defines.set ("DEBUG", "1"); - defines.set ("_DEBUG", "1"); - } - else - { - defines.set ("NDEBUG", "1"); - } - - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - - if (config.isDebug() == forDebug) - { - flags << " -O" << config.getGCCOptimisationFlag(); - - defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); - break; - } - } - - return flags + createGCCPreprocessorFlags (defines); - } - - //============================================================================== - XmlElement* createAntBuildXML() - { - XmlElement* proj = new XmlElement ("project"); - proj->setAttribute ("name", projectName); - proj->setAttribute ("default", "debug"); - - proj->createNewChildElement ("property")->setAttribute ("file", "local.properties"); - proj->createNewChildElement ("property")->setAttribute ("file", "build.properties"); - proj->createNewChildElement ("property")->setAttribute ("file", "default.properties"); - - XmlElement* path = proj->createNewChildElement ("path"); - path->setAttribute ("id", "android.antlibs"); - path->createNewChildElement ("pathelement")->setAttribute ("path", "${sdk.dir}/tools/lib/anttasks.jar"); - path->createNewChildElement ("pathelement")->setAttribute ("path", "${sdk.dir}/tools/lib/sdklib.jar"); - path->createNewChildElement ("pathelement")->setAttribute ("path", "${sdk.dir}/tools/lib/androidprefs.jar"); - - XmlElement* taskdef = proj->createNewChildElement ("taskdef"); - taskdef->setAttribute ("name", "setup"); - taskdef->setAttribute ("classname", "com.android.ant.SetupTask"); - taskdef->setAttribute ("classpathref", "android.antlibs"); - - addNDKBuildStep (proj, "clean", "clean"); - - //addLinkStep (proj, "${basedir}/" + rebaseFromProjectFolderToBuildTarget (RelativePath()).toUnixStyle() + "/", "jni/app"); - addLinkStep (proj, "${basedir}/" + getJucePathFromTargetFolder().toUnixStyle() + "/src/native/android/java/", "src/com/juce"); - - addNDKBuildStep (proj, "debug", "CONFIG=Debug"); - addNDKBuildStep (proj, "release", "CONFIG=Release"); - - proj->createNewChildElement ("setup"); - - return proj; - } - - static void addNDKBuildStep (XmlElement* project, const String& type, const String& arg) - { - XmlElement* target = project->createNewChildElement ("target"); - target->setAttribute ("name", type); - - XmlElement* executable = target->createNewChildElement ("exec"); - executable->setAttribute ("executable", "${ndk.dir}/ndk-build"); - executable->setAttribute ("dir", "${basedir}"); - executable->setAttribute ("failonerror", "true"); - - executable->createNewChildElement ("arg")->setAttribute ("value", "--jobs=2"); - executable->createNewChildElement ("arg")->setAttribute ("value", arg); - } - - static void addLinkStep (XmlElement* project, const String& from, const String& to) - { - XmlElement* executable = project->createNewChildElement ("exec"); - executable->setAttribute ("executable", "ln"); - executable->setAttribute ("dir", "${basedir}"); - executable->setAttribute ("failonerror", "false"); - - executable->createNewChildElement ("arg")->setAttribute ("value", "-s"); - executable->createNewChildElement ("arg")->setAttribute ("value", from); - executable->createNewChildElement ("arg")->setAttribute ("value", to); - } - - void writeBuildPropertiesFile (const File& file) - { - MemoryOutputStream mo; - mo << "# This file is used to override default values used by the Ant build system." << newLine; - overwriteFileIfDifferentOrThrow (file, mo); - } - - void writeDefaultPropertiesFile (const File& file) - { - MemoryOutputStream mo; - mo << "# This file is used to override default values used by the Ant build system." << newLine - << "# It is automatically generated - DO NOT EDIT IT or your changes will be lost!." << newLine - << newLine - << "target=android-9" - << newLine; - - overwriteFileIfDifferentOrThrow (file, mo); - } - - void writeLocalPropertiesFile (const File& file) - { - MemoryOutputStream mo; - mo << "# This file is used to override default values used by the Ant build system." << newLine - << "# It is automatically generated by the Jucer - DO NOT EDIT IT or your changes will be lost!." << newLine - << newLine - << "sdk.dir=" << escapeSpaces (replacePreprocessorDefs (getAllPreprocessorDefs(), getSDKPath().toString())) << newLine - << "ndk.dir=" << escapeSpaces (replacePreprocessorDefs (getAllPreprocessorDefs(), getNDKPath().toString())) << newLine - << newLine; - - overwriteFileIfDifferentOrThrow (file, mo); - } - - void writeIcon (const File& file, int size) - { - Image im (getBestIconForSize (size, false)); - - if (im.isValid()) - { - PNGImageFormat png; - MemoryOutputStream mo; - - if (! png.writeImageToStream (im, mo)) - throw SaveError ("Can't generate Android icon file"); - - overwriteFileIfDifferentOrThrow (file, mo); - } - } - - void writeStringsFile (const File& file) - { - XmlElement strings ("resources"); - XmlElement* name = strings.createNewChildElement ("string"); - name->setAttribute ("name", "app_name"); - name->addTextElement (projectName); - - writeXmlOrThrow (strings, file, "utf-8", 100); - } - - //============================================================================== - JUCE_DECLARE_NON_COPYABLE (AndroidProjectExporter); -}; - - -#endif // __JUCER_PROJECTEXPORT_ANDROID_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h deleted file mode 100644 index 71f5ee8420..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_MSVC.h +++ /dev/null @@ -1,1420 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ -#define __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ - -#include "jucer_ProjectExporter.h" -#include "jucer_ProjectSaver.h" - -//============================================================================== -class MSVCProjectExporterBase : public ProjectExporter -{ -public: - //============================================================================== - MSVCProjectExporterBase (Project& project_, const ValueTree& settings_, const char* const folderName) - : ProjectExporter (project_, settings_), hasIcon (false) - { - if (getTargetLocation().toString().isEmpty()) - getTargetLocation() = getDefaultBuildsRootFolder() + folderName; - - if ((int) getLibraryType().getValue() <= 0) - getLibraryType() = 1; - - projectGUID = createGUID (project.getProjectUID()); - } - - //============================================================================== - bool isPossibleForCurrentProject() { return true; } - bool usesMMFiles() const { return false; } - bool isVisualStudio() const { return true; } - - void createPropertyEditors (Array & props) - { - ProjectExporter::createPropertyEditors (props); - - if (projectType.isLibrary()) - { - const char* const libTypes[] = { "Static Library (.lib)", "Dynamic Library (.dll)", 0 }; - const int libTypeValues[] = { 1, 2, 0 }; - props.add (new ChoicePropertyComponent (getLibraryType(), "Library Type", StringArray (libTypes), Array (libTypeValues))); - - props.add (new TextPropertyComponent (getSetting (Ids::libraryName_Debug), "Library Name (Debug)", 128, false)); - props.getLast()->setTooltip ("If set, this name will override the binary name specified in the configuration settings, for a debug build. You must include the .lib or .dll suffix on this filename."); - - props.add (new TextPropertyComponent (getSetting (Ids::libraryName_Release), "Library Name (Release)", 128, false)); - props.getLast()->setTooltip ("If set, this name will override the binary name specified in the configuration settings, for a release build. You must include the .lib or .dll suffix on this filename."); - } - } - -protected: - String projectGUID; - File rcFile, iconFile; - bool hasIcon; - - File getProjectFile (const String& extension) const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (extension); } - - Value getLibraryType() const { return getSetting (Ids::libraryType); } - bool isLibraryDLL() const { return projectType.isLibrary() && getLibraryType() == 2; } - - //============================================================================== - String getIntermediatesPath (const Project::BuildConfiguration& config) const - { - return ".\\" + File::createLegalFileName (config.getName().toString().trim()); - } - - String getConfigTargetPath (const Project::BuildConfiguration& config) const - { - const String binaryPath (config.getTargetBinaryRelativePath().toString().trim()); - if (binaryPath.isEmpty()) - return getIntermediatesPath (config); - - return ".\\" + RelativePath (binaryPath, RelativePath::projectFolder) - .rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder) - .toWindowsStyle(); - } - - String getPreprocessorDefs (const Project::BuildConfiguration& config, const String& joinString) const - { - StringPairArray defines (msvcExtraPreprocessorDefs); - defines.set ("WIN32", ""); - defines.set ("_WINDOWS", ""); - - if (config.isDebug().getValue()) - { - defines.set ("DEBUG", ""); - defines.set ("_DEBUG", ""); - } - else - { - defines.set ("NDEBUG", ""); - } - - defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); - - StringArray result; - - for (int i = 0; i < defines.size(); ++i) - { - String def (defines.getAllKeys()[i]); - const String value (defines.getAllValues()[i]); - if (value.isNotEmpty()) - def << "=" << value; - - result.add (def); - } - - return result.joinIntoString (joinString); - } - - StringArray getHeaderSearchPaths (const Project::BuildConfiguration& config) const - { - StringArray searchPaths (config.getHeaderSearchPaths()); - - for (int i = 0; i < libraryModules.size(); ++i) - libraryModules.getUnchecked(i)->addExtraSearchPaths (*this, searchPaths); - - searchPaths.removeDuplicates (false); - return searchPaths; - } - - String getBinaryFileForConfig (const Project::BuildConfiguration& config) const - { - const String targetBinary (getSetting (config.isDebug().getValue() ? Ids::libraryName_Debug : Ids::libraryName_Release).toString().trim()); - if (targetBinary.isNotEmpty()) - return targetBinary; - - return config.getTargetBinaryName().toString() + msvcTargetSuffix; - } - - static String createConfigName (const Project::BuildConfiguration& config) - { - return config.getName().toString() + "|Win32"; - } - - //============================================================================== - void writeSolutionFile (OutputStream& out, const String& versionString, const File& vcProject) - { - out << "Microsoft Visual Studio Solution File, Format Version " << versionString << newLine - << "Project(\"" << createGUID (projectName + "sln_guid") << "\") = \"" << projectName << "\", \"" - << vcProject.getFileName() << "\", \"" << projectGUID << '"' << newLine - << "EndProject" << newLine - << "Global" << newLine - << "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution" << newLine; - - int i; - for (i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - out << "\t\t" << createConfigName (config) << " = " << createConfigName (config) << newLine; - } - - out << "\tEndGlobalSection" << newLine - << "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution" << newLine; - - for (i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - out << "\t\t" << projectGUID << "." << createConfigName (config) << ".ActiveCfg = " << createConfigName (config) << newLine; - out << "\t\t" << projectGUID << "." << createConfigName (config) << ".Build.0 = " << createConfigName (config) << newLine; - } - - out << "\tEndGlobalSection" << newLine - << "\tGlobalSection(SolutionProperties) = preSolution" << newLine - << "\t\tHideSolutionNode = FALSE" << newLine - << "\tEndGlobalSection" << newLine - << "EndGlobal" << newLine; - } - - //============================================================================== - static bool writeRCFile (const File& file, const File& iconFile) - { - return file.deleteFile() - && file.appendText ("IDI_ICON1 ICON DISCARDABLE " - + iconFile.getFileName().quoted(), false, false); - } - - static void writeIconFile (const Array& images, OutputStream& out) - { - out.writeShort (0); // reserved - out.writeShort (1); // .ico tag - out.writeShort ((short) images.size()); - - MemoryOutputStream dataBlock; - - const int imageDirEntrySize = 16; - const int dataBlockStart = 6 + images.size() * imageDirEntrySize; - - for (int i = 0; i < images.size(); ++i) - { - const Image& image = images.getReference (i); - const int w = image.getWidth(); - const int h = image.getHeight(); - const int maskStride = (w / 8 + 3) & ~3; - - const size_t oldDataSize = dataBlock.getDataSize(); - dataBlock.writeInt (40); // bitmapinfoheader size - dataBlock.writeInt (w); - dataBlock.writeInt (h * 2); - dataBlock.writeShort (1); // planes - dataBlock.writeShort (32); // bits - dataBlock.writeInt (0); // compression - dataBlock.writeInt ((h * w * 4) + (h * maskStride)); // size image - dataBlock.writeInt (0); // x pixels per meter - dataBlock.writeInt (0); // y pixels per meter - dataBlock.writeInt (0); // clr used - dataBlock.writeInt (0); // clr important - - const Image::BitmapData bitmap (image, Image::BitmapData::readOnly); - const int alphaThreshold = 5; - - int y; - for (y = h; --y >= 0;) - { - for (int x = 0; x < w; ++x) - { - const Colour pixel (bitmap.getPixelColour (x, y)); - - if (pixel.getAlpha() <= alphaThreshold) - { - dataBlock.writeInt (0); - } - else - { - dataBlock.writeByte ((char) pixel.getBlue()); - dataBlock.writeByte ((char) pixel.getGreen()); - dataBlock.writeByte ((char) pixel.getRed()); - dataBlock.writeByte ((char) pixel.getAlpha()); - } - } - } - - for (y = h; --y >= 0;) - { - int mask = 0, count = 0; - - for (int x = 0; x < w; ++x) - { - const Colour pixel (bitmap.getPixelColour (x, y)); - - mask <<= 1; - if (pixel.getAlpha() <= alphaThreshold) - mask |= 1; - - if (++count == 8) - { - dataBlock.writeByte ((char) mask); - count = 0; - mask = 0; - } - } - - if (mask != 0) - dataBlock.writeByte ((char) mask); - - for (int i = maskStride - w / 8; --i >= 0;) - dataBlock.writeByte (0); - } - - out.writeByte ((char) w); - out.writeByte ((char) h); - out.writeByte (0); - out.writeByte (0); - out.writeShort (1); // colour planes - out.writeShort (32); // bits per pixel - out.writeInt ((int) (dataBlock.getDataSize() - oldDataSize)); - out.writeInt (dataBlockStart + oldDataSize); - } - - jassert (out.getPosition() == dataBlockStart); - out << dataBlock; - } - - bool createIconFile() - { - Array images; - - Image im (getBestIconForSize (16, true)); - if (im.isValid()) - images.add (im); - - im = getBestIconForSize (32, true); - if (im.isValid()) - images.add (im); - - im = getBestIconForSize (48, true); - if (im.isValid()) - images.add (im); - - im = getBestIconForSize (128, true); - if (im.isValid()) - images.add (im); - - if (images.size() == 0) - return true; - - MemoryOutputStream mo; - writeIconFile (images, mo); - - iconFile = getTargetFolder().getChildFile ("icon.ico"); - rcFile = getTargetFolder().getChildFile ("resources.rc"); - - hasIcon = FileHelpers::overwriteFileWithNewDataIfDifferent (iconFile, mo) - && writeRCFile (rcFile, iconFile); - return hasIcon; - } - - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterBase); -}; - - -//============================================================================== -class MSVCProjectExporterVC2008 : public MSVCProjectExporterBase -{ -public: - //============================================================================== - MSVCProjectExporterVC2008 (Project& project_, const ValueTree& settings_, const char* folderName = "VisualStudio2008") - : MSVCProjectExporterBase (project_, settings_, folderName) - { - name = getName(); - } - - static const char* getName() { return "Visual Studio 2008"; } - static const char* getValueTreeTypeName() { return "VS2008"; } - - void launchProject() { getSLNFile().startAsProcess(); } - - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_WINDOWS - return 4; - #else - return 0; - #endif - } - - static MSVCProjectExporterVC2008* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MSVCProjectExporterVC2008 (project, settings); - - return 0; - } - - //============================================================================== - void create() - { - createIconFile(); - - if (hasIcon) - { - for (int i = 0; i < groups.size(); ++i) - { - Project::Item& group = groups.getReference(i); - - if (group.getID() == ProjectSaver::getGeneratedGroupID()) - { - group.addFile (iconFile, -1); - group.addFile (rcFile, -1); - - group.findItemForFile (iconFile).getShouldAddToResourceValue() = false; - group.findItemForFile (rcFile).getShouldAddToResourceValue() = false; - break; - } - } - } - - { - XmlElement projectXml ("VisualStudioProject"); - fillInProjectXml (projectXml); - writeXmlOrThrow (projectXml, getVCProjFile(), "UTF-8", 10); - } - - { - MemoryOutputStream mo; - writeSolutionFile (mo, getSolutionVersionString(), getVCProjFile()); - - overwriteFileIfDifferentOrThrow (getSLNFile(), mo); - } - } - -protected: - virtual String getProjectVersionString() const { return "9.00"; } - virtual String getSolutionVersionString() const { return "10.00" + newLine + "# Visual C++ Express 2008"; } - - File getVCProjFile() const { return getProjectFile (".vcproj"); } - File getSLNFile() const { return getProjectFile (".sln"); } - - //============================================================================== - void fillInProjectXml (XmlElement& projectXml) - { - projectXml.setAttribute ("ProjectType", "Visual C++"); - projectXml.setAttribute ("Version", getProjectVersionString()); - projectXml.setAttribute ("Name", projectName); - projectXml.setAttribute ("ProjectGUID", projectGUID); - projectXml.setAttribute ("TargetFrameworkVersion", "131072"); - - { - XmlElement* platforms = projectXml.createNewChildElement ("Platforms"); - XmlElement* platform = platforms->createNewChildElement ("Platform"); - platform->setAttribute ("Name", "Win32"); - } - - projectXml.createNewChildElement ("ToolFiles"); - createConfigs (*projectXml.createNewChildElement ("Configurations")); - projectXml.createNewChildElement ("References"); - createFiles (*projectXml.createNewChildElement ("Files")); - projectXml.createNewChildElement ("Globals"); - } - - //============================================================================== - void addFile (const RelativePath& file, XmlElement& parent, const bool excludeFromBuild, const bool useStdcall) - { - jassert (file.getRoot() == RelativePath::buildTargetFolder); - - XmlElement* fileXml = parent.createNewChildElement ("File"); - fileXml->setAttribute ("RelativePath", file.toWindowsStyle()); - - if (excludeFromBuild || useStdcall) - { - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - - XmlElement* fileConfig = fileXml->createNewChildElement ("FileConfiguration"); - fileConfig->setAttribute ("Name", createConfigName (config)); - - if (excludeFromBuild) - fileConfig->setAttribute ("ExcludedFromBuild", "true"); - - XmlElement* tool = createToolElement (*fileConfig, "VCCLCompilerTool"); - - if (useStdcall) - tool->setAttribute ("CallingConvention", "2"); - } - } - } - - XmlElement* createGroup (const String& groupName, XmlElement& parent) - { - XmlElement* filter = parent.createNewChildElement ("Filter"); - filter->setAttribute ("Name", groupName); - return filter; - } - - void addFiles (const Project::Item& projectItem, XmlElement& parent) - { - if (projectItem.isGroup()) - { - XmlElement* filter = createGroup (projectItem.getName().toString(), parent); - - for (int i = 0; i < projectItem.getNumChildren(); ++i) - addFiles (projectItem.getChild(i), *filter); - } - else if (projectItem.shouldBeAddedToTargetProject()) - { - const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); - - addFile (path, parent, - projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled()), - shouldFileBeCompiledByDefault (path) && (bool) projectItem.getShouldUseStdCallValue().getValue()); - } - } - - void createFiles (XmlElement& files) - { - for (int i = 0; i < groups.size(); ++i) - if (groups.getReference(i).getNumChildren() > 0) - addFiles (groups.getReference(i), files); - } - - //============================================================================== - XmlElement* createToolElement (XmlElement& parent, const String& toolName) const - { - XmlElement* const e = parent.createNewChildElement ("Tool"); - e->setAttribute ("Name", toolName); - return e; - } - - void createConfig (XmlElement& xml, const Project::BuildConfiguration& config) const - { - String binariesPath (getConfigTargetPath (config)); - String intermediatesPath (getIntermediatesPath (config)); - const bool isDebug = (bool) config.isDebug().getValue(); - const String binaryName (File::createLegalFileName (config.getTargetBinaryName().toString())); - - xml.setAttribute ("Name", createConfigName (config)); - xml.setAttribute ("OutputDirectory", FileHelpers::windowsStylePath (binariesPath)); - xml.setAttribute ("IntermediateDirectory", FileHelpers::windowsStylePath (intermediatesPath)); - xml.setAttribute ("ConfigurationType", (msvcIsDLL || isLibraryDLL()) ? "2" : (projectType.isLibrary() ? "4" : "1")); - xml.setAttribute ("UseOfMFC", "0"); - xml.setAttribute ("ATLMinimizesCRunTimeLibraryUsage", "false"); - xml.setAttribute ("CharacterSet", "2"); - - if (! isDebug) - xml.setAttribute ("WholeProgramOptimization", "1"); - - createToolElement (xml, "VCPreBuildEventTool"); - - XmlElement* customBuild = createToolElement (xml, "VCCustomBuildTool"); - - if (msvcPostBuildCommand.isNotEmpty()) - customBuild->setAttribute ("CommandLine", msvcPostBuildCommand); - - if (msvcPostBuildOutputs.isNotEmpty()) - customBuild->setAttribute ("Outputs", msvcPostBuildOutputs); - - createToolElement (xml, "VCXMLDataGeneratorTool"); - createToolElement (xml, "VCWebServiceProxyGeneratorTool"); - - if (! projectType.isLibrary()) - { - XmlElement* midl = createToolElement (xml, "VCMIDLTool"); - midl->setAttribute ("PreprocessorDefinitions", isDebug ? "_DEBUG" : "NDEBUG"); - midl->setAttribute ("MkTypLibCompatible", "true"); - midl->setAttribute ("SuppressStartupBanner", "true"); - midl->setAttribute ("TargetEnvironment", "1"); - midl->setAttribute ("TypeLibraryName", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".tlb")); - midl->setAttribute ("HeaderFileName", ""); - } - - { - XmlElement* compiler = createToolElement (xml, "VCCLCompilerTool"); - - const int optimiseLevel = (int) config.getOptimisationLevel().getValue(); - compiler->setAttribute ("Optimization", optimiseLevel <= 1 ? "0" : (optimiseLevel == 2 ? "2" : "3")); - - if (isDebug) - { - compiler->setAttribute ("BufferSecurityCheck", ""); - compiler->setAttribute ("DebugInformationFormat", projectType.isLibrary() ? "3" : "4"); - } - else - { - compiler->setAttribute ("InlineFunctionExpansion", "1"); - compiler->setAttribute ("StringPooling", "true"); - } - - compiler->setAttribute ("AdditionalIncludeDirectories", replacePreprocessorTokens (config, getHeaderSearchPaths (config).joinIntoString (";"))); - compiler->setAttribute ("PreprocessorDefinitions", getPreprocessorDefs (config, ";")); - compiler->setAttribute ("RuntimeLibrary", msvcNeedsDLLRuntimeLib ? (isDebug ? 3 : 2) // MT DLL - : (isDebug ? 1 : 0)); // MT static - compiler->setAttribute ("RuntimeTypeInfo", "true"); - compiler->setAttribute ("UsePrecompiledHeader", "0"); - compiler->setAttribute ("PrecompiledHeaderFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pch")); - compiler->setAttribute ("AssemblerListingLocation", FileHelpers::windowsStylePath (intermediatesPath + "/")); - compiler->setAttribute ("ObjectFile", FileHelpers::windowsStylePath (intermediatesPath + "/")); - compiler->setAttribute ("ProgramDataBaseFileName", FileHelpers::windowsStylePath (intermediatesPath + "/")); - compiler->setAttribute ("WarningLevel", "4"); - compiler->setAttribute ("SuppressStartupBanner", "true"); - - const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim()); - if (extraFlags.isNotEmpty()) - compiler->setAttribute ("AdditionalOptions", extraFlags); - } - - createToolElement (xml, "VCManagedResourceCompilerTool"); - - { - XmlElement* resCompiler = createToolElement (xml, "VCResourceCompilerTool"); - resCompiler->setAttribute ("PreprocessorDefinitions", isDebug ? "_DEBUG" : "NDEBUG"); - } - - createToolElement (xml, "VCPreLinkEventTool"); - - const String outputFileName (getBinaryFileForConfig (config)); - - if (! projectType.isLibrary()) - { - XmlElement* linker = createToolElement (xml, "VCLinkerTool"); - - linker->setAttribute ("OutputFile", FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); - linker->setAttribute ("SuppressStartupBanner", "true"); - - if (project.getJuceLinkageMode() == Project::useLinkedJuce) - linker->setAttribute ("AdditionalLibraryDirectories", getJucePathFromTargetFolder().getChildFile ("bin").toWindowsStyle()); - - linker->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); - linker->setAttribute ("GenerateDebugInformation", isDebug ? "true" : "false"); - linker->setAttribute ("ProgramDatabaseFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); - linker->setAttribute ("SubSystem", msvcIsWindowsSubsystem ? "2" : "1"); - - if (! isDebug) - { - linker->setAttribute ("GenerateManifest", "false"); - linker->setAttribute ("OptimizeReferences", "2"); - linker->setAttribute ("EnableCOMDATFolding", "2"); - } - - linker->setAttribute ("TargetMachine", "1"); // (64-bit build = 5) - - if (msvcDelayLoadedDLLs.isNotEmpty()) - linker->setAttribute ("DelayLoadDLLs", msvcDelayLoadedDLLs); - - if (msvcModuleDefinitionFile.isNotEmpty()) - linker->setAttribute ("ModuleDefinitionFile", msvcModuleDefinitionFile); - - String extraLinkerOptions (getExtraLinkerFlags().toString()); - - if (msvcExtraLinkerOptions.isNotEmpty()) - extraLinkerOptions << ' ' << msvcExtraLinkerOptions; - - if (extraLinkerOptions.isNotEmpty()) - linker->setAttribute ("AdditionalOptions", replacePreprocessorTokens (config, extraLinkerOptions).trim()); - } - else - { - if (isLibraryDLL()) - { - XmlElement* linker = createToolElement (xml, "VCLinkerTool"); - - String extraLinkerOptions (getExtraLinkerFlags().toString()); - extraLinkerOptions << " /IMPLIB:" << FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName.upToLastOccurrenceOf (".", false, false) + ".lib"); - linker->setAttribute ("AdditionalOptions", replacePreprocessorTokens (config, extraLinkerOptions).trim()); - - linker->setAttribute ("OutputFile", FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); - linker->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); - } - else - { - XmlElement* librarian = createToolElement (xml, "VCLibrarianTool"); - - librarian->setAttribute ("OutputFile", FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); - librarian->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); - } - } - - createToolElement (xml, "VCALinkTool"); - createToolElement (xml, "VCManifestTool"); - createToolElement (xml, "VCXDCMakeTool"); - - { - XmlElement* bscMake = createToolElement (xml, "VCBscMakeTool"); - bscMake->setAttribute ("SuppressStartupBanner", "true"); - bscMake->setAttribute ("OutputFile", FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".bsc")); - } - - createToolElement (xml, "VCFxCopTool"); - - if (! projectType.isLibrary()) - createToolElement (xml, "VCAppVerifierTool"); - - createToolElement (xml, "VCPostBuildEventTool"); - } - - void createConfigs (XmlElement& xml) - { - for (int i = 0; i < configs.size(); ++i) - createConfig (*xml.createNewChildElement ("Configuration"), configs.getReference(i)); - } - - //============================================================================== - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2008); -}; - - -//============================================================================== -class MSVCProjectExporterVC2005 : public MSVCProjectExporterVC2008 -{ -public: - MSVCProjectExporterVC2005 (Project& project_, const ValueTree& settings_) - : MSVCProjectExporterVC2008 (project_, settings_, "VisualStudio2005") - { - name = getName(); - } - - static const char* getName() { return "Visual Studio 2005"; } - static const char* getValueTreeTypeName() { return "VS2005"; } - - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_WINDOWS - return 2; - #else - return 0; - #endif - } - - static MSVCProjectExporterVC2005* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MSVCProjectExporterVC2005 (project, settings); - - return 0; - } - -protected: - String getProjectVersionString() const { return "8.00"; } - String getSolutionVersionString() const { return "8.00" + newLine + "# Visual C++ Express 2005"; } - - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2005); -}; - - -//============================================================================== -class MSVCProjectExporterVC6 : public MSVCProjectExporterBase -{ -public: - //============================================================================== - MSVCProjectExporterVC6 (Project& project_, const ValueTree& settings_) - : MSVCProjectExporterBase (project_, settings_, "MSVC6") - { - name = getName(); - } - - static const char* getName() { return "Visual C++ 6.0"; } - static const char* getValueTreeTypeName() { return "MSVC6"; } - - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_WINDOWS - return 1; - #else - return 0; - #endif - } - - void launchProject() { getDSWFile().startAsProcess(); } - - static MSVCProjectExporterVC6* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MSVCProjectExporterVC6 (project, settings); - - return 0; - } - - //============================================================================== - void create() - { - { - MemoryOutputStream mo; - writeProject (mo); - overwriteFileIfDifferentOrThrow (getDSPFile(), mo); - } - - { - MemoryOutputStream mo; - writeDSWFile (mo); - overwriteFileIfDifferentOrThrow (getDSWFile(), mo); - } - } - -private: - File getDSPFile() const { return getProjectFile (".dsp"); } - File getDSWFile() const { return getProjectFile (".dsw"); } - - //============================================================================== - String createConfigName (const Project::BuildConfiguration& config) const - { - return projectName + " - Win32 " + config.getName().toString(); - } - - void writeProject (OutputStream& out) - { - const String defaultConfigName (createConfigName (configs.getReference(0))); - - String targetType, targetCode; - - if (msvcIsDLL) { targetType = "\"Win32 (x86) Dynamic-Link Library\""; targetCode = "0x0102"; } - else if (projectType.isLibrary()) { targetType = "\"Win32 (x86) Static Library\""; targetCode = "0x0104"; } - else if (projectType.isCommandLineApp()) { targetType = "\"Win32 (x86) Console Application\""; targetCode = "0x0103"; } - else { targetType = "\"Win32 (x86) Application\""; targetCode = "0x0101"; } - - out << "# Microsoft Developer Studio Project File - Name=\"" << projectName - << "\" - Package Owner=<4>" << newLine - << "# Microsoft Developer Studio Generated Build File, Format Version 6.00" << newLine - << "# ** DO NOT EDIT **" << newLine - << "# TARGTYPE " << targetType << " " << targetCode << newLine - << "CFG=" << defaultConfigName << newLine - << "!MESSAGE This is not a valid makefile. To build this project using NMAKE," << newLine - << "!MESSAGE use the Export Makefile command and run" << newLine - << "!MESSAGE " << newLine - << "!MESSAGE NMAKE /f \"" << projectName << ".mak.\"" << newLine - << "!MESSAGE " << newLine - << "!MESSAGE You can specify a configuration when running NMAKE" << newLine - << "!MESSAGE by defining the macro CFG on the command line. For example:" << newLine - << "!MESSAGE " << newLine - << "!MESSAGE NMAKE /f \"" << projectName << ".mak\" CFG=\"" << defaultConfigName << '"' << newLine - << "!MESSAGE " << newLine - << "!MESSAGE Possible choices for configuration are:" << newLine - << "!MESSAGE " << newLine; - - int i; - for (i = 0; i < configs.size(); ++i) - out << "!MESSAGE \"" << createConfigName (configs.getReference (i)) << "\" (based on " << targetType << ")" << newLine; - - out << "!MESSAGE " << newLine - << "# Begin Project" << newLine - << "# PROP AllowPerConfigDependencies 0" << newLine - << "# PROP Scc_ProjName \"\"" << newLine - << "# PROP Scc_LocalPath \"\"" << newLine - << "CPP=cl.exe" << newLine - << "MTL=midl.exe" << newLine - << "RSC=rc.exe" << newLine; - - String targetList; - - for (i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - const String configName (createConfigName (config)); - targetList << "# Name \"" << configName << '"' << newLine; - - const String binariesPath (getConfigTargetPath (config)); - const String targetBinary (FileHelpers::windowsStylePath (binariesPath + "/" + getBinaryFileForConfig (config))); - const String optimisationFlag (((int) config.getOptimisationLevel().getValue() <= 1) ? "Od" : (config.getOptimisationLevel() == 2 ? "O2" : "O3")); - const String defines (getPreprocessorDefs (config, " /D ")); - const bool isDebug = (bool) config.isDebug().getValue(); - const String extraDebugFlags (isDebug ? "/Gm /ZI /GZ" : ""); - - out << (i == 0 ? "!IF" : "!ELSEIF") << " \"$(CFG)\" == \"" << configName << '"' << newLine - << "# PROP BASE Use_MFC 0" << newLine - << "# PROP BASE Use_Debug_Libraries " << (isDebug ? "1" : "0") << newLine - << "# PROP BASE Output_Dir \"" << binariesPath << '"' << newLine - << "# PROP BASE Intermediate_Dir \"" << getIntermediatesPath (config) << '"' << newLine - << "# PROP BASE Target_Dir \"\"" << newLine - << "# PROP Use_MFC 0" << newLine - << "# PROP Use_Debug_Libraries " << (isDebug ? "1" : "0") << newLine - << "# PROP Output_Dir \"" << binariesPath << '"' << newLine - << "# PROP Intermediate_Dir \"" << getIntermediatesPath (config) << '"' << newLine - << "# PROP Ignore_Export_Lib 0" << newLine - << "# PROP Target_Dir \"\"" << newLine - << "# ADD BASE CPP /nologo /W3 /GX /" << optimisationFlag << " /D " << defines - << " /YX /FD /c " << extraDebugFlags << " /Zm1024" << newLine - << "# ADD CPP /nologo " << (isDebug ? "/MTd" : "/MT") << " /W3 /GR /GX /" << optimisationFlag - << " /I " << replacePreprocessorTokens (config, getHeaderSearchPaths (config).joinIntoString (" /I ")) - << " /D " << defines << " /D \"_UNICODE\" /D \"UNICODE\" /FD /c /Zm1024 " << extraDebugFlags - << " " << replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim() << newLine; - - if (! isDebug) - out << "# SUBTRACT CPP /YX" << newLine; - - if (! projectType.isLibrary()) - out << "# ADD BASE MTL /nologo /D " << defines << " /mktyplib203 /win32" << newLine - << "# ADD MTL /nologo /D " << defines << " /mktyplib203 /win32" << newLine; - - out << "# ADD BASE RSC /l 0x40c /d " << defines << newLine - << "# ADD RSC /l 0x40c /d " << defines << newLine - << "BSC32=bscmake.exe" << newLine - << "# ADD BASE BSC32 /nologo" << newLine - << "# ADD BSC32 /nologo" << newLine; - - if (projectType.isLibrary()) - { - out << "LIB32=link.exe -lib" << newLine - << "# ADD BASE LIB32 /nologo" << newLine - << "# ADD LIB32 /nologo /out:\"" << targetBinary << '"' << newLine; - } - else - { - out << "LINK32=link.exe" << newLine - << "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386" << newLine - << "# ADD LINK32 \"C:\\Program Files\\Microsoft Visual Studio\\VC98\\LIB\\shell32.lib\" " // This is avoid debug information corruption when mixing Platform SDK - << "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib " - << (isDebug ? " /debug" : "") - << " /nologo /machine:I386 /out:\"" << targetBinary << "\" " - << (msvcIsDLL ? "/dll" : (msvcIsWindowsSubsystem ? "/subsystem:windows " - : "/subsystem:console ")) - << replacePreprocessorTokens (config, getExtraLinkerFlags().toString()).trim() << newLine; - } - } - - out << "!ENDIF" << newLine - << "# Begin Target" << newLine - << targetList; - - for (int i = 0; i < groups.size(); ++i) - if (groups.getReference(i).getNumChildren() > 0) - writeFiles (out, groups.getReference(i)); - - out << "# End Target" << newLine - << "# End Project" << newLine; - } - - void writeFile (OutputStream& out, const RelativePath& file, const bool excludeFromBuild) - { - jassert (file.getRoot() == RelativePath::buildTargetFolder); - - out << "# Begin Source File" << newLine - << "SOURCE=" << file.toWindowsStyle().quoted() << newLine; - - if (excludeFromBuild) - out << "# PROP Exclude_From_Build 1" << newLine; - - out << "# End Source File" << newLine; - } - - void writeFiles (OutputStream& out, const Project::Item& projectItem) - { - if (projectItem.isGroup()) - { - out << "# Begin Group \"" << projectItem.getName() << '"' << newLine - << "# PROP Default_Filter \"cpp;c;cc;cxx;rc;def;r;odl;idl;hpj;bat\"" << newLine; - - for (int i = 0; i < projectItem.getNumChildren(); ++i) - writeFiles (out, projectItem.getChild (i)); - - out << "# End Group" << newLine; - } - else if (projectItem.shouldBeAddedToTargetProject()) - { - const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); - writeFile (out, path, projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled())); - } - } - - void writeGroup (OutputStream& out, const String& groupName, const Array& files) - { - if (files.size() > 0) - { - out << "# Begin Group \"" << groupName << '"' << newLine; - for (int i = 0; i < files.size(); ++i) - if (files.getReference(i).hasFileExtension ("cpp;cc;c;cxx;h;hpp;hxx")) - writeFile (out, files.getReference(i), false); - - out << "# End Group" << newLine; - } - } - - void writeDSWFile (OutputStream& out) - { - out << "Microsoft Developer Studio Workspace File, Format Version 6.00 " << newLine; - - if (! project.isUsingWrapperFiles()) - { - out << "Project: \"JUCE\"= ..\\JUCE.dsp - Package Owner=<4>" << newLine - << "Package=<5>" << newLine - << "{{{" << newLine - << "}}}" << newLine - << "Package=<4>" << newLine - << "{{{" << newLine - << "}}}" << newLine; - } - - out << "Project: \"" << projectName << "\" = .\\" << getDSPFile().getFileName() << " - Package Owner=<4>" << newLine - << "Package=<5>" << newLine - << "{{{" << newLine - << "}}}" << newLine - << "Package=<4>" << newLine - << "{{{" << newLine; - - if (! project.isUsingWrapperFiles()) - { - out << " Begin Project Dependency" << newLine - << " Project_Dep_Name JUCE" << newLine - << " End Project Dependency" << newLine; - } - - out << "}}}" << newLine - << "Global:" << newLine - << "Package=<5>" << newLine - << "{{{" << newLine - << "}}}" << newLine - << "Package=<3>" << newLine - << "{{{" << newLine - << "}}}" << newLine; - } - - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC6); -}; - - -//============================================================================== -class MSVCProjectExporterVC2010 : public MSVCProjectExporterBase -{ -public: - MSVCProjectExporterVC2010 (Project& project_, const ValueTree& settings_) - : MSVCProjectExporterBase (project_, settings_, "VisualStudio2010") - { - name = getName(); - } - - static const char* getName() { return "Visual Studio 2010"; } - static const char* getValueTreeTypeName() { return "VS2010"; } - - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_WINDOWS - return 3; - #else - return 0; - #endif - } - - void launchProject() { getSLNFile().startAsProcess(); } - - static MSVCProjectExporterVC2010* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MSVCProjectExporterVC2010 (project, settings); - - return 0; - } - - //============================================================================== - void create() - { - createIconFile(); - - { - XmlElement projectXml ("Project"); - fillInProjectXml (projectXml); - writeXmlOrThrow (projectXml, getVCProjFile(), "utf-8", 100); - } - - { - XmlElement filtersXml ("Project"); - fillInFiltersXml (filtersXml); - writeXmlOrThrow (filtersXml, getVCProjFiltersFile(), "utf-8", 100); - } - - { - MemoryOutputStream mo; - writeSolutionFile (mo, "11.00", getVCProjFile()); - - overwriteFileIfDifferentOrThrow (getSLNFile(), mo); - } - } - -protected: - File getVCProjFile() const { return getProjectFile (".vcxproj"); } - File getVCProjFiltersFile() const { return getProjectFile (".vcxproj.filters"); } - File getSLNFile() const { return getProjectFile (".sln"); } - - static String createConfigName (const Project::BuildConfiguration& config) - { - return config.getName().toString() + "|Win32"; - } - - static void setConditionAttribute (XmlElement& xml, const Project::BuildConfiguration& config) - { - xml.setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); - } - - //============================================================================== - void fillInProjectXml (XmlElement& projectXml) - { - projectXml.setAttribute ("DefaultTargets", "Build"); - projectXml.setAttribute ("ToolsVersion", "4.0"); - projectXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); - - { - XmlElement* configsGroup = projectXml.createNewChildElement ("ItemGroup"); - configsGroup->setAttribute ("Label", "ProjectConfigurations"); - - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - - XmlElement* e = configsGroup->createNewChildElement ("ProjectConfiguration"); - e->setAttribute ("Include", createConfigName (config)); - e->createNewChildElement ("Configuration")->addTextElement (config.getName().toString()); - e->createNewChildElement ("Platform")->addTextElement ("Win32"); - } - } - - { - XmlElement* globals = projectXml.createNewChildElement ("PropertyGroup"); - globals->setAttribute ("Label", "Globals"); - globals->createNewChildElement ("ProjectGuid")->addTextElement (projectGUID); - } - - { - XmlElement* imports = projectXml.createNewChildElement ("Import"); - imports->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); - } - - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - - XmlElement* e = projectXml.createNewChildElement ("PropertyGroup"); - setConditionAttribute (*e, config); - e->setAttribute ("Label", "Configuration"); - e->createNewChildElement ("ConfigurationType")->addTextElement (getProjectType()); - e->createNewChildElement ("UseOfMfc")->addTextElement ("false"); - e->createNewChildElement ("CharacterSet")->addTextElement ("MultiByte"); - - if (! config.isDebug().getValue()) - e->createNewChildElement ("WholeProgramOptimization")->addTextElement ("true"); - } - - { - XmlElement* e = projectXml.createNewChildElement ("Import"); - e->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); - } - - { - XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); - e->setAttribute ("Label", "ExtensionSettings"); - } - - { - XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); - e->setAttribute ("Label", "PropertySheets"); - XmlElement* p = e->createNewChildElement ("Import"); - p->setAttribute ("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props"); - p->setAttribute ("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')"); - p->setAttribute ("Label", "LocalAppDataPlatform"); - } - - { - XmlElement* e = projectXml.createNewChildElement ("PropertyGroup"); - e->setAttribute ("Label", "UserMacros"); - } - - { - XmlElement* props = projectXml.createNewChildElement ("PropertyGroup"); - props->createNewChildElement ("_ProjectFileVersion")->addTextElement ("10.0.30319.1"); - - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - - XmlElement* outdir = props->createNewChildElement ("OutDir"); - setConditionAttribute (*outdir, config); - outdir->addTextElement (getConfigTargetPath (config) + "\\"); - - XmlElement* intdir = props->createNewChildElement ("IntDir"); - setConditionAttribute (*intdir, config); - intdir->addTextElement (getConfigTargetPath (config) + "\\"); - - XmlElement* name = props->createNewChildElement ("TargetName"); - setConditionAttribute (*name, config); - name->addTextElement (getBinaryFileForConfig (config).upToLastOccurrenceOf (".", false, false)); - } - } - - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - String binariesPath (getConfigTargetPath (config)); - String intermediatesPath (getIntermediatesPath (config)); - const bool isDebug = (bool) config.isDebug().getValue(); - const String binaryName (File::createLegalFileName (config.getTargetBinaryName().toString())); - const String outputFileName (getBinaryFileForConfig (config)); - - XmlElement* group = projectXml.createNewChildElement ("ItemDefinitionGroup"); - setConditionAttribute (*group, config); - - { - XmlElement* midl = group->createNewChildElement ("Midl"); - midl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (isDebug ? "_DEBUG;%(PreprocessorDefinitions)" - : "NDEBUG;%(PreprocessorDefinitions)"); - midl->createNewChildElement ("MkTypLibCompatible")->addTextElement ("true"); - midl->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); - midl->createNewChildElement ("TargetEnvironment")->addTextElement ("Win32"); - //midl->createNewChildElement ("TypeLibraryName")->addTextElement (""); - midl->createNewChildElement ("HeaderFileName"); - } - - { - XmlElement* cl = group->createNewChildElement ("ClCompile"); - cl->createNewChildElement ("Optimization")->addTextElement (isDebug ? "Disabled" : "MaxSpeed"); - - if (isDebug) - cl->createNewChildElement ("DebugInformationFormat")->addTextElement ("EditAndContinue"); - - StringArray includePaths (getHeaderSearchPaths (config)); - includePaths.add ("%(AdditionalIncludeDirectories)"); - cl->createNewChildElement ("AdditionalIncludeDirectories")->addTextElement (includePaths.joinIntoString (";")); - cl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (getPreprocessorDefs (config, ";") + ";%(PreprocessorDefinitions)"); - cl->createNewChildElement ("RuntimeLibrary")->addTextElement (msvcNeedsDLLRuntimeLib ? (isDebug ? "MultiThreadedDLLDebug" : "MultiThreadedDLL") - : (isDebug ? "MultiThreadedDebug" : "MultiThreaded")); - cl->createNewChildElement ("RuntimeTypeInfo")->addTextElement ("true"); - cl->createNewChildElement ("PrecompiledHeader"); - cl->createNewChildElement ("AssemblerListingLocation")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); - cl->createNewChildElement ("ObjectFileName")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); - cl->createNewChildElement ("ProgramDataBaseFileName")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); - cl->createNewChildElement ("WarningLevel")->addTextElement ("Level4"); - cl->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); - - const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim()); - if (extraFlags.isNotEmpty()) - cl->createNewChildElement ("AdditionalOptions")->addTextElement (extraFlags + " %(AdditionalOptions)"); - } - - { - XmlElement* res = group->createNewChildElement ("ResourceCompile"); - res->createNewChildElement ("PreprocessorDefinitions")->addTextElement (isDebug ? "_DEBUG;%(PreprocessorDefinitions)" - : "NDEBUG;%(PreprocessorDefinitions)"); - } - - { - XmlElement* link = group->createNewChildElement ("Link"); - link->createNewChildElement ("OutputFile")->addTextElement (FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); - link->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); - link->createNewChildElement ("IgnoreSpecificDefaultLibraries")->addTextElement (isDebug ? "libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries)" - : "%(IgnoreSpecificDefaultLibraries)"); - link->createNewChildElement ("GenerateDebugInformation")->addTextElement (isDebug ? "true" : "false"); - link->createNewChildElement ("ProgramDatabaseFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); - link->createNewChildElement ("SubSystem")->addTextElement (msvcIsWindowsSubsystem ? "Windows" : "Console"); - link->createNewChildElement ("TargetMachine")->addTextElement ("MachineX86"); - - if (! isDebug) - { - link->createNewChildElement ("OptimizeReferences")->addTextElement ("true"); - link->createNewChildElement ("EnableCOMDATFolding")->addTextElement ("true"); - } - - String extraLinkerOptions (getExtraLinkerFlags().toString()); - if (extraLinkerOptions.isNotEmpty()) - link->createNewChildElement ("AdditionalOptions")->addTextElement (replacePreprocessorTokens (config, extraLinkerOptions).trim() - + " %(AdditionalOptions)"); - } - - { - XmlElement* bsc = group->createNewChildElement ("Bscmake"); - bsc->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); - bsc->createNewChildElement ("OutputFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".bsc")); - } - } - - { - XmlElement* cppFiles = projectXml.createNewChildElement ("ItemGroup"); - XmlElement* headerFiles = projectXml.createNewChildElement ("ItemGroup"); - - for (int i = 0; i < groups.size(); ++i) - if (groups.getReference(i).getNumChildren() > 0) - addFilesToCompile (groups.getReference(i), *cppFiles, *headerFiles, false); - } - - if (hasIcon) - { - { - XmlElement* iconGroup = projectXml.createNewChildElement ("ItemGroup"); - XmlElement* e = iconGroup->createNewChildElement ("None"); - e->setAttribute ("Include", ".\\" + iconFile.getFileName()); - } - - { - XmlElement* rcGroup = projectXml.createNewChildElement ("ItemGroup"); - XmlElement* e = rcGroup->createNewChildElement ("ResourceCompile"); - e->setAttribute ("Include", ".\\" + rcFile.getFileName()); - } - } - - { - XmlElement* e = projectXml.createNewChildElement ("Import"); - e->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets"); - } - - { - XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); - e->setAttribute ("Label", "ExtensionTargets"); - } - } - - String getProjectType() const - { - if (projectType.isGUIApplication() || projectType.isCommandLineApp()) return "Application"; - else if (msvcIsDLL) return "DynamicLibrary"; - else if (projectType.isLibrary()) return "StaticLibrary"; - - jassertfalse; - return String::empty; - } - - //============================================================================== - void addFileToCompile (const RelativePath& file, XmlElement& cpps, XmlElement& headers, const bool excludeFromBuild, const bool useStdcall) - { - jassert (file.getRoot() == RelativePath::buildTargetFolder); - - if (file.hasFileExtension ("cpp;cc;cxx;c")) - { - XmlElement* e = cpps.createNewChildElement ("ClCompile"); - e->setAttribute ("Include", file.toWindowsStyle()); - - if (excludeFromBuild) - e->createNewChildElement ("ExcludedFromBuild")->addTextElement ("true"); - - if (useStdcall) - { - jassertfalse; - } - } - else if (file.hasFileExtension (headerFileExtensions)) - { - headers.createNewChildElement ("ClInclude")->setAttribute ("Include", file.toWindowsStyle()); - } - } - - void addFilesToCompile (const Array& files, XmlElement& cpps, XmlElement& headers, bool useStdCall) - { - for (int i = 0; i < files.size(); ++i) - addFileToCompile (files.getReference(i), cpps, headers, false, useStdCall); - } - - void addFilesToCompile (const Project::Item& projectItem, XmlElement& cpps, XmlElement& headers, bool useStdCall) - { - if (projectItem.isGroup()) - { - for (int i = 0; i < projectItem.getNumChildren(); ++i) - addFilesToCompile (projectItem.getChild(i), cpps, headers, useStdCall); - } - else - { - if (projectItem.shouldBeAddedToTargetProject()) - { - const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); - - if (path.hasFileExtension (headerFileExtensions) || (path.hasFileExtension ("cpp;cc;c;cxx") && projectItem.shouldBeCompiled())) - addFileToCompile (path, cpps, headers, false, useStdCall); - } - } - } - - //============================================================================== - void addFilterGroup (XmlElement& groups, const String& path) - { - XmlElement* e = groups.createNewChildElement ("Filter"); - e->setAttribute ("Include", path); - e->createNewChildElement ("UniqueIdentifier")->addTextElement (createGUID (path + "_guidpathsaltxhsdf")); - } - - void addFileToFilter (const RelativePath& file, const String& groupPath, XmlElement& cpps, XmlElement& headers) - { - XmlElement* e; - - if (file.hasFileExtension (headerFileExtensions)) - e = headers.createNewChildElement ("ClInclude"); - else - e = cpps.createNewChildElement ("ClCompile"); - - jassert (file.getRoot() == RelativePath::buildTargetFolder); - e->setAttribute ("Include", file.toWindowsStyle()); - e->createNewChildElement ("Filter")->addTextElement (groupPath); - } - - void addFilesToFilter (const Project::Item& projectItem, const String& path, XmlElement& cpps, XmlElement& headers, XmlElement& groups) - { - if (projectItem.isGroup()) - { - addFilterGroup (groups, path); - - for (int i = 0; i < projectItem.getNumChildren(); ++i) - addFilesToFilter (projectItem.getChild(i), - (path.isEmpty() ? String::empty : (path + "\\")) + projectItem.getChild(i).getName().toString(), - cpps, headers, groups); - } - else - { - if (projectItem.shouldBeAddedToTargetProject()) - { - addFileToFilter (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder), - path.upToLastOccurrenceOf ("\\", false, false), cpps, headers); - } - } - } - - void addFilesToFilter (const Array& files, const String& path, XmlElement& cpps, XmlElement& headers, XmlElement& groups) - { - if (files.size() > 0) - { - addFilterGroup (groups, path); - - for (int i = 0; i < files.size(); ++i) - addFileToFilter (files.getReference(i), path, cpps, headers); - } - } - - void fillInFiltersXml (XmlElement& filterXml) - { - filterXml.setAttribute ("ToolsVersion", "4.0"); - filterXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); - - XmlElement* groupsXml = filterXml.createNewChildElement ("ItemGroup"); - XmlElement* cpps = filterXml.createNewChildElement ("ItemGroup"); - XmlElement* headers = filterXml.createNewChildElement ("ItemGroup"); - - for (int i = 0; i < groups.size(); ++i) - if (groups.getReference(i).getNumChildren() > 0) - addFilesToFilter (groups.getReference(i), groups.getReference(i).getName().toString(), *cpps, *headers, *groupsXml); - - if (iconFile.exists()) - { - { - XmlElement* iconGroup = filterXml.createNewChildElement ("ItemGroup"); - XmlElement* e = iconGroup->createNewChildElement ("None"); - e->setAttribute ("Include", ".\\" + iconFile.getFileName()); - e->createNewChildElement ("Filter")->addTextElement (project.getJuceCodeGroupName()); - } - - { - XmlElement* rcGroup = filterXml.createNewChildElement ("ItemGroup"); - XmlElement* e = rcGroup->createNewChildElement ("ResourceCompile"); - e->setAttribute ("Include", ".\\" + rcFile.getFileName()); - e->createNewChildElement ("Filter")->addTextElement (project.getJuceCodeGroupName()); - } - } - } - - //============================================================================== - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2010); -}; - - -#endif // __JUCER_PROJECTEXPORT_MSVC_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h deleted file mode 100644 index 615077b73d..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_Make.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_PROJECTEXPORT_MAKE_JUCEHEADER__ -#define __JUCER_PROJECTEXPORT_MAKE_JUCEHEADER__ - -#include "jucer_ProjectExporter.h" - - -//============================================================================== -class MakefileProjectExporter : public ProjectExporter -{ -public: - //============================================================================== - static const char* getNameLinux() { return "Linux Makefile"; } - static const char* getValueTreeTypeName() { return "LINUX_MAKE"; } - - static MakefileProjectExporter* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MakefileProjectExporter (project, settings); - - return 0; - } - - - //============================================================================== - MakefileProjectExporter (Project& project_, const ValueTree& settings_) - : ProjectExporter (project_, settings_) - { - name = getNameLinux(); - - if (getTargetLocation().toString().isEmpty()) - getTargetLocation() = getDefaultBuildsRootFolder() + "Linux"; - } - - //============================================================================== - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_LINUX - return 1; - #else - return 0; - #endif - } - - bool isPossibleForCurrentProject() { return true; } - bool usesMMFiles() const { return false; } - bool isLinux() const { return true; } - - void launchProject() - { - // what to do on linux? - } - - void createPropertyEditors (Array & props) - { - ProjectExporter::createPropertyEditors (props); - } - - //============================================================================== - void create() - { - Array files; - for (int i = 0; i < groups.size(); ++i) - findAllFilesToCompile (groups.getReference(i), files); - - MemoryOutputStream mo; - writeMakefile (mo, files); - - overwriteFileIfDifferentOrThrow (getTargetFolder().getChildFile ("Makefile"), mo); - } - -private: - //============================================================================== - void findAllFilesToCompile (const Project::Item& projectItem, Array& results) - { - if (projectItem.isGroup()) - { - for (int i = 0; i < projectItem.getNumChildren(); ++i) - findAllFilesToCompile (projectItem.getChild(i), results); - } - else - { - if (projectItem.shouldBeCompiled()) - results.add (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder)); - } - } - - void writeDefineFlags (OutputStream& out, const Project::BuildConfiguration& config) - { - StringPairArray defines; - defines.set ("LINUX", "1"); - - if (config.isDebug().getValue()) - { - defines.set ("DEBUG", "1"); - defines.set ("_DEBUG", "1"); - } - else - { - defines.set ("NDEBUG", "1"); - } - - out << createGCCPreprocessorFlags (mergePreprocessorDefs (defines, getAllPreprocessorDefs (config))); - } - - void writeHeaderPathFlags (OutputStream& out, const Project::BuildConfiguration& config) - { - StringArray headerPaths (config.getHeaderSearchPaths()); - headerPaths.insert (0, "/usr/include/freetype2"); - headerPaths.insert (0, "/usr/include"); - - for (int i = 0; i < libraryModules.size(); ++i) - libraryModules.getUnchecked(i)->addExtraSearchPaths (*this, headerPaths); - - for (int i = 0; i < headerPaths.size(); ++i) - out << " -I " << FileHelpers::unixStylePath (replacePreprocessorTokens (config, headerPaths[i])).quoted(); - } - - void writeCppFlags (OutputStream& out, const Project::BuildConfiguration& config) - { - out << " CPPFLAGS := $(DEPFLAGS)"; - writeDefineFlags (out, config); - writeHeaderPathFlags (out, config); - out << newLine; - } - - void writeLinkerFlags (OutputStream& out, const Project::BuildConfiguration& config) - { - out << " LDFLAGS += -L$(BINDIR) -L$(LIBDIR)"; - - if (makefileIsDLL) - out << " -shared"; - - { - Array libraryPaths; - libraryPaths.add (RelativePath ("/usr/X11R6/lib/", RelativePath::unknown)); - libraryPaths.add (getJucePathFromTargetFolder().getChildFile ("bin")); - - for (int i = 0; i < libraryPaths.size(); ++i) - out << " -L" << libraryPaths.getReference(i).toUnixStyle().quoted(); - } - - const char* defaultLibs[] = { "freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", 0 }; - StringArray libs (defaultLibs); - - if (project.getJuceLinkageMode() == Project::useLinkedJuce) - libs.add ("juce"); - - for (int i = 0; i < libs.size(); ++i) - out << " -l" << libs[i]; - - out << " " << replacePreprocessorTokens (config, getExtraLinkerFlags().toString()).trim() - << newLine; - } - - void writeConfig (OutputStream& out, const Project::BuildConfiguration& config) - { - const String buildDirName ("build"); - const String intermediatesDirName (buildDirName + "/intermediate/" + config.getName().toString()); - String outputDir (buildDirName); - - if (config.getTargetBinaryRelativePath().toString().isNotEmpty()) - { - RelativePath binaryPath (config.getTargetBinaryRelativePath().toString(), RelativePath::projectFolder); - outputDir = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder).toUnixStyle(); - } - - out << "ifeq ($(CONFIG)," << escapeSpaces (config.getName().toString()) << ")" << newLine; - out << " BINDIR := " << escapeSpaces (buildDirName) << newLine - << " LIBDIR := " << escapeSpaces (buildDirName) << newLine - << " OBJDIR := " << escapeSpaces (intermediatesDirName) << newLine - << " OUTDIR := " << escapeSpaces (outputDir) << newLine; - - writeCppFlags (out, config); - - out << " CFLAGS += $(CPPFLAGS) $(TARGET_ARCH)"; - - if (config.isDebug().getValue()) - out << " -g -ggdb"; - - if (makefileIsDLL) - out << " -fPIC"; - - out << " -O" << config.getGCCOptimisationFlag() << newLine; - - out << " CXXFLAGS += $(CFLAGS) " << replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim() << newLine; - - writeLinkerFlags (out, config); - - out << " LDDEPS :=" << newLine - << " RESFLAGS := "; - writeDefineFlags (out, config); - writeHeaderPathFlags (out, config); - out << newLine; - - String targetName (config.getTargetBinaryName().getValue().toString()); - - if (projectType.isLibrary()) - targetName = getLibbedFilename (targetName); - else - targetName = targetName.upToLastOccurrenceOf (".", false, false) + makefileTargetSuffix; - - out << " TARGET := " << escapeSpaces (targetName) << newLine; - - if (projectType.isLibrary()) - out << " BLDCMD = ar -rcs $(OUTDIR)/$(TARGET) $(OBJECTS) $(TARGET_ARCH)" << newLine; - else - out << " BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)" << newLine; - - out << "endif" << newLine << newLine; - } - - void writeObjects (OutputStream& out, const Array& files) - { - out << "OBJECTS := \\" << newLine; - - for (int i = 0; i < files.size(); ++i) - if (shouldFileBeCompiledByDefault (files.getReference(i))) - out << " $(OBJDIR)/" << escapeSpaces (getObjectFileFor (files.getReference(i))) << " \\" << newLine; - - out << newLine; - } - - void writeMakefile (OutputStream& out, const Array& files) - { - out << "# Automatically generated makefile, created by the Jucer" << newLine - << "# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project!" << newLine - << newLine; - - out << "ifndef CONFIG" << newLine - << " CONFIG=" << escapeSpaces (configs.getReference(0).getName().toString()) << newLine - << "endif" << newLine - << newLine; - - if (! projectType.isLibrary()) - out << "ifeq ($(TARGET_ARCH),)" << newLine - << " TARGET_ARCH := -march=native" << newLine - << "endif" << newLine << newLine; - - out << "# (this disables dependency generation if multiple architectures are set)" << newLine - << "DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)" << newLine - << newLine; - - int i; - for (i = 0; i < configs.size(); ++i) - writeConfig (out, configs.getReference(i)); - - writeObjects (out, files); - - out << ".PHONY: clean" << newLine - << newLine; - - out << "$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)" << newLine - << "\t@echo Linking " << projectName << newLine - << "\t-@mkdir -p $(BINDIR)" << newLine - << "\t-@mkdir -p $(LIBDIR)" << newLine - << "\t-@mkdir -p $(OUTDIR)" << newLine - << "\t@$(BLDCMD)" << newLine - << newLine; - - out << "clean:" << newLine - << "\t@echo Cleaning " << projectName << newLine - << "\t-@rm -f $(OUTDIR)/$(TARGET)" << newLine - << "\t-@rm -rf $(OBJDIR)/*" << newLine - << "\t-@rm -rf $(OBJDIR)" << newLine - << newLine; - - for (i = 0; i < files.size(); ++i) - { - if (shouldFileBeCompiledByDefault (files.getReference(i))) - { - jassert (files.getReference(i).getRoot() == RelativePath::buildTargetFolder); - - out << "$(OBJDIR)/" << escapeSpaces (getObjectFileFor (files.getReference(i))) - << ": " << escapeSpaces (files.getReference(i).toUnixStyle()) << newLine - << "\t-@mkdir -p $(OBJDIR)" << newLine - << "\t@echo \"Compiling " << files.getReference(i).getFileName() << "\"" << newLine - << (files.getReference(i).hasFileExtension (".c") ? "\t@$(CC) $(CFLAGS) -o \"$@\" -c \"$<\"" - : "\t@$(CXX) $(CXXFLAGS) -o \"$@\" -c \"$<\"") - << newLine << newLine; - } - } - - out << "-include $(OBJECTS:%.o=%.d)" << newLine; - } - - String getObjectFileFor (const RelativePath& file) const - { - return file.getFileNameWithoutExtension() - + "_" + String::toHexString (file.toUnixStyle().hashCode()) + ".o"; - } - - JUCE_DECLARE_NON_COPYABLE (MakefileProjectExporter); -}; - - -#endif // __JUCER_PROJECTEXPORT_MAKE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h deleted file mode 100644 index 9dd10da218..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h +++ /dev/null @@ -1,1007 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_PROJECTEXPORT_XCODE_JUCEHEADER__ -#define __JUCER_PROJECTEXPORT_XCODE_JUCEHEADER__ - -#include "jucer_ProjectExporter.h" - - -//============================================================================== -class XCodeProjectExporter : public ProjectExporter -{ -public: - //============================================================================== - static const char* getNameMac() { return "XCode (MacOSX)"; } - static const char* getNameiOS() { return "XCode (iOS)"; } - static const char* getValueTreeTypeName (bool iPhone) { return iPhone ? "XCODE_IPHONE" : "XCODE_MAC"; } - - //============================================================================== - XCodeProjectExporter (Project& project_, const ValueTree& settings_, const bool iPhone_) - : ProjectExporter (project_, settings_), - iPhone (iPhone_) - { - name = iPhone ? getNameiOS() : getNameMac(); - - projectIDSalt = hashCode64 (project.getProjectUID()); - - if (getTargetLocation().toString().isEmpty()) - getTargetLocation() = getDefaultBuildsRootFolder() + (iPhone ? "iOS" : "MacOSX"); - - if (getSettings() ["objCExtraSuffix"].isVoid()) - getObjCSuffix() = createAlphaNumericUID(); - } - - static XCodeProjectExporter* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName (false))) - return new XCodeProjectExporter (project, settings, false); - else if (settings.hasType (getValueTreeTypeName (true))) - return new XCodeProjectExporter (project, settings, true); - - return 0; - } - - //============================================================================== - Value getObjCSuffix() { return getSetting ("objCExtraSuffix"); } - - int getLaunchPreferenceOrderForCurrentOS() - { - #if JUCE_MAC - return iPhone ? 1 : 2; - #else - return 0; - #endif - } - - bool isAvailableOnCurrentOS() - { - #if JUCE_MAC - return true; - #else - return false; - #endif - } - - bool isPossibleForCurrentProject() { return projectType.isGUIApplication() || ! iPhone; } - bool usesMMFiles() const { return true; } - bool isXcode() const { return true; } - - void createPropertyEditors (Array & props) - { - ProjectExporter::createPropertyEditors (props); - - props.add (new TextPropertyComponent (getObjCSuffix(), "Objective-C class name suffix", 64, false)); - props.getLast()->setTooltip ("Because objective-C linkage is done by string-matching, you can get horrible linkage mix-ups when different modules containing the " - "same class-names are loaded simultaneously. This setting lets you provide a unique string that will be used in naming the obj-C classes in your executable to avoid this."); - - if (projectType.isGUIApplication() && ! iPhone) - { - props.add (new TextPropertyComponent (getSetting ("documentExtensions"), "Document file extensions", 128, false)); - props.getLast()->setTooltip ("A comma-separated list of file extensions for documents that your app can open."); - } - else if (iPhone) - { - props.add (new BooleanPropertyComponent (getSetting ("UIFileSharingEnabled"), "File Sharing Enabled", "Enabled")); - props.getLast()->setTooltip ("Enable this to expose your app's files to iTunes."); - - props.add (new BooleanPropertyComponent (getSetting ("UIStatusBarHidden"), "Status Bar Hidden", "Enabled")); - props.getLast()->setTooltip ("Enable this to disable the status bar in your app."); - } - } - - void launchProject() - { - getProjectBundle().startAsProcess(); - } - - //============================================================================== - void create() - { - infoPlistFile = getTargetFolder().getChildFile ("Info.plist"); - - createIconFile(); - - File projectBundle (getProjectBundle()); - createDirectoryOrThrow (projectBundle); - - createObjects(); - - File projectFile (projectBundle.getChildFile ("project.pbxproj")); - - { - MemoryOutputStream mo; - writeProjectFile (mo); - overwriteFileIfDifferentOrThrow (projectFile, mo); - } - - writeInfoPlistFile(); - } - -private: - OwnedArray pbxBuildFiles, pbxFileReferences, pbxGroups, misc, projectConfigs, targetConfigs; - StringArray buildPhaseIDs, resourceIDs, sourceIDs, frameworkIDs; - StringArray frameworkFileIDs, rezFileIDs, resourceFileRefs; - File infoPlistFile, iconFile; - int64 projectIDSalt; - const bool iPhone; - - static String sanitisePath (const String& path) - { - if (path.startsWithChar ('~')) - return "$(HOME)" + path.substring (1); - - return path; - } - - File getProjectBundle() const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (".xcodeproj"); } - - //============================================================================== - void createObjects() - { - addFrameworks(); - addMainBuildProduct(); - - if (xcodeCreatePList) - { - RelativePath plistPath (infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder); - addFileReference (plistPath.toUnixStyle()); - resourceFileRefs.add (createID (plistPath)); - } - - if (iconFile.exists()) - { - RelativePath iconPath (iconFile, getTargetFolder(), RelativePath::buildTargetFolder); - addFileReference (iconPath.toUnixStyle()); - resourceIDs.add (addBuildFile (iconPath, false, false)); - resourceFileRefs.add (createID (iconPath)); - } - - { - StringArray topLevelGroupIDs; - - for (int i = 0; i < groups.size(); ++i) - if (groups.getReference(i).getNumChildren() > 0) - topLevelGroupIDs.add (addProjectItem (groups.getReference(i))); - - { // Add 'resources' group - String resourcesGroupID (createID ("__resources")); - addGroup (resourcesGroupID, "Resources", resourceFileRefs); - topLevelGroupIDs.add (resourcesGroupID); - } - - { // Add 'frameworks' group - String frameworksGroupID (createID ("__frameworks")); - addGroup (frameworksGroupID, "Frameworks", frameworkFileIDs); - topLevelGroupIDs.add (frameworksGroupID); - } - - { // Add 'products' group - String productsGroupID (createID ("__products")); - StringArray products; - products.add (createID ("__productFileID")); - addGroup (productsGroupID, "Products", products); - topLevelGroupIDs.add (productsGroupID); - } - - addGroup (createID ("__mainsourcegroup"), "Source", topLevelGroupIDs); - } - - for (int i = 0; i < configs.size(); ++i) - { - const Project::BuildConfiguration& config = configs.getReference(i); - - addProjectConfig (config.getName().getValue(), getProjectSettings (config)); - addTargetConfig (config.getName().getValue(), getTargetSettings (config)); - } - - addConfigList (projectConfigs, createID ("__projList")); - addConfigList (targetConfigs, createID ("__configList")); - - if (! projectType.isLibrary()) - addBuildPhase ("PBXResourcesBuildPhase", resourceIDs); - - if (rezFileIDs.size() > 0) - addBuildPhase ("PBXRezBuildPhase", rezFileIDs); - - addBuildPhase ("PBXSourcesBuildPhase", sourceIDs); - - if (! projectType.isLibrary()) - addBuildPhase ("PBXFrameworksBuildPhase", frameworkIDs); - - addShellScriptPhase(); - - addTargetObject(); - addProjectObject(); - } - - static Image fixMacIconImageSize (Image& image) - { - const int w = image.getWidth(); - const int h = image.getHeight(); - - if (w != h || (w != 16 && w != 32 && w != 48 && w != 64)) - { - const int newSize = w >= 128 ? 128 : (w >= 64 ? 64 : (w >= 32 ? 32 : 16)); - Image newIm (Image::ARGB, newSize, newSize, true, Image::SoftwareImage); - Graphics g (newIm); - g.drawImageWithin (image, 0, 0, newSize, newSize, - RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, false); - return newIm; - } - - return image; - } - - void writeIcnsFile (const Array& images, OutputStream& out) - { - MemoryOutputStream data; - - for (int i = 0; i < images.size(); ++i) - { - Image image (fixMacIconImageSize (images.getReference (i))); - - const int w = image.getWidth(); - const int h = image.getHeight(); - - const char* type = nullptr; - const char* maskType = nullptr; - - if (w == h) - { - if (w == 16) { type = "is32"; maskType = "s8mk"; } - if (w == 32) { type = "il32"; maskType = "l8mk"; } - if (w == 48) { type = "ih32"; maskType = "h8mk"; } - if (w == 128) { type = "it32"; maskType = "t8mk"; } - } - - if (type != nullptr) - { - data.write (type, 4); - data.writeIntBigEndian (8 + 4 * w * h); - - const Image::BitmapData bitmap (image, Image::BitmapData::readOnly); - - int y; - for (y = 0; y < h; ++y) - { - for (int x = 0; x < w; ++x) - { - const Colour pixel (bitmap.getPixelColour (x, y)); - data.writeByte ((char) pixel.getAlpha()); - data.writeByte ((char) pixel.getRed()); - data.writeByte ((char) pixel.getGreen()); - data.writeByte ((char) pixel.getBlue()); - } - } - - data.write (maskType, 4); - data.writeIntBigEndian (8 + w * h); - - for (y = 0; y < h; ++y) - { - for (int x = 0; x < w; ++x) - { - const Colour pixel (bitmap.getPixelColour (x, y)); - data.writeByte ((char) pixel.getAlpha()); - } - } - } - } - - jassert (data.getDataSize() > 0); // no suitable sized images? - - out.write ("icns", 4); - out.writeIntBigEndian (data.getDataSize() + 8); - out << data; - } - - void createIconFile() - { - Array images; - - Image bigIcon (project.getBigIcon()); - if (bigIcon.isValid()) - images.add (bigIcon); - - Image smallIcon (project.getSmallIcon()); - if (smallIcon.isValid()) - images.add (smallIcon); - - if (images.size() > 0) - { - MemoryOutputStream mo; - writeIcnsFile (images, mo); - - iconFile = getTargetFolder().getChildFile ("Icon.icns"); - overwriteFileIfDifferentOrThrow (iconFile, mo); - } - } - - void writeInfoPlistFile() - { - if (! xcodeCreatePList) - return; - - XmlElement plist ("plist"); - XmlElement* dict = plist.createNewChildElement ("dict"); - - if (iPhone) - addPlistDictionaryKeyBool (dict, "LSRequiresIPhoneOS", true); - - addPlistDictionaryKey (dict, "CFBundleExecutable", "${EXECUTABLE_NAME}"); - addPlistDictionaryKey (dict, "CFBundleIconFile", iconFile.exists() ? iconFile.getFileName() : String::empty); - addPlistDictionaryKey (dict, "CFBundleIdentifier", project.getBundleIdentifier().toString()); - addPlistDictionaryKey (dict, "CFBundleName", projectName); - addPlistDictionaryKey (dict, "CFBundlePackageType", xcodePackageType); - addPlistDictionaryKey (dict, "CFBundleSignature", xcodeBundleSignature); - addPlistDictionaryKey (dict, "CFBundleShortVersionString", project.getVersion().toString()); - addPlistDictionaryKey (dict, "CFBundleVersion", project.getVersion().toString()); - - StringArray documentExtensions; - documentExtensions.addTokens (replacePreprocessorDefs (getAllPreprocessorDefs(), getSetting ("documentExtensions").toString()), - ",", String::empty); - documentExtensions.trim(); - documentExtensions.removeEmptyStrings (true); - - if (documentExtensions.size() > 0) - { - dict->createNewChildElement ("key")->addTextElement ("CFBundleDocumentTypes"); - XmlElement* dict2 = dict->createNewChildElement ("array")->createNewChildElement ("dict"); - - for (int i = 0; i < documentExtensions.size(); ++i) - { - String ex (documentExtensions[i]); - if (ex.startsWithChar ('.')) - ex = ex.substring (1); - - dict2->createNewChildElement ("key")->addTextElement ("CFBundleTypeExtensions"); - dict2->createNewChildElement ("array")->createNewChildElement ("string")->addTextElement (ex); - addPlistDictionaryKey (dict2, "CFBundleTypeName", ex); - addPlistDictionaryKey (dict2, "CFBundleTypeRole", "Editor"); - addPlistDictionaryKey (dict2, "NSPersistentStoreTypeKey", "XML"); - } - } - - if (getSetting ("UIFileSharingEnabled").getValue()) - addPlistDictionaryKeyBool (dict, "UIFileSharingEnabled", true); - - if (getSetting ("UIStatusBarHidden").getValue()) - addPlistDictionaryKeyBool (dict, "UIStatusBarHidden", true); - - MemoryOutputStream mo; - plist.writeToStream (mo, ""); - - overwriteFileIfDifferentOrThrow (infoPlistFile, mo); - } - - StringArray getHeaderSearchPaths (const Project::BuildConfiguration& config) - { - StringArray searchPaths (config.getHeaderSearchPaths()); - - for (int i = 0; i < libraryModules.size(); ++i) - libraryModules.getUnchecked(i)->addExtraSearchPaths (*this, searchPaths); - - return searchPaths; - } - - static void getLinkerFlagsForStaticLibrary (const RelativePath& library, StringArray& flags, StringArray& librarySearchPaths) - { - jassert (library.getFileNameWithoutExtension().substring (0, 3) == "lib"); - - flags.add ("-l" + library.getFileNameWithoutExtension().substring (3)); - - String searchPath (library.toUnixStyle().upToLastOccurrenceOf ("/", false, false)); - if (! library.isAbsolute()) - searchPath = "$(SRCROOT)/" + searchPath; - - librarySearchPaths.add (sanitisePath (searchPath)); - } - - void getLinkerFlags (const Project::BuildConfiguration& config, StringArray& flags, StringArray& librarySearchPaths) - { - if (xcodeIsBundle) - flags.add ("-bundle"); - - const Array& extraLibs = config.isDebug().getValue() ? xcodeExtraLibrariesDebug - : xcodeExtraLibrariesRelease; - - for (int i = 0; i < extraLibs.size(); ++i) - getLinkerFlagsForStaticLibrary (extraLibs.getReference(i), flags, librarySearchPaths); - - if (project.getJuceLinkageMode() == Project::useLinkedJuce) - { - RelativePath juceLib (getJucePathFromTargetFolder().getChildFile (config.isDebug().getValue() ? "bin/libjucedebug.a" - : "bin/libjuce.a")); - getLinkerFlagsForStaticLibrary (juceLib, flags, librarySearchPaths); - } - - flags.add (replacePreprocessorTokens (config, getExtraLinkerFlags().toString())); - flags.removeEmptyStrings (true); - } - - StringArray getProjectSettings (const Project::BuildConfiguration& config) - { - StringArray s; - s.add ("ALWAYS_SEARCH_USER_PATHS = NO"); - s.add ("GCC_C_LANGUAGE_STANDARD = c99"); - s.add ("GCC_WARN_ABOUT_RETURN_TYPE = YES"); - s.add ("GCC_WARN_CHECK_SWITCH_STATEMENTS = YES"); - s.add ("GCC_WARN_UNUSED_VARIABLE = YES"); - s.add ("GCC_WARN_MISSING_PARENTHESES = YES"); - s.add ("GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES"); - s.add ("GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES"); - s.add ("WARNING_CFLAGS = -Wreorder"); - s.add ("GCC_MODEL_TUNING = G5"); - - if (projectType.isLibrary() || project.getJuceLinkageMode() == Project::useLinkedJuce) - { - s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = NO"); - s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = NO"); - } - else - { - s.add ("GCC_INLINES_ARE_PRIVATE_EXTERN = YES"); - } - - if (iPhone) - { - s.add ("\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\""); - s.add ("SDKROOT = iphoneos"); - s.add ("TARGETED_DEVICE_FAMILY = \"1,2\""); - } - - s.add ("ZERO_LINK = NO"); - - if (xcodeCanUseDwarf) - s.add ("DEBUG_INFORMATION_FORMAT = \"dwarf\""); - - s.add ("PRODUCT_NAME = \"" + config.getTargetBinaryName().toString() + "\""); - return s; - } - - StringArray getTargetSettings (const Project::BuildConfiguration& config) - { - StringArray s; - - const String arch (config.getMacArchitecture().toString()); - if (arch == Project::BuildConfiguration::osxArch_Native) s.add ("ARCHS = \"$(ARCHS_NATIVE)\""); - else if (arch == Project::BuildConfiguration::osxArch_32BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_BIT)\""); - else if (arch == Project::BuildConfiguration::osxArch_64BitUniversal) s.add ("ARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\""); - else if (arch == Project::BuildConfiguration::osxArch_64Bit) s.add ("ARCHS = \"$(ARCHS_STANDARD_64_BIT)\""); - - s.add ("PREBINDING = NO"); - s.add ("HEADER_SEARCH_PATHS = \"" + replacePreprocessorTokens (config, getHeaderSearchPaths (config).joinIntoString (" ")) + " $(inherited)\""); - s.add ("GCC_OPTIMIZATION_LEVEL = " + config.getGCCOptimisationFlag()); - s.add ("INFOPLIST_FILE = " + infoPlistFile.getFileName()); - - const String extraFlags (replacePreprocessorTokens (config, getExtraCompilerFlags().toString()).trim()); - if (extraFlags.isNotEmpty()) - s.add ("OTHER_CPLUSPLUSFLAGS = " + extraFlags); - - if (xcodeProductInstallPath.isNotEmpty()) - s.add ("INSTALL_PATH = \"" + xcodeProductInstallPath + "\""); - - if (xcodeIsBundle) - { - s.add ("LIBRARY_STYLE = Bundle"); - s.add ("WRAPPER_EXTENSION = " + xcodeBundleExtension.substring (1)); - s.add ("GENERATE_PKGINFO_FILE = YES"); - } - - if (xcodeOtherRezFlags.isNotEmpty()) - s.add ("OTHER_REZFLAGS = \"" + xcodeOtherRezFlags + "\""); - - if (projectType.isLibrary()) - { - if (config.getTargetBinaryRelativePath().toString().isNotEmpty()) - { - RelativePath binaryPath (config.getTargetBinaryRelativePath().toString(), RelativePath::projectFolder); - binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder); - - s.add ("DSTROOT = " + sanitisePath (binaryPath.toUnixStyle())); - s.add ("SYMROOT = " + sanitisePath (binaryPath.toUnixStyle())); - } - - s.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\""); - s.add ("DEPLOYMENT_LOCATION = YES"); - } - - if (! iPhone) - { - const String sdk (config.getMacSDKVersion().toString()); - const String sdkCompat (config.getMacCompatibilityVersion().toString()); - - if (sdk == Project::BuildConfiguration::osxVersion10_4) - { - s.add ("SDKROOT = macosx10.4"); - s.add ("GCC_VERSION = 4.0"); - } - else if (sdk == Project::BuildConfiguration::osxVersion10_5) - { - s.add ("SDKROOT = macosx10.5"); - } - else if (sdk == Project::BuildConfiguration::osxVersion10_6) - { - s.add ("SDKROOT = macosx10.6"); - } - - if (sdkCompat == Project::BuildConfiguration::osxVersion10_4) s.add ("MACOSX_DEPLOYMENT_TARGET = 10.4"); - else if (sdkCompat == Project::BuildConfiguration::osxVersion10_5) s.add ("MACOSX_DEPLOYMENT_TARGET = 10.5"); - else if (sdkCompat == Project::BuildConfiguration::osxVersion10_6) s.add ("MACOSX_DEPLOYMENT_TARGET = 10.6"); - - s.add ("MACOSX_DEPLOYMENT_TARGET_ppc = 10.4"); - } - - { - StringArray linkerFlags, librarySearchPaths; - getLinkerFlags (config, linkerFlags, librarySearchPaths); - - if (linkerFlags.size() > 0) - s.add ("OTHER_LDFLAGS = \"" + linkerFlags.joinIntoString (" ") + "\""); - - if (librarySearchPaths.size() > 0) - { - String libPaths ("LIBRARY_SEARCH_PATHS = (\"$(inherited)\""); - - for (int i = 0; i < librarySearchPaths.size(); ++i) - libPaths += ", \"\\\"" + librarySearchPaths[i] + "\\\"\""; - - s.add (libPaths + ")"); - } - } - - StringPairArray defines; - - if (config.isDebug().getValue()) - { - defines.set ("_DEBUG", "1"); - defines.set ("DEBUG", "1"); - s.add ("ONLY_ACTIVE_ARCH = YES"); - s.add ("COPY_PHASE_STRIP = NO"); - s.add ("GCC_DYNAMIC_NO_PIC = NO"); - s.add ("GCC_ENABLE_FIX_AND_CONTINUE = NO"); - } - else - { - defines.set ("_NDEBUG", "1"); - defines.set ("NDEBUG", "1"); - s.add ("GCC_GENERATE_DEBUGGING_SYMBOLS = NO"); - s.add ("GCC_SYMBOLS_PRIVATE_EXTERN = YES"); - } - - { - const String objCSuffix (getObjCSuffix().toString().trim()); - if (objCSuffix.isNotEmpty()) - defines.set ("JUCE_ObjCExtraSuffix", replacePreprocessorTokens (config, objCSuffix)); - } - - { - defines = mergePreprocessorDefs (defines, getAllPreprocessorDefs (config)); - - StringArray defsList; - - for (int i = 0; i < defines.size(); ++i) - { - String def (defines.getAllKeys()[i]); - const String value (defines.getAllValues()[i]); - if (value.isNotEmpty()) - def << "=" << value; - - defsList.add (def.quoted()); - } - - s.add ("GCC_PREPROCESSOR_DEFINITIONS = (" + indentList (defsList, ",") + ")"); - } - - return s; - } - - void addFrameworks() - { - if (! projectType.isLibrary()) - { - StringArray s (xcodeFrameworks); - - s.addTokens (iPhone ? "UIKit Foundation CoreGraphics CoreText AudioToolbox QuartzCore OpenGLES" - : "Cocoa Carbon IOKit CoreAudio CoreMIDI WebKit DiscRecording OpenGL QuartzCore QTKit QuickTime AudioToolbox", false); - - s.removeDuplicates (true); - s.sort (true); - - for (int i = 0; i < s.size(); ++i) - addFramework (s[i]); - } - } - - //============================================================================== - void writeProjectFile (OutputStream& output) - { - output << "// !$*UTF8*$!\n{\n" - "\tarchiveVersion = 1;\n" - "\tclasses = {\n\t};\n" - "\tobjectVersion = 45;\n" - "\tobjects = {\n\n"; - - Array objects; - objects.addArray (pbxBuildFiles); - objects.addArray (pbxFileReferences); - objects.addArray (pbxGroups); - objects.addArray (targetConfigs); - objects.addArray (projectConfigs); - objects.addArray (misc); - - for (int i = 0; i < objects.size(); ++i) - { - ValueTree& o = *objects.getUnchecked(i); - output << "\t\t" << o.getType().toString() << " = { "; - - for (int j = 0; j < o.getNumProperties(); ++j) - { - const Identifier propertyName (o.getPropertyName(j)); - String val (o.getProperty (propertyName).toString()); - - if (val.isEmpty() || (val.containsAnyOf (" \t;<>()=,&+-_\r\n") - && ! (val.trimStart().startsWithChar ('(') - || val.trimStart().startsWithChar ('{')))) - val = val.quoted(); - - output << propertyName.toString() << " = " << val << "; "; - } - - output << "};\n"; - } - - output << "\t};\n\trootObject = " << createID ("__root") << ";\n}\n"; - } - - static void addPlistDictionaryKey (XmlElement* xml, const String& key, const String& value) - { - xml->createNewChildElement ("key")->addTextElement (key); - xml->createNewChildElement ("string")->addTextElement (value); - } - - static void addPlistDictionaryKeyBool (XmlElement* xml, const String& key, const bool value) - { - xml->createNewChildElement ("key")->addTextElement (key); - xml->createNewChildElement (value ? "true" : "false"); - } - - String addBuildFile (const String& path, const String& fileRefID, bool addToSourceBuildPhase, bool inhibitWarnings) - { - String fileID (createID (path + "buildref")); - - if (addToSourceBuildPhase) - sourceIDs.add (fileID); - - ValueTree* v = new ValueTree (fileID); - v->setProperty ("isa", "PBXBuildFile", 0); - v->setProperty ("fileRef", fileRefID, 0); - - if (inhibitWarnings) - v->setProperty ("settings", "{COMPILER_FLAGS = \"-w\"; }", 0); - - pbxBuildFiles.add (v); - return fileID; - } - - String addBuildFile (const RelativePath& path, bool addToSourceBuildPhase, bool inhibitWarnings) - { - return addBuildFile (path.toUnixStyle(), createID (path), addToSourceBuildPhase, inhibitWarnings); - } - - String addFileReference (String pathString) - { - String sourceTree ("SOURCE_ROOT"); - RelativePath path (pathString, RelativePath::unknown); - - if (pathString.startsWith ("${")) - { - sourceTree = pathString.substring (2).upToFirstOccurrenceOf ("}", false, false); - pathString = pathString.fromFirstOccurrenceOf ("}/", false, false); - } - else if (path.isAbsolute()) - { - sourceTree = ""; - } - - const String fileRefID (createID (pathString)); - - ValueTree* v = new ValueTree (fileRefID); - v->setProperty ("isa", "PBXFileReference", 0); - v->setProperty ("lastKnownFileType", getFileType (path), 0); - v->setProperty (Ids::name, pathString.fromLastOccurrenceOf ("/", false, false), 0); - v->setProperty ("path", sanitisePath (pathString), 0); - v->setProperty ("sourceTree", sourceTree, 0); - pbxFileReferences.add (v); - - return fileRefID; - } - - static String getFileType (const RelativePath& file) - { - if (file.hasFileExtension ("cpp;cc;cxx")) return "sourcecode.cpp.cpp"; - else if (file.hasFileExtension (".mm")) return "sourcecode.cpp.objcpp"; - else if (file.hasFileExtension (".m")) return "sourcecode.c.objc"; - else if (file.hasFileExtension (headerFileExtensions)) return "sourcecode.c.h"; - else if (file.hasFileExtension (".framework")) return "wrapper.framework"; - else if (file.hasFileExtension (".jpeg;.jpg")) return "image.jpeg"; - else if (file.hasFileExtension ("png;gif")) return "image" + file.getFileExtension(); - else if (file.hasFileExtension ("html;htm")) return "text.html"; - else if (file.hasFileExtension ("txt;rtf")) return "text" + file.getFileExtension(); - else if (file.hasFileExtension ("plist")) return "text.plist.xml"; - else if (file.hasFileExtension ("app")) return "wrapper.application"; - else if (file.hasFileExtension ("component;vst;plugin")) return "wrapper.cfbundle"; - else if (file.hasFileExtension ("xcodeproj")) return "wrapper.pb-project"; - else if (file.hasFileExtension ("a")) return "archive.ar"; - - return "file" + file.getFileExtension(); - } - - String addFile (const RelativePath& path, bool shouldBeCompiled, bool inhibitWarnings) - { - if (shouldBeCompiled) - { - if (path.hasFileExtension (".r")) - rezFileIDs.add (addBuildFile (path, false, inhibitWarnings)); - else - addBuildFile (path, true, inhibitWarnings); - } - - return addFileReference (path.toUnixStyle()); - } - - String addProjectItem (const Project::Item& projectItem) - { - if (projectItem.isGroup()) - { - StringArray childIDs; - for (int i = 0; i < projectItem.getNumChildren(); ++i) - { - const String childID (addProjectItem (projectItem.getChild(i))); - - if (childID.isNotEmpty()) - childIDs.add (childID); - } - - return addGroup (projectItem, childIDs); - } - else - { - if (projectItem.shouldBeAddedToTargetProject()) - { - String itemPath (projectItem.getFilePath()); - bool inhibitWarnings = projectItem.getShouldInhibitWarningsValue().getValue(); - - if (itemPath.startsWith ("${")) - { - const RelativePath path (itemPath, RelativePath::unknown); - return addFile (path, projectItem.shouldBeCompiled(), inhibitWarnings); - } - else - { - const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); - return addFile (path, projectItem.shouldBeCompiled(), inhibitWarnings); - } - } - } - - return String::empty; - } - - void addFramework (const String& frameworkName) - { - const String path ("System/Library/Frameworks/" + frameworkName + ".framework"); - const String fileRefID (createID (path)); - addFileReference ("${SDKROOT}/" + path); - frameworkIDs.add (addBuildFile (path, fileRefID, false, false)); - frameworkFileIDs.add (fileRefID); - } - - void addGroup (const String& groupID, const String& groupName, const StringArray& childIDs) - { - ValueTree* v = new ValueTree (groupID); - v->setProperty ("isa", "PBXGroup", 0); - v->setProperty ("children", "(" + indentList (childIDs, ",") + " )", 0); - v->setProperty (Ids::name, groupName, 0); - v->setProperty ("sourceTree", "", 0); - pbxGroups.add (v); - } - - String addGroup (const Project::Item& item, StringArray& childIDs) - { - const String groupName (item.getName().toString()); - const String groupID (getIDForGroup (item)); - addGroup (groupID, groupName, childIDs); - return groupID; - } - - void addMainBuildProduct() - { - jassert (xcodeFileType.isNotEmpty()); - jassert (xcodeBundleExtension.isEmpty() || xcodeBundleExtension.startsWithChar('.')); - String productName (configs.getReference(0).getTargetBinaryName().toString()); - - if (xcodeFileType == "archive.ar") - productName = getLibbedFilename (productName); - else - productName += xcodeBundleExtension; - - addBuildProduct (xcodeFileType, productName); - } - - void addBuildProduct (const String& fileType, const String& binaryName) - { - ValueTree* v = new ValueTree (createID ("__productFileID")); - v->setProperty ("isa", "PBXFileReference", 0); - v->setProperty ("explicitFileType", fileType, 0); - v->setProperty ("includeInIndex", (int) 0, 0); - v->setProperty ("path", sanitisePath (binaryName), 0); - v->setProperty ("sourceTree", "BUILT_PRODUCTS_DIR", 0); - pbxFileReferences.add (v); - } - - void addTargetConfig (const String& configName, const StringArray& buildSettings) - { - ValueTree* v = new ValueTree (createID ("targetconfigid_" + configName)); - v->setProperty ("isa", "XCBuildConfiguration", 0); - v->setProperty ("buildSettings", "{" + indentList (buildSettings, ";") + " }", 0); - v->setProperty (Ids::name, configName, 0); - targetConfigs.add (v); - } - - void addProjectConfig (const String& configName, const StringArray& buildSettings) - { - ValueTree* v = new ValueTree (createID ("projectconfigid_" + configName)); - v->setProperty ("isa", "XCBuildConfiguration", 0); - v->setProperty ("buildSettings", "{" + indentList (buildSettings, ";") + " }", 0); - v->setProperty (Ids::name, configName, 0); - projectConfigs.add (v); - } - - void addConfigList (const OwnedArray & configsToUse, const String& listID) - { - StringArray configIDs; - - for (int i = 0; i < configsToUse.size(); ++i) - configIDs.add (configsToUse[i]->getType().toString()); - - ValueTree* v = new ValueTree (listID); - v->setProperty ("isa", "XCConfigurationList", 0); - v->setProperty ("buildConfigurations", "(" + indentList (configIDs, ",") + " )", 0); - v->setProperty ("defaultConfigurationIsVisible", (int) 0, 0); - - if (configsToUse[0] != nullptr) - v->setProperty ("defaultConfigurationName", configsToUse[0]->getProperty (Ids::name), 0); - - misc.add (v); - } - - ValueTree* addBuildPhase (const String& phaseType, const StringArray& fileIds) - { - String phaseId (createID (phaseType + "resbuildphase")); - buildPhaseIDs.add (phaseId); - - ValueTree* v = new ValueTree (phaseId); - v->setProperty ("isa", phaseType, 0); - v->setProperty ("buildActionMask", "2147483647", 0); - v->setProperty ("files", "(" + indentList (fileIds, ",") + " )", 0); - v->setProperty ("runOnlyForDeploymentPostprocessing", (int) 0, 0); - misc.add (v); - return v; - } - - void addTargetObject() - { - ValueTree* const v = new ValueTree (createID ("__target")); - v->setProperty ("isa", "PBXNativeTarget", 0); - v->setProperty ("buildConfigurationList", createID ("__configList"), 0); - v->setProperty ("buildPhases", "(" + indentList (buildPhaseIDs, ",") + " )", 0); - v->setProperty ("buildRules", "( )", 0); - v->setProperty ("dependencies", "( )", 0); - v->setProperty (Ids::name, projectName, 0); - v->setProperty ("productName", projectName, 0); - v->setProperty ("productReference", createID ("__productFileID"), 0); - - if (xcodeProductInstallPath.isNotEmpty()) - v->setProperty ("productInstallPath", xcodeProductInstallPath, 0); - - jassert (xcodeProductType.isNotEmpty()); - v->setProperty ("productType", xcodeProductType, 0); - - misc.add (v); - } - - void addProjectObject() - { - ValueTree* const v = new ValueTree (createID ("__root")); - v->setProperty ("isa", "PBXProject", 0); - v->setProperty ("buildConfigurationList", createID ("__projList"), 0); - v->setProperty ("compatibilityVersion", "Xcode 3.1", 0); - v->setProperty ("hasScannedForEncodings", (int) 0, 0); - v->setProperty ("mainGroup", createID ("__mainsourcegroup"), 0); - v->setProperty ("projectDirPath", "\"\"", 0); - v->setProperty ("projectRoot", "\"\"", 0); - v->setProperty ("targets", "( " + createID ("__target") + " )", 0); - misc.add (v); - } - - void addShellScriptPhase() - { - if (xcodeShellScript.isNotEmpty()) - { - ValueTree* const v = addBuildPhase ("PBXShellScriptBuildPhase", StringArray()); - v->setProperty (Ids::name, xcodeShellScriptTitle, 0); - v->setProperty ("shellPath", "/bin/sh", 0); - v->setProperty ("shellScript", xcodeShellScript.replace ("\\", "\\\\") - .replace ("\"", "\\\"") - .replace ("\r\n", "\\n") - .replace ("\n", "\\n"), 0); - } - } - - //============================================================================== - static String indentList (const StringArray& list, const String& separator) - { - if (list.size() == 0) - return " "; - - return "\n\t\t\t\t" + list.joinIntoString (separator + "\n\t\t\t\t") - + (separator == ";" ? separator : String::empty); - } - - String createID (const RelativePath& path) const - { - return createID (path.toUnixStyle()); - } - - String createID (String rootString) const - { - if (rootString.startsWith ("${")) - rootString = rootString.fromFirstOccurrenceOf ("}/", false, false); - - static const char digits[] = "0123456789ABCDEF"; - char n[24]; - Random ran (projectIDSalt + hashCode64 (rootString)); - - for (int i = 0; i < numElementsInArray (n); ++i) - n[i] = digits [ran.nextInt() & 15]; - - return String (n, numElementsInArray (n)); - } - - String getIDForGroup (const Project::Item& item) const - { - return createID (item.getID()); - } - - bool shouldFileBeCompiledByDefault (const RelativePath& file) const - { - return file.hasFileExtension (sourceFileExtensions); - } -}; - - -#endif // __JUCER_PROJECTEXPORT_XCODE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp b/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp deleted file mode 100644 index ac33b1391d..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectExporter.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#include "jucer_ProjectExporter.h" -#include "jucer_ProjectExport_Make.h" -#include "jucer_ProjectExport_MSVC.h" -#include "jucer_ProjectExport_XCode.h" -#include "jucer_ProjectExport_Android.h" - - -//============================================================================== -int ProjectExporter::getNumExporters() -{ - return 6; -} - -StringArray ProjectExporter::getExporterNames() -{ - StringArray s; - s.add (XCodeProjectExporter::getNameMac()); - s.add (XCodeProjectExporter::getNameiOS()); - s.add (MSVCProjectExporterVC6::getName()); - s.add (MSVCProjectExporterVC2005::getName()); - s.add (MSVCProjectExporterVC2008::getName()); - s.add (MSVCProjectExporterVC2010::getName()); - s.add (MakefileProjectExporter::getNameLinux()); - s.add (AndroidProjectExporter::getNameAndroid()); - return s; -} - -ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int index) -{ - ProjectExporter* exp = nullptr; - - switch (index) - { - case 0: exp = new XCodeProjectExporter (project, ValueTree (XCodeProjectExporter::getValueTreeTypeName (false)), false); break; - case 1: exp = new XCodeProjectExporter (project, ValueTree (XCodeProjectExporter::getValueTreeTypeName (true)), true); break; - case 2: exp = new MSVCProjectExporterVC6 (project, ValueTree (MSVCProjectExporterVC6::getValueTreeTypeName())); break; - case 3: exp = new MSVCProjectExporterVC2005 (project, ValueTree (MSVCProjectExporterVC2005::getValueTreeTypeName())); break; - case 4: exp = new MSVCProjectExporterVC2008 (project, ValueTree (MSVCProjectExporterVC2008::getValueTreeTypeName())); break; - case 5: exp = new MSVCProjectExporterVC2010 (project, ValueTree (MSVCProjectExporterVC2010::getValueTreeTypeName())); break; - case 6: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter::getValueTreeTypeName())); break; - case 7: exp = new AndroidProjectExporter (project, ValueTree (AndroidProjectExporter::getValueTreeTypeName())); break; - default: jassertfalse; return 0; - } - - File juceFolder (StoredSettings::getInstance()->getLastKnownJuceFolder()); - File target (exp->getTargetFolder()); - - if (FileHelpers::shouldPathsBeRelative (juceFolder.getFullPathName(), project.getFile().getFullPathName())) - exp->getJuceFolder() = juceFolder.getRelativePathFrom (project.getFile().getParentDirectory()); - else - exp->getJuceFolder() = juceFolder.getFullPathName(); - - exp->createLibraryModules(); - return exp; -} - -ProjectExporter* ProjectExporter::createExporter (Project& project, const ValueTree& settings) -{ - ProjectExporter* exp = MSVCProjectExporterVC6::createForSettings (project, settings); - if (exp == nullptr) exp = MSVCProjectExporterVC2005::createForSettings (project, settings); - if (exp == nullptr) exp = MSVCProjectExporterVC2008::createForSettings (project, settings); - if (exp == nullptr) exp = MSVCProjectExporterVC2010::createForSettings (project, settings); - if (exp == nullptr) exp = XCodeProjectExporter::createForSettings (project, settings); - if (exp == nullptr) exp = MakefileProjectExporter::createForSettings (project, settings); - if (exp == nullptr) exp = AndroidProjectExporter::createForSettings (project, settings); - - jassert (exp != nullptr); - exp->createLibraryModules(); - return exp; -} - -ProjectExporter* ProjectExporter::createPlatformDefaultExporter (Project& project) -{ - ScopedPointer best; - int bestPref = 0; - - for (int i = 0; i < project.getNumExporters(); ++i) - { - ScopedPointer exp (project.createExporter (i)); - - const int pref = exp->getLaunchPreferenceOrderForCurrentOS(); - - if (pref > bestPref) - { - bestPref = pref; - best = exp; - } - } - - return best.release(); -} - -//============================================================================== -ProjectExporter::ProjectExporter (Project& project_, const ValueTree& settings_) - : xcodeIsBundle (false), - xcodeCreatePList (false), - xcodeCanUseDwarf (true), - makefileIsDLL (false), - msvcIsDLL (false), - msvcIsWindowsSubsystem (true), - msvcNeedsDLLRuntimeLib (false), - project (project_), - projectType (project_.getProjectType()), - projectName (project_.getProjectName().toString()), - projectFolder (project_.getFile().getParentDirectory()), - settings (settings_) -{ - for (int i = 0; i < jmax (1, project.getNumConfigurations()); ++i) - configs.add (project.getConfiguration (i)); - - groups.add (project.getMainGroup().createCopy()); -} - -ProjectExporter::~ProjectExporter() -{ -} - -void ProjectExporter::createLibraryModules() -{ - libraryModules.clear(); - project.getProjectType().createRequiredModules (project, libraryModules); -} - -File ProjectExporter::getTargetFolder() const -{ - return project.resolveFilename (getTargetLocation().toString()); -} - -String ProjectExporter::getIncludePathForFileInJuceFolder (const String& pathFromJuceFolder, const File& targetIncludeFile) const -{ - String juceFolderPath (getJuceFolder().toString()); - - if (juceFolderPath.startsWithChar ('<')) - { - juceFolderPath = FileHelpers::unixStylePath (File::addTrailingSeparator (juceFolderPath.substring (1).dropLastCharacters(1))); - if (juceFolderPath == "/") - juceFolderPath = String::empty; - - return "<" + juceFolderPath + pathFromJuceFolder + ">"; - } - else - { - const RelativePath juceFromProject (juceFolderPath, RelativePath::projectFolder); - const RelativePath fileFromProject (juceFromProject.getChildFile (pathFromJuceFolder)); - const RelativePath fileFromHere (fileFromProject.rebased (project.getFile().getParentDirectory(), - targetIncludeFile.getParentDirectory(), RelativePath::unknown)); - return fileFromHere.toUnixStyle().quoted(); - } -} - -RelativePath ProjectExporter::getJucePathFromProjectFolder() const -{ - return RelativePath (getJuceFolder().toString(), RelativePath::projectFolder); -} - -RelativePath ProjectExporter::getJucePathFromTargetFolder() const -{ - return rebaseFromProjectFolderToBuildTarget (getJucePathFromProjectFolder()); -} - -RelativePath ProjectExporter::rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const -{ - return path.rebased (project.getFile().getParentDirectory(), getTargetFolder(), RelativePath::buildTargetFolder); -} - -bool ProjectExporter::shouldFileBeCompiledByDefault (const RelativePath& file) const -{ - return file.hasFileExtension ("cpp;cc;c;cxx"); -} - -void ProjectExporter::createPropertyEditors (Array & props) -{ - props.add (new TextPropertyComponent (getTargetLocation(), "Target Project Folder", 1024, false)); - props.getLast()->setTooltip ("The location of the folder in which the " + name + " project will be created. This path can be absolute, but it's much more sensible to make it relative to the jucer project directory."); - - props.add (new TextPropertyComponent (getJuceFolder(), "Juce Location", 1024, false)); - props.getLast()->setTooltip ("The location of the Juce library folder that the " + name + " project will use to when compiling. This can be an absolute path, or relative to the jucer project folder, but it must be valid on the filesystem of the machine you use to actually do the compiling."); - - for (int i = 0; i < libraryModules.size(); ++i) - libraryModules.getUnchecked(i)->createPropertyEditors (*this, props); - - props.add (new TextPropertyComponent (getExporterPreprocessorDefs(), "Extra Preprocessor Definitions", 32768, false)); - props.getLast()->setTooltip ("Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); - - props.add (new TextPropertyComponent (getExtraCompilerFlags(), "Extra compiler flags", 2048, false)); - props.getLast()->setTooltip ("Extra command-line flags to be passed to the compiler. This string can contain references to preprocessor definitions in the form ${NAME_OF_DEFINITION}, which will be replaced with their values."); - props.add (new TextPropertyComponent (getExtraLinkerFlags(), "Extra linker flags", 2048, false)); - props.getLast()->setTooltip ("Extra command-line flags to be passed to the linker. You might want to use this for adding additional libraries. This string can contain references to preprocessor definitions in the form ${NAME_OF_VALUE}, which will be replaced with their values."); -} - -StringPairArray ProjectExporter::getAllPreprocessorDefs (const Project::BuildConfiguration& config) const -{ - StringPairArray defs (mergePreprocessorDefs (config.getAllPreprocessorDefs(), - parsePreprocessorDefs (getExporterPreprocessorDefs().toString()))); - defs.set (getExporterIdentifierMacro(), "1"); - return defs; -} - -StringPairArray ProjectExporter::getAllPreprocessorDefs() const -{ - StringPairArray defs (mergePreprocessorDefs (project.getPreprocessorDefs(), - parsePreprocessorDefs (getExporterPreprocessorDefs().toString()))); - defs.set (getExporterIdentifierMacro(), "1"); - return defs; -} - -String ProjectExporter::replacePreprocessorTokens (const Project::BuildConfiguration& config, const String& sourceString) const -{ - return replacePreprocessorDefs (getAllPreprocessorDefs (config), sourceString); -} - -Image ProjectExporter::getBestIconForSize (int size, bool returnNullIfNothingBigEnough) -{ - Image im; - - const Image im1 (project.getSmallIcon()); - const Image im2 (project.getBigIcon()); - - if (im1.isValid() && im2.isValid()) - { - if (im1.getWidth() >= size && im2.getWidth() >= size) - im = im1.getWidth() < im2.getWidth() ? im1 : im2; - else if (im1.getWidth() >= size) - im = im1; - else if (im2.getWidth() >= size) - im = im2; - else - return Image::null; - } - else - { - im = im1.isValid() ? im1 : im2; - } - - if (size == im.getWidth() && size == im.getHeight()) - return im; - - if (returnNullIfNothingBigEnough && im.getWidth() < size && im.getHeight() < size) - return Image::null; - - Image newIm (Image::ARGB, size, size, true, Image::SoftwareImage); - Graphics g (newIm); - g.drawImageWithin (im, 0, 0, size, size, - RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, false); - return newIm; -} diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExporter.h b/extras/Introjucer/Source/Project/jucer_ProjectExporter.h deleted file mode 100644 index 8e22c982db..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectExporter.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_PROJECTEXPORTER_JUCEHEADER__ -#define __JUCER_PROJECTEXPORTER_JUCEHEADER__ - -#include "../jucer_Headers.h" -#include "jucer_Project.h" -#include "jucer_ProjectType.h" - - -//============================================================================== -class ProjectExporter -{ -protected: - //============================================================================== - ProjectExporter (Project& project, const ValueTree& settings); - -public: - virtual ~ProjectExporter(); - - static int getNumExporters(); - static StringArray getExporterNames(); - static ProjectExporter* createNewExporter (Project& project, const int index); - - static ProjectExporter* createExporter (Project& project, const ValueTree& settings); - static ProjectExporter* createPlatformDefaultExporter (Project& project); - - //============================================================================= - // return 0 if this can't be opened in the current OS, or a higher value, where higher numbers are more preferable. - virtual int getLaunchPreferenceOrderForCurrentOS() = 0; - virtual bool isPossibleForCurrentProject() = 0; - virtual bool usesMMFiles() const = 0; - virtual void createPropertyEditors (Array & props); - virtual void launchProject() = 0; - virtual void create() = 0; // may throw a SaveError - virtual bool shouldFileBeCompiledByDefault (const RelativePath& path) const; - - virtual bool isXcode() const { return false; } - virtual bool isVisualStudio() const { return false; } - virtual bool isLinux() const { return false; } - - //============================================================================== - String getName() const { return name; } - File getTargetFolder() const; - - Project& getProject() noexcept { return project; } - const Project& getProject() const noexcept { return project; } - - const ValueTree& getSettings() const { return settings; } - Value getSetting (const Identifier& name_) const { return settings.getPropertyAsValue (name_, project.getUndoManagerFor (settings)); } - - Value getJuceFolder() const { return getSetting (Ids::juceFolder); } - Value getTargetLocation() const { return getSetting (Ids::targetFolder); } - - Value getExtraCompilerFlags() const { return getSetting (Ids::extraCompilerFlags); } - Value getExtraLinkerFlags() const { return getSetting (Ids::extraLinkerFlags); } - - Value getExporterPreprocessorDefs() const { return getSetting (Ids::extraDefs); } - - // includes exporter, project + config defs - StringPairArray getAllPreprocessorDefs (const Project::BuildConfiguration& config) const; - // includes exporter + project defs.. - StringPairArray getAllPreprocessorDefs() const; - - String replacePreprocessorTokens (const Project::BuildConfiguration& config, - const String& sourceString) const; - - // This adds the quotes, and may return angle-brackets, eg: or normal quotes. - String getIncludePathForFileInJuceFolder (const String& pathFromJuceFolder, const File& targetIncludeFile) const; - - RelativePath rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const; - - String getExporterIdentifierMacro() const - { - return "JUCER_" + settings.getType().toString() + "_" - + String::toHexString (settings [Ids::targetFolder].toString().hashCode()).toUpperCase(); - } - - // An exception that can be thrown by the create() method. - class SaveError - { - public: - SaveError (const String& error) : message (error) - {} - - SaveError (const File& fileThatFailedToWrite) - : message ("Can't write to the file: " + fileThatFailedToWrite.getFullPathName()) - {} - - String message; - }; - - RelativePath getJucePathFromTargetFolder() const; - RelativePath getJucePathFromProjectFolder() const; - - //============================================================================== - Array groups; - OwnedArray libraryModules; - - //============================================================================== - String xcodePackageType, xcodeBundleSignature, xcodeBundleExtension; - String xcodeProductType, xcodeProductInstallPath, xcodeFileType; - String xcodeShellScript, xcodeShellScriptTitle, xcodeOtherRezFlags; - bool xcodeIsBundle, xcodeCreatePList, xcodeCanUseDwarf; - StringArray xcodeFrameworks; - Array xcodeExtraLibrariesDebug, xcodeExtraLibrariesRelease; - - //============================================================================== - String makefileTargetSuffix; - bool makefileIsDLL; - - //============================================================================== - String msvcTargetSuffix; - StringPairArray msvcExtraPreprocessorDefs; - bool msvcIsDLL, msvcIsWindowsSubsystem, msvcNeedsDLLRuntimeLib; - String msvcExtraLinkerOptions, msvcDelayLoadedDLLs, msvcModuleDefinitionFile; - String msvcPostBuildCommand, msvcPostBuildOutputs; - - //============================================================================== - void createLibraryModules(); - -protected: - //============================================================================== - String name; - Project& project; - const ProjectType& projectType; - const String projectName; - const File projectFolder; - Array configs; - ValueTree settings; - - static String getDefaultBuildsRootFolder() { return "Builds/"; } - - static String getLibbedFilename (String name) - { - if (! name.startsWith ("lib")) - name = "lib" + name; - if (! name.endsWithIgnoreCase (".a")) - name = name + ".a"; - return name; - } - - Image getBestIconForSize (int size, bool returnNullIfNothingBigEnough); - - //============================================================================== - static void overwriteFileIfDifferentOrThrow (const File& file, const MemoryOutputStream& newData) - { - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (file, newData)) - throw SaveError (file); - } - - static void createDirectoryOrThrow (const File& dirToCreate) - { - if (! dirToCreate.createDirectory()) - throw SaveError ("Can't create folder: " + dirToCreate.getFullPathName()); - } - - static void writeXmlOrThrow (const XmlElement& xml, const File& file, const String& encoding, int maxCharsPerLine) - { - MemoryOutputStream mo; - xml.writeToStream (mo, String::empty, false, true, encoding, maxCharsPerLine); - overwriteFileIfDifferentOrThrow (file, mo); - } - -private: - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectExporter); -}; - - -#endif // __JUCER_PROJECTEXPORTER_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.cpp b/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.cpp index 76c06d3f6a..1dceb8b83e 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.cpp @@ -1,383 +1,976 @@ /* ============================================================================== - This is an automatically generated file created by the Jucer! + This is an automatically generated file! Be careful when adding custom code to these files, as only the code within the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created for JUCE version: JUCE v1.53.8 + Created for JUCE version: JUCE v2.0.16 ------------------------------------------------------------------------------ - JUCE and the Jucer are copyright 2004-10 by Raw Material Software ltd. + JUCE is copyright 2004-11 by Raw Material Software ltd. ============================================================================== */ //[CppHeaders] You can add your own extra header files here... -#include "jucer_ProjectExporter.h" +#include "../Project Saving/jucer_ProjectExporter.h" +#include "jucer_Module.h" +#include "../Application/jucer_JuceUpdater.h" //[/CppHeaders] #include "jucer_ProjectInformationComponent.h" //[MiscUserDefs] You can add your own user definitions and misc code here... -class PropertiesWithHelpComponent : public PropertyPanelWithTooltips + + +//============================================================================== +class ModulesPanel : public PropertyComponent, + public FilenameComponentListener, + public ButtonListener { public: - PropertiesWithHelpComponent (Project& project_, int tabIndex_) - : project (project_), tabIndex (tabIndex_) + ModulesPanel (Project& project_) + : PropertyComponent ("Modules", 500), + project (project_), + modulesLocation ("modules", ModuleList::getLocalModulesFolder (&project), + true, true, false, "*", String::empty, + "Select a folder containing your JUCE modules..."), + modulesLabel (String::empty, "Module source folder:"), + updateModulesButton ("Check for module updates..."), + moduleListBox (moduleList), + copyingMessage (project_, moduleList) + { + moduleList.rescan (ModuleList::getLocalModulesFolder (&project)); + + addAndMakeVisible (&modulesLocation); + modulesLocation.setBounds ("150, 3, parent.width - 180, 28"); + modulesLocation.addListener (this); + + modulesLabel.attachToComponent (&modulesLocation, true); + + addAndMakeVisible (&updateModulesButton); + updateModulesButton.setBounds ("parent.width - 175, 3, parent.width - 4, 28"); + updateModulesButton.addListener (this); + + moduleListBox.setOwner (this); + addAndMakeVisible (&moduleListBox); + moduleListBox.setBounds ("4, 31, parent.width / 2 - 4, parent.height - 32"); + + addAndMakeVisible (©ingMessage); + copyingMessage.setBounds ("4, parent.height - 30, parent.width - 4, parent.height - 1"); + copyingMessage.refresh(); + } + + void filenameComponentChanged (FilenameComponent*) { + moduleList.rescan (modulesLocation.getCurrentFile()); + modulesLocation.setCurrentFile (moduleList.getModulesFolder(), false, false); + ModuleList::setLocalModulesFolder (moduleList.getModulesFolder()); + moduleListBox.refresh(); } - void rebuildProperties() + void buttonClicked (Button*) { - getPanel().clear(); - Array props; + JuceUpdater::show (moduleList, getTopLevelComponent(), ""); + + filenameComponentChanged (nullptr); + } + + bool isEnabled (const ModuleList::Module* m) const + { + return project.isModuleEnabled (m->uid); + } + + void setEnabled (const ModuleList::Module* m, bool enable) + { + if (enable) + project.addModule (m->uid, true); + else + project.removeModule (m->uid); + + refresh(); + } + + bool areDependenciesMissing (const ModuleList::Module* m) + { + return moduleList.getExtraDependenciesNeeded (project, *m).size() > 0; + } + + void selectionChanged (const ModuleList::Module* selectedModule) + { + settings = nullptr; + + if (selectedModule != nullptr) + { + addAndMakeVisible (settings = new ModuleSettingsPanel (project, moduleList, selectedModule->uid)); + settings->setBounds ("parent.width / 2 + 1, 31, parent.width - 3, parent.height - 32"); + } + + copyingMessage.refresh(); + } + + void refresh() + { + moduleListBox.refresh(); + + if (settings != nullptr) + settings->refreshAll(); + + copyingMessage.refresh(); + } + + void paint (Graphics& g) // (overridden to avoid drawing the name) + { + getLookAndFeel().drawPropertyComponentBackground (g, getWidth(), getHeight(), *this); + } + + //============================================================================== + class ModuleSelectionListBox : public ListBox, + public ListBoxModel + { + public: + ModuleSelectionListBox (ModuleList& list_) + : list (list_), owner (nullptr) + { + setColour (ListBox::backgroundColourId, Colours::white.withAlpha (0.4f)); + setTooltip ("Use this list to select which modules should be included in your app.\n" + "Any modules which have missing dependencies will be shown in red."); + } - if (tabIndex == 0) + void setOwner (ModulesPanel* owner_) { - // The main project tab... - project.createPropertyEditors (props); + owner = owner_; + setModel (this); } - else if (tabIndex == 1) + + void refresh() + { + updateContent(); + repaint(); + } + + int getNumRows() { - // The Juce options tab... - OwnedArray flags; - project.getAllConfigFlags (flags); + return list.modules.size(); + } - StringArray possibleValues; - possibleValues.add ("(Use default from juce_Config.h)"); - possibleValues.add ("Enabled"); - possibleValues.add ("Disabled"); + void paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) + { + if (rowIsSelected) + g.fillAll (findColour (TextEditor::highlightColourId)); - Array mappings; - mappings.add (Project::configFlagDefault); - mappings.add (Project::configFlagEnabled); - mappings.add (Project::configFlagDisabled); + const ModuleList::Module* const m = list.modules [rowNumber]; - for (int i = 0; i < flags.size(); ++i) + if (m != nullptr) { - ChoicePropertyComponent* c = new ChoicePropertyComponent (flags[i]->value, flags[i]->symbol, possibleValues, mappings); - c->setTooltip (flags[i]->description); - c->setPreferredHeight (22); - props.add (c); + const float tickSize = height * 0.7f; + + getLookAndFeel().drawTickBox (g, *this, (height - tickSize) / 2, (height - tickSize) / 2, tickSize, tickSize, + owner->isEnabled (m), true, false, false); + + if (owner->isEnabled (m) && owner->areDependenciesMissing (m)) + g.setColour (Colours::red); + else + g.setColour (Colours::black); + + g.setFont (height * 0.7f, Font::bold); + g.drawFittedText (m->uid, height, 0, 200, height, Justification::centredLeft, 1); + + g.setFont (height * 0.55f, Font::italic); + g.drawText (m->name, height + 200, 0, width - height - 200, height, Justification::centredLeft, true); } } - else if (tabIndex < 2 + project.getNumConfigurations()) + + void listBoxItemClicked (int row, const MouseEvent& e) { - // A config tab.. - project.getConfiguration (tabIndex - 2).createPropertyEditors (props); + if (e.x < getRowHeight()) + flipRow (row); } - else + + void listBoxItemDoubleClicked (int row, const MouseEvent& e) { - // An export tab.. - ScopedPointer exp (project.createExporter (tabIndex - (2 + project.getNumConfigurations()))); + flipRow (row); + } - if (exp != nullptr) - exp->createPropertyEditors (props); + void returnKeyPressed (int row) + { + flipRow (row); + } - for (int i = props.size(); --i >= 0;) - props.getUnchecked(i)->setPreferredHeight (22); + void selectedRowsChanged (int lastRowSelected) + { + owner->selectionChanged (list.modules [lastRowSelected]); } - getPanel().addProperties (props); - } + void flipRow (int row) + { + const ModuleList::Module* const m = list.modules [row]; - void visibilityChanged() + if (m != nullptr) + owner->setEnabled (m, ! owner->isEnabled (m)); + } + + private: + ModuleList& list; + ModulesPanel* owner; + }; + + //============================================================================== + class ModuleSettingsPanel : public PropertyPanel { - if (isVisible()) - rebuildProperties(); - } + public: + ModuleSettingsPanel (Project& project_, ModuleList& moduleList_, const String& moduleID_) + : project (project_), moduleList (moduleList_), moduleID (moduleID_) + { + refreshAll(); + } -private: - Project& project; - int tabIndex; -}; -//[/MiscUserDefs] + void refreshAll() + { + setEnabled (project.isModuleEnabled (moduleID)); -//============================================================================== -ProjectInformationComponent::ProjectInformationComponent (Project& project_) - : project (project_), - configTabBox (TabbedButtonBar::TabsAtTop) -{ - addAndMakeVisible (&configTabBox); - configTabBox.setBounds ("8, 0, this.left + parent.width - 16, this.top + parent.height - 36"); - addAndMakeVisible (&editConfigsButton); - editConfigsButton.setBounds ("8, parent.height - 30, this.left + 192, this.top + 22"); - editConfigsButton.setButtonText ("Add/Remove Configurations..."); - editConfigsButton.addListener (this); - addAndMakeVisible (&openProjectButton); - openProjectButton.setBounds ("608, parent.height - 30, this.left + 208, this.top + 22"); - openProjectButton.setButtonText ("Open Project in "); - openProjectButton.addListener (this); - addAndMakeVisible (&editExportersButton); - editExportersButton.setBounds ("208, parent.height - 30, this.left + 160, this.top + 22"); - editExportersButton.setButtonText ("Add/Remove Exporters..."); - editExportersButton.addListener (this); - addAndMakeVisible (&saveAndOpenButton); - saveAndOpenButton.setBounds ("391, parent.height - 30, this.left + 208, this.top + 22"); - saveAndOpenButton.setButtonText ("Save And Open in"); - saveAndOpenButton.addListener (this); + clear(); + PropertyListBuilder props; - //[UserPreSize] - rebuildConfigTabs(); + ScopedPointer module (moduleList.loadModule (moduleID)); -#if JUCE_MAC || JUCE_WINDOWS - openProjectButton.setCommandToTrigger (commandManager, CommandIDs::openInIDE, true); - openProjectButton.setButtonText (commandManager->getNameOfCommand (CommandIDs::openInIDE)); + if (module != nullptr) + { + props.add (new ModuleInfoComponent (project, moduleList, moduleID)); + + if (project.isModuleEnabled (moduleID)) + { + const ModuleList::Module* m = moduleList.findModuleInfo (moduleID); + if (m != nullptr && moduleList.getExtraDependenciesNeeded (project, *m).size() > 0) + props.add (new MissingDependenciesComponent (project, moduleList, moduleID)); + } + + props.add (new BooleanPropertyComponent (project.shouldShowAllModuleFilesInProject (moduleID), + "Add source to project", "Make module files browsable in projects"), + "If this is enabled, then the entire source tree from this module will be shown inside your project, " + "making it easy to browse/edit the module's classes. If disabled, then only the minimum number of files " + "required to compile it will appear inside your project."); + + props.add (new BooleanPropertyComponent (project.shouldCopyModuleFilesLocally (moduleID), + "Create local copy", "Copy the module into the project folder"), + "If this is enabled, then a local copy of the entire module will be made inside your project (in the auto-generated JuceLibraryFiles folder), " + "so that your project will be self-contained, and won't need to contain any references to files in other folders. " + "This also means that you can check the module into your source-control system to make sure it is always in sync with your own code."); + + StringArray possibleValues; + possibleValues.add ("(Use Default)"); + possibleValues.add ("Enabled"); + possibleValues.add ("Disabled"); + + Array mappings; + mappings.add (Project::configFlagDefault); + mappings.add (Project::configFlagEnabled); + mappings.add (Project::configFlagDisabled); + + OwnedArray flags; + module->getConfigFlags (project, flags); + + for (int i = 0; i < flags.size(); ++i) + { + ChoicePropertyComponent* c = new ChoicePropertyComponent (flags[i]->value, flags[i]->symbol, possibleValues, mappings); + c->setTooltip (flags[i]->description); + c->setPreferredHeight (22); + props.add (c); + } + } - saveAndOpenButton.setCommandToTrigger (commandManager, CommandIDs::saveAndOpenInIDE, true); - saveAndOpenButton.setButtonText (commandManager->getNameOfCommand (CommandIDs::saveAndOpenInIDE)); -#else - openProjectButton.setVisible (false); - saveAndOpenButton.setVisible (false); -#endif - //[/UserPreSize] + addProperties (props.components); + } - setSize (836, 427); + private: + Project& project; + ModuleList& moduleList; + String moduleID; - //[Constructor] You can add your own custom stuff here.. - configTabBox.setOutline (1); - configTabBox.setColour (TabbedComponent::outlineColourId, Colours::black.withAlpha (0.3f)); + //============================================================================== + class ModuleInfoComponent : public PropertyComponent + { + public: + ModuleInfoComponent (Project& project_, ModuleList& moduleList_, const String& moduleID_) + : PropertyComponent ("Module", 100), project (project_), moduleList (moduleList_), moduleID (moduleID_) + { + } - editConfigsButton.setTriggeredOnMouseDown (true); + void refresh() {} - project.addChangeListener (this); - //[/Constructor] -} + void paint (Graphics& g) + { + g.setColour (Colours::white.withAlpha (0.4f)); + g.fillRect (0, 0, getWidth(), getHeight() - 1); + + const ModuleList::Module* module = moduleList.findModuleInfo (moduleID); + + if (module != nullptr) + { + String text; + text << module->name << newLine << "Version: " << module->version << newLine << newLine + << module->description; + + GlyphArrangement ga; + ga.addJustifiedText (Font (13.0f), text, 4.0f, 16.0f, getWidth() - 8.0f, Justification::topLeft); + g.setColour (Colours::black); + ga.draw (g); + } + } -ProjectInformationComponent::~ProjectInformationComponent() -{ - //[Destructor_pre]. You can add your own custom destruction code here.. - project.removeChangeListener (this); - //[/Destructor_pre] + private: + Project& project; + ModuleList& moduleList; + String moduleID; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ModuleInfoComponent); + }; + //============================================================================== + class MissingDependenciesComponent : public PropertyComponent, + public ButtonListener + { + public: + MissingDependenciesComponent (Project& project_, ModuleList& moduleList_, const String& moduleID_) + : PropertyComponent ("Dependencies", 100), + project (project_), moduleList (moduleList_), moduleID (moduleID_), + fixButton ("Enable Required Modules") + { + const ModuleList::Module* module = moduleList.findModuleInfo (moduleID); + + if (module != nullptr) + missingDependencies = moduleList.getExtraDependenciesNeeded (project, *module); + + addAndMakeVisible (&fixButton); + fixButton.setColour (TextButton::buttonColourId, Colours::red); + fixButton.setColour (TextButton::textColourOffId, Colours::white); + fixButton.setBounds ("right - 160, parent.height - 26, parent.width - 8, top + 22"); + fixButton.addListener (this); + } + + void refresh() {} + + void paint (Graphics& g) + { + g.setColour (Colours::white.withAlpha (0.4f)); + g.fillRect (0, 0, getWidth(), getHeight() - 1); + + String text ("This module requires the following dependencies:\n"); + text << missingDependencies.joinIntoString (", "); + + GlyphArrangement ga; + ga.addJustifiedText (Font (13.0f), text, 4.0f, 16.0f, getWidth() - 8.0f, Justification::topLeft); + g.setColour (Colours::red); + ga.draw (g); + } + + void buttonClicked (Button*) + { + bool isModuleCopiedLocally = project.shouldCopyModuleFilesLocally (moduleID).getValue(); + + for (int i = missingDependencies.size(); --i >= 0;) + project.addModule (missingDependencies[i], isModuleCopiedLocally); + + ModulesPanel* mp = findParentComponentOfClass ((ModulesPanel*) nullptr); + if (mp != nullptr) + mp->refresh(); + } + + private: + Project& project; + ModuleList& moduleList; + String moduleID; + StringArray missingDependencies; + TextButton fixButton; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MissingDependenciesComponent); + }; + }; + + //============================================================================== + class ModuleCopyingMessage : public Component + { + public: + ModuleCopyingMessage (Project& project_, ModuleList& list_) + : project (project_), list (list_) + { + } + + void paint (Graphics& g) + { + g.setFont (13.0f); + g.setColour (Colours::darkred); + g.drawFittedText (getName(), 4, 0, getWidth() - 8, getHeight(), Justification::centredRight, 4); + } + + void refresh() + { + int numCopied, numNonCopied; + countCopiedModules (numCopied, numNonCopied); + + if (numCopied > 0 && numNonCopied > 0) + setName ("Warning! Some of your modules are set to use local copies, and others are using remote references.\n" + "This may create problems if some modules expect to share the same parent folder, so you may " + "want to make sure that they are all either copied or not."); + else + setName (String::empty); + + repaint(); + } + + void countCopiedModules (int& numCopied, int& numNonCopied) + { + numCopied = numNonCopied = 0; + + for (int i = list.modules.size(); --i >= 0;) + { + const String moduleID (list.modules.getUnchecked(i)->uid); + + if (project.isModuleEnabled (moduleID)) + { + if (project.shouldCopyModuleFilesLocally (moduleID).getValue()) + ++numCopied; + else + ++numNonCopied; + } + } + } + + private: + Project& project; + ModuleList& list; + }; + +private: + Project& project; + ModuleList moduleList; + FilenameComponent modulesLocation; + Label modulesLabel; + TextButton updateModulesButton; + ModuleSelectionListBox moduleListBox; + ModuleCopyingMessage copyingMessage; + ScopedPointer settings; +}; - //[Destructor]. You can add your own custom destruction code here.. - //[/Destructor] -} //============================================================================== -void ProjectInformationComponent::resized() +class ProjectSettingsComponent : public Component { - //[Userresized_Pre] - //[/Userresized_Pre] +public: + ProjectSettingsComponent (Project& project_) + : project (project_), + exporters ("Export Targets", "Add a New Exporter...", true, false) + { + addAndMakeVisible (&mainProjectInfoPanel); + addAndMakeVisible (&modulesPanelGroup); + addAndMakeVisible (&exporters); + mainProjectInfoPanel.fillBackground = true; + modulesPanelGroup.fillBackground = true; + } + void updateSize (int width) + { + width = jmax (550, width - 6); - //[Userresized_Post] - //[/Userresized_Post] -} + int y = 0; + y += mainProjectInfoPanel.updateSize (y, width); + y += modulesPanelGroup.updateSize (y, width); + y += exporters.updateSize (y, width); -void ProjectInformationComponent::buttonClicked (Button* buttonThatWasClicked) -{ - //[UserbuttonClicked_Pre] - //[/UserbuttonClicked_Pre] + setSize (width, y); + } - if (buttonThatWasClicked == &editConfigsButton) + void parentSizeChanged() { - //[UserButtonCode_b6625dfcdb1f4755] -- add your button handler code here.. - showConfigMenu(); - //[/UserButtonCode_b6625dfcdb1f4755] + updateSize (getParentWidth()); } - else if (buttonThatWasClicked == &openProjectButton) + + void visibilityChanged() { - //[UserButtonCode_a550a652e2666ee7] -- add your button handler code here.. - //[/UserButtonCode_a550a652e2666ee7] + if (isVisible()) + createAllPanels(); } - else if (buttonThatWasClicked == &editExportersButton) + + void createModulesPanel() { - //[UserButtonCode_c1f6e5f9811b307e] -- add your button handler code here.. - showExporterMenu(); - //[/UserButtonCode_c1f6e5f9811b307e] + PropertyListBuilder props; + props.add (new ModulesPanel (project)); + modulesPanelGroup.setProperties (props); + modulesPanelGroup.setName ("Modules"); } - else if (buttonThatWasClicked == &saveAndOpenButton) + + void createProjectPanel() { - //[UserButtonCode_dRGMyYx] -- add your button handler code here.. - //[/UserButtonCode_dRGMyYx] + PropertyListBuilder props; + project.createPropertyEditors (props); + mainProjectInfoPanel.setProperties (props); + mainProjectInfoPanel.setName ("Project Settings"); + + lastProjectType = project.getProjectTypeValue().getValue(); } - //[UserbuttonClicked_Post] - //[/UserbuttonClicked_Post] -} + void createExportersPanel() + { + exporters.clear(); -void ProjectInformationComponent::paint (Graphics& g) -{ - //[UserPaint] Add your own custom painting code here.. - g.setTiledImageFill (ImageCache::getFromMemory (BinaryData::brushed_aluminium_png, BinaryData::brushed_aluminium_pngSize), - 0, 0, 1.0f); - g.fillAll(); - drawRecessedShadows (g, getWidth(), getHeight(), 14); - //[/UserPaint] -} + for (Project::ExporterIterator exporter (project); exporter.next();) + { + PropertyGroup* exporterGroup = exporters.createGroup(); + exporterGroup->fillBackground = true; + exporterGroup->addDeleteButton ("exporter " + String (exporter.index), "Deletes this export target."); + PropertyListBuilder props; + exporter->createPropertyEditors (props); + PropertyGroupList* configList = new PropertyGroupList ("Configurations", "Add a New Configuration", false, true); + props.add (configList); + exporterGroup->setProperties (props); -//[MiscUserCode] You can add your own definitions of your custom methods or any other code here... -void ProjectInformationComponent::rebuildConfigTabs() -{ - configTabBox.clearTabs(); + configList->createNewButton.setName ("newconfig " + String (exporter.index)); + + for (ProjectExporter::ConfigIterator config (*exporter); config.next();) + { + PropertyGroup* configGroup = configList->createGroup(); - int index = 0; - PropertiesWithHelpComponent* panel = new PropertiesWithHelpComponent (project, index++); - configTabBox.addTab ("Project Settings", Colours::lightslategrey, panel, true, -1); + if (exporter->getNumConfigurations() > 1) + configGroup->addDeleteButton ("config " + String (exporter.index) + "/" + String (config.index), "Deletes this configuration."); - panel = new PropertiesWithHelpComponent (project, index++); - configTabBox.addTab ("Juce Flags", Colours::lightblue, panel, true, -1); + PropertyListBuilder configProps; + config->createPropertyEditors (configProps); + configGroup->setProperties (configProps); + } + } + } - int i; - for (i = 0; i < project.getNumConfigurations(); ++i) + void createAllPanels() { - panel = new PropertiesWithHelpComponent (project, index++); - Project::BuildConfiguration config (project.getConfiguration (i)); - configTabBox.addTab (config.getName().toString(), Colour::greyLevel (0.65f), panel, true, -1); + createProjectPanel(); + createModulesPanel(); + createExportersPanel(); + updateNames(); + + updateSize (getWidth()); } - for (i = 0; i < project.getNumExporters(); ++i) + bool needsFullUpdate() const { - ScopedPointer exp (project.createExporter (i)); + if (exporters.groups.size() != project.getNumExporters() + || lastProjectType != project.getProjectTypeValue().getValue()) + return true; - if (exp != nullptr) + for (int i = exporters.groups.size(); --i >= 0;) { - panel = new PropertiesWithHelpComponent (project, index++); - configTabBox.addTab (exp->getName(), Colours::lightsteelblue, panel, true, -1); + ScopedPointer exp (project.createExporter (i)); + + jassert (exp != nullptr); + if (exp != nullptr) + { + PropertyGroupList* configList = dynamic_cast (exporters.groups.getUnchecked(i)->properties.getLast()); + + if (configList != nullptr && configList->groups.size() != exp->getNumConfigurations()) + return true; + } } + + return false; } - lastProjectType = project.getProjectTypeValue().getValue(); -} + void updateNames() + { + for (int i = exporters.groups.size(); --i >= 0;) + { + PropertyGroup& exporterGroup = *exporters.groups.getUnchecked(i); + ScopedPointer exp (project.createExporter (i)); + jassert (exp != nullptr); -void ProjectInformationComponent::updateConfigTabs() -{ - if (configTabBox.getNumTabs() != project.getNumConfigurations() + project.getNumExporters() + 2 - || lastProjectType != project.getProjectTypeValue().getValue()) + if (exp != nullptr) + { + exporterGroup.setName (exp->getName()); + exporterGroup.repaint(); + + PropertyGroupList* configList = dynamic_cast (exporterGroup.properties.getLast()); + + if (configList != nullptr) + { + for (int j = configList->groups.size(); --j >= 0;) + { + PropertyGroup& configGroup = *configList->groups.getUnchecked(j); + configGroup.setName ("Configuration: " + exp->getConfiguration (j)->getName().toString().quoted()); + configGroup.repaint(); + } + } + } + } + } + + void update() { - rebuildConfigTabs(); + if (needsFullUpdate()) + createAllPanels(); + else + updateNames(); } - else + + void deleteButtonClicked (const String& name) { - for (int i = 0; i < project.getNumConfigurations(); ++i) + if (name.startsWith ("config")) { - Project::BuildConfiguration config (project.getConfiguration (i)); - configTabBox.setTabName (i + 2, config.getName().toString()); - } - } -} + int exporterIndex = name.upToLastOccurrenceOf ("/", false, false).getTrailingIntValue(); + int configIndex = name.getTrailingIntValue(); -void ProjectInformationComponent::showConfigMenu() -{ - PopupMenu m; - m.addItem (1, "Add a new empty configuration"); + ScopedPointer exporter (project.createExporter (exporterIndex)); + jassert (exporter != nullptr); - PopupMenu createCopyMenu, removeMenu; + if (exporter != nullptr) + exporter->deleteConfiguration (configIndex); + } + else + { + project.deleteExporter (name.getTrailingIntValue()); + } + } - for (int i = 0; i < project.getNumConfigurations(); ++i) + static void newExporterMenuItemChosen (int resultCode, ProjectSettingsComponent* settingsComp) { - Project::BuildConfiguration config (project.getConfiguration (i)); - createCopyMenu.addItem (i + 10000, "Create a copy of '" + config.getName().toString() + "'"); - removeMenu.addItem (i + 20000, "Delete configuration '" + config.getName().toString() + "'"); + if (resultCode > 0 && settingsComp != nullptr) + settingsComp->project.addNewExporter (ProjectExporter::getExporterNames() [resultCode - 1]); } - m.addSubMenu ("Add a copy of an existing configuration", createCopyMenu); - m.addSubMenu ("Remove configuration", removeMenu); + void createNewExporter (TextButton& button) + { + PopupMenu menu; - const int r = m.showAt (&editConfigsButton); + const StringArray exporters (ProjectExporter::getExporterNames()); - if (r >= 20000) - { - project.deleteConfiguration (r - 20000); + for (int i = 0; i < exporters.size(); ++i) + menu.addItem (i + 1, "Create a new " + exporters[i] + " target"); + + menu.showMenuAsync (PopupMenu::Options().withTargetComponent (&button), + ModalCallbackFunction::forComponent (newExporterMenuItemChosen, this)); } - else if (r >= 10000) + + void createNewConfig (int exporterIndex) { - Project::BuildConfiguration configToCopy (project.getConfiguration (r - 10000)); - project.addNewConfiguration (&configToCopy); + ScopedPointer exp (project.createExporter (exporterIndex)); + jassert (exp != nullptr); + + if (exp != nullptr) + exp->addNewConfiguration (nullptr); } - else if (r == 1) + + void newItemButtonClicked (TextButton& button) { - project.addNewConfiguration (nullptr); + if (button.getName().containsIgnoreCase ("export")) + createNewExporter (button); + else if (button.getName().containsIgnoreCase ("newconfig")) + createNewConfig (button.getName().getTrailingIntValue()); } -} -void ProjectInformationComponent::showExporterMenu() -{ - PopupMenu m; +private: + //============================================================================== + class PropertyGroup : public Component, + public ButtonListener + { + public: + PropertyGroup() + : deleteButton ("Delete"), fillBackground (false) + { + deleteButton.addListener (this); + } + + void addDeleteButton (const String& name, const String& tooltip) + { + addAndMakeVisible (&deleteButton); + deleteButton.setBounds ("right - 55, 11, parent.width - 10, 26"); + deleteButton.setColour (TextButton::buttonColourId, Colour (0xa0fcbdbd)); + deleteButton.setColour (TextButton::textColourOffId, Colours::darkred); + deleteButton.setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + deleteButton.setName (name); + deleteButton.setTooltip (tooltip); + } + + void setProperties (const PropertyListBuilder& newProps) + { + properties.clear(); + properties.addArray (newProps.components); + + for (int i = properties.size(); --i >= 0;) + addAndMakeVisible (properties.getUnchecked(i)); + } + + int updateSize (int y, int width) + { + int height = fillBackground ? 36 : 32; + + for (int i = 0; i < properties.size(); ++i) + { + PropertyComponent* pp = properties.getUnchecked(i); + PropertyGroupList* pgl = dynamic_cast (pp); - PopupMenu createMenu, removeMenu; + if (pgl != nullptr) + pgl->updateSize (height, width - 20); - int i; - for (i = 0; i < project.getNumExporters(); ++i) + pp->setBounds (10, height, width - 20, pp->getPreferredHeight()); + height += pp->getHeight(); + } + + height += 16; + setBounds (0, y, width, height); + return height; + } + + void paint (Graphics& g) + { + if (fillBackground) + { + g.setColour (Colours::white.withAlpha (0.3f)); + g.fillRect (0, 28, getWidth(), getHeight() - 38); + + g.setColour (Colours::black.withAlpha (0.4f)); + g.drawRect (0, 28, getWidth(), getHeight() - 38); + } + + g.setFont (14.0f, Font::bold); + g.setColour (Colours::black); + g.drawFittedText (getName(), 12, 0, getWidth() - 16, 26, Justification::bottomLeft, 1); + } + + void buttonClicked (Button*) + { + ProjectSettingsComponent* psc = findParentComponentOfClass ((ProjectSettingsComponent*) nullptr); + if (psc != nullptr) + psc->deleteButtonClicked (deleteButton.getName()); + } + + OwnedArray properties; + TextButton deleteButton; + bool fillBackground; + }; + + //============================================================================== + class PropertyGroupList : public PropertyComponent, + public ButtonListener { - ScopedPointer exp (project.createExporter (i)); + public: + PropertyGroupList (const String& title, const String& newButtonText, + bool triggerOnMouseDown, bool hideNameAndPutButtonAtBottom) + : PropertyComponent (title), createNewButton (newButtonText), + dontDisplayName (hideNameAndPutButtonAtBottom) + { + addAndMakeVisible (&createNewButton); + createNewButton.setColour (TextButton::buttonColourId, Colours::lightgreen.withAlpha (0.5f)); + createNewButton.setBounds (hideNameAndPutButtonAtBottom ? "right - 140, parent.height - 25, parent.width - 10, top + 20" + : "right - 140, 30, parent.width - 10, top + 20"); + createNewButton.setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + createNewButton.addListener (this); + createNewButton.setTriggeredOnMouseDown (triggerOnMouseDown); + } - if (exp != nullptr) - removeMenu.addItem (i + 20000, "Delete " + exp->getName()); - } + int updateSize (int ourY, int width) + { + int y = dontDisplayName ? 10 : 55; + + for (int i = 0; i < groups.size(); ++i) + y += groups.getUnchecked(i)->updateSize (y, width); - StringArray exporters (ProjectExporter::getExporterNames()); + y = jmax (y, 100); + setBounds (0, ourY, width, y); - for (i = 0; i < exporters.size(); ++i) - createMenu.addItem (i + 10000, "Create a new " + exporters[i] + " target"); + if (dontDisplayName) + y += 25; - m.addSubMenu ("Create new export target", createMenu); - m.addSubMenu ("Remove export target", removeMenu); + setPreferredHeight (y); + return y; + } + + void paint (Graphics& g) + { + if (! dontDisplayName) + { + g.setFont (17.0f, Font::bold); + g.setColour (Colours::black); + g.drawFittedText (getName(), 0, 30, getWidth(), 20, Justification::centred, 1); + } + } + + void clear() + { + groups.clear(); + } + + void refresh() {} + + PropertyGroup* createGroup() + { + PropertyGroup* p = new PropertyGroup(); + groups.add (p); + addAndMakeVisible (p); + return p; + } + + void buttonClicked (Button*) + { + ProjectSettingsComponent* psc = findParentComponentOfClass ((ProjectSettingsComponent*) nullptr); + if (psc != nullptr) + psc->newItemButtonClicked (createNewButton); + } + + OwnedArray groups; + TextButton createNewButton; + bool dontDisplayName; + }; + + Project& project; + var lastProjectType; + PropertyGroup mainProjectInfoPanel, modulesPanelGroup; + PropertyGroupList exporters; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectSettingsComponent); +}; + +//[/MiscUserDefs] + +//============================================================================== +ProjectInformationComponent::ProjectInformationComponent (Project& project_) + : project (project_) +{ + //[Constructor_pre] + //[/Constructor_pre] + + addChildAndSetID (&viewport, "ykdBpb"); + addChildAndSetID (&openProjectButton, "a550a652e2666ee7"); + addChildAndSetID (&saveAndOpenButton, "dRGMyYx"); + addChildAndSetID (&rollover, "QqLJBF"); + + initialiseComponentState(); + openProjectButton.addListener (this); + saveAndOpenButton.addListener (this); + + //[UserPreSize] + viewport.setViewedComponent (new ProjectSettingsComponent (project), true); + + #if JUCE_MAC || JUCE_WINDOWS + openProjectButton.setCommandToTrigger (commandManager, CommandIDs::openInIDE, true); + openProjectButton.setButtonText (commandManager->getNameOfCommand (CommandIDs::openInIDE)); + + saveAndOpenButton.setCommandToTrigger (commandManager, CommandIDs::saveAndOpenInIDE, true); + saveAndOpenButton.setButtonText (commandManager->getNameOfCommand (CommandIDs::saveAndOpenInIDE)); + #else + openProjectButton.setVisible (false); + saveAndOpenButton.setVisible (false); + #endif + //[/UserPreSize] + + setSize (808, 638); - const int r = m.showAt (&editExportersButton); + //[Constructor] + project.addChangeListener (this); + //[/Constructor] +} - if (r >= 20000) - project.deleteExporter (r - 20000); - else if (r >= 10000) - project.addNewExporter (r - 10000); +ProjectInformationComponent::~ProjectInformationComponent() +{ + //[Destructor] + project.removeChangeListener (this); + //[/Destructor] } -void ProjectInformationComponent::changeListenerCallback (ChangeBroadcaster*) +//============================================================================== +void ProjectInformationComponent::buttonClicked (Button* buttonThatWasClicked) { - updateConfigTabs(); + //[UserbuttonClicked_Pre] + //[/UserbuttonClicked_Pre] + + if (buttonThatWasClicked == &openProjectButton) + { + //[UserButtonCode_openProjectButton] -- add your button handler code here.. + //[/UserButtonCode_openProjectButton] + } + else if (buttonThatWasClicked == &saveAndOpenButton) + { + //[UserButtonCode_saveAndOpenButton] -- add your button handler code here.. + //[/UserButtonCode_saveAndOpenButton] + } + + //[UserbuttonClicked_Post] + //[/UserbuttonClicked_Post] } -//[/MiscUserCode] +void ProjectInformationComponent::paint (Graphics& g) +{ + //[UserPaint] + g.setTiledImageFill (ImageCache::getFromMemory (BinaryData::brushed_aluminium_png, BinaryData::brushed_aluminium_pngSize), + 0, 0, 1.0f); + g.fillAll(); + drawRecessedShadows (g, getWidth(), getHeight(), 14); + //[/UserPaint] +} +//[MiscUserCode] You can add your own definitions of your custom methods or any other code here... +void ProjectInformationComponent::changeListenerCallback (ChangeBroadcaster*) +{ + dynamic_cast (viewport.getViewedComponent())->update(); +} +//[/MiscUserCode] //============================================================================== //======================= Jucer Information Section ========================== //============================================================================== #if 0 -/* This section stores the Jucer's metadata - edit it at your own risk! +/* This section stores the metadata for this component - edit it at your own risk! JUCER_COMPONENT_METADATA_START - - - + - - + + connectedRight="0" connectedTop="0" connectedBottom="0" backgroundColour="FFDDDDFF"/> + - + JUCER_COMPONENT_METADATA_END */ #endif + +void ProjectInformationComponent::initialiseComponentState() +{ + + BinaryData::ImageProvider imageProvider; + ComponentBuilder::initialiseFromValueTree (*this, getComponentState(), &imageProvider); +} + +ValueTree ProjectInformationComponent::getComponentState() +{ + + const unsigned char data[] = + "COMPONENT\0\x01\x08id\0\x01\t\x05tO9EG1a\0""className\0\x01\x1d\x05ProjectInformationComponent\0width\0\x01\x05\x05""808\0height\0\x01\x05\x05""638\0""background\0\x01\x08\x05""f6f9ff\0parentClasses\0\x01)\x05public Component, public ChangeListener\0" + "constructorParams\0\x01\x13\x05Project& project_\0memberInitialisers\0\x01\x14\x05project (project_)\0\x01\x04""COMPONENTS\0\0\x01\x04VIEWPORT\0\x01\x06id\0\x01\x08\x05ykdBpb\0memberName\0\x01\n\x05viewport\0position\0\x01,\x05""8, 8, parent.width - " + "8, parent.height - 74\0scrollBarV\0\x01\x03\x05""1\0scrollBarH\0\x01\x03\x05""1\0scrollbarWidth\0\x01\x04\x05""16\0\0TEXTBUTTON\0\x01\x0fid\0\x01\x12\x05""a550a652e2666ee7\0memberName\0\x01\x13\x05openProjectButton\0""focusOrder\0\x01\x03\x05""0\0tex" + "t\0\x01\x12\x05Open Project in \0""createCallback\0\x01\x03\x05""1\0radioGroup\0\x01\x03\x05""0\0""connectedLeft\0\x01\x03\x05""0\0""connectedRight\0\x01\x03\x05""0\0""connectedTop\0\x01\x03\x05""0\0""connectedBottom\0\x01\x03\x05""0\0""backgroundCol" + "our\0\x01\n\x05""FFDDDDFF\0textColour\0\x01\x02\x05\0""backgroundColourOn\0\x01\x02\x05\0textColourOn\0\x01\x02\x05\0position\0\x01-\x05""8, parent.height - 34, left + 227, top + 24\0\0TEXTBUTTON\0\x01\x0cid\0\x01\t\x05""dRGMyYx\0name\0\x01\x02\x05\0" + "memberName\0\x01\x13\x05saveAndOpenButton\0position\0\x01-\x05""8, parent.height - 65, left + 227, top + 24\0text\0\x01\x12\x05Save And Open in\0""createCallback\0\x01\x03\x05""1\0radioGroup\0\x01\x03\x05""0\0""connectedLeft\0\x01\x03\x05""0\0""conne" + "ctedRight\0\x01\x03\x05""0\0""connectedTop\0\x01\x03\x05""0\0""connectedBottom\0\x01\x03\x05""0\0""backgroundColour\0\x01\n\x05""FFDDDDFF\0\0GENERICCOMPONENT\0\x01\x06id\0\x01\x08\x05QqLJBF\0memberName\0\x01\n\x05rollover\0position\0\x01>\x05""246, p" + "arent.height - 68, parent.width - 8, parent.height - 4\0""class\0\x01\x12\x05RolloverHelpComp\0""canBeAggregated\0\x01\x03\x05""1\0""constructorParams\0\x01\x02\x05\0\0MARKERS_X\0\0\0MARKERS_Y\0\0\0METHODS\0\x01\x01paint\0\x01\x03\x05""1\0\0"; + + return ValueTree::readFromData (data, sizeof (data)); +} diff --git a/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.h b/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.h index 93350a6cf9..e313b4407f 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectInformationComponent.h @@ -1,26 +1,26 @@ /* ============================================================================== - This is an automatically generated file created by the Jucer! + This is an automatically generated file! Be careful when adding custom code to these files, as only the code within the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created for JUCE version: JUCE v1.53.8 + Created for JUCE version: JUCE v2.0.16 ------------------------------------------------------------------------------ - JUCE and the Jucer are copyright 2004-10 by Raw Material Software ltd. + JUCE is copyright 2004-11 by Raw Material Software ltd. ============================================================================== */ -#ifndef __JUCER_PROJECTINFORMATIONCOMPONENT_H_2F89B0AC__ -#define __JUCER_PROJECTINFORMATIONCOMPONENT_H_2F89B0AC__ +#ifndef __JUCER_PROJECTINFORMATIONCOMPONENT_H_30FFCD07__ +#define __JUCER_PROJECTINFORMATIONCOMPONENT_H_30FFCD07__ //[Headers] -- You can add your own extra header files here -- -#include "jucer_ProjectExporter.h" +#include "jucer_Project.h" //[/Headers] @@ -41,37 +41,30 @@ public: ~ProjectInformationComponent(); //============================================================================== - //[UserMethods] -- You can add your own custom methods in this section. + //[UserMethods] void changeListenerCallback (ChangeBroadcaster*); - void rebuildConfigTabs(); //[/UserMethods] - void resized(); void buttonClicked (Button* buttonThatWasClicked); void paint (Graphics& g); - private: //============================================================================== - //[UserVariables] -- You can add your own custom variables in this section. + //[UserVariables] Project& project; - - var lastProjectType; - void updateConfigTabs(); - void showConfigMenu(); - void showExporterMenu(); //[/UserVariables] //============================================================================== - TabbedComponent configTabBox; - TextButton editConfigsButton; + Viewport viewport; TextButton openProjectButton; - TextButton editExportersButton; TextButton saveAndOpenButton; + RolloverHelpComp rollover; + + void initialiseComponentState(); + static ValueTree getComponentState(); //============================================================================== - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectInformationComponent); + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectInformationComponent) }; - -#endif // __JUCER_PROJECTINFORMATIONCOMPONENT_H_2F89B0AC__ +#endif // __JUCER_PROJECTINFORMATIONCOMPONENT_H_30FFCD07__ diff --git a/extras/Introjucer/Source/Project/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project/jucer_ProjectSaver.h deleted file mode 100644 index 4742527e3d..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ProjectSaver.h +++ /dev/null @@ -1,363 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_PROJECTSAVER_JUCEHEADER__ -#define __JUCER_PROJECTSAVER_JUCEHEADER__ - -#include "jucer_ResourceFile.h" - - -//============================================================================== -class ProjectSaver -{ -public: - ProjectSaver (Project& project_, const File& projectFile_) - : project (project_), projectFile (projectFile_), - generatedFilesGroup (Project::Item::createGroup (project, project.getJuceCodeGroupName())) - { - generatedFilesGroup.setID (getGeneratedGroupID()); - } - - Project& getProject() noexcept { return project; } - - String save() - { - jassert (generatedFilesGroup.getNumChildren() == 0); // this method can't be called more than once! - - const File oldFile (project.getFile()); - project.setFile (projectFile); - - writeMainProjectFile(); - - if (errors.size() == 0) - writeAppConfigFile(); - - if (errors.size() == 0) - writeBinaryDataFiles(); - - if (errors.size() == 0) - writeAppHeader(); - - if (errors.size() == 0) - writeProjects(); - - if (errors.size() > 0) - project.setFile (oldFile); - - return errors[0]; - } - - bool saveGeneratedFile (const String& filePath, const MemoryOutputStream& newData) - { - if (! project.getGeneratedCodeFolder().createDirectory()) - { - errors.add ("Couldn't create folder: " + project.getGeneratedCodeFolder().getFullPathName()); - return false; - } - - const File file (project.getGeneratedCodeFolder().getChildFile (filePath)); - - if (replaceFileIfDifferent (file, newData)) - { - if (! generatedFilesGroup.findItemForFile (file).isValid()) - generatedFilesGroup.addFile (file, -1); - - return true; - } - - return false; - } - - static void writeAutoGenWarningComment (OutputStream& out) - { - out << "/*" << newLine << newLine - << " IMPORTANT! This file is auto-generated each time you save your" << newLine - << " project - if you alter its contents, your changes may be overwritten!" << newLine - << newLine; - } - - static const char* getGeneratedGroupID() noexcept { return "__jucelibfiles"; } - -private: - Project& project; - const File projectFile; - Project::Item generatedFilesGroup; - StringArray errors; - - File appConfigFile, binaryDataCpp; - - void writeMainProjectFile() - { - ScopedPointer xml (project.getProjectRoot().createXml()); - jassert (xml != nullptr); - - if (xml != nullptr) - { - #if JUCE_DEBUG - { - MemoryOutputStream mo; - project.getProjectRoot().writeToStream (mo); - - MemoryInputStream mi (mo.getData(), mo.getDataSize(), false); - ValueTree v = ValueTree::readFromStream (mi); - ScopedPointer xml2 (v.createXml()); - - // This bit just tests that ValueTree save/load works reliably.. Let me know if this asserts for you! - jassert (xml->isEquivalentTo (xml2, true)); - } - #endif - - MemoryOutputStream mo; - xml->writeToStream (mo, String::empty); - replaceFileIfDifferent (projectFile, mo); - } - } - - bool writeAppConfig (OutputStream& out) - { - writeAutoGenWarningComment (out); - out << " If you want to change any of these values, use the Introjucer to do so, rather than" << newLine - << " editing this file directly!" << newLine - << newLine - << " Any commented-out settings will fall back to using the default values that" << newLine - << " they are given in juce_Config.h" << newLine - << newLine - << "*/" << newLine << newLine; - - bool notActive = project.getJuceLinkageMode() == Project::useLinkedJuce - || project.getJuceLinkageMode() == Project::notLinkedToJuce; - if (notActive) - out << "/* NOTE: These configs aren't available when you're linking to the juce library statically!" << newLine - << " If you need to set a configuration that differs from the default, you'll need" << newLine - << " to include the amalgamated Juce files." << newLine << newLine; - - OwnedArray flags; - project.getAllConfigFlags (flags); - - for (int i = 0; i < flags.size(); ++i) - { - const Project::ConfigFlag* const f = flags[i]; - const String value (f->value.toString()); - - if (value != Project::configFlagEnabled && value != Project::configFlagDisabled) - out << "//#define "; - else - out << "#define "; - - out << f->symbol; - - if (value == Project::configFlagEnabled) - out << " 1"; - else if (value == Project::configFlagDisabled) - out << " 0"; - - out << newLine; - } - - if (notActive) - out << newLine << "*/" << newLine; - - return flags.size() > 0; - } - - void writeAppConfigFile() - { - appConfigFile = project.getGeneratedCodeFolder().getChildFile (project.getAppConfigFilename()); - - MemoryOutputStream mem; - if (writeAppConfig (mem)) - saveGeneratedFile (project.getAppConfigFilename(), mem); - else - appConfigFile.deleteFile(); - } - - void writeAppHeader (OutputStream& out) - { - writeAutoGenWarningComment (out); - - out << " This is the header file that your files should include in order to get all the" << newLine - << " Juce library headers. You should NOT include juce.h or juce_amalgamated.h directly in" << newLine - << " your own source files, because that wouldn't pick up the correct Juce configuration" << newLine - << " options for your app." << newLine - << newLine - << "*/" << newLine << newLine; - - String headerGuard ("__APPHEADERFILE_" + project.getProjectUID().toUpperCase() + "__"); - out << "#ifndef " << headerGuard << newLine - << "#define " << headerGuard << newLine << newLine; - - if (appConfigFile.exists()) - out << CodeHelpers::createIncludeStatement (project.getAppConfigFilename()) << newLine; - - { - OwnedArray modules; - project.getProjectType().createRequiredModules (project, modules); - - StringArray paths, guards; - - for (int i = 0; i < modules.size(); ++i) - modules.getUnchecked(i)->getHeaderFiles (project, paths, guards); - - StringArray uniquePaths (paths); - uniquePaths.removeDuplicates (false); - - if (uniquePaths.size() == 1) - { - out << "#include " << paths[0] << newLine; - } - else - { - int i = paths.size(); - for (; --i >= 0;) - { - for (int j = i; --j >= 0;) - { - if (paths[i] == paths[j] && guards[i] == guards[j]) - { - paths.remove (i); - guards.remove (i); - } - } - } - - for (i = 0; i < paths.size(); ++i) - { - out << (i == 0 ? "#if " : "#elif ") << guards[i] << newLine - << " #include " << paths[i] << newLine; - } - - out << "#endif" << newLine; - } - } - - if (binaryDataCpp.exists()) - out << CodeHelpers::createIncludeStatement (binaryDataCpp.withFileExtension (".h"), appConfigFile) << newLine; - - out << newLine - << "namespace ProjectInfo" << newLine - << "{" << newLine - << " const char* const projectName = " << CodeHelpers::addEscapeChars (project.getProjectName().toString()).quoted() << ";" << newLine - << " const char* const versionString = " << CodeHelpers::addEscapeChars (project.getVersion().toString()).quoted() << ";" << newLine - << " const int versionNumber = " << project.getVersionAsHex() << ";" << newLine - << "}" << newLine - << newLine - << "#endif // " << headerGuard << newLine; - } - - void writeAppHeader() - { - if (project.getJuceLinkageMode() != Project::notLinkedToJuce - || ! project.getProjectType().isLibrary()) - { - MemoryOutputStream mem; - writeAppHeader (mem); - saveGeneratedFile (project.getJuceSourceHFilename(), mem); - } - else - { - project.getAppIncludeFile().deleteFile(); - } - } - - void writeBinaryDataFiles() - { - binaryDataCpp = project.getGeneratedCodeFolder().getChildFile ("BinaryData.cpp"); - - ResourceFile resourceFile (project); - - if (resourceFile.getNumFiles() > 0) - { - resourceFile.setClassName ("BinaryData"); - - if (resourceFile.write (binaryDataCpp)) - { - generatedFilesGroup.addFile (binaryDataCpp, -1); - generatedFilesGroup.addFile (binaryDataCpp.withFileExtension (".h"), -1); - } - else - { - errors.add ("Can't create binary resources file: " + binaryDataCpp.getFullPathName()); - } - } - else - { - binaryDataCpp.deleteFile(); - binaryDataCpp.withFileExtension ("h").deleteFile(); - } - } - - void writeProjects() - { - for (int i = project.getNumExporters(); --i >= 0;) - { - ScopedPointer exporter (project.createExporter (i)); - std::cout << "Writing files for: " << exporter->getName() << std::endl; - - if (exporter->getTargetFolder().createDirectory()) - { - project.getProjectType().prepareExporter (*exporter); - - // start with a copy of the basic files, as each exporter may modify it. - const ValueTree generatedGroupCopy (generatedFilesGroup.getNode().createCopy()); - - for (int j = 0; j < exporter->libraryModules.size(); ++j) - exporter->libraryModules.getUnchecked(j)->prepareExporter (*exporter, *this); - - exporter->groups.add (generatedFilesGroup); - - try - { - exporter->create(); - } - catch (ProjectExporter::SaveError& error) - { - errors.add (error.message); - } - - generatedFilesGroup.getNode() = generatedGroupCopy; - } - else - { - errors.add ("Can't create folder: " + exporter->getTargetFolder().getFullPathName()); - } - } - } - - bool replaceFileIfDifferent (const File& f, const MemoryOutputStream& newData) - { - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (f, newData)) - { - errors.add ("Can't write to file: " + f.getFullPathName()); - return false; - } - - return true; - } - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectSaver); -}; - - -#endif diff --git a/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.cpp b/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.cpp index 37ea93124b..9392781df2 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -31,12 +31,12 @@ ProjectTreeViewBase::ProjectTreeViewBase (const Project::Item& item_) : item (item_), isFileMissing (false) { - item.getNode().addListener (this); + item.state.addListener (this); } ProjectTreeViewBase::~ProjectTreeViewBase() { - item.getNode().removeListener (this); + item.state.removeListener (this); } //============================================================================== @@ -48,7 +48,7 @@ String ProjectTreeViewBase::getDisplayName() const void ProjectTreeViewBase::setName (const String& newName) { if (item.isMainGroup()) - item.getProject().setTitle (newName); + item.project.setTitle (newName); else item.getName() = newName; } @@ -268,7 +268,7 @@ void ProjectTreeViewBase::moveItems (OwnedArray & selectedNodes, { Project::Item* const n = selectedNodes.getUnchecked(i); - if (destNode == *n || destNode.getNode().isAChildOf (n->getNode())) // Check for recursion. + if (destNode == *n || destNode.state.isAChildOf (n->state)) // Check for recursion. return; if (! destNode.canContain (*n)) @@ -282,7 +282,7 @@ void ProjectTreeViewBase::moveItems (OwnedArray & selectedNodes, for (int j = selectedNodes.size(); --j >= 0;) { - if (j != i && n->getNode().isAChildOf (selectedNodes.getUnchecked(j)->getNode())) + if (j != i && n->state.isAChildOf (selectedNodes.getUnchecked(j)->state)) { selectedNodes.remove (i); break; @@ -295,8 +295,8 @@ void ProjectTreeViewBase::moveItems (OwnedArray & selectedNodes, { Project::Item* selectedNode = selectedNodes.getUnchecked(i); - if (selectedNode->getNode().getParent() == destNode.getNode() - && indexOfNode (destNode.getNode(), selectedNode->getNode()) < insertIndex) + if (selectedNode->state.getParent() == destNode.state + && indexOfNode (destNode.state, selectedNode->state) < insertIndex) --insertIndex; selectedNode->removeItemFromProject(); @@ -367,7 +367,7 @@ void ProjectTreeViewBase::itemDropped (const DragAndDropTarget::SourceDetails& d //============================================================================== void ProjectTreeViewBase::treeChildrenChanged (const ValueTree& parentTree) { - if (parentTree == item.getNode()) + if (parentTree == item.state) { refreshSubItems(); treeHasChanged(); @@ -377,7 +377,7 @@ void ProjectTreeViewBase::treeChildrenChanged (const ValueTree& parentTree) void ProjectTreeViewBase::valueTreePropertyChanged (ValueTree& tree, const Identifier& property) { - if (tree == item.getNode()) + if (tree == item.state) repaintItem(); } @@ -406,7 +406,7 @@ bool ProjectTreeViewBase::mightContainSubItems() return item.getNumChildren() > 0; } -const String ProjectTreeViewBase::getUniqueName() const +String ProjectTreeViewBase::getUniqueName() const { jassert (item.getID().isNotEmpty()); return item.getID(); @@ -431,23 +431,44 @@ void ProjectTreeViewBase::addSubItems() void ProjectTreeViewBase::refreshSubItems() { - OpennessRestorer openness (*this); + WholeTreeOpennessRestorer openness (*this); clearSubItems(); addSubItems(); } -void ProjectTreeViewBase::showMultiSelectionPopupMenu() +static void treeViewMultiSelectItemChosen (int resultCode, ProjectTreeViewBase* item) { - PopupMenu m; - m.addItem (6, "Delete"); - - switch (m.show()) + switch (resultCode) { - case 6: deleteAllSelectedItems(); break; + case 1: item->deleteAllSelectedItems(); break; default: break; } } +void ProjectTreeViewBase::showMultiSelectionPopupMenu() +{ + PopupMenu m; + m.addItem (1, "Delete"); + + m.showMenuAsync (PopupMenu::Options(), + ModalCallbackFunction::create (treeViewMultiSelectItemChosen, this)); +} + +static void treeViewMenuItemChosen (int resultCode, ProjectTreeViewBase* item) +{ + item->handlePopupMenuResult (resultCode); +} + +void ProjectTreeViewBase::launchPopupMenu (PopupMenu& m) +{ + m.showMenuAsync (PopupMenu::Options(), + ModalCallbackFunction::create (treeViewMenuItemChosen, this)); +} + +void ProjectTreeViewBase::handlePopupMenuResult (int) +{ +} + void ProjectTreeViewBase::itemDoubleClicked (const MouseEvent& e) { invokeShowDocument(); @@ -487,12 +508,12 @@ void ProjectTreeViewBase::itemSelectionChanged (bool isNowSelected) } } -const String ProjectTreeViewBase::getTooltip() +String ProjectTreeViewBase::getTooltip() { return String::empty; } -const var ProjectTreeViewBase::getDragSourceDescription() +var ProjectTreeViewBase::getDragSourceDescription() { delayedSelectionTimer = nullptr; return projectItemDragType; diff --git a/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.h b/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.h index 2ede87df58..538d299b75 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -29,7 +29,7 @@ #include "../jucer_Headers.h" #include "../Utility/jucer_JucerTreeViewBase.h" #include "jucer_Project.h" -#include "jucer_ResourceFile.h" +#include "../Project Saving/jucer_ResourceFile.h" #include "jucer_ProjectContentComponent.h" @@ -65,6 +65,9 @@ public: virtual void addFiles (const StringArray& files, int insertIndex); virtual void moveSelectedItemsTo (OwnedArray & selectedNodes, int insertIndex); virtual void showMultiSelectionPopupMenu(); + + void launchPopupMenu (PopupMenu&); // runs asynchronously, and produces a callback to handlePopupMenuResult(). + virtual void handlePopupMenuResult (int resultCode); void invokeShowDocument(); virtual ProjectTreeViewBase* findTreeViewItem (const Project::Item& itemToFind); @@ -79,14 +82,14 @@ public: //============================================================================== // TreeViewItem stuff.. bool mightContainSubItems(); - const String getUniqueName() const; + String getUniqueName() const; void itemOpennessChanged (bool isNowOpen); void refreshSubItems(); bool canBeSelected() const { return true; } void itemDoubleClicked (const MouseEvent& e); void itemSelectionChanged (bool isNowSelected); - const String getTooltip(); - const var getDragSourceDescription(); + String getTooltip(); + var getDragSourceDescription(); //============================================================================== // Drag-and-drop stuff.. diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp index f7ff89b22e..cf5a4cfb37 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -24,834 +24,11 @@ */ #include "jucer_ProjectType.h" -#include "jucer_ProjectExporter.h" -#include "jucer_ProjectSaver.h" +#include "../Project Saving/jucer_ProjectExporter.h" +#include "../Project Saving/jucer_ProjectSaver.h" +#include "jucer_AudioPluginModule.h" -//============================================================================== -class JuceModule -{ -public: - JuceModule (const File& file) - : moduleInfo (JSON::parse (file)), - moduleFolder (file.getParentDirectory()) - { - } - - static StringArray findAllModuleIDs() - { - StringArray ids; - DirectoryIterator iter (getModulesFolder(), false, "*", File::findDirectories); - - while (iter.next()) - { - const File moduleDef (iter.getFile().getChildFile ("juce_module.txt")); - - if (moduleDef.exists()) - { - ScopedPointer m (new JuceModule (moduleDef)); - jassert (m->isValid()); - - if (m->isValid()) - ids.add (m->getID()); - } - } - - return ids; - } - - static JuceModule* createModuleForID (const String& moduleID) - { - DirectoryIterator iter (getModulesFolder(), false, "*", File::findDirectories); - - while (iter.next()) - { - const File moduleDef (iter.getFile().getChildFile ("juce_module.txt")); - - if (moduleDef.exists()) - { - ScopedPointer m (new JuceModule (moduleDef)); - - if (m->getID() == moduleID) - return m.release(); - } - } - - return nullptr; - } - - String getID() const { return moduleInfo ["id"]; } - - bool isValid() const { return getID().isNotEmpty(); } - - File getInclude() const - { - return getFileFromPath (moduleInfo ["include"]); - } - - Array getCompiledFiles() const - { - Array result; - const Array* const files = moduleInfo ["compile"].getArray(); - - if (files != nullptr) - { - for (int i = 0; i < files->size(); ++i) - { - const var& file = files->getReference(i); - - String filename (file ["file"].toString()); - - if (filename.isNotEmpty()) - result.add (getFileFromPath (filename)); - } - } - - return result; - } - - File getFileFromPath (const String& path) const - { - return moduleFolder.getChildFile (path); - } - - void getDependencies (OwnedArray& dependencies) const - { - const Array* const deps = moduleInfo ["dependencies"].getArray(); - - if (deps != nullptr) - { - for (int i = 0; i < deps->size(); ++i) - { - const String requiredID (deps->getUnchecked(i) ["id"].toString()); - - if (requiredID.isNotEmpty() - && ! containsModule (dependencies, requiredID)) - { - JuceModule* const m = createModuleForID (requiredID); - - if (m != nullptr) - dependencies.add (m); - } - } - } - } - - var moduleInfo; - File moduleFolder; - -private: - static bool containsModule (const OwnedArray& modules, const String& requiredID) - { - for (int i = modules.size(); --i >= 0;) - if (modules.getUnchecked(i)->getID() == requiredID) - return true; - - return false; - } - - static File getModulesFolder() - { - return File ("/Volumes/CODE/code/juce2/modules"); - //return StoredSettings::getInstance()->getLastKnownJuceFolder().getChildFile ("modules"); - } - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceModule); -}; - - -//============================================================================== -LibraryModule::LibraryModule() -{ -} - -//============================================================================== -namespace -{ - Value getVSTFolder (const ProjectExporter& exporter) { return exporter.getSetting (Ids::vstFolder); } - - void addVSTFolderToPath (const ProjectExporter& exporter, StringArray& searchPaths) - { - const String vstFolder (getVSTFolder (exporter).toString()); - - if (vstFolder.isNotEmpty()) - { - RelativePath path (exporter.rebaseFromProjectFolderToBuildTarget (RelativePath (vstFolder, RelativePath::projectFolder))); - - if (exporter.isVisualStudio()) - searchPaths.add (path.toWindowsStyle()); - else if (exporter.isLinux() || exporter.isXcode()) - searchPaths.insert (0, path.toUnixStyle()); - } - } - - void createVSTPathEditor (const ProjectExporter& exporter, Array & props) - { - props.add (new TextPropertyComponent (getVSTFolder (exporter), "VST Folder", 1024, false)); - props.getLast()->setTooltip ("If you're building a VST, this must be the folder containing the VST SDK. This should be an absolute path."); - } - - static int countMaxPluginChannels (const String& configString, bool isInput) - { - StringArray configs; - configs.addTokens (configString, ", {}", String::empty); - configs.trim(); - configs.removeEmptyStrings(); - jassert ((configs.size() & 1) == 0); // looks like a syntax error in the configs? - - int maxVal = 0; - for (int i = (isInput ? 0 : 1); i < configs.size(); i += 2) - maxVal = jmax (maxVal, configs[i].getIntValue()); - - return maxVal; - } - - Value shouldBuildVST (const Project& project) { return project.getProjectValue ("buildVST"); } - Value shouldBuildRTAS (const Project& project) { return project.getProjectValue ("buildRTAS"); } - Value shouldBuildAU (const Project& project) { return project.getProjectValue ("buildAU"); } - - Value getPluginName (const Project& project) { return project.getProjectValue ("pluginName"); } - Value getPluginDesc (const Project& project) { return project.getProjectValue ("pluginDesc"); } - Value getPluginManufacturer (const Project& project) { return project.getProjectValue ("pluginManufacturer"); } - Value getPluginManufacturerCode (const Project& project) { return project.getProjectValue ("pluginManufacturerCode"); } - Value getPluginCode (const Project& project) { return project.getProjectValue ("pluginCode"); } - Value getPluginChannelConfigs (const Project& project) { return project.getProjectValue ("pluginChannelConfigs"); } - Value getPluginIsSynth (const Project& project) { return project.getProjectValue ("pluginIsSynth"); } - Value getPluginWantsMidiInput (const Project& project) { return project.getProjectValue ("pluginWantsMidiIn"); } - Value getPluginProducesMidiOut (const Project& project) { return project.getProjectValue ("pluginProducesMidiOut"); } - Value getPluginSilenceInProducesSilenceOut (const Project& project) { return project.getProjectValue ("pluginSilenceInIsSilenceOut"); } - Value getPluginTailLengthSeconds (const Project& project) { return project.getProjectValue ("pluginTailLength"); } - Value getPluginEditorNeedsKeyFocus (const Project& project) { return project.getProjectValue ("pluginEditorRequiresKeys"); } - Value getPluginAUExportPrefix (const Project& project) { return project.getProjectValue ("pluginAUExportPrefix"); } - Value getPluginAUCocoaViewClassName (const Project& project) { return project.getProjectValue ("pluginAUViewClass"); } - Value getPluginRTASCategory (const Project& project) { return project.getProjectValue ("pluginRTASCategory"); } - - void writePluginCharacteristics (Project& project, OutputStream& out) - { - String headerGuard ("__PLUGINCHARACTERISTICS_" + project.getProjectUID().toUpperCase() + "__"); - - ProjectSaver::writeAutoGenWarningComment (out); - - out << " This header file contains configuration options for the plug-in. If you need to change any of" << newLine - << " these, it'd be wise to do so using the Jucer, rather than editing this file directly..." << newLine - << newLine - << "*/" << newLine - << newLine - << "#ifndef " << headerGuard << newLine - << "#define " << headerGuard << newLine - << newLine - << "#define JucePlugin_Build_VST " << ((bool) shouldBuildVST (project).getValue() ? 1 : 0) << " // (If you change this value, you'll also need to re-export the projects using the Jucer)" << newLine - << "#define JucePlugin_Build_AU " << ((bool) shouldBuildAU (project).getValue() ? 1 : 0) << " // (If you change this value, you'll also need to re-export the projects using the Jucer)" << newLine - << "#define JucePlugin_Build_RTAS " << ((bool) shouldBuildRTAS (project).getValue() ? 1 : 0) << " // (If you change this value, you'll also need to re-export the projects using the Jucer)" << newLine - << newLine - << "#define JucePlugin_Name " << getPluginName (project).toString().quoted() << newLine - << "#define JucePlugin_Desc " << getPluginDesc (project).toString().quoted() << newLine - << "#define JucePlugin_Manufacturer " << getPluginManufacturer (project).toString().quoted() << newLine - << "#define JucePlugin_ManufacturerCode '" << getPluginManufacturerCode (project).toString().trim().substring (0, 4) << "'" << newLine - << "#define JucePlugin_PluginCode '" << getPluginCode (project).toString().trim().substring (0, 4) << "'" << newLine - << "#define JucePlugin_MaxNumInputChannels " << countMaxPluginChannels (getPluginChannelConfigs (project).toString(), true) << newLine - << "#define JucePlugin_MaxNumOutputChannels " << countMaxPluginChannels (getPluginChannelConfigs (project).toString(), false) << newLine - << "#define JucePlugin_PreferredChannelConfigurations " << getPluginChannelConfigs (project).toString() << newLine - << "#define JucePlugin_IsSynth " << ((bool) getPluginIsSynth (project).getValue() ? 1 : 0) << newLine - << "#define JucePlugin_WantsMidiInput " << ((bool) getPluginWantsMidiInput (project).getValue() ? 1 : 0) << newLine - << "#define JucePlugin_ProducesMidiOutput " << ((bool) getPluginProducesMidiOut (project).getValue() ? 1 : 0) << newLine - << "#define JucePlugin_SilenceInProducesSilenceOut " << ((bool) getPluginSilenceInProducesSilenceOut (project).getValue() ? 1 : 0) << newLine - << "#define JucePlugin_TailLengthSeconds " << (double) getPluginTailLengthSeconds (project).getValue() << newLine - << "#define JucePlugin_EditorRequiresKeyboardFocus " << ((bool) getPluginEditorNeedsKeyFocus (project).getValue() ? 1 : 0) << newLine - << "#define JucePlugin_VersionCode " << project.getVersionAsHex() << newLine - << "#define JucePlugin_VersionString " << project.getVersion().toString().quoted() << newLine - << "#define JucePlugin_VSTUniqueID JucePlugin_PluginCode" << newLine - << "#define JucePlugin_VSTCategory " << ((bool) getPluginIsSynth (project).getValue() ? "kPlugCategSynth" : "kPlugCategEffect") << newLine - << "#define JucePlugin_AUMainType " << ((bool) getPluginIsSynth (project).getValue() ? "kAudioUnitType_MusicDevice" : "kAudioUnitType_Effect") << newLine - << "#define JucePlugin_AUSubType JucePlugin_PluginCode" << newLine - << "#define JucePlugin_AUExportPrefix " << getPluginAUExportPrefix (project).toString() << newLine - << "#define JucePlugin_AUExportPrefixQuoted " << getPluginAUExportPrefix (project).toString().quoted() << newLine - << "#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode" << newLine - << "#define JucePlugin_CFBundleIdentifier " << project.getBundleIdentifier().toString() << newLine - << "#define JucePlugin_AUCocoaViewClassName " << getPluginAUCocoaViewClassName (project).toString() << newLine - << "#define JucePlugin_RTASCategory " << ((bool) getPluginIsSynth (project).getValue() ? "ePlugInCategory_SWGenerators" : "ePlugInCategory_None") << newLine - << "#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode" << newLine - << "#define JucePlugin_RTASProductId JucePlugin_PluginCode" << newLine; - - out << "#define JUCE_USE_VSTSDK_2_4 1" << newLine - << newLine - << "#endif // " << headerGuard << newLine; - } - - void writePluginCharacteristicsFile (ProjectSaver& projectSaver) - { - MemoryOutputStream mem; - writePluginCharacteristics (projectSaver.getProject(), mem); - projectSaver.saveGeneratedFile (projectSaver.getProject().getPluginCharacteristicsFilename(), mem); - } -} - - -//============================================================================== -class JuceLibraryModule : public LibraryModule -{ -public: - JuceLibraryModule() {} - - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) - { - if (project.getJuceLinkageMode() != Project::notLinkedToJuce) - { - if (project.isUsingSingleTemplateFile() - || project.isUsingMultipleTemplateFiles() - || project.isUsingFullyAmalgamatedFile()) - createMultipleIncludes (project, "juce_amalgamated.h", includePaths, headerGuards); - else - createMultipleIncludes (project, "juce.h", includePaths, headerGuards); - } - } - - void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - const Project& project = exporter.getProject(); - - const String linkageMode (project.getJuceLinkageMode()); - int numJuceSourceFiles = 0; - - if (linkageMode == Project::useAmalgamatedJuce - || linkageMode == Project::useAmalgamatedJuceViaSingleTemplate) - { - numJuceSourceFiles = 1; - } - else if (linkageMode == Project::useAmalgamatedJuceViaMultipleTemplates) - { - numJuceSourceFiles = project.getNumSeparateAmalgamatedFiles(); - } - else - { - jassert (linkageMode == Project::notLinkedToJuce - || linkageMode == Project::useLinkedJuce); - } - - for (int i = 0; i <= project.getNumSeparateAmalgamatedFiles(); ++i) - { - String sourceWrapper (project.getJuceSourceFilenameRoot()); - - if (i != 0) - sourceWrapper << i; - - sourceWrapper << (exporter.usesMMFiles() ? ".mm" : ".cpp"); - - if (numJuceSourceFiles > 0 - && ((i == 0 && numJuceSourceFiles == 1) || (i != 0 && numJuceSourceFiles > 1))) - { - MemoryOutputStream mem; - writeSourceWrapper (mem, const_cast (project), i); - projectSaver.saveGeneratedFile (sourceWrapper, mem); - } - else - { - project.getGeneratedCodeFolder().getChildFile (sourceWrapper).deleteFile(); - } - } - - if (project.isConfigFlagEnabled ("JUCE_PLUGINHOST_AU")) - exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); - } - - void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const - { - if (exporter.getProject().isConfigFlagEnabled ("JUCE_PLUGINHOST_VST")) - addVSTFolderToPath (exporter, paths); - } - - void createPropertyEditors (const ProjectExporter& exporter, Array & props) const - { - if (exporter.getProject().isConfigFlagEnabled ("JUCE_PLUGINHOST_VST")) - createVSTPathEditor (exporter, props); - } - - void getConfigFlags (Project& project, OwnedArray& flags) const - { - if (project.getJuceLinkageMode() == Project::notLinkedToJuce) - return; - - StringArray lines; - project.getLocalJuceFolder().getChildFile ("juce_Config.h").readLines (lines); - - for (int i = 0; i < lines.size(); ++i) - { - String line (lines[i].trim()); - - if (line.startsWith ("/** ") && line.containsChar (':')) - { - ScopedPointer config (new Project::ConfigFlag()); - config->symbol = line.substring (4).upToFirstOccurrenceOf (":", false, false).trim(); - - if (config->symbol.length() > 4) - { - config->description = line.fromFirstOccurrenceOf (":", false, false).trimStart(); - ++i; - while (! (lines[i].contains ("*/") || lines[i].contains ("@see"))) - { - if (lines[i].trim().isNotEmpty()) - config->description = config->description.trim() + " " + lines[i].trim(); - - ++i; - } - - config->description = config->description.upToFirstOccurrenceOf ("*/", false, false); - flags.add (config.release()); - } - } - } - } - -private: - static void writeSourceWrapper (OutputStream& out, Project& project, int fileNumber) - { - const String appConfigFileName (project.getAppConfigFilename()); - - ProjectSaver::writeAutoGenWarningComment (out); - - out << " This file pulls in all the Juce source code, and builds it using the settings" << newLine - << " defined in " << appConfigFileName << "." << newLine - << newLine - << " If you want to change the method by which Juce is linked into your app, use the" << newLine - << " Jucer to change it, rather than trying to edit this file directly." << newLine - << newLine - << "*/" - << newLine - << newLine - << CodeHelpers::createIncludeStatement (appConfigFileName) << newLine; - - if (fileNumber == 0) - writeInclude (project, out, project.isUsingFullyAmalgamatedFile() ? "juce_amalgamated.cpp" - : "amalgamation/juce_amalgamated_template.cpp"); - else - writeInclude (project, out, "amalgamation/juce_amalgamated" + String (fileNumber) + ".cpp"); - } - - static void createMultipleIncludes (Project& project, const String& pathFromLibraryFolder, - StringArray& paths, StringArray& guards) - { - for (int i = project.getNumExporters(); --i >= 0;) - { - ScopedPointer exporter (project.createExporter (i)); - - if (exporter != nullptr) - { - paths.add (exporter->getIncludePathForFileInJuceFolder (pathFromLibraryFolder, project.getAppIncludeFile())); - guards.add ("defined (" + exporter->getExporterIdentifierMacro() + ")"); - } - } - } - - static void writeInclude (Project& project, OutputStream& out, const String& pathFromJuceFolder) - { - StringArray paths, guards; - createMultipleIncludes (project, pathFromJuceFolder, paths, guards); - - StringArray uniquePaths (paths); - uniquePaths.removeDuplicates (false); - - if (uniquePaths.size() == 1) - { - out << "#include " << paths[0] << newLine; - } - else - { - int i = paths.size(); - for (; --i >= 0;) - { - for (int j = i; --j >= 0;) - { - if (paths[i] == paths[j] && guards[i] == guards[j]) - { - paths.remove (i); - guards.remove (i); - } - } - } - - for (i = 0; i < paths.size(); ++i) - { - out << (i == 0 ? "#if " : "#elif ") << guards[i] << newLine - << " #include " << paths[i] << newLine; - } - - out << "#endif" << newLine; - } - } -}; -//============================================================================== -#define JUCE_PLUGINS_ROOT "src/audio/plugin_client/" -#define JUCE_PLUGINS_PATH_VST JUCE_PLUGINS_ROOT "VST/" -#define JUCE_PLUGINS_PATH_RTAS JUCE_PLUGINS_ROOT "RTAS/" -#define JUCE_PLUGINS_PATH_AU JUCE_PLUGINS_ROOT "AU/" - -//============================================================================== -class VSTLibraryModule : public LibraryModule -{ -public: - VSTLibraryModule() {} - - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) - { - } - - void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - fixMissingValues (exporter); - writePluginCharacteristicsFile (projectSaver); - - exporter.makefileTargetSuffix = ".so"; - - Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), "Juce VST Wrapper")); - group.setID ("__jucevstfiles"); - - const char* osxFiles[] = { JUCE_PLUGINS_PATH_VST "juce_VST_Wrapper.cpp", - JUCE_PLUGINS_PATH_VST "juce_VST_Wrapper.mm", 0 }; - - const char* winFiles[] = { JUCE_PLUGINS_PATH_VST "juce_VST_Wrapper.cpp", 0}; - - for (const char** f = (exporter.isXcode() ? osxFiles : winFiles); *f != 0; ++f) - group.addRelativeFile (exporter.getJucePathFromProjectFolder().getChildFile (*f), -1, true); - - exporter.groups.add (group); - } - - void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const - { - RelativePath juceWrapperFolder (exporter.getProject().getGeneratedCodeFolder(), - exporter.getTargetFolder(), RelativePath::buildTargetFolder); - - addVSTFolderToPath (exporter, paths); - - if (exporter.isVisualStudio()) - paths.add (juceWrapperFolder.toWindowsStyle()); - else if (exporter.isLinux()) - paths.add (juceWrapperFolder.toUnixStyle()); - } - - void createPropertyEditors (const ProjectExporter& exporter, Array & props) const - { - fixMissingValues (exporter); - createVSTPathEditor (exporter, props); - } - - void getConfigFlags (Project& project, OwnedArray& flags) const - { - } - - static void fixMissingValues (const ProjectExporter& exporter) - { - if (getVSTFolder (exporter).toString().isEmpty()) - { - if (exporter.isVisualStudio()) - getVSTFolder (exporter) = "c:\\SDKs\\vstsdk2.4"; - else - getVSTFolder (exporter) = "~/SDKs/vstsdk2.4"; - } - } -}; - -//============================================================================== -class RTASLibraryModule : public LibraryModule -{ -public: - RTASLibraryModule() {} - - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) - { - } - - void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - fixMissingValues (exporter); - - exporter.xcodeCanUseDwarf = false; - - exporter.msvcTargetSuffix = ".dpm"; - exporter.msvcNeedsDLLRuntimeLib = true; - - RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder); - exporter.msvcExtraPreprocessorDefs.set ("JucePlugin_WinBag_path", CodeHelpers::addEscapeChars (rtasFolder.getChildFile ("WinBag") - .toWindowsStyle().quoted())); - - exporter.msvcExtraLinkerOptions = "/FORCE:multiple"; - exporter.msvcDelayLoadedDLLs = "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll"; - exporter.msvcModuleDefinitionFile = exporter.getJucePathFromTargetFolder() - .getChildFile (JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinExports.def") - .toWindowsStyle(); - - exporter.msvcPostBuildOutputs = "\"$(TargetPath)\".rsr"; - exporter.msvcPostBuildCommand = "copy /Y \"" + exporter.getJucePathFromTargetFolder() - .getChildFile (JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinResources.rsr") - .toWindowsStyle() - + "\" \"$(TargetPath)\".rsr"; - - - exporter.xcodeExtraLibrariesDebug.add (rtasFolder.getChildFile ("MacBag/Libs/Debug/libPluginLibrary.a")); - exporter.xcodeExtraLibrariesRelease.add (rtasFolder.getChildFile ("MacBag/Libs/Release/libPluginLibrary.a")); - - writePluginCharacteristicsFile (projectSaver); - - if (exporter.isXcode() || exporter.isVisualStudio()) - { - Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), "Juce RTAS Wrapper")); - group.setID ("__jucertasfiles"); - - const char* osxFiles[] = { JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode1.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode2.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode3.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode_Header.h", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_MacResources.r", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_MacUtilities.mm", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_Wrapper.cpp", 0 }; - - const char* winFiles[] = { JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode1.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode2.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode3.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_DigiCode_Header.h", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_WinUtilities.cpp", - JUCE_PLUGINS_PATH_RTAS "juce_RTAS_Wrapper.cpp" , 0}; - - for (const char** f = (exporter.isXcode() ? osxFiles : winFiles); *f != 0; ++f) - { - const RelativePath file (exporter.getJucePathFromProjectFolder().getChildFile (*f)); - group.addRelativeFile (file, -1, file.hasFileExtension ("cpp;mm;r")); - - const Project::Item& last = group.getChild (group.getNumChildren() - 1); - last.getShouldInhibitWarningsValue() = true; - last.getShouldUseStdCallValue() = true; - } - - exporter.groups.add (group); - } - } - - void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const - { - RelativePath rtasFolder (getRTASFolder (exporter).toString(), RelativePath::projectFolder); - - if (exporter.isVisualStudio()) - { - RelativePath juceWrapperFolder (exporter.getProject().getGeneratedCodeFolder(), - exporter.getTargetFolder(), RelativePath::buildTargetFolder); - - paths.add (juceWrapperFolder.toWindowsStyle()); - - const char* p[] = { "AlturaPorts/TDMPlugins/PluginLibrary/EffectClasses", - "AlturaPorts/TDMPlugins/PluginLibrary/ProcessClasses", - "AlturaPorts/TDMPlugins/PluginLibrary/ProcessClasses/Interfaces", - "AlturaPorts/TDMPlugins/PluginLibrary/Utilities", - "AlturaPorts/TDMPlugins/PluginLibrary/RTASP_Adapt", - "AlturaPorts/TDMPlugins/PluginLibrary/CoreClasses", - "AlturaPorts/TDMPlugins/PluginLibrary/Controls", - "AlturaPorts/TDMPlugins/PluginLibrary/Meters", - "AlturaPorts/TDMPlugins/PluginLibrary/ViewClasses", - "AlturaPorts/TDMPlugins/PluginLibrary/DSPClasses", - "AlturaPorts/TDMPlugins/PluginLibrary/Interfaces", - "AlturaPorts/TDMPlugins/common", - "AlturaPorts/TDMPlugins/common/Platform", - "AlturaPorts/TDMPlugins/SignalProcessing/Public", - "AlturaPorts/TDMPlugIns/DSPManager/Interfaces", - "AlturaPorts/SADriver/Interfaces", - "AlturaPorts/DigiPublic/Interfaces", - "AlturaPorts/Fic/Interfaces/DAEClient", - "AlturaPorts/NewFileLibs/Cmn", - "AlturaPorts/NewFileLibs/DOA", - "AlturaPorts/AlturaSource/PPC_H", - "AlturaPorts/AlturaSource/AppSupport", - "AvidCode/AVX2sdk/AVX/avx2/avx2sdk/inc", - "xplat/AVX/avx2/avx2sdk/inc" }; - - for (int i = 0; i < numElementsInArray (p); ++i) - paths.add (exporter.rebaseFromProjectFolderToBuildTarget (rtasFolder.getChildFile (p[i])).toWindowsStyle()); - } - else if (exporter.isXcode()) - { - paths.add ("/Developer/Headers/FlatCarbon"); - - const char* p[] = { "AlturaPorts/TDMPlugIns/PlugInLibrary/Controls", - "AlturaPorts/TDMPlugIns/PlugInLibrary/CoreClasses", - "AlturaPorts/TDMPlugIns/PlugInLibrary/DSPClasses", - "AlturaPorts/TDMPlugIns/PlugInLibrary/EffectClasses", - "AlturaPorts/TDMPlugIns/PlugInLibrary/MacBuild", - "AlturaPorts/TDMPlugIns/PlugInLibrary/Meters", - "AlturaPorts/TDMPlugIns/PlugInLibrary/ProcessClasses", - "AlturaPorts/TDMPlugIns/PlugInLibrary/ProcessClasses/Interfaces", - "AlturaPorts/TDMPlugIns/PlugInLibrary/RTASP_Adapt", - "AlturaPorts/TDMPlugIns/PlugInLibrary/Utilities", - "AlturaPorts/TDMPlugIns/PlugInLibrary/ViewClasses", - "AlturaPorts/TDMPlugIns/DSPManager/**", - "AlturaPorts/TDMPlugIns/SupplementalPlugInLib/Encryption", - "AlturaPorts/TDMPlugIns/SupplementalPlugInLib/GraphicsExtensions", - "AlturaPorts/TDMPlugIns/common", - "AlturaPorts/TDMPlugIns/common/PI_LibInterface", - "AlturaPorts/TDMPlugIns/PACEProtection/**", - "AlturaPorts/TDMPlugIns/SignalProcessing/**", - "AlturaPorts/OMS/Headers", - "AlturaPorts/Fic/Interfaces/**", - "AlturaPorts/Fic/Source/SignalNets", - "AlturaPorts/DSIPublicInterface/PublicHeaders", - "DAEWin/Include", - "AlturaPorts/DigiPublic/Interfaces", - "AlturaPorts/DigiPublic", - "AlturaPorts/NewFileLibs/DOA", - "AlturaPorts/NewFileLibs/Cmn", - "xplat/AVX/avx2/avx2sdk/inc", - "xplat/AVX/avx2/avx2sdk/utils" }; - - for (int i = 0; i < numElementsInArray (p); ++i) - paths.add (exporter.rebaseFromProjectFolderToBuildTarget (rtasFolder.getChildFile (p[i])).toUnixStyle()); - } - } - - void createPropertyEditors (const ProjectExporter& exporter, Array & props) const - { - if (exporter.isXcode() || exporter.isVisualStudio()) - { - fixMissingValues (exporter); - - props.add (new TextPropertyComponent (getRTASFolder (exporter), "RTAS Folder", 1024, false)); - props.getLast()->setTooltip ("If you're building an RTAS, this must be the folder containing the RTAS SDK. This should be an absolute path."); - } - } - - void getConfigFlags (Project& project, OwnedArray& flags) const - { - } - - static void fixMissingValues (const ProjectExporter& exporter) - { - if (getRTASFolder (exporter).toString().isEmpty()) - { - if (exporter.isVisualStudio()) - getRTASFolder (exporter) = "c:\\SDKs\\PT_80_SDK"; - else - getRTASFolder (exporter) = "~/SDKs/PT_80_SDK"; - } - } - - static Value getRTASFolder (const ProjectExporter& exporter) { return exporter.getSetting (Ids::rtasFolder); } -}; - -//============================================================================== -class AULibraryModule : public LibraryModule -{ -public: - AULibraryModule() {} - - void getHeaderFiles (Project& project, StringArray& includePaths, StringArray& headerGuards) - { - } - - void prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const - { - writePluginCharacteristicsFile (projectSaver); - - if (exporter.isXcode()) - { - exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); - - Project::Item group (Project::Item::createGroup (const_cast (exporter).getProject(), "Juce AU Wrapper")); - group.setID ("__juceaufiles"); - - { - const char* files[] = { JUCE_PLUGINS_PATH_AU "juce_AU_Resources.r", - JUCE_PLUGINS_PATH_AU "juce_AU_Wrapper.mm", 0 }; - - for (const char** f = files; *f != 0; ++f) - group.addRelativeFile (exporter.getJucePathFromProjectFolder().getChildFile (*f), -1, true); - } - - Project::Item subGroup (group.addNewSubGroup ("Apple AU Files", -1)); - subGroup.setID ("__juceappleaufiles"); - - { - #define JUCE_AU_PUBLICUTILITY "${DEVELOPER_DIR}/Extras/CoreAudio/PublicUtility/" - #define JUCE_AU_PUBLIC "${DEVELOPER_DIR}/Extras/CoreAudio/AudioUnits/AUPublic/" - - const char* appleAUFiles[] = { JUCE_AU_PUBLICUTILITY "CADebugMacros.h", - JUCE_AU_PUBLICUTILITY "CAAUParameter.cpp", - JUCE_AU_PUBLICUTILITY "CAAUParameter.h", - JUCE_AU_PUBLICUTILITY "CAAudioChannelLayout.cpp", - JUCE_AU_PUBLICUTILITY "CAAudioChannelLayout.h", - JUCE_AU_PUBLICUTILITY "CAMutex.cpp", - JUCE_AU_PUBLICUTILITY "CAMutex.h", - JUCE_AU_PUBLICUTILITY "CAStreamBasicDescription.cpp", - JUCE_AU_PUBLICUTILITY "CAStreamBasicDescription.h", - JUCE_AU_PUBLICUTILITY "CAVectorUnitTypes.h", - JUCE_AU_PUBLICUTILITY "CAVectorUnit.cpp", - JUCE_AU_PUBLICUTILITY "CAVectorUnit.h", - JUCE_AU_PUBLIC "AUViewBase/AUViewLocalizedStringKeys.h", - JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewDispatch.cpp", - JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewControl.cpp", - JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewControl.h", - JUCE_AU_PUBLIC "AUCarbonViewBase/CarbonEventHandler.cpp", - JUCE_AU_PUBLIC "AUCarbonViewBase/CarbonEventHandler.h", - JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewBase.cpp", - JUCE_AU_PUBLIC "AUCarbonViewBase/AUCarbonViewBase.h", - JUCE_AU_PUBLIC "AUBase/AUBase.cpp", - JUCE_AU_PUBLIC "AUBase/AUBase.h", - JUCE_AU_PUBLIC "AUBase/AUDispatch.cpp", - JUCE_AU_PUBLIC "AUBase/AUDispatch.h", - JUCE_AU_PUBLIC "AUBase/AUInputElement.cpp", - JUCE_AU_PUBLIC "AUBase/AUInputElement.h", - JUCE_AU_PUBLIC "AUBase/AUOutputElement.cpp", - JUCE_AU_PUBLIC "AUBase/AUOutputElement.h", - JUCE_AU_PUBLIC "AUBase/AUResources.r", - JUCE_AU_PUBLIC "AUBase/AUScopeElement.cpp", - JUCE_AU_PUBLIC "AUBase/AUScopeElement.h", - JUCE_AU_PUBLIC "AUBase/ComponentBase.cpp", - JUCE_AU_PUBLIC "AUBase/ComponentBase.h", - JUCE_AU_PUBLIC "OtherBases/AUMIDIBase.cpp", - JUCE_AU_PUBLIC "OtherBases/AUMIDIBase.h", - JUCE_AU_PUBLIC "OtherBases/AUMIDIEffectBase.cpp", - JUCE_AU_PUBLIC "OtherBases/AUMIDIEffectBase.h", - JUCE_AU_PUBLIC "OtherBases/AUOutputBase.cpp", - JUCE_AU_PUBLIC "OtherBases/AUOutputBase.h", - JUCE_AU_PUBLIC "OtherBases/MusicDeviceBase.cpp", - JUCE_AU_PUBLIC "OtherBases/MusicDeviceBase.h", - JUCE_AU_PUBLIC "OtherBases/AUEffectBase.cpp", - JUCE_AU_PUBLIC "OtherBases/AUEffectBase.h", - JUCE_AU_PUBLIC "Utility/AUBuffer.cpp", - JUCE_AU_PUBLIC "Utility/AUBuffer.h", - JUCE_AU_PUBLIC "Utility/AUDebugDispatcher.cpp", - JUCE_AU_PUBLIC "Utility/AUDebugDispatcher.h", - JUCE_AU_PUBLIC "Utility/AUInputFormatConverter.h", - JUCE_AU_PUBLIC "Utility/AUSilentTimeout.h", - JUCE_AU_PUBLIC "Utility/AUTimestampGenerator.h", 0 }; - - for (const char** f = appleAUFiles; *f != 0; ++f) - { - const RelativePath file (*f, RelativePath::projectFolder); - subGroup.addRelativeFile (file, -1, file.hasFileExtension ("cpp;mm")); - subGroup.getChild (subGroup.getNumChildren() - 1).getShouldInhibitWarningsValue() = true; - } - } - - exporter.groups.add (group); - } - } - - void addExtraSearchPaths (const ProjectExporter& exporter, StringArray& paths) const - { - if (exporter.isXcode()) - { - paths.add ("$(DEVELOPER_DIR)/Extras/CoreAudio/PublicUtility"); - paths.add ("$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/Utility"); - } - } - - void createPropertyEditors (const ProjectExporter& exporter, Array & props) const - { - } - - void getConfigFlags (Project& project, OwnedArray& flags) const - { - } -}; - - -//============================================================================== //============================================================================== ProjectType::ProjectType (const String& type_, const String& desc_) : type (type_), desc (desc_) @@ -861,8 +38,6 @@ ProjectType::ProjectType (const String& type_, const String& desc_) ProjectType::~ProjectType() { - JuceModule::findAllModuleIDs(); - getAllTypes().removeValue (this); } @@ -884,11 +59,6 @@ const ProjectType* ProjectType::findType (const String& typeCode) return nullptr; } -void ProjectType::createRequiredModules (Project& project, OwnedArray& modules) const -{ - modules.add (new JuceLibraryModule()); -} - //============================================================================== class ProjectType_GUIApp : public ProjectType { @@ -902,7 +72,7 @@ public: { } - void createPropertyEditors (const Project& project, Array & props) const + void createPropertyEditors (const Project&, PropertyListBuilder&) const { } @@ -919,11 +89,6 @@ public: exporter.msvcIsWindowsSubsystem = true; exporter.msvcTargetSuffix = ".exe"; } - - void createRequiredModules (Project& project, OwnedArray& modules) const - { - ProjectType::createRequiredModules (project, modules); - } }; //============================================================================== @@ -939,7 +104,7 @@ public: { } - void createPropertyEditors (const Project& project, Array & props) const + void createPropertyEditors (const Project& project, PropertyListBuilder& props) const { } @@ -955,11 +120,6 @@ public: exporter.msvcTargetSuffix = ".exe"; exporter.msvcExtraPreprocessorDefs.set ("_CONSOLE", ""); } - - void createRequiredModules (Project& project, OwnedArray& modules) const - { - ProjectType::createRequiredModules (project, modules); - } }; //============================================================================== @@ -975,7 +135,7 @@ public: { } - void createPropertyEditors (const Project& project, Array & props) const + void createPropertyEditors (const Project&, PropertyListBuilder&) const { } @@ -988,13 +148,9 @@ public: exporter.makefileTargetSuffix = ".so"; - exporter.msvcTargetSuffix = ".lib"; - exporter.msvcExtraPreprocessorDefs.set ("_LIB", ""); - } + exporter.msvcTargetSuffix = exporter.getSetting (Ids::libraryType) == 2 ? ".dll" : ".lib"; - void createRequiredModules (Project& project, OwnedArray& modules) const - { - ProjectType::createRequiredModules (project, modules); + exporter.msvcExtraPreprocessorDefs.set ("_LIB", ""); } }; @@ -1035,62 +191,62 @@ public: } } - void createPropertyEditors (const Project& project, Array & props) const + void createPropertyEditors (const Project& project, PropertyListBuilder& props) const { - props.add (new BooleanPropertyComponent (shouldBuildVST (project), "Build VST", "Enabled")); - props.getLast()->setTooltip ("Whether the project should produce a VST plugin."); - props.add (new BooleanPropertyComponent (shouldBuildAU (project), "Build AudioUnit", "Enabled")); - props.getLast()->setTooltip ("Whether the project should produce an AudioUnit plugin."); - props.add (new BooleanPropertyComponent (shouldBuildRTAS (project), "Build RTAS", "Enabled")); - props.getLast()->setTooltip ("Whether the project should produce an RTAS plugin."); - - props.add (new TextPropertyComponent (getPluginName (project), "Plugin Name", 128, false)); - props.getLast()->setTooltip ("The name of your plugin (keep it short!)"); - props.add (new TextPropertyComponent (getPluginDesc (project), "Plugin Description", 256, false)); - props.getLast()->setTooltip ("A short description of your plugin."); - - props.add (new TextPropertyComponent (getPluginManufacturer (project), "Plugin Manufacturer", 256, false)); - props.getLast()->setTooltip ("The name of your company (cannot be blank)."); - props.add (new TextPropertyComponent (getPluginManufacturerCode (project), "Plugin Manufacturer Code", 4, false)); - props.getLast()->setTooltip ("A four-character unique ID for your company. Note that for AU compatibility, this must contain at least one upper-case letter!"); - props.add (new TextPropertyComponent (getPluginCode (project), "Plugin Code", 4, false)); - props.getLast()->setTooltip ("A four-character unique ID for your plugin. Note that for AU compatibility, this must contain at least one upper-case letter!"); - - props.add (new TextPropertyComponent (getPluginChannelConfigs (project), "Plugin Channel Configurations", 256, false)); - props.getLast()->setTooltip ("This is the set of input/output channel configurations that your plugin can handle. The list is a comma-separated set of pairs of values in the form { numInputs, numOutputs }, and each " - "pair indicates a valid configuration that the plugin can handle. So for example, {1, 1}, {2, 2} means that the plugin can be used in just two configurations: either with 1 input " - "and 1 output, or with 2 inputs and 2 outputs."); - - props.add (new BooleanPropertyComponent (getPluginIsSynth (project), "Plugin is a Synth", "Is a Synth")); - props.getLast()->setTooltip ("Enable this if you want your plugin to be treated as a synth or generator. It doesn't make much difference to the plugin itself, but some hosts treat synths differently to other plugins."); - - props.add (new BooleanPropertyComponent (getPluginWantsMidiInput (project), "Plugin Midi Input", "Plugin wants midi input")); - props.getLast()->setTooltip ("Enable this if you want your plugin to accept midi messages."); - - props.add (new BooleanPropertyComponent (getPluginProducesMidiOut (project), "Plugin Midi Output", "Plugin produces midi output")); - props.getLast()->setTooltip ("Enable this if your plugin is going to produce midi messages."); - - props.add (new BooleanPropertyComponent (getPluginSilenceInProducesSilenceOut (project), "Silence", "Silence in produces silence out")); - props.getLast()->setTooltip ("Enable this if your plugin has no tail - i.e. if passing a silent buffer to it will always result in a silent buffer being produced."); - - props.add (new TextPropertyComponent (getPluginTailLengthSeconds (project), "Tail Length (in seconds)", 12, false)); - props.getLast()->setTooltip ("This indicates the length, in seconds, of the plugin's tail. This information may or may not be used by the host."); - - props.add (new BooleanPropertyComponent (getPluginEditorNeedsKeyFocus (project), "Key Focus", "Plugin editor requires keyboard focus")); - props.getLast()->setTooltip ("Enable this if your plugin needs keyboard input - some hosts can be a bit funny about keyboard focus.."); - - props.add (new TextPropertyComponent (getPluginAUExportPrefix (project), "Plugin AU Export Prefix", 64, false)); - props.getLast()->setTooltip ("A prefix for the names of exported entry-point functions that the component exposes - typically this will be a version of your plugin's name that can be used as part of a C++ token."); - - props.add (new TextPropertyComponent (getPluginAUCocoaViewClassName (project), "Plugin AU Cocoa View Name", 64, false)); - props.getLast()->setTooltip ("In an AU, this is the name of Cocoa class that creates the UI. Some hosts bizarrely display the class-name, so you might want to make it reflect your plugin. But the name must be " - "UNIQUE to this exact version of your plugin, to avoid objective-C linkage mix-ups that happen when different plugins containing the same class-name are loaded simultaneously."); - - props.add (new TextPropertyComponent (getPluginRTASCategory (project), "Plugin RTAS Category", 64, false)); - props.getLast()->setTooltip ("(Leave this blank if your plugin is a synth). This is one of the RTAS categories from FicPluginEnums.h, such as: ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics, " - "ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay, " - "ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction, " - "ePlugInCategory_Dither, ePlugInCategory_SoundField"); + props.add (new BooleanPropertyComponent (shouldBuildVST (project), "Build VST", "Enabled"), + "Whether the project should produce a VST plugin."); + props.add (new BooleanPropertyComponent (shouldBuildAU (project), "Build AudioUnit", "Enabled"), + "Whether the project should produce an AudioUnit plugin."); + props.add (new BooleanPropertyComponent (shouldBuildRTAS (project), "Build RTAS", "Enabled"), + "Whether the project should produce an RTAS plugin."); + + props.add (new TextPropertyComponent (getPluginName (project), "Plugin Name", 128, false), + "The name of your plugin (keep it short!)"); + props.add (new TextPropertyComponent (getPluginDesc (project), "Plugin Description", 256, false), + "A short description of your plugin."); + + props.add (new TextPropertyComponent (getPluginManufacturer (project), "Plugin Manufacturer", 256, false), + "The name of your company (cannot be blank)."); + props.add (new TextPropertyComponent (getPluginManufacturerCode (project), "Plugin Manufacturer Code", 4, false), + "A four-character unique ID for your company. Note that for AU compatibility, this must contain at least one upper-case letter!"); + props.add (new TextPropertyComponent (getPluginCode (project), "Plugin Code", 4, false), + "A four-character unique ID for your plugin. Note that for AU compatibility, this must contain at least one upper-case letter!"); + + props.add (new TextPropertyComponent (getPluginChannelConfigs (project), "Plugin Channel Configurations", 256, false), + "This is the set of input/output channel configurations that your plugin can handle. The list is a comma-separated set of pairs of values in the form { numInputs, numOutputs }, and each " + "pair indicates a valid configuration that the plugin can handle. So for example, {1, 1}, {2, 2} means that the plugin can be used in just two configurations: either with 1 input " + "and 1 output, or with 2 inputs and 2 outputs."); + + props.add (new BooleanPropertyComponent (getPluginIsSynth (project), "Plugin is a Synth", "Is a Synth"), + "Enable this if you want your plugin to be treated as a synth or generator. It doesn't make much difference to the plugin itself, but some hosts treat synths differently to other plugins."); + + props.add (new BooleanPropertyComponent (getPluginWantsMidiInput (project), "Plugin Midi Input", "Plugin wants midi input"), + "Enable this if you want your plugin to accept midi messages."); + + props.add (new BooleanPropertyComponent (getPluginProducesMidiOut (project), "Plugin Midi Output", "Plugin produces midi output"), + "Enable this if your plugin is going to produce midi messages."); + + props.add (new BooleanPropertyComponent (getPluginSilenceInProducesSilenceOut (project), "Silence", "Silence in produces silence out"), + "Enable this if your plugin has no tail - i.e. if passing a silent buffer to it will always result in a silent buffer being produced."); + + props.add (new TextPropertyComponent (getPluginTailLengthSeconds (project), "Tail Length (in seconds)", 12, false), + "This indicates the length, in seconds, of the plugin's tail. This information may or may not be used by the host."); + + props.add (new BooleanPropertyComponent (getPluginEditorNeedsKeyFocus (project), "Key Focus", "Plugin editor requires keyboard focus"), + "Enable this if your plugin needs keyboard input - some hosts can be a bit funny about keyboard focus.."); + + props.add (new TextPropertyComponent (getPluginAUExportPrefix (project), "Plugin AU Export Prefix", 64, false), + "A prefix for the names of exported entry-point functions that the component exposes - typically this will be a version of your plugin's name that can be used as part of a C++ token."); + + props.add (new TextPropertyComponent (getPluginAUCocoaViewClassName (project), "Plugin AU Cocoa View Name", 64, false), + "In an AU, this is the name of Cocoa class that creates the UI. Some hosts bizarrely display the class-name, so you might want to make it reflect your plugin. But the name must be " + "UNIQUE to this exact version of your plugin, to avoid objective-C linkage mix-ups that happen when different plugins containing the same class-name are loaded simultaneously."); + + props.add (new TextPropertyComponent (getPluginRTASCategory (project), "Plugin RTAS Category", 64, false), + "(Leave this blank if your plugin is a synth). This is one of the RTAS categories from FicPluginEnums.h, such as: ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics, " + "ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay, " + "ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction, " + "ePlugInCategory_Dither, ePlugInCategory_SoundField"); } void prepareExporter (ProjectExporter& exporter) const @@ -1116,15 +272,6 @@ public: exporter.makefileIsDLL = true; } - - void createRequiredModules (Project& project, OwnedArray& modules) const - { - ProjectType::createRequiredModules (project, modules); - - if (shouldBuildVST (project).getValue()) modules.add (new VSTLibraryModule()); - if (shouldBuildRTAS (project).getValue()) modules.add (new RTASLibraryModule()); - if (shouldBuildAU (project).getValue()) modules.add (new AULibraryModule()); - } }; //============================================================================== @@ -1145,16 +292,29 @@ public: exporter.xcodeProductType = "com.apple.product-type.bundle"; exporter.xcodeProductInstallPath = "$(HOME)/Library/Internet Plug-Ins//"; + { + XmlElement mimeTypesKey ("key"); + mimeTypesKey.setText ("WebPluginMIMETypes"); + + XmlElement mimeTypesEntry ("dict"); + const String exeName (exporter.getProject().getProjectFilenameRoot().toLowerCase()); + mimeTypesEntry.createNewChildElement ("key")->setText ("application/" + exeName + "-plugin"); + XmlElement* d = mimeTypesEntry.createNewChildElement ("dict"); + d->createNewChildElement ("key")->setText ("WebPluginExtensions"); + d->createNewChildElement ("array") + ->createNewChildElement ("string")->setText (exeName); + d->createNewChildElement ("key")->setText ("WebPluginTypeDescription"); + d->createNewChildElement ("string")->setText (exporter.getProject().getProjectName().toString()); + + exporter.xcodeExtraPListEntries.add (mimeTypesKey); + exporter.xcodeExtraPListEntries.add (mimeTypesEntry); + } + exporter.msvcTargetSuffix = ".dll"; exporter.msvcIsDLL = true; exporter.makefileIsDLL = true; } - - void createRequiredModules (Project& project, OwnedArray& modules) const - { - ProjectType::createRequiredModules (project, modules); - } }; //============================================================================== diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.h b/extras/Introjucer/Source/Project/jucer_ProjectType.h index 7e30cb9f18..fb18b084b9 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -27,24 +27,8 @@ #define __JUCER_PROJECTTYPE_JUCEHEADER__ #include "../jucer_Headers.h" -#include "jucer_Project.h" +class Project; class ProjectExporter; -class ProjectSaver; - -//============================================================================== -class LibraryModule -{ -public: - LibraryModule(); - virtual ~LibraryModule() {} - - virtual void prepareExporter (ProjectExporter&, ProjectSaver&) const = 0; - virtual void getHeaderFiles (Project&, StringArray& includePaths, StringArray& headerGuards) = 0; - virtual void addExtraSearchPaths (const ProjectExporter&, StringArray& paths) const = 0; - virtual void createPropertyEditors (const ProjectExporter&, Array &) const = 0; - virtual void getConfigFlags (Project&, OwnedArray&) const = 0; -}; - //============================================================================== class ProjectType @@ -72,9 +56,8 @@ public: static const char* getAudioPluginTypeName(); virtual void setMissingProjectProperties (Project&) const = 0; - virtual void createPropertyEditors (const Project&, Array &) const = 0; + virtual void createPropertyEditors (const Project&, PropertyListBuilder&) const = 0; virtual void prepareExporter (ProjectExporter&) const = 0; - virtual void createRequiredModules (Project&, OwnedArray& modules) const; protected: ProjectType (const String& type, const String& desc); @@ -86,4 +69,4 @@ private: }; -#endif // __JUCE_PROJECTTYPE_H_C1C6BC3E__ +#endif // __JUCER_PROJECTTYPE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_ResourceFile.cpp b/extras/Introjucer/Source/Project/jucer_ResourceFile.cpp deleted file mode 100644 index 0d5bdf4299..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ResourceFile.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#include "jucer_ResourceFile.h" -#include "jucer_ProjectTreeViewBase.h" -#include "../Application/jucer_OpenDocumentManager.h" - -static const char* resourceFileIdentifierString = "JUCER_BINARY_RESOURCE"; - - -//============================================================================== -ResourceFile::ResourceFile (Project& project_) - : project (project_), - className ("BinaryData") -{ - addResourcesFromProjectItem (project.getMainGroup()); -} - -ResourceFile::~ResourceFile() -{ -} - -bool ResourceFile::isResourceFile (const File& file) -{ - if (file.hasFileExtension ("cpp;cc;h")) - { - ScopedPointer in (file.createInputStream()); - - if (in != nullptr) - { - MemoryBlock mb; - in->readIntoMemoryBlock (mb, 256); - return mb.toString().contains (resourceFileIdentifierString); - } - } - - return false; -} - -//============================================================================== -void ResourceFile::addResourcesFromProjectItem (const Project::Item& projectItem) -{ - if (projectItem.isGroup()) - { - for (int i = 0; i < projectItem.getNumChildren(); ++i) - addResourcesFromProjectItem (projectItem.getChild(i)); - } - else - { - if (projectItem.shouldBeAddedToBinaryResources()) - addFile (projectItem.getFile()); - } -} - -//============================================================================== -void ResourceFile::setJuceHeaderToInclude (const File& header) -{ - juceHeader = header; -} - -void ResourceFile::setClassName (const String& className_) -{ - className = className_; -} - -void ResourceFile::addFile (const File& file) -{ - files.add (file); - - const String variableNameRoot (CodeHelpers::makeBinaryDataIdentifierName (file)); - String variableName (variableNameRoot); - - int suffix = 2; - while (variableNames.contains (variableName)) - variableName = variableNameRoot + String (suffix++); - - variableNames.add (variableName); -} - -String ResourceFile::getDataVariableFor (const File& file) const -{ - jassert (files.indexOf (file) >= 0); - return variableNames [files.indexOf (file)]; -} - -String ResourceFile::getSizeVariableFor (const File& file) const -{ - jassert (files.indexOf (file) >= 0); - return variableNames [files.indexOf (file)] + "Size"; -} - -int64 ResourceFile::getTotalDataSize() const -{ - int64 total = 0; - - for (int i = 0; i < files.size(); ++i) - total += files.getReference(i).getSize(); - - return total; -} - -bool ResourceFile::write (const File& cppFile, OutputStream& cpp, OutputStream& header) -{ - String comment; - comment << newLine << newLine - << " This is an auto-generated file, created by " << JUCEApplication::getInstance()->getApplicationName() << newLine - << " Do not edit anything in this file!" << newLine << newLine - << "*/" << newLine << newLine; - - header << "/* =========================================================================================" - << comment; - - cpp << "/* ==================================== " << resourceFileIdentifierString << " ====================================" - << comment; - - if (juceHeader.exists()) - header << CodeHelpers::createIncludeStatement (juceHeader, cppFile) << newLine; - - const String namespaceName (className); - StringArray returnCodes; - - int i; - for (i = 0; i < files.size(); ++i) - returnCodes.add ("numBytes = " + namespaceName + "::" + variableNames[i] + "Size; return " - + namespaceName + "::" + variableNames[i] + ";"); - - cpp << CodeHelpers::createIncludeStatement (cppFile.withFileExtension (".h"), cppFile) << newLine - << newLine - << newLine - << "const char* " << namespaceName << "::getNamedResource (const char* resourceNameUTF8, int& numBytes) throw()" << newLine - << "{" << newLine; - - CodeHelpers::createStringMatcher (cpp, "resourceNameUTF8", variableNames, returnCodes, 4); - - cpp << " numBytes = 0;" << newLine - << " return 0;" << newLine - << "}" << newLine - << newLine; - - header << "namespace " << namespaceName << newLine << "{" << newLine; - - for (i = 0; i < files.size(); ++i) - { - const File& file = files.getReference(i); - const int64 dataSize = file.getSize(); - - ScopedPointer fileStream (file.createInputStream()); - jassert (fileStream != nullptr); - - if (fileStream != nullptr) - { - const String variableName (variableNames[i]); - const String tempVariable ("temp_" + String::toHexString (file.hashCode())); - - header << " extern const char* " << variableName << ";" << newLine; - header << " const int " << variableName << "Size = " << (int) dataSize << ";" << newLine << newLine; - - cpp << newLine << "//================== " << file.getFileName() << " ==================" << newLine - << "static const unsigned char " << tempVariable - << "[] =" << newLine; - - { - MemoryBlock data; - fileStream->readIntoMemoryBlock (data); - CodeHelpers::writeDataAsCppLiteral (data, cpp); - } - - cpp << newLine << newLine - << "const char* " << namespaceName << "::" << variableName << " = (const char*) " - << tempVariable << ";" << newLine; - } - } - - header << " // If you provide the name of one of the binary resource variables above, this function will" << newLine - << " // return the corresponding data and its size (or a null pointer if the name isn't found)." << newLine - << " const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw();" << newLine - << "}" << newLine; - - return true; -} - -bool ResourceFile::write (const File& cppFile) -{ - TemporaryFile tempH (cppFile.withFileExtension (".h"), TemporaryFile::useHiddenFile); - TemporaryFile tempCpp (cppFile, TemporaryFile::useHiddenFile); - - ScopedPointer cppOut (tempCpp.getFile().createOutputStream (32768)); - ScopedPointer hppOut (tempH.getFile().createOutputStream (32768)); - - if (cppOut != nullptr && hppOut != nullptr) - { - if (write (cppFile, *cppOut, *hppOut)) - { - cppOut = nullptr; - hppOut = nullptr; - - return (tempCpp.getFile().hasIdenticalContentTo (tempCpp.getTargetFile()) || tempCpp.overwriteTargetFileWithTemporary()) - && (tempH.getFile().hasIdenticalContentTo (tempH.getTargetFile()) || tempH.overwriteTargetFileWithTemporary()); - } - } - - return false; -} diff --git a/extras/Introjucer/Source/Project/jucer_ResourceFile.h b/extras/Introjucer/Source/Project/jucer_ResourceFile.h deleted file mode 100644 index 97f7268e3e..0000000000 --- a/extras/Introjucer/Source/Project/jucer_ResourceFile.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online 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.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCER_RESOURCEFILE_JUCEHEADER__ -#define __JUCER_RESOURCEFILE_JUCEHEADER__ - -#include "../jucer_Headers.h" -#include "jucer_Project.h" - - -//============================================================================== -class ResourceFile -{ -public: - //============================================================================== - ResourceFile (Project& project); - ~ResourceFile(); - - //============================================================================== - static bool isResourceFile (const File& file); - - //============================================================================== - void setJuceHeaderToInclude (const File& header); - - void setClassName (const String& className); - String getClassName() const { return className; } - - void addFile (const File& file); - String getDataVariableFor (const File& file) const; - String getSizeVariableFor (const File& file) const; - - int getNumFiles() const { return files.size(); } - int64 getTotalDataSize() const; - - bool write (const File& cppFile); - bool write (const File& cppFile, OutputStream& cpp, OutputStream& header); - - //============================================================================== -private: - Array files; - StringArray variableNames; - Project& project; - File juceHeader; - String className; - - void addResourcesFromProjectItem (const Project::Item& node); - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResourceFile); -}; - - -#endif // __JUCER_RESOURCEFILE_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp b/extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp index 1748c06fc2..d62a37fe6f 100644 --- a/extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp +++ b/extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -62,7 +62,7 @@ void GroupTreeViewItem::addFiles (const StringArray& files, int insertIndex) { const File file (files[i]); - if (item.addFile (file, insertIndex)) + if (item.addFile (file, insertIndex, true)) ++insertIndex; } } @@ -102,7 +102,7 @@ void GroupTreeViewItem::showDocument() if (pcc != nullptr) { if (isRoot()) - pcc->setEditorComponent (new ProjectInformationComponent (item.getProject()), 0); + pcc->setEditorComponent (new ProjectInformationComponent (item.project), 0); else pcc->setEditorComponent (new GroupInformationComponent (item), 0); } @@ -120,13 +120,17 @@ void GroupTreeViewItem::showPopupMenu() if (! isRoot()) m.addItem (2, "Delete"); - const int res = m.show(); - switch (res) + launchPopupMenu (m); +} + +void GroupTreeViewItem::handlePopupMenuResult (int resultCode) +{ + switch (resultCode) { case 1: triggerAsyncRename (item); break; case 2: deleteAllSelectedItems(); break; - case 3: item.sortAlphabetically(); break; - default: processCreateFileMenuItem (res); break; + case 3: item.sortAlphabetically (false); break; + default: processCreateFileMenuItem (resultCode); break; } } @@ -194,7 +198,7 @@ void SourceFileTreeViewItem::setName (const String& newName) if (correspondingFile.exists() && newFile.hasFileExtension (oldFile.getFileExtension())) { - Project::Item correspondingItem (item.getProject().getMainGroup().findItemForFile (correspondingFile)); + Project::Item correspondingItem (item.project.getMainGroup().findItemForFile (correspondingFile)); if (correspondingItem.isValid()) { @@ -228,7 +232,7 @@ void SourceFileTreeViewItem::setName (const String& newName) ProjectTreeViewBase* SourceFileTreeViewItem::createSubItem (const Project::Item& child) { jassertfalse - return 0; + return nullptr; } void SourceFileTreeViewItem::showDocument() @@ -242,10 +246,9 @@ void SourceFileTreeViewItem::showDocument() void SourceFileTreeViewItem::showPopupMenu() { - GroupTreeViewItem* parentGroup = dynamic_cast (getParentProjectItem()); - PopupMenu m; + GroupTreeViewItem* parentGroup = dynamic_cast (getParentProjectItem()); if (parentGroup != nullptr) { parentGroup->addCreateFileMenuItems (m); @@ -254,18 +257,24 @@ void SourceFileTreeViewItem::showPopupMenu() m.addItem (1, "Open in external editor"); m.addItem (2, -#if JUCE_MAC + #if JUCE_MAC "Reveal in Finder"); -#else + #else "Reveal in Explorer"); -#endif + #endif m.addItem (4, "Rename File..."); m.addSeparator(); m.addItem (3, "Delete"); - const int res = m.show(); - switch (res) + launchPopupMenu (m); +} + +void SourceFileTreeViewItem::handlePopupMenuResult (int resultCode) +{ + GroupTreeViewItem* parentGroup = dynamic_cast (getParentProjectItem()); + + switch (resultCode) { case 1: getFile().startAsProcess(); break; case 2: revealInFinder(); break; @@ -274,7 +283,7 @@ void SourceFileTreeViewItem::showPopupMenu() default: if (parentGroup != nullptr) - parentGroup->processCreateFileMenuItem (res); + parentGroup->processCreateFileMenuItem (resultCode); break; } diff --git a/extras/Introjucer/Source/Project/jucer_TreeViewTypes.h b/extras/Introjucer/Source/Project/jucer_TreeViewTypes.h index 829ea68dda..c9914a4621 100644 --- a/extras/Introjucer/Source/Project/jucer_TreeViewTypes.h +++ b/extras/Introjucer/Source/Project/jucer_TreeViewTypes.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -39,9 +39,9 @@ public: bool acceptsFileDrop (const StringArray& files) const { return false; } bool acceptsDragItems (const OwnedArray & selectedNodes) { return false; } ProjectTreeViewBase* createSubItem (const Project::Item& child); - void createLeftEdgeComponents (Array& components) {} void showDocument(); void showPopupMenu(); + void handlePopupMenuResult (int resultCode); String getDisplayName() const; void setName (const String& newName); }; @@ -59,9 +59,9 @@ public: void checkFileStatus(); void moveSelectedItemsTo (OwnedArray & selectedNodes, int insertIndex); ProjectTreeViewBase* createSubItem (const Project::Item& child); - void createLeftEdgeComponents (Array& components) {} void showDocument(); void showPopupMenu(); + void handlePopupMenuResult (int resultCode); void addFiles (const StringArray& files, int insertIndex); void addNewGroup(); diff --git a/extras/Introjucer/Source/Utility/jucer_CodeHelpers.cpp b/extras/Introjucer/Source/Utility/jucer_CodeHelpers.cpp index f5c23c47b3..406e2186d6 100644 --- a/extras/Introjucer/Source/Utility/jucer_CodeHelpers.cpp +++ b/extras/Introjucer/Source/Utility/jucer_CodeHelpers.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -105,23 +105,24 @@ namespace CodeHelpers } static void writeEscapeChars (OutputStream& out, const char* utf8, const int numBytes, - const int maxCharsOnLine, const bool breakAtNewLines, const bool replaceSingleQuotes) + const int maxCharsOnLine, const bool breakAtNewLines, + const bool replaceSingleQuotes, const bool allowStringBreaks) { int charsOnLine = 0; bool lastWasHexEscapeCode = false; for (int i = 0; i < numBytes || numBytes < 0; ++i) { - const char c = utf8[i]; + const unsigned char c = (unsigned char) utf8[i]; bool startNewLine = false; switch (c) { - case '\t': out << "\\t"; lastWasHexEscapeCode = false; break; - case '\r': out << "\\r"; lastWasHexEscapeCode = false; break; - case '\n': out << "\\n"; lastWasHexEscapeCode = false; startNewLine = breakAtNewLines; break; - case '\\': out << "\\\\"; lastWasHexEscapeCode = false; break; - case '\"': out << "\\\""; lastWasHexEscapeCode = false; break; + case '\t': out << "\\t"; lastWasHexEscapeCode = false; charsOnLine += 2; break; + case '\r': out << "\\r"; lastWasHexEscapeCode = false; charsOnLine += 2; break; + case '\n': out << "\\n"; lastWasHexEscapeCode = false; charsOnLine += 2; startNewLine = breakAtNewLines; break; + case '\\': out << "\\\\"; lastWasHexEscapeCode = false; charsOnLine += 2; break; + case '\"': out << "\\\""; lastWasHexEscapeCode = false; charsOnLine += 2; break; case 0: if (numBytes < 0) @@ -129,6 +130,7 @@ namespace CodeHelpers out << "\\0"; lastWasHexEscapeCode = true; + charsOnLine += 2; break; case '\'': @@ -136,6 +138,7 @@ namespace CodeHelpers { out << "\\\'"; lastWasHexEscapeCode = false; + charsOnLine += 2; break; } @@ -145,23 +148,32 @@ namespace CodeHelpers if (c >= 32 && c < 127 && ! (lastWasHexEscapeCode // (have to avoid following a hex escape sequence with a valid hex digit) && CharacterFunctions::getHexDigitValue (c) >= 0)) { - out << c; + out << (char) c; lastWasHexEscapeCode = false; + ++charsOnLine; + } + else if (allowStringBreaks && lastWasHexEscapeCode && c >= 32 && c < 127) + { + out << "\"\"" << (char) c; + lastWasHexEscapeCode = false; + charsOnLine += 3; } else { - out << (c < 16 ? "\\x0" : "\\x") << String::toHexString ((int) (unsigned int) c); + out << (c < 16 ? "\\x0" : "\\x") << String::toHexString ((int) c); lastWasHexEscapeCode = true; + charsOnLine += 4; } break; } - if ((startNewLine || (maxCharsOnLine > 0 && ++charsOnLine >= maxCharsOnLine)) + if ((startNewLine || (maxCharsOnLine > 0 && charsOnLine >= maxCharsOnLine)) && (numBytes < 0 || i < numBytes - 1)) { charsOnLine = 0; out << "\"" << newLine << "\""; + lastWasHexEscapeCode = false; } } } @@ -169,7 +181,7 @@ namespace CodeHelpers String addEscapeChars (const String& s) { MemoryOutputStream out; - writeEscapeChars (out, s.toUTF8().getAddress(), -1, -1, false, true); + writeEscapeChars (out, s.toUTF8().getAddress(), -1, -1, false, true, true); return out.toUTF8(); } @@ -180,7 +192,10 @@ namespace CodeHelpers String createIncludeStatement (const String& includePath) { - return "#include \"" + includePath + "\""; + if (includePath.startsWithChar ('<') || includePath.startsWithChar ('"')) + return "#include " + includePath; + else + return "#include \"" + includePath + "\""; } String makeHeaderGuardName (const File& file) @@ -210,54 +225,6 @@ namespace CodeHelpers return "CharPointer_UTF8 (" + CodeHelpers::addEscapeChars (text).quoted() + ")"; } - String stringLiteralIfNotEmpty (const String& text) - { - return text.isNotEmpty() ? stringLiteral (text) : String::empty; - } - - String boolLiteral (const bool b) - { - return b ? "true" : "false"; - } - - String floatLiteral (float v) - { - String s ((double) v, 4); - - if (s.containsChar ('.')) - { - s = s.trimCharactersAtEnd ("0"); - if (s.endsWithChar ('.')) - s << '0'; - - s << 'f'; - } - else - { - s << ".0f"; - } - - return s; - } - - String doubleLiteral (double v) - { - String s (v, 7); - - if (s.containsChar ('.')) - { - s = s.trimCharactersAtEnd ("0"); - if (s.endsWithChar ('.')) - s << '0'; - } - else - { - s << ".0"; - } - - return s; - } - String alignFunctionCallParams (const String& call, const StringArray& parameters, const int maxLineLength) { String result, currentLine (call); @@ -306,87 +273,8 @@ namespace CodeHelpers return "Colour (0x" + hexString8Digits ((int) col.getARGB()) + ')'; } - String justificationToCode (const Justification& justification) - { - switch (justification.getFlags()) - { - case Justification::centred: return "Justification::centred"; - case Justification::centredLeft: return "Justification::centredLeft"; - case Justification::centredRight: return "Justification::centredRight"; - case Justification::centredTop: return "Justification::centredTop"; - case Justification::centredBottom: return "Justification::centredBottom"; - case Justification::topLeft: return "Justification::topLeft"; - case Justification::topRight: return "Justification::topRight"; - case Justification::bottomLeft: return "Justification::bottomLeft"; - case Justification::bottomRight: return "Justification::bottomRight"; - case Justification::left: return "Justification::left"; - case Justification::right: return "Justification::right"; - case Justification::horizontallyCentred: return "Justification::horizontallyCentred"; - case Justification::top: return "Justification::top"; - case Justification::bottom: return "Justification::bottom"; - case Justification::verticallyCentred: return "Justification::verticallyCentred"; - case Justification::horizontallyJustified: return "Justification::horizontallyJustified"; - default: jassertfalse; break; - } - - return "Justification (" + String (justification.getFlags()) + ")"; - } - - String fontToCode (const Font& font) - { - String s ("Font ("); - String name (font.getTypefaceName()); - - if (name != Font::getDefaultSansSerifFontName()) - { - if (name == Font::getDefaultSerifFontName()) - name = "Font::getDefaultSerifFontName()"; - else if (name == Font::getDefaultMonospacedFontName()) - name = "Font::getDefaultMonospacedFontName()"; - else - name = stringLiteral (font.getTypefaceName()); - - s << name << ", "; - } - - s << floatLiteral (font.getHeight()); - - if (font.isBold() && font.isItalic()) - s << ", Font::bold | Font::italic"; - else if (font.isBold()) - s << ", Font::bold"; - else if (font.isItalic()) - s << ", Font::italic"; - else if (name != Font::getDefaultSansSerifFontName()) // need this param if we're using the typeface name constructor - s << ", Font::plain"; - - return s + ")"; - } - - String castToFloat (const String& expression) - { - if (expression.containsOnly ("0123456789.f")) - { - String s (expression.getFloatValue()); - - if (s.containsChar (T('.'))) - return s + "f"; - - return s + ".0f"; - } - - return "(float) (" + expression + ")"; - } - - String castToInt (const String& expression) - { - if (expression.containsOnly ("0123456789.")) - return String ((int) expression.getFloatValue()); - - return "(int) (" + expression + ")"; - } - - void writeDataAsCppLiteral (const MemoryBlock& mb, OutputStream& out) + void writeDataAsCppLiteral (const MemoryBlock& mb, OutputStream& out, + bool breakAtNewLines, bool allowStringBreaks) { const int maxCharsOnLine = 250; @@ -423,10 +311,14 @@ namespace CodeHelpers out << num << ','; charsOnLine += 2; + if (num >= 10) + { ++charsOnLine; - if (num >= 100) - ++charsOnLine; + + if (num >= 100) + ++charsOnLine; + } if (charsOnLine >= maxCharsOnLine) { @@ -440,11 +332,13 @@ namespace CodeHelpers else { out << "\""; - writeEscapeChars (out, (const char*) data, (int) mb.getSize(), maxCharsOnLine, true, false); + writeEscapeChars (out, (const char*) data, (int) mb.getSize(), + maxCharsOnLine, breakAtNewLines, false, allowStringBreaks); out << "\";"; } } + //============================================================================== static int calculateHash (const String& s, const int hashMultiplier) { const char* t = s.toUTF8(); @@ -457,15 +351,20 @@ namespace CodeHelpers static int findBestHashMultiplier (const StringArray& strings) { + StringArray allStrings; + + for (int i = strings.size(); --i >= 0;) + allStrings.addTokens (strings[i], "|", ""); + int v = 31; for (;;) { SortedSet hashes; bool collision = false; - for (int i = strings.size(); --i >= 0;) + for (int i = allStrings.size(); --i >= 0;) { - const int hash = calculateHash (strings[i], v); + const int hash = calculateHash (allStrings[i], v); if (hashes.contains (hash)) { collision = true; @@ -500,8 +399,20 @@ namespace CodeHelpers << indent << "{" << newLine; for (int i = 0; i < strings.size(); ++i) - out << indent << " case 0x" << hexString8Digits (calculateHash (strings[i], hashMultiplier)) - << ": " << codeToExecute[i] << newLine; + { + StringArray matchingStrings; + matchingStrings.addTokens (strings[i], "|", ""); + + for (int j = 0; j < matchingStrings.size(); ++j) + { + out << indent << " case 0x" << hexString8Digits (calculateHash (matchingStrings[j], hashMultiplier)) << ":"; + + if (j < matchingStrings.size() - 1) + out << newLine; + } + + out << " " << codeToExecute[i] << newLine; + } out << indent << " default: break;" << newLine << indent << "}" << newLine << newLine; diff --git a/extras/Introjucer/Source/Utility/jucer_CodeHelpers.h b/extras/Introjucer/Source/Utility/jucer_CodeHelpers.h index e8468b420e..3c7bf909f3 100644 --- a/extras/Introjucer/Source/Utility/jucer_CodeHelpers.h +++ b/extras/Introjucer/Source/Utility/jucer_CodeHelpers.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef __JUCER_CODEUTILITIES_H_B86AA5D2__ -#define __JUCER_CODEUTILITIES_H_B86AA5D2__ +#ifndef __JUCER_CODEHELPERS_JUCEHEADER__ +#define __JUCER_CODEHELPERS_JUCEHEADER__ //============================================================================== @@ -33,30 +33,22 @@ namespace CodeHelpers String indent (const String& code, const int numSpaces, bool indentFirstLine); String makeValidIdentifier (String s, bool capitalise, bool removeColons, bool allowTemplates); String addEscapeChars (const String& text); - String createIncludeStatement (const File& includeFile, const File& targetFile); + String createIncludeStatement (const File& includedFile, const File& targetFile); String createIncludeStatement (const String& includePath); String makeHeaderGuardName (const File& file); String makeBinaryDataIdentifierName (const File& file); String stringLiteral (const String& text); - String stringLiteralIfNotEmpty (const String& text); // if the string's empty, this returns an empty string - String boolLiteral (bool b); - String floatLiteral (float v); - String doubleLiteral (double v); String colourToCode (const Colour& col); - String justificationToCode (const Justification& justification); - String castToFloat (const String& expression); - String castToInt (const String& expression); - String fontToCode (const Font& font); String alignFunctionCallParams (const String& call, const StringArray& parameters, int maxLineLength); - void writeDataAsCppLiteral (const MemoryBlock& data, OutputStream& out); + void writeDataAsCppLiteral (const MemoryBlock& data, OutputStream& out, + bool breakAtNewLines, bool allowStringBreaks); void createStringMatcher (OutputStream& out, const String& utf8PointerVariable, const StringArray& strings, const StringArray& codeToExecute, const int indentLevel); - } -#endif // __JUCER_CODEUTILITIES_H_B86AA5D2__ +#endif // __JUCER_CODEHELPERS_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Utility/jucer_Colours.h b/extras/Introjucer/Source/Utility/jucer_Colours.h index e2a75ba8c0..63f562cd0b 100644 --- a/extras/Introjucer/Source/Utility/jucer_Colours.h +++ b/extras/Introjucer/Source/Utility/jucer_Colours.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/Introjucer/Source/Utility/jucer_FileHelpers.cpp b/extras/Introjucer/Source/Utility/jucer_FileHelpers.cpp index e8f8ba2bb0..0143b47c13 100644 --- a/extras/Introjucer/Source/Utility/jucer_FileHelpers.cpp +++ b/extras/Introjucer/Source/Utility/jucer_FileHelpers.cpp @@ -1,9 +1,24 @@ /* ============================================================================== - jucer_FileUtilities.cpp - Created: 14 May 2010 11:24:09pm - Author: Julian Storer + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-11 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online 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.rawmaterialsoftware.com/juce for more information. ============================================================================== */ @@ -15,6 +30,16 @@ //============================================================================== namespace FileHelpers { + int64 calculateMemoryHashCode (const void* data, const int numBytes) + { + int64 t = 0; + + for (int i = 0; i < numBytes; ++i) + t = t * 65599 + static_cast (data)[i]; + + return t; + } + int64 calculateStreamHashCode (InputStream& in) { int64 t = 0; @@ -45,18 +70,14 @@ namespace FileHelpers bool overwriteFileWithNewDataIfDifferent (const File& file, const void* data, int numBytes) { - if (file.getSize() == numBytes) - { - MemoryInputStream newStream (data, numBytes, false); - - if (calculateStreamHashCode (newStream) == calculateFileHashCode (file)) - return true; - } - - TemporaryFile temp (file); - - return temp.getFile().appendData (data, numBytes) - && temp.overwriteTargetFileWithTemporary(); + if (file.getSize() == numBytes + && calculateMemoryHashCode (data, numBytes) == calculateFileHashCode (file)) + return true; + + if (file.exists()) + return file.replaceWithData (data, numBytes); + else + return file.appendData (data, numBytes); } bool overwriteFileWithNewDataIfDifferent (const File& file, const MemoryOutputStream& newData) @@ -66,7 +87,8 @@ namespace FileHelpers bool overwriteFileWithNewDataIfDifferent (const File& file, const String& newData) { - return overwriteFileWithNewDataIfDifferent (file, newData.toUTF8(), strlen ((const char*) newData.toUTF8())); + const char* const utf8 = newData.toUTF8(); + return overwriteFileWithNewDataIfDifferent (file, utf8, strlen (utf8)); } bool containsAnyNonHiddenFiles (const File& folder) @@ -123,55 +145,4 @@ namespace FileHelpers return path1.substring (0, commonBitLength).removeCharacters ("/:").isNotEmpty(); } - - //============================================================================== - bool isJuceFolder (const File& folder) - { - return folder.getFileName().containsIgnoreCase ("juce") - && folder.getChildFile ("juce.h").exists() - && folder.getChildFile ("juce_Config.h").exists(); - } - - static File lookInFolderForJuceFolder (const File& folder) - { - for (DirectoryIterator di (folder, false, "*juce*", File::findDirectories); di.next();) - { - if (isJuceFolder (di.getFile())) - return di.getFile(); - } - - return File::nonexistent; - } - - File findParentJuceFolder (const File& file) - { - File f (file); - - while (f.exists() && f.getParentDirectory() != f) - { - if (isJuceFolder (f)) - return f; - - File found = lookInFolderForJuceFolder (f); - if (found.exists()) - return found; - - f = f.getParentDirectory(); - } - - return File::nonexistent; - } - - File findDefaultJuceFolder() - { - File f = findParentJuceFolder (File::getSpecialLocation (File::currentApplicationFile)); - - if (! f.exists()) - f = lookInFolderForJuceFolder (File::getSpecialLocation (File::userHomeDirectory)); - - if (! f.exists()) - f = lookInFolderForJuceFolder (File::getSpecialLocation (File::userDocumentsDirectory)); - - return f; - } } diff --git a/extras/Introjucer/Source/Utility/jucer_FileHelpers.h b/extras/Introjucer/Source/Utility/jucer_FileHelpers.h index 3f451d90a6..20cdbab4b7 100644 --- a/extras/Introjucer/Source/Utility/jucer_FileHelpers.h +++ b/extras/Introjucer/Source/Utility/jucer_FileHelpers.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef __JUCER_FILEUTILITIES_H_EEE25EE3__ -#define __JUCER_FILEUTILITIES_H_EEE25EE3__ +#ifndef __JUCER_FILEHELPERS_JUCEHEADER__ +#define __JUCER_FILEHELPERS_JUCEHEADER__ //============================================================================== @@ -43,11 +43,6 @@ namespace FileHelpers String windowsStylePath (const String& path); bool shouldPathsBeRelative (String path1, String path2); - - //============================================================================== - bool isJuceFolder (const File& folder); - File findParentJuceFolder (const File& file); - File findDefaultJuceFolder(); } //============================================================================== @@ -83,4 +78,4 @@ private: }; -#endif // __JUCER_FILEUTILITIES_H_EEE25EE3__ +#endif // __JUCER_FILEHELPERS_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.cpp b/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.cpp index f5dd7b1f54..c62054dd53 100644 --- a/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.cpp +++ b/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -28,40 +28,20 @@ //============================================================================== JucerTreeViewBase::JucerTreeViewBase() - : numLeftHandComps (0) + : textX (0) { setLinesDrawnForSubItems (false); } -JucerTreeViewBase::~JucerTreeViewBase() -{ -} - -const Font JucerTreeViewBase::getFont() const +Font JucerTreeViewBase::getFont() const { return Font (getItemHeight() * 0.6f); } -int JucerTreeViewBase::getTextX() const -{ - return (numLeftHandComps + 1) * getItemHeight() + 8; -} - void JucerTreeViewBase::paintItem (Graphics& g, int width, int height) { if (isSelected()) g.fillAll (Colour (0x401111ee)); - - const int x = getTextX(); - - g.setColour (Colours::black); - - getIcon()->drawWithin (g, Rectangle (0.0f, 2.0f, height + 6.0f, height - 4.0f), - RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, 1.0f); - - g.setFont (getFont()); - g.setColour (isMissing() ? Colours::red : Colours::black); - g.drawFittedText (getDisplayName(), x, 0, width - x, height, Justification::centredLeft, 1, 0.8f); } void JucerTreeViewBase::paintOpenCloseButton (Graphics& g, int width, int height, bool isMouseOver) @@ -69,68 +49,119 @@ void JucerTreeViewBase::paintOpenCloseButton (Graphics& g, int width, int height Path p; if (isOpen()) - p.addTriangle (width * 0.2f, height * 0.25f, width * 0.8f, height * 0.25f, width * 0.5f, height * 0.75f); + p.addTriangle (width * 0.2f, height * 0.25f, width * 0.8f, height * 0.25f, width * 0.5f, height * 0.75f); else - p.addTriangle (width * 0.25f, height * 0.25f, width * 0.8f, height * 0.5f, width * 0.25f, height * 0.75f); + p.addTriangle (width * 0.25f, height * 0.25f, width * 0.8f, height * 0.5f, width * 0.25f, height * 0.75f); g.setColour (Colours::lightgrey); g.fillPath (p); } //============================================================================== -class TreeLeftHandButtonHolderComponent : public Component +class TreeItemComponent : public Component { public: - TreeLeftHandButtonHolderComponent (const Array& comps) + TreeItemComponent (JucerTreeViewBase& item_) + : item (item_) { - components.addArray (comps); setInterceptsMouseClicks (false, true); - for (int i = 0; i < comps.size(); ++i) - addAndMakeVisible (comps.getUnchecked(i)); + item.createLeftEdgeComponents (leftComps); + + for (int i = 0; i < leftComps.size(); ++i) + addAndMakeVisible (leftComps.getUnchecked(i)); + + addAndMakeVisible (rightHandComponent = item.createRightEdgeComponent()); + } + + void paint (Graphics& g) + { + g.setColour (Colours::black); + + const int height = getHeight(); + + item.getIcon()->drawWithin (g, Rectangle (0.0f, 2.0f, height + 6.0f, height - 4.0f), + RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, 1.0f); + + g.setFont (item.getFont()); + g.setColour (item.isMissing() ? Colours::red : Colours::black); + + const int right = rightHandComponent != nullptr ? rightHandComponent->getX() - 2 + : getWidth(); + + g.drawFittedText (item.getDisplayName(), + item.textX, 0, right - item.textX, height, Justification::centredLeft, 1, 0.8f); } void resized() { const int edge = 1; const int itemSize = getHeight() - edge * 2; + item.textX = (leftComps.size() + 1) * getHeight() + 8; + + for (int i = 0; i < leftComps.size(); ++i) + leftComps.getUnchecked(i)->setBounds (5 + (i + 1) * getHeight(), edge, itemSize, itemSize); - for (int i = 0; i < components.size(); ++i) - components.getUnchecked(i)->setBounds (5 + (i + 1) * getHeight(), edge, itemSize, itemSize); + if (rightHandComponent != nullptr) + rightHandComponent->setBounds (getWidth() - itemSize - edge, edge, itemSize, itemSize); } private: - OwnedArray components; + JucerTreeViewBase& item; + OwnedArray leftComps; + ScopedPointer rightHandComponent; }; Component* JucerTreeViewBase::createItemComponent() { - Array components; - createLeftEdgeComponents (components); - numLeftHandComps = components.size(); - - return numLeftHandComps == 0 ? 0 : new TreeLeftHandButtonHolderComponent (components); + return new TreeItemComponent (*this); } //============================================================================== -void JucerTreeViewBase::showRenameBox() +class RenameTreeItemCallback : public ModalComponentManager::Callback, + public TextEditorListener { - TextEditor ed (String::empty); - ed.setMultiLine (false, false); - ed.setPopupMenuEnabled (false); - ed.setSelectAllWhenFocused (true); - ed.setFont (getFont()); - ed.addListener (this); - ed.setText (getRenamingName()); +public: + RenameTreeItemCallback (JucerTreeViewBase& item_, Component& parent, const Rectangle& bounds) + : item (item_) + { + ed.setMultiLine (false, false); + ed.setPopupMenuEnabled (false); + ed.setSelectAllWhenFocused (true); + ed.setFont (item.getFont()); + ed.addListener (this); + ed.setText (item.getRenamingName()); + ed.setBounds (bounds); + + parent.addAndMakeVisible (&ed); + ed.enterModalState (true, this); + } + + void modalStateFinished (int resultCode) + { + if (resultCode != 0) + item.setName (ed.getText()); + } + + void textEditorTextChanged (TextEditor&) {} + void textEditorReturnKeyPressed (TextEditor& editor) { editor.exitModalState (1); } + void textEditorEscapeKeyPressed (TextEditor& editor) { editor.exitModalState (0); } + void textEditorFocusLost (TextEditor& editor) { editor.exitModalState (0); } + +private: + TextEditor ed; + JucerTreeViewBase& item; + JUCE_DECLARE_NON_COPYABLE (RenameTreeItemCallback); +}; + +void JucerTreeViewBase::showRenameBox() +{ Rectangle r (getItemPosition (true)); - r.setLeft (r.getX() + getTextX()); + r.setLeft (r.getX() + textX); r.setHeight (getItemHeight()); - ed.setBounds (r); - getOwnerView()->addAndMakeVisible (&ed); - if (ed.runModalLoop() != 0) - setName (ed.getText()); + new RenameTreeItemCallback (*this, *getOwnerView(), r); } void JucerTreeViewBase::itemClicked (const MouseEvent& e) diff --git a/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h b/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h index c22214f462..c473d0638f 100644 --- a/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h +++ b/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -30,16 +30,11 @@ //============================================================================== -class JucerTreeViewBase : public TreeViewItem, - public TextEditorListener +class JucerTreeViewBase : public TreeViewItem { -protected: - //============================================================================== +public: JucerTreeViewBase(); - ~JucerTreeViewBase(); -public: - //============================================================================== int getItemWidth() const { return -1; } int getItemHeight() const { return 20; } @@ -49,29 +44,38 @@ public: void itemClicked (const MouseEvent& e); //============================================================================== + virtual Font getFont() const; virtual String getRenamingName() const = 0; virtual String getDisplayName() const = 0; virtual void setName (const String& newName) = 0; virtual bool isMissing() = 0; virtual const Drawable* getIcon() const = 0; - virtual void createLeftEdgeComponents (Array& components) = 0; + virtual void createLeftEdgeComponents (OwnedArray&) {} + virtual Component* createRightEdgeComponent() { return nullptr; } virtual void showPopupMenu(); virtual void showMultiSelectionPopupMenu(); virtual void showRenameBox(); - // Text editor listener for renaming.. - void textEditorTextChanged (TextEditor& editor) {} - void textEditorReturnKeyPressed (TextEditor& editor) { editor.exitModalState (1); } - void textEditorEscapeKeyPressed (TextEditor& editor) { editor.exitModalState (0); } - void textEditorFocusLost (TextEditor& editor) { editor.exitModalState (0); } - //============================================================================== -private: - int numLeftHandComps; - const Font getFont() const; - int getTextX() const; + // To handle situations where an item gets deleted before openness is + // restored for it, this OpennessRestorer keeps only a pointer to the + // topmost tree item. + struct WholeTreeOpennessRestorer : public OpennessRestorer + { + WholeTreeOpennessRestorer (TreeViewItem& item) : OpennessRestorer (getTopLevelItem (item)) + {} + + private: + static TreeViewItem& getTopLevelItem (TreeViewItem& item) + { + TreeViewItem* const p = item.getParentItem(); + return p != nullptr ? getTopLevelItem (*p) : item; + } + }; + + int textX; }; diff --git a/extras/Introjucer/Source/Utility/jucer_MiscUtilities.cpp b/extras/Introjucer/Source/Utility/jucer_MiscUtilities.cpp index 4f023f17e6..266f696956 100644 --- a/extras/Introjucer/Source/Utility/jucer_MiscUtilities.cpp +++ b/extras/Introjucer/Source/Utility/jucer_MiscUtilities.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -27,15 +27,10 @@ //============================================================================== -int64 hashCode64 (const String& s) -{ - return s.hashCode64() + s.length() * s.hashCode() + s.toUpperCase().hashCode(); -} - String createAlphaNumericUID() { String uid; - static const char chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + const char chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; Random r; uid << chars [r.nextInt (52)]; // make sure the first character is always a letter @@ -43,23 +38,12 @@ String createAlphaNumericUID() for (int i = 5; --i >= 0;) { r.setSeedRandomly(); - uid << chars [r.nextInt (numElementsInArray (chars))]; + uid << chars [r.nextInt (62)]; } return uid; } -String randomHexString (Random& random, int numChars) -{ - String s; - const char hexChars[] = "0123456789ABCDEF"; - - while (--numChars >= 0) - s << hexChars [random.nextInt() & 15]; - - return s; -} - String hexString8Digits (int value) { return String::toHexString (value).paddedLeft ('0', 8); @@ -67,14 +51,14 @@ String hexString8Digits (int value) String createGUID (const String& seed) { - String guid; - Random r (hashCode64 (seed + "_jucersalt")); - guid << "{" << randomHexString (r, 8); // (written as separate statements to enforce the order of execution) - guid << "-" << randomHexString (r, 4); - guid << "-" << randomHexString (r, 4); - guid << "-" << randomHexString (r, 4); - guid << "-" << randomHexString (r, 12) << "}"; - return guid; + const String hex (MD5 ((seed + "_guidsalt").toUTF8()).toHexString().toUpperCase()); + + return "{" + hex.substring (0, 8) + + "-" + hex.substring (8, 12) + + "-" + hex.substring (12, 16) + + "-" + hex.substring (16, 20) + + "-" + hex.substring (20, 32) + + "}"; } String escapeSpaces (const String& s) @@ -82,6 +66,11 @@ String escapeSpaces (const String& s) return s.replace (" ", "\\ "); } +String addQuotesIfContainsSpaces (const String& text) +{ + return (text.containsChar (' ') && ! text.isQuotedString()) ? text.quoted() : text; +} + //============================================================================== StringPairArray parsePreprocessorDefs (const String& text) { @@ -234,43 +223,34 @@ int indexOfLineStartingWith (const StringArray& lines, const String& text, int s //============================================================================== -PropertyPanelWithTooltips::PropertyPanelWithTooltips() +RolloverHelpComp::RolloverHelpComp() : lastComp (nullptr) { - addAndMakeVisible (&panel); + setInterceptsMouseClicks (false, false); startTimer (150); } -PropertyPanelWithTooltips::~PropertyPanelWithTooltips() -{ -} - -void PropertyPanelWithTooltips::paint (Graphics& g) +void RolloverHelpComp::paint (Graphics& g) { - g.setColour (Colour::greyLevel (0.15f)); - g.setFont (13.0f); + AttributedString s; + s.setJustification (Justification::centredLeft); + s.append (lastTip, Font (14.0f), Colour::greyLevel (0.15f)); TextLayout tl; - tl.appendText (lastTip, Font (14.0f)); - tl.layout (getWidth() - 10, Justification::left, true); // try to make it look nice + tl.createLayoutWithBalancedLineLengths (s, getWidth() - 10.0f); if (tl.getNumLines() > 3) - tl.layout (getWidth() - 10, Justification::left, false); // too big, so just squash it in.. + tl.createLayout (s, getWidth() - 10.0f); - tl.drawWithin (g, 5, panel.getBottom() + 2, getWidth() - 10, - getHeight() - panel.getBottom() - 4, - Justification::centredLeft); + tl.draw (g, getLocalBounds().toFloat()); } -void PropertyPanelWithTooltips::resized() -{ - panel.setBounds (0, 0, getWidth(), jmax (getHeight() - 60, proportionOfHeight (0.6f))); -} - -void PropertyPanelWithTooltips::timerCallback() +void RolloverHelpComp::timerCallback() { Component* newComp = Desktop::getInstance().getMainMouseSource().getComponentUnderMouse(); - if (newComp != nullptr && newComp->getTopLevelComponent() != getTopLevelComponent()) + if (newComp != nullptr + && (newComp->getTopLevelComponent() != getTopLevelComponent() + || newComp->isCurrentlyBlockedByAnotherModalComponent())) newComp = nullptr; if (newComp != lastComp) @@ -282,14 +262,14 @@ void PropertyPanelWithTooltips::timerCallback() if (newTip != lastTip) { lastTip = newTip; - repaint (0, panel.getBottom(), getWidth(), getHeight()); + repaint(); } } } -String PropertyPanelWithTooltips::findTip (Component* c) +String RolloverHelpComp::findTip (Component* c) { - while (c != nullptr && c != this) + while (c != nullptr) { TooltipClient* const tc = dynamic_cast (c); if (tc != nullptr) @@ -306,6 +286,20 @@ String PropertyPanelWithTooltips::findTip (Component* c) return String::empty; } +//============================================================================== +PropertyPanelWithTooltips::PropertyPanelWithTooltips() +{ + addAndMakeVisible (&panel); + addAndMakeVisible (&rollover); +} + +void PropertyPanelWithTooltips::resized() +{ + panel.setBounds (0, 0, getWidth(), jmax (getHeight() - 60, proportionOfHeight (0.6f))); + rollover.setBounds (3, panel.getBottom() - 50, getWidth() - 6, + getHeight() - (panel.getBottom() - 50) - 4); +} + //============================================================================== FloatingLabelComponent::FloatingLabelComponent() : font (10.0f) @@ -354,3 +348,92 @@ void FloatingLabelComponent::paint (Graphics& g) g.setColour (colour); glyphs.draw (g, AffineTransform::translation (1.0f, 1.0f)); } + + +//============================================================================== +class UTF8Component : public Component, + private TextEditorListener +{ +public: + UTF8Component() + : desc (String::empty, + "Type any string into the box, and it'll be shown below as a portable UTF-8 literal, ready to cut-and-paste into your source-code...") + { + setSize (400, 300); + + desc.setBounds ("8, 8, parent.width - 8, 55"); + desc.setJustificationType (Justification::centred); + addAndMakeVisible (&desc); + + userText.setMultiLine (true, true); + userText.setBounds ("8, 60, parent.width - 8, parent.height / 2 - 4"); + addAndMakeVisible (&userText); + userText.addListener (this); + + resultText.setMultiLine (true, true); + resultText.setReadOnly (true); + resultText.setBounds ("8, parent.height / 2 + 4, parent.width - 8, parent.height - 8"); + addAndMakeVisible (&resultText); + + userText.setText (getLastText()); + } + + void textEditorTextChanged (TextEditor&) + { + update(); + } + + void textEditorEscapeKeyPressed (TextEditor&) + { + getTopLevelComponent()->exitModalState (0); + } + + void update() + { + getLastText() = userText.getText(); + resultText.setText (CodeHelpers::stringLiteral (getLastText()), false); + } + +private: + Label desc; + TextEditor userText, resultText; + + String& getLastText() + { + static String t; + return t; + } +}; + +void showUTF8ToolWindow() +{ + UTF8Component comp; + DialogWindow::showModalDialog ("UTF-8 String Literal Converter", &comp, + nullptr, Colours::white, true, true); +} + +//============================================================================== +class CallOutBoxCallback : public ModalComponentManager::Callback +{ +public: + CallOutBoxCallback (Component& attachTo, Component* content_) + : content (content_), + callout (*content_, attachTo, attachTo.getTopLevelComponent()) + { + callout.setVisible (true); + callout.enterModalState (true, this); + } + + void modalStateFinished (int) {} + +private: + ScopedPointer content; + CallOutBox callout; + + JUCE_DECLARE_NON_COPYABLE (CallOutBoxCallback); +}; + +void launchAsyncCallOutBox (Component& attachTo, Component* content) +{ + new CallOutBoxCallback (attachTo, content); +} diff --git a/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h b/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h index c70b61b8f4..5867d9e7a6 100644 --- a/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h +++ b/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,17 +23,14 @@ ============================================================================== */ - //============================================================================== -// String::hashCode64 actually hit some dupes, so this is a more powerful version. -int64 hashCode64 (const String& s); -String randomHexString (Random& random, int numChars); String hexString8Digits (int value); String createAlphaNumericUID(); String createGUID (const String& seed); // Turns a seed into a windows GUID String escapeSpaces (const String& text); // replaces spaces with blackslash-space +String addQuotesIfContainsSpaces (const String& text); StringPairArray parsePreprocessorDefs (const String& defs); StringPairArray mergePreprocessorDefs (StringPairArray inheritedDefs, const StringPairArray& overridingDefs); @@ -48,28 +45,68 @@ void autoScrollForMouseEvent (const MouseEvent& e, bool scrollX = true, bool scr void drawComponentPlaceholder (Graphics& g, int w, int h, const String& text); void drawRecessedShadows (Graphics& g, int w, int h, int shadowSize); +void showUTF8ToolWindow(); + +// Start a callout modally, which will delete the content comp when it's dismissed. +void launchAsyncCallOutBox (Component& attachTo, Component* content); + //============================================================================== -class PropertyPanelWithTooltips : public Component, - public Timer +class RolloverHelpComp : public Component, + private Timer { public: - PropertyPanelWithTooltips(); - ~PropertyPanelWithTooltips(); - - PropertyPanel& getPanel() noexcept { return panel; } + RolloverHelpComp(); void paint (Graphics& g); - void resized(); void timerCallback(); private: - PropertyPanel panel; - TextLayout layout; Component* lastComp; String lastTip; - String findTip (Component* c); + static String findTip (Component*); +}; + +//============================================================================== +class PropertyPanelWithTooltips : public Component +{ +public: + PropertyPanelWithTooltips(); + + void resized(); + + PropertyPanel panel; + RolloverHelpComp rollover; +}; + +//============================================================================== +class PropertyListBuilder +{ +public: + PropertyListBuilder() {} + + void add (PropertyComponent* propertyComp) + { + components.add (propertyComp); + } + + void add (PropertyComponent* propertyComp, const String& tooltip) + { + propertyComp->setTooltip (tooltip); + add (propertyComp); + } + + void setPreferredHeight (int height) + { + for (int j = components.size(); --j >= 0;) + components.getUnchecked(j)->setPreferredHeight (height); + } + + Array components; + +private: + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PropertyListBuilder); }; //============================================================================== @@ -79,7 +116,9 @@ public: FloatingLabelComponent(); void remove(); - void update (Component* parent, const String& text, const Colour& textColour, int x, int y, bool toRight, bool below); + void update (Component* parent, const String& text, const Colour& textColour, + int x, int y, bool toRight, bool below); + void paint (Graphics& g); private: @@ -87,3 +126,23 @@ private: Colour colour; GlyphArrangement glyphs; }; + +//============================================================================== +// A ValueSource which takes an input source, and forwards any changes in it. +// This class is a handy way to create sources which re-map a value. +class ValueSourceFilter : public Value::ValueSource, + public Value::Listener +{ +public: + ValueSourceFilter (const Value& source) : sourceValue (source) + { + sourceValue.addListener (this); + } + + void valueChanged (Value&) { sendChangeMessage (true); } + +protected: + Value sourceValue; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ValueSourceFilter); +}; diff --git a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h index 2e8abcb2a1..f89681b48f 100644 --- a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h +++ b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef __JUCER_PRESETIDS_H_40E9E82E__ -#define __JUCER_PRESETIDS_H_40E9E82E__ +#ifndef __JUCER_PRESETIDS_JUCEHEADER__ +#define __JUCER_PRESETIDS_JUCEHEADER__ // Handy list of static Identifiers.. @@ -32,46 +32,15 @@ namespace Ids { #define DECLARE_ID(name) const Identifier name (#name) - DECLARE_ID (text); DECLARE_ID (name); DECLARE_ID (file); - DECLARE_ID (font); - DECLARE_ID (mode); - DECLARE_ID (type); DECLARE_ID (version); DECLARE_ID (position); DECLARE_ID (source); - DECLARE_ID (readOnly); - DECLARE_ID (editMode); - DECLARE_ID (justification); - DECLARE_ID (placement); - DECLARE_ID (items); - DECLARE_ID (editable); - DECLARE_ID (textJustification); - DECLARE_ID (unselectedText); - DECLARE_ID (noItemsText); - DECLARE_ID (min); - DECLARE_ID (max); DECLARE_ID (width); DECLARE_ID (height); DECLARE_ID (background); - DECLARE_ID (interval); - DECLARE_ID (textBoxPos); - DECLARE_ID (textBoxWidth); - DECLARE_ID (textBoxHeight); - DECLARE_ID (skew); - DECLARE_ID (scrollBarV); - DECLARE_ID (scrollBarH); - DECLARE_ID (scrollbarWidth); DECLARE_ID (initialState); - DECLARE_ID (scrollbarsShown); - DECLARE_ID (caretVisible); - DECLARE_ID (popupMenuEnabled); - DECLARE_ID (radioGroup); - DECLARE_ID (connectedLeft); - DECLARE_ID (connectedRight); - DECLARE_ID (connectedTop); - DECLARE_ID (connectedBottom); DECLARE_ID (juceFolder); DECLARE_ID (targetFolder); DECLARE_ID (vstFolder); @@ -89,11 +58,19 @@ namespace Ids DECLARE_ID (optimisation); DECLARE_ID (defines); DECLARE_ID (headerPath); + DECLARE_ID (libraryPath); DECLARE_ID (osxSDK); DECLARE_ID (osxCompatibility); DECLARE_ID (osxArchitecture); + DECLARE_ID (winArchitecture); + DECLARE_ID (winWarningLevel); + DECLARE_ID (bigIcon); + DECLARE_ID (smallIcon); DECLARE_ID (jucerVersion); DECLARE_ID (projectType); + DECLARE_ID (prebuildCommand); + DECLARE_ID (postbuildCommand); + DECLARE_ID (generateManifest); DECLARE_ID (juceLinkage); DECLARE_ID (buildVST); DECLARE_ID (bundleIdentifier); @@ -106,25 +83,26 @@ namespace Ids DECLARE_ID (createCallback); DECLARE_ID (parentClasses); DECLARE_ID (constructorParams); + DECLARE_ID (objectConstructionArgs); DECLARE_ID (memberInitialisers); - DECLARE_ID (lossOfFocusDiscardsChanges); - DECLARE_ID (url); + DECLARE_ID (canBeAggregated); DECLARE_ID (rootItemVisible); DECLARE_ID (openByDefault); DECLARE_ID (locked); - DECLARE_ID (image); DECLARE_ID (tooltip); DECLARE_ID (memberName); + DECLARE_ID (markerName); DECLARE_ID (focusOrder); DECLARE_ID (hidden); DECLARE_ID (useStdCall); + DECLARE_ID (showAllCode); + DECLARE_ID (useLocalCopy); DECLARE_ID (androidSDKPath); DECLARE_ID (androidNDKPath); DECLARE_ID (androidInternetNeeded); const Identifier class_ ("class"); - const Identifier id_ ("id"); #undef DECLARE_ID } -#endif // __JUCER_PRESETIDS_H_40E9E82E__ +#endif // __JUCER_PRESETIDS_JUCEHEADER__ diff --git a/extras/Introjucer/Source/Utility/jucer_RelativePath.h b/extras/Introjucer/Source/Utility/jucer_RelativePath.h index 4499031132..288b0c2653 100644 --- a/extras/Introjucer/Source/Utility/jucer_RelativePath.h +++ b/extras/Introjucer/Source/Utility/jucer_RelativePath.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -116,7 +116,7 @@ private: static bool isAbsolute (const String& path) { return File::isAbsolutePath (path) - || path.startsWithChar ('/') // (needed because File::isAbsolutePath will ignore forward-slashes on win32) + || path.startsWithChar ('/') // (needed because File::isAbsolutePath will ignore forward-slashes on Windows) || path.startsWithChar ('$') || path.startsWithChar ('~') || (CharacterFunctions::isLetter (path[0]) && path[1] == ':') diff --git a/extras/Introjucer/Source/Utility/jucer_StoredSettings.cpp b/extras/Introjucer/Source/Utility/jucer_StoredSettings.cpp index 15c553b061..0ee3098dfa 100644 --- a/extras/Introjucer/Source/Utility/jucer_StoredSettings.cpp +++ b/extras/Introjucer/Source/Utility/jucer_StoredSettings.cpp @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -115,11 +115,8 @@ void StoredSettings::flush() const int numSwatchColours = 24; for (int i = 0; i < numSwatchColours; ++i) - { - Colour defaultCol (colours [2 + i]); - swatchColours.add (Colour (props->getValue ("swatchColour" + String (i), - hexString8Digits (defaultCol.getARGB())).getHexValue32())); - } + swatchColours.add (Colour::fromString (props->getValue ("swatchColour" + String (i), + colours [2 + i].toString()))); } Array StoredSettings::getLastProjects() const @@ -143,23 +140,6 @@ void StoredSettings::setLastProjects (const Array& files) props->setValue ("lastProjects", s.joinIntoString ("|")); } -File StoredSettings::getLastKnownJuceFolder() const -{ - File defaultJuceFolder (FileHelpers::findDefaultJuceFolder()); - File f (props->getValue ("lastJuceFolder", defaultJuceFolder.getFullPathName())); - - if ((! FileHelpers::isJuceFolder (f)) && FileHelpers::isJuceFolder (defaultJuceFolder)) - f = defaultJuceFolder; - - return f; -} - -void StoredSettings::setLastKnownJuceFolder (const File& file) -{ - jassert (FileHelpers::isJuceFolder (file)); - props->setValue ("lastJuceFolder", file.getFullPathName()); -} - const StringArray& StoredSettings::getFontNames() { if (fontNames.size() == 0) diff --git a/extras/Introjucer/Source/Utility/jucer_StoredSettings.h b/extras/Introjucer/Source/Utility/jucer_StoredSettings.h index bb5061022f..bffcc22210 100644 --- a/extras/Introjucer/Source/Utility/jucer_StoredSettings.h +++ b/extras/Introjucer/Source/Utility/jucer_StoredSettings.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -29,7 +29,7 @@ //============================================================================== /** - A singleton to hold the jucer's persistent settings, and to save them in a + A singleton to hold persistent settings, and to save them in a suitable PropertiesFile. */ class StoredSettings @@ -50,9 +50,6 @@ public: Array getLastProjects() const; void setLastProjects (const Array& files); - File getLastKnownJuceFolder() const; - void setLastKnownJuceFolder (const File& file); - const StringArray& getFontNames(); //============================================================================== @@ -64,7 +61,7 @@ public: ColourSelectorWithSwatches() {} int getNumSwatches() const { return StoredSettings::getInstance()->swatchColours.size(); } - const Colour getSwatchColour (int index) const { return StoredSettings::getInstance()->swatchColours [index]; } + Colour getSwatchColour (int index) const { return StoredSettings::getInstance()->swatchColours [index]; } void setSwatchColour (int index, const Colour& newColour) const { StoredSettings::getInstance()->swatchColours.set (index, newColour); } }; diff --git a/extras/Introjucer/Source/Utility/jucer_ValueSourceHelpers.h b/extras/Introjucer/Source/Utility/jucer_ValueSourceHelpers.h index a7ea1a121b..58b8950904 100644 --- a/extras/Introjucer/Source/Utility/jucer_ValueSourceHelpers.h +++ b/extras/Introjucer/Source/Utility/jucer_ValueSourceHelpers.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,41 +23,34 @@ ============================================================================== */ -#ifndef __JUCER_VALUEREMAPPERSOURCE_JUCEHEADER__ -#define __JUCER_VALUEREMAPPERSOURCE_JUCEHEADER__ +#ifndef __JUCER_VALUESOURCEHELPERS_JUCEHEADER__ +#define __JUCER_VALUESOURCEHELPERS_JUCEHEADER__ //============================================================================== /** */ template -class NumericValueSource : public Value::ValueSource, - public Value::Listener +class NumericValueSource : public ValueSourceFilter { public: - NumericValueSource (const Value& sourceValue_) - : sourceValue (sourceValue_) + NumericValueSource (const Value& source) : ValueSourceFilter (source) {} + + var getValue() const { - sourceValue.addListener (this); + return (Type) sourceValue.getValue(); } - void valueChanged (Value&) { sendChangeMessage (true); } - var getValue() const { return (Type) sourceValue.getValue(); } - void setValue (const var& newValue) { - const Type newVal = (Type) newValue; + const Type newVal = static_cast (newValue); - if (newVal != (Type) getValue()) // this test is important, because if a property is missing, it won't - sourceValue = newVal; // create it (causing an unwanted undo action) when a control sets it to 0 + if (newVal != static_cast (getValue())) // this test is important, because if a property is missing, it won't + sourceValue = newVal; // create it (causing an unwanted undo action) when a control sets it to 0 } - //============================================================================== -protected: - Value sourceValue; - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NumericValueSource); }; -#endif // __JUCER_VALUEREMAPPERSOURCE_JUCEHEADER__ +#endif // __JUCER_VALUESOURCEHELPERS_JUCEHEADER__ diff --git a/extras/Introjucer/Source/jucer_Headers.h b/extras/Introjucer/Source/jucer_Headers.h index 446e0df52b..4fea7961b5 100644 --- a/extras/Introjucer/Source/jucer_Headers.h +++ b/extras/Introjucer/Source/jucer_Headers.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-10 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/extras/JuceDemo/Builds/Android/AndroidManifest.xml b/extras/JuceDemo/Builds/Android/AndroidManifest.xml index 5d647b784b..ff797b2b99 100644 --- a/extras/JuceDemo/Builds/Android/AndroidManifest.xml +++ b/extras/JuceDemo/Builds/Android/AndroidManifest.xml @@ -1,16 +1,15 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/extras/JuceDemo/Builds/Android/build.properties b/extras/JuceDemo/Builds/Android/build.properties deleted file mode 100644 index d08980348c..0000000000 --- a/extras/JuceDemo/Builds/Android/build.properties +++ /dev/null @@ -1 +0,0 @@ -# This file is used to override default values used by the Ant build system. diff --git a/extras/JuceDemo/Builds/Android/build.xml b/extras/JuceDemo/Builds/Android/build.xml index 6bffadde89..8f4047f5a3 100644 --- a/extras/JuceDemo/Builds/Android/build.xml +++ b/extras/JuceDemo/Builds/Android/build.xml @@ -1,9 +1,8 @@ - - - + + @@ -18,7 +17,7 @@ - + @@ -33,5 +32,5 @@ - + diff --git a/extras/JuceDemo/Builds/Android/default.properties b/extras/JuceDemo/Builds/Android/default.properties deleted file mode 100644 index 1444d74911..0000000000 --- a/extras/JuceDemo/Builds/Android/default.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is used to override default values used by the Ant build system. -# It is automatically generated - DO NOT EDIT IT or your changes will be lost!. - -target=android-9 diff --git a/extras/JuceDemo/Builds/Android/jni/Android.mk b/extras/JuceDemo/Builds/Android/jni/Android.mk index 930c7f3c30..534aea681f 100644 --- a/extras/JuceDemo/Builds/Android/jni/Android.mk +++ b/extras/JuceDemo/Builds/Android/jni/Android.mk @@ -1,11 +1,10 @@ -# Automatically generated makefile, created by the Jucer -# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project! +# Automatically generated makefile, created by the Introjucer +# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project! LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_CPP_EXTENSION := cpp LOCAL_MODULE := juce_jni LOCAL_SRC_FILES := \ ../../../Source/ApplicationStartup.cpp\ @@ -31,15 +30,27 @@ LOCAL_SRC_FILES := \ ../../../Source/demos/WebBrowserDemo.cpp\ ../../../Source/demos/WidgetsDemo.cpp\ ../../../JuceLibraryCode/BinaryData.cpp\ - ../../../JuceLibraryCode/JuceLibraryCode1.cpp\ - ../../../JuceLibraryCode/JuceLibraryCode2.cpp\ - ../../../JuceLibraryCode/JuceLibraryCode3.cpp\ - ../../../JuceLibraryCode/JuceLibraryCode4.cpp\ + ../../../../../modules/juce_audio_basics/juce_audio_basics.cpp\ + ../../../../../modules/juce_audio_devices/juce_audio_devices.cpp\ + ../../../../../modules/juce_audio_formats/juce_audio_formats.cpp\ + ../../../../../modules/juce_audio_processors/juce_audio_processors.cpp\ + ../../../../../modules/juce_audio_utils/juce_audio_utils.cpp\ + ../../../../../modules/juce_core/juce_core.cpp\ + ../../../../../modules/juce_cryptography/juce_cryptography.cpp\ + ../../../../../modules/juce_data_structures/juce_data_structures.cpp\ + ../../../../../modules/juce_events/juce_events.cpp\ + ../../../../../modules/juce_graphics/juce_graphics.cpp\ + ../../../../../modules/juce_gui_basics/juce_gui_basics.cpp\ + ../../../../../modules/juce_gui_extra/juce_gui_extra.cpp\ + ../../../../../modules/juce_opengl/juce_opengl.cpp\ + ../../../../../modules/juce_video/juce_video.cpp\ ifeq ($(CONFIG),Debug) - LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -g -O0 -D "JUCE_ANDROID=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" + LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -g -I "../../JuceLibraryCode" -O0 -D "JUCE_ANDROID=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" + LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 else - LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -Os -D "JUCE_ANDROID=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" + LOCAL_CPPFLAGS += -fsigned-char -fexceptions -frtti -I "../../JuceLibraryCode" -Os -D "JUCE_ANDROID=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_ANDROID_7F0E4A25=1" + LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 endif include $(BUILD_SHARED_LIBRARY) diff --git a/extras/JuceDemo/Builds/Android/jni/Application.mk b/extras/JuceDemo/Builds/Android/jni/Application.mk index 29d8ea0bbb..ae028cd907 100644 --- a/extras/JuceDemo/Builds/Android/jni/Application.mk +++ b/extras/JuceDemo/Builds/Android/jni/Application.mk @@ -1,5 +1,6 @@ -# Automatically generated makefile, created by the Jucer -# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project! +# Automatically generated makefile, created by the Introjucer +# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project! APP_STL := gnustl_static APP_CPPFLAGS += -fsigned-char -fexceptions -frtti +APP_PLATFORM := android-7 diff --git a/extras/JuceDemo/Builds/Android/local.properties b/extras/JuceDemo/Builds/Android/local.properties index a688c88909..1d9d6c19a9 100644 --- a/extras/JuceDemo/Builds/Android/local.properties +++ b/extras/JuceDemo/Builds/Android/local.properties @@ -1,6 +1,6 @@ # This file is used to override default values used by the Ant build system. -# It is automatically generated by the Jucer - DO NOT EDIT IT or your changes will be lost!. +# It is automatically generated by the Introjucer - DO NOT EDIT IT or your changes will be lost!. -sdk.dir=${user.home}/SDKs/android-sdk-mac_x86 -ndk.dir=${user.home}/SDKs/android-ndk-r5c +sdk.dir=${user.home}/SDKs/android-sdk-macosx +ndk.dir=${user.home}/SDKs/android-ndk-r7 diff --git a/extras/JuceDemo/Builds/Android/project.properties b/extras/JuceDemo/Builds/Android/project.properties new file mode 100644 index 0000000000..9b259c744c --- /dev/null +++ b/extras/JuceDemo/Builds/Android/project.properties @@ -0,0 +1,5 @@ +# This file is used to override default values used by the Ant build system. +# It is automatically generated - DO NOT EDIT IT or your changes will be lost!. + +target=Google Inc.:Google APIs:7 + diff --git a/extras/JuceDemo/Builds/Android/res/drawable-hdpi/icon.png b/extras/JuceDemo/Builds/Android/res/drawable-hdpi/icon.png index 97acb16b4e..2fc5caeabb 100644 Binary files a/extras/JuceDemo/Builds/Android/res/drawable-hdpi/icon.png and b/extras/JuceDemo/Builds/Android/res/drawable-hdpi/icon.png differ diff --git a/extras/JuceDemo/Builds/Android/res/drawable-ldpi/icon.png b/extras/JuceDemo/Builds/Android/res/drawable-ldpi/icon.png index f11512f166..0fd4edc8da 100644 Binary files a/extras/JuceDemo/Builds/Android/res/drawable-ldpi/icon.png and b/extras/JuceDemo/Builds/Android/res/drawable-ldpi/icon.png differ diff --git a/extras/JuceDemo/Builds/Android/res/drawable-mdpi/icon.png b/extras/JuceDemo/Builds/Android/res/drawable-mdpi/icon.png index 7841a79ea0..75401b3792 100644 Binary files a/extras/JuceDemo/Builds/Android/res/drawable-mdpi/icon.png and b/extras/JuceDemo/Builds/Android/res/drawable-mdpi/icon.png differ diff --git a/extras/JuceDemo/Builds/Linux/Makefile b/extras/JuceDemo/Builds/Linux/Makefile index 31decfca9c..28cf3d0b92 100644 --- a/extras/JuceDemo/Builds/Linux/Makefile +++ b/extras/JuceDemo/Builds/Linux/Makefile @@ -1,5 +1,5 @@ -# Automatically generated makefile, created by the Jucer -# Don't edit this file! Your changes will be overwritten when you re-save the Jucer project! +# Automatically generated makefile, created by the Introjucer +# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project! ifndef CONFIG CONFIG=Debug @@ -17,12 +17,12 @@ ifeq ($(CONFIG),Debug) LIBDIR := build OBJDIR := build/intermediate/Debug OUTDIR := build - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 CXXFLAGS += $(CFLAGS) - LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound + LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext LDDEPS := - RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode TARGET := JuceDemo BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) endif @@ -32,12 +32,12 @@ ifeq ($(CONFIG),Release) LIBDIR := build OBJDIR := build/intermediate/Release OUTDIR := build - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -Os CXXFLAGS += $(CFLAGS) - LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound + LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext LDDEPS := - RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" + RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode TARGET := JuceDemo BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) endif @@ -66,10 +66,20 @@ OBJECTS := \ $(OBJDIR)/WebBrowserDemo_be24b7bf.o \ $(OBJDIR)/WidgetsDemo_9419b474.o \ $(OBJDIR)/BinaryData_ce4232d4.o \ - $(OBJDIR)/JuceLibraryCode1_682c927f.o \ - $(OBJDIR)/JuceLibraryCode2_683aaa00.o \ - $(OBJDIR)/JuceLibraryCode3_6848c181.o \ - $(OBJDIR)/JuceLibraryCode4_6856d902.o \ + $(OBJDIR)/juce_audio_basics_399a455e.o \ + $(OBJDIR)/juce_audio_devices_c1c9ba9c.o \ + $(OBJDIR)/juce_audio_formats_f04b043c.o \ + $(OBJDIR)/juce_audio_processors_eb9ae116.o \ + $(OBJDIR)/juce_audio_utils_cf18005c.o \ + $(OBJDIR)/juce_core_1ee54a40.o \ + $(OBJDIR)/juce_cryptography_3b1f489a.o \ + $(OBJDIR)/juce_data_structures_84790dfc.o \ + $(OBJDIR)/juce_events_584896b4.o \ + $(OBJDIR)/juce_graphics_f9afc18.o \ + $(OBJDIR)/juce_gui_basics_90929794.o \ + $(OBJDIR)/juce_gui_extra_b81d9e1c.o \ + $(OBJDIR)/juce_opengl_1890bee0.o \ + $(OBJDIR)/juce_video_86a19d3c.o \ .PHONY: clean @@ -201,24 +211,74 @@ $(OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp @echo "Compiling BinaryData.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode1_682c927f.o: ../../JuceLibraryCode/JuceLibraryCode1.cpp +$(OBJDIR)/juce_audio_basics_399a455e.o: ../../../../modules/juce_audio_basics/juce_audio_basics.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode1.cpp" + @echo "Compiling juce_audio_basics.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode2_683aaa00.o: ../../JuceLibraryCode/JuceLibraryCode2.cpp +$(OBJDIR)/juce_audio_devices_c1c9ba9c.o: ../../../../modules/juce_audio_devices/juce_audio_devices.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode2.cpp" + @echo "Compiling juce_audio_devices.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode3_6848c181.o: ../../JuceLibraryCode/JuceLibraryCode3.cpp +$(OBJDIR)/juce_audio_formats_f04b043c.o: ../../../../modules/juce_audio_formats/juce_audio_formats.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode3.cpp" + @echo "Compiling juce_audio_formats.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/JuceLibraryCode4_6856d902.o: ../../JuceLibraryCode/JuceLibraryCode4.cpp +$(OBJDIR)/juce_audio_processors_eb9ae116.o: ../../../../modules/juce_audio_processors/juce_audio_processors.cpp -@mkdir -p $(OBJDIR) - @echo "Compiling JuceLibraryCode4.cpp" + @echo "Compiling juce_audio_processors.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_audio_utils_cf18005c.o: ../../../../modules/juce_audio_utils/juce_audio_utils.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_audio_utils.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_core_1ee54a40.o: ../../../../modules/juce_core/juce_core.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_core.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_cryptography_3b1f489a.o: ../../../../modules/juce_cryptography/juce_cryptography.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_cryptography.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_data_structures_84790dfc.o: ../../../../modules/juce_data_structures/juce_data_structures.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_data_structures.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_events_584896b4.o: ../../../../modules/juce_events/juce_events.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_events.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_graphics_f9afc18.o: ../../../../modules/juce_graphics/juce_graphics.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_graphics.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_gui_basics_90929794.o: ../../../../modules/juce_gui_basics/juce_gui_basics.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_gui_basics.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_gui_extra_b81d9e1c.o: ../../../../modules/juce_gui_extra/juce_gui_extra.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_gui_extra.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_opengl_1890bee0.o: ../../../../modules/juce_opengl/juce_opengl.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_opengl.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_video_86a19d3c.o: ../../../../modules/juce_video/juce_video.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_video.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/extras/JuceDemo/Builds/MacOSX/Icon.icns b/extras/JuceDemo/Builds/MacOSX/Icon.icns index 7763077cfb..a1d2ba8423 100644 Binary files a/extras/JuceDemo/Builds/MacOSX/Icon.icns and b/extras/JuceDemo/Builds/MacOSX/Icon.icns differ diff --git a/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj b/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj index 19b4118261..de98a1de91 100644 --- a/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj @@ -3,210 +3,2035 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { - 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; - DEDBEF9AC48F8AD1502B6DC2 = { isa = PBXBuildFile; fileRef = 6A7D4DC561F2DD95ABD76F0D; }; - 92A7143821252FB13891CC53 = { isa = PBXBuildFile; fileRef = 2B37CDCFCBC0AC0AEAA9A479; }; - 687BFA1946EAD55C5C39907C = { isa = PBXBuildFile; fileRef = DA3360514D221A36446DC6DE; }; - ED283D0ABEC2EC312E40C6B4 = { isa = PBXBuildFile; fileRef = 010E9F48D32EA5C5451D8086; }; - 420A9C88B711F5E4997FAAD0 = { isa = PBXBuildFile; fileRef = CB7CDD93EE1469B969AF844E; }; - 29F75103FFB220F2E10CF9A9 = { isa = PBXBuildFile; fileRef = 3CE85049C3E91E38E71FF149; }; - C1437C4A64EB72D2A86729D3 = { isa = PBXBuildFile; fileRef = 85E860BFDA9D53EF77C08873; }; - B9911F3AC6CADFB47D1EA8D7 = { isa = PBXBuildFile; fileRef = 4D3E0D18D24F78B6BDE0E5DA; }; - F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; - 452052BBDBAF17DCC06EF521 = { isa = PBXBuildFile; fileRef = E0C3359BB4B5260CEB917D46; }; - 0CFE603DE523940AF3352227 = { isa = PBXBuildFile; fileRef = 9BE978B2BDA9B7DA3BE403B4; }; - C0A3C433D146C7E1FFCADFB2 = { isa = PBXBuildFile; fileRef = 4ADECB09FD213B2E910EA229; }; - 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; - CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; - 2E2DB52D03DD6A56FAC937A4 = { isa = PBXBuildFile; fileRef = 0704E2D6B0D1B38FBBBC6B85; }; - 8E0E3B718F35E9E1DC3D89C5 = { isa = PBXBuildFile; fileRef = D856109CF311BB94D8EE8826; }; - C4C49D2D5D27730E55B27BCB = { isa = PBXBuildFile; fileRef = 411D5D0920812790F4F78462; }; - 2CD67851BCF3F24E0B5F82CF = { isa = PBXBuildFile; fileRef = 67F817AAB55ED2BE16B376BF; }; - 29C9F0E2824F63B105234C0A = { isa = PBXBuildFile; fileRef = FBCE524D94BF5BE0160142D4; }; - 7EFB4E7D738BFFF90F49E0C0 = { isa = PBXBuildFile; fileRef = 048CEE4CC06227D8A57E47F2; }; - B69F5957B1729915BFB18735 = { isa = PBXBuildFile; fileRef = 7D65727C8F72F2BCC9A17D34; }; - F920A5AB6D0FF01022575079 = { isa = PBXBuildFile; fileRef = 268D7AFE2F3822C2C8E9A612; }; - 940BE0338CC1FEB65B4B82E2 = { isa = PBXBuildFile; fileRef = E072353A8A1F26CFB7090905; }; - A3AF0F559DD97F1B908AC1CA = { isa = PBXBuildFile; fileRef = F23738E4EFD2323063F82F1C; }; - 2C0AB902CB01E38D87A2A6A5 = { isa = PBXBuildFile; fileRef = B7F4DAFA5F8F1FC976C8B55D; }; - ACD2210FDE1137548F995F85 = { isa = PBXBuildFile; fileRef = F7620D8D567CCE463ADDE0A6; }; - 2F6BFF7DD839160223057CF7 = { isa = PBXBuildFile; fileRef = DA3BCFCC5BF07FC689DB5C34; }; - 1552CF5A0A932C5EB88EC56C = { isa = PBXBuildFile; fileRef = D6EF70641473A3E7C0DC5168; }; - 969C49FA8B55C700ED848494 = { isa = PBXBuildFile; fileRef = 3BC17D4051063C1BF66548C6; }; - AE1CB65D73BFB3FA707B59FF = { isa = PBXBuildFile; fileRef = 08B45C29F5EEC874E014D122; }; - 99D9F5D6FC8A015C603B32C3 = { isa = PBXBuildFile; fileRef = D5F519861915C136BAA8D87A; }; - 563DEC7941B88163A50E0945 = { isa = PBXBuildFile; fileRef = 402768B1A52E32348D505F18; }; - F5691895ACDC7B12DE88EFF4 = { isa = PBXBuildFile; fileRef = F2EB42A070E349D77ACF77C9; }; - 4D5C0ED42C87FBE02A9C7BE6 = { isa = PBXBuildFile; fileRef = CF7FFEAFF4F386ED4DAED523; }; - 80926D2B83ACF680958111EC = { isa = PBXBuildFile; fileRef = E6EF5CE04768BA5B10050D51; }; - 2201A04DDCFC361882F8EA62 = { isa = PBXBuildFile; fileRef = BA05C84C3258A1978AF3D357; }; - 2E98B1DEA8B7FC20ACCD2E6D = { isa = PBXBuildFile; fileRef = F42C91375F3314CA6EE65697; }; - 3A2EC17F8472C338D6A26278 = { isa = PBXBuildFile; fileRef = 4D526A336B2E97ED42CADAD7; }; - 36B5D100604D9A300187B773 = { isa = PBXBuildFile; fileRef = 8679333E781A0A0116AE5D26; }; - 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 6A7D4DC561F2DD95ABD76F0D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - 2B37CDCFCBC0AC0AEAA9A479 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - DA3360514D221A36446DC6DE = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - 010E9F48D32EA5C5451D8086 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; - CB7CDD93EE1469B969AF844E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; - 3CE85049C3E91E38E71FF149 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; - 85E860BFDA9D53EF77C08873 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 4D3E0D18D24F78B6BDE0E5DA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; - 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - E0C3359BB4B5260CEB917D46 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; - 9BE978B2BDA9B7DA3BE403B4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; - 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; - 4ADECB09FD213B2E910EA229 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; - 885A20D277AD743C21C822B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = "SOURCE_ROOT"; }; - 42291DB48BF81754D90FE200 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = "SOURCE_ROOT"; }; - 49138F5652E637AA67CD4B70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = "SOURCE_ROOT"; }; - 18BDC68F9701862603871A7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucedemo_headers.h"; path = "../../Source/jucedemo_headers.h"; sourceTree = "SOURCE_ROOT"; }; - 0704E2D6B0D1B38FBBBC6B85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = "SOURCE_ROOT"; }; - D793BFCCD11E218E5CED3320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = "SOURCE_ROOT"; }; - D856109CF311BB94D8EE8826 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = "SOURCE_ROOT"; }; - FC989E104DDB02E8A99B6564 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = "SOURCE_ROOT"; }; - 411D5D0920812790F4F78462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = "SOURCE_ROOT"; }; - 570DE12AFA65E0EF97A76118 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = "SOURCE_ROOT"; }; - 67F817AAB55ED2BE16B376BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = "SOURCE_ROOT"; }; - 91ACA90EFCAD4614B3ECC0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = "SOURCE_ROOT"; }; - FBCE524D94BF5BE0160142D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = "SOURCE_ROOT"; }; - 865617D983052FBE0ADDDEDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = "SOURCE_ROOT"; }; - 048CEE4CC06227D8A57E47F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = "SOURCE_ROOT"; }; - 8BEA0B754661F3038DBAF558 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = "SOURCE_ROOT"; }; - 7D65727C8F72F2BCC9A17D34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 268D7AFE2F3822C2C8E9A612 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - E072353A8A1F26CFB7090905 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DirectShowDemo.cpp; path = ../../Source/demos/DirectShowDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F23738E4EFD2323063F82F1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - B7F4DAFA5F8F1FC976C8B55D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F7620D8D567CCE463ADDE0A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - DA3BCFCC5BF07FC689DB5C34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - D6EF70641473A3E7C0DC5168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 3BC17D4051063C1BF66548C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = "SOURCE_ROOT"; }; - A6FB61B33BDDB0880203370C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = "SOURCE_ROOT"; }; - 08B45C29F5EEC874E014D122 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - D5F519861915C136BAA8D87A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 402768B1A52E32348D505F18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F2EB42A070E349D77ACF77C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - CF7FFEAFF4F386ED4DAED523 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - ACFD7F6AAFC09C234D15501D = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = "SOURCE_ROOT"; }; - A869663CA0E96FE15BB42A97 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = "SOURCE_ROOT"; }; - A76B69386F1F19647804510D = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = "SOURCE_ROOT"; }; - 013E12213AD7B4BEB28A31BE = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = "SOURCE_ROOT"; }; - 3369CDF7AFD79D6F3B3744B1 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Binary Data/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; - C7327AD5191A22C1FBD4F5F9 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = "SOURCE_ROOT"; }; - EE37A0ECE471A928C6170F9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; - E6EF5CE04768BA5B10050D51 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; - CC7EB9777A4DE3408705625C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; - A6B37799E63CCE882A3383FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; - BA05C84C3258A1978AF3D357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = "SOURCE_ROOT"; }; - F42C91375F3314CA6EE65697 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = "SOURCE_ROOT"; }; - 4D526A336B2E97ED42CADAD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = "SOURCE_ROOT"; }; - 8679333E781A0A0116AE5D26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = "SOURCE_ROOT"; }; - 1045A435754FDEACC6D7259C = { isa = PBXGroup; children = ( - 0704E2D6B0D1B38FBBBC6B85, - D793BFCCD11E218E5CED3320, - D856109CF311BB94D8EE8826, - FC989E104DDB02E8A99B6564, - 411D5D0920812790F4F78462, - 570DE12AFA65E0EF97A76118, - 67F817AAB55ED2BE16B376BF, - 91ACA90EFCAD4614B3ECC0C5, - FBCE524D94BF5BE0160142D4, - 865617D983052FBE0ADDDEDF, - 048CEE4CC06227D8A57E47F2, - 8BEA0B754661F3038DBAF558, - 7D65727C8F72F2BCC9A17D34, - 268D7AFE2F3822C2C8E9A612, - E072353A8A1F26CFB7090905, - F23738E4EFD2323063F82F1C, - B7F4DAFA5F8F1FC976C8B55D, - F7620D8D567CCE463ADDE0A6, - DA3BCFCC5BF07FC689DB5C34, - D6EF70641473A3E7C0DC5168, - 3BC17D4051063C1BF66548C6, - A6FB61B33BDDB0880203370C, - 08B45C29F5EEC874E014D122, - D5F519861915C136BAA8D87A, - 402768B1A52E32348D505F18, - F2EB42A070E349D77ACF77C9, - CF7FFEAFF4F386ED4DAED523 ); name = Demos; sourceTree = ""; }; - 7B2518B268DCBBF7B74F2B1D = { isa = PBXGroup; children = ( - ACFD7F6AAFC09C234D15501D, - A869663CA0E96FE15BB42A97, - A76B69386F1F19647804510D, - 013E12213AD7B4BEB28A31BE, - 3369CDF7AFD79D6F3B3744B1, - C7327AD5191A22C1FBD4F5F9 ); name = "Binary Data"; sourceTree = ""; }; - D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( - 885A20D277AD743C21C822B5, - 42291DB48BF81754D90FE200, - 49138F5652E637AA67CD4B70, - 18BDC68F9701862603871A7A, - 1045A435754FDEACC6D7259C, - 7B2518B268DCBBF7B74F2B1D ); name = "Juce Demo"; sourceTree = ""; }; - 4C2E644EAC72C263D09C74BB = { isa = PBXGroup; children = ( - EE37A0ECE471A928C6170F9B, - E6EF5CE04768BA5B10050D51, - CC7EB9777A4DE3408705625C, - A6B37799E63CCE882A3383FB, - BA05C84C3258A1978AF3D357, - F42C91375F3314CA6EE65697, - 4D526A336B2E97ED42CADAD7, - 8679333E781A0A0116AE5D26 ); name = "Juce Library Code"; sourceTree = ""; }; - 019CD423F1EFF7A1A0A079DD = { isa = PBXGroup; children = ( - 1A9DEA62F6A3CD1FB5CF105B, - 4ADECB09FD213B2E910EA229 ); name = Resources; sourceTree = ""; }; - 244B9AF7D858999910FD243E = { isa = PBXGroup; children = ( - 7B6D428682221857EAEA1C7D, - 6A7D4DC561F2DD95ABD76F0D, - 2B37CDCFCBC0AC0AEAA9A479, - DA3360514D221A36446DC6DE, - 010E9F48D32EA5C5451D8086, - CB7CDD93EE1469B969AF844E, - 3CE85049C3E91E38E71FF149, - 85E860BFDA9D53EF77C08873, - 4D3E0D18D24F78B6BDE0E5DA, - 4A96850C150C1C6D87A0D21A, - E0C3359BB4B5260CEB917D46, - 9BE978B2BDA9B7DA3BE403B4 ); name = Frameworks; sourceTree = ""; }; - 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( - 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = ""; }; - 1609BCDD8EC2BA2A162B68F3 = { isa = PBXGroup; children = ( - D6A4B94A747BFCF299B17932, - 4C2E644EAC72C263D09C74BB, - 019CD423F1EFF7A1A0A079DD, - 244B9AF7D858999910FD243E, - 3F406773369804D0FBF2789A ); name = Source; sourceTree = ""; }; - F46B3E8DBAFA746E04F4F62C = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; + 0BCC52797AD97E09EA6DF0E4 = { isa = PBXBuildFile; fileRef = DEB23C98FEC261260F63B6A4; }; + 7C26A95A4D47D3456AFF77ED = { isa = PBXBuildFile; fileRef = 4E1E8D79739D5A1771F1CE96; }; + 7717E0EB94DE6020C99D29DD = { isa = PBXBuildFile; fileRef = 07FECAD8E43331B1058FABD0; }; + 4163960D3A804CB466831F16 = { isa = PBXBuildFile; fileRef = C4169C8CB5406154E9BCE2B2; }; + F544EDBF5507628552174493 = { isa = PBXBuildFile; fileRef = D45EF873A4BD7D0E56274D79; }; + 05E4BF5B924C8055524AE9C8 = { isa = PBXBuildFile; fileRef = E6448B3F03DD2B41519DF93D; }; + A6BA1ABCFD4082DE39CA569C = { isa = PBXBuildFile; fileRef = 683535B25CE57F64EC61EFD1; }; + 70E15D9B766035A214A5EBF2 = { isa = PBXBuildFile; fileRef = 1220770583209247B4A994BC; }; + B290DD7AE127F3B205E64287 = { isa = PBXBuildFile; fileRef = 10C5331E1325E856FFD8733B; }; + 87EDE18A8381271AE00E982D = { isa = PBXBuildFile; fileRef = 70350B2642B3D062D0A8D239; }; + BC729FCFEF515CAE82E43DF6 = { isa = PBXBuildFile; fileRef = 6289926B08B7CD4A990134F5; }; + FA833091C017889D43AEB5CE = { isa = PBXBuildFile; fileRef = 8A6EC99172989940C08E809D; }; + 933C39A0A20A89B767742D07 = { isa = PBXBuildFile; fileRef = 16793951B75EADE5C08FD129; }; + F7DF6AC4276AD42F4F360E37 = { isa = PBXBuildFile; fileRef = D4CA129DE8BC9F6EDC2BCAD2; }; + B99620051F4C5A2FAB1DE49C = { isa = PBXBuildFile; fileRef = 2CE3420FBFD3136621EAFB1D; }; + 49FBA0236A1917CEF50FC456 = { isa = PBXBuildFile; fileRef = D0C3588FF8EF229B8F0CBCA8; }; + F5B4E1CC211F5215D6E05B44 = { isa = PBXBuildFile; fileRef = F10EEBAD564A55F50CEE7181; }; + 6D221136E94E784E793B9CD5 = { isa = PBXBuildFile; fileRef = 200550A2DDDB012E26D6D005; }; + B43C4A8F569137053CCEAD76 = { isa = PBXBuildFile; fileRef = F87BBC8FD2374628CFBC2EA6; }; + 127ED5764EA5A3BF3CEA5BBD = { isa = PBXBuildFile; fileRef = 2275EB468CEA505ADE14C225; }; + C4FCFE5612A1ED999FB9D51D = { isa = PBXBuildFile; fileRef = 690BE5039AADEF787D6E13D9; }; + B2A1C85517169CCEBB79CB9F = { isa = PBXBuildFile; fileRef = 8F37F4E9DB8E42EDF29DE166; }; + 196F67D37488DD92EF434694 = { isa = PBXBuildFile; fileRef = 8A29D461DA6C72497B49189C; }; + BF03F7C64A1FA6A2E15A9780 = { isa = PBXBuildFile; fileRef = 3C35334FE9451182FE7EC2B8; }; + 4CA7D59ACB03776D785FEB12 = { isa = PBXBuildFile; fileRef = 3D11CF883EC31F74D97920D3; }; + 7DFFCAD7929BE7BA645C65ED = { isa = PBXBuildFile; fileRef = 73108C67E00C3C958FFD23D4; }; + BCFD0CA15F13967BF82B26A4 = { isa = PBXBuildFile; fileRef = 83D67DD10BD2ACDC0984ADCB; }; + C33DAAC97DACAEE978D635F0 = { isa = PBXBuildFile; fileRef = 877D61C08ADC5B13C2627327; }; + 4FEDD45FE6A26543E055F259 = { isa = PBXBuildFile; fileRef = 94A9A7DF00C64509E9B5A337; }; + F600FD434B52D887C1FB973D = { isa = PBXBuildFile; fileRef = 81641BC45BAA99D207B153A7; }; + 0C993072AF2728D62BF28094 = { isa = PBXBuildFile; fileRef = 5ED8A827D78184F2E01A5511; }; + 1D0E1EAD88C7EF8CBB16E841 = { isa = PBXBuildFile; fileRef = 01E2555EA1347B8C8CFC438D; }; + 85EB509411E79E3F970C9653 = { isa = PBXBuildFile; fileRef = BD69603F635BE80BC99C7865; }; + C24BF8E3142DBFD0139EFEE9 = { isa = PBXBuildFile; fileRef = C87942E350F974B22047D457; }; + BEBB1C4BA92F6D4CDE224A15 = { isa = PBXBuildFile; fileRef = 6649385F220EB0B654AB61FB; }; + 662202A6B86B11E3DBD96D58 = { isa = PBXBuildFile; fileRef = 579D22DA6ECC930E19B7104A; }; + B00C72D607AF2A98366B40DE = { isa = PBXBuildFile; fileRef = 33DAC2BB94AFCF8EB33A1417; }; + 8938D948E7A216EE7264F500 = { isa = PBXBuildFile; fileRef = 7C7834D5AB7E6656A4CECF2F; }; + BA3DAB221F557B4C346EAFCF = { isa = PBXBuildFile; fileRef = EADE149294A3A3509EC61E6B; }; + 26973D9739CE05EF7F41C687 = { isa = PBXBuildFile; fileRef = 0FCE8CD83D0FA98563EE2920; }; + 020A3C34BE41F0B9B4AC7A64 = { isa = PBXBuildFile; fileRef = 278099898E32942D72AB635A; }; + 845872D67C4313E91DCD3A8E = { isa = PBXBuildFile; fileRef = 868D4BEF6B94EB7BF659CF01; }; + 6488F374D2A9B9FEDAC40859 = { isa = PBXBuildFile; fileRef = 4FC0DDA3086EE26242655E66; }; + F72A0043671FED94178413A1 = { isa = PBXBuildFile; fileRef = 766F3BD777CA786CD6BE023E; }; + B639B9459CB9EBE2A00A37F3 = { isa = PBXBuildFile; fileRef = 890F3D7DA5BC01DACF8E5431; }; + A9BC6DEA9311B5C74977A95E = { isa = PBXBuildFile; fileRef = 575587359A2F65312CE97AC4; }; + 3FCA7FE72D0EF062CB350F88 = { isa = PBXBuildFile; fileRef = 4CE1249813E63913B15BB51E; }; + 574104B02E5C0BFCCDA099B1 = { isa = PBXBuildFile; fileRef = C2072DE0D1FF6AA90A700D25; }; + BF1DE7C7A64706C9FBD7284E = { isa = PBXBuildFile; fileRef = 9AE7533B1AD68245E130B3AC; }; + 4A61E54E2ADD5FBBB1486257 = { isa = PBXBuildFile; fileRef = 49DA3670A8CF79F133914D18; }; + 0074FA7EFC2898B71E22A945 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + 013DEB204CA02DFE8B745893 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + 014740E7C97145AFAD9BD60C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 01E2555EA1347B8C8CFC438D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 0388C01D765585853A700C6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 03AB3157D77979CDD2601A86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 03DA010C988E825AF3EFAE7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 03E820FAB7405937F26D6EF2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04184D8A7003E2E77ED66CFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + 052964DDB569D0D8C38B89FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0574EFED0877A72D12A472E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + 05F2CE704CA3BC807CC5E19A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + 0655D6F5C85104403FC367AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06574539E17A8703E442F691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06D8EAABB6D94D55189361D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + 070230F8B36CFD14E7EEAD71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07492D83B5CEED0F975EEF77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + 077C8710E1F237529330ED3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 0782BB99E1CCE0474B695C7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07FECAD8E43331B1058FABD0 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 08B1356929EB57FE6FCE238F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + 08DC64993F213D275B988996 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + 09768BD4CFA73C85F8353F3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0A049E4E98CA579D41D98432 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + 0B8D7873618440F42487EB7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0BA047892DDF9066220EEDD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + 0BBEDD3E8C0C2B7C4B52016A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 0C4CA33345C6952BC8409D71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 0C7631EB40FF52D74D3D0A8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0D244B27274E1E7AB434C32B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D2F4EE7A540CC2AAFD301E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D59D15FB8BC9FE203586FB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DFB01AAFD08E7BAD09DDAA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 0E0F146C817BAD44A024ECC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 0E74D38CAF5F8C914132F4D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0EA9280C282850BAB49C1696 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0EC1E7F1AE41C81E1EA23B2E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0F77650615781AFD4374443B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 0FCE8CD83D0FA98563EE2920 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 1007D3CD4E3D162CCE176520 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10152F168CB3E2039DF18EA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 102DDBEEEAD7EE71450C1EB9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 105A6621F66CC8034DC59C9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 106B20CB3C94A1E72B19A7F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1089C7A1FF43033FDA63F711 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 108D97ACAEDE5A8DF0A483B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10C0D0A587B834EA781EF5D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + 10C5331E1325E856FFD8733B = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; + 1118BAEA98C38755FEB9E274 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + 1139AACAD8CE6CD6E9A770B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + 114E68D51824D42B0FFE9651 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11545F94DD1628DE57CB7768 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 119712DC26D0E95E209E85BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11B4C67851A83C42B8AC00C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11E6C0893A679EAD806DA5C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1220770583209247B4A994BC = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 122C499E8D63BC4F91ACC7B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + 1264CE16C2930583C8AB553D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 129BC61A6A0478DC45B5F8E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 12B4120D10259DF8461D689F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12B479E0CD2AAE105820B20D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12B9DB1413B7647920B53C07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + 12C5FC07F64317F5CF1063A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 12DD0DF90EEEBCE88873C8B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 12EE1FB670B7894E873E9A57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 1375CAA34ECE0B3B292EEF0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + 137FD6DAC3FF840EBABD78E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 13C15669B35168563D72F6F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14105A8032081F6FC44F7F0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + 147A045E381AE58EC0C54984 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 148C8FE6639F6CDF0E92235D = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; + 149369775B267A04F9B0ACAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + 156E421F5B0D6CAD8D415F53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 1580FF065A04106DBBA8F475 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 15B78E8E81D489F2711FDFBE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + 15DD1FC7780F48C6DFF56321 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 16793951B75EADE5C08FD129 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; + 16A6895439607DD8E651BA87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 171777847EB6194910E9CFEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 17422D876DAAF091ED089B8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + 1798F0BC1F2B2DF2F13193AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18666AEC1FCCE5D1514EB1FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18D1181C39F5A59423AC7A3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_gui_basics/application/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + 18E9157D37A11EDBDA35131A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + 195326647ACE1A61018358BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + 19789C9C8EDD3CC9F37592C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A03C9B88919CA79D176E738 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 1A5382EC797EF333806B5AFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A642D2FFD6CB47C8634337B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A9B80E0518B9AA9C34D5804 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A9EC07147DD48C0D68BF304 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1B3C2797B04E0FC6699DFDF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BDF3CAE40B1FDD559BC3DD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + 1C36F82D875B81C26A5752AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1CCB7B18759F7CEBB065C31E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + 1D0DD674EEEF98B1E1B8D8D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1D3DA514A7B46A2A32A32060 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1DFE892B4249D1DA3549F13E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 1E868017015269856168EBA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 1EA77055DF14613DD32065F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + 1EC913A06CFCE35C9AE2AD29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = "SOURCE_ROOT"; }; + 1F7DFE97A858AACDAF9EBB7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + 1FC2BD9784C0FCB1D259C006 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1FD483D22D49AB7C716008DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + 200550A2DDDB012E26D6D005 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = "SOURCE_ROOT"; }; + 20149C04068D071819A7BAFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 20C67AA68186D267436E7F39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + 20D1EA31FD53A558EBD278B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + 20E63E36AE128883F4144BC3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 21605BADE3692FBBAE44F961 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + 2173828BA5C245AE8C598C6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2184D5F7212394F4BC1C3B45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + 21F1833EDC766935B1CBD2D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22132E527A92309318A2D572 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2275EB468CEA505ADE14C225 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = "SOURCE_ROOT"; }; + 22A86C5C4967A5844323F7BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22C2C932398DC1EFE0880A9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/native/juce_android_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22CD1BF5E83A216A0D18260D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 22DA9E57AAA25391C7D1FBC6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 2302DFDF103BE152232EA767 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 23189A59169BC89E95A4A496 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 235894AFDA79AF1644B3A217 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 247646A6A435A3BDDEA602EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + 24EF2357DEC8017E6EEC7F93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 24F057BF79A4723C521BBEE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 258AC1AA4F4459F9CF99944D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + 2590DCE65DE2323D9EF77214 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 2597ED98D3C16A7EEF1FBFFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 25FECE7ACACB29E1725A6A17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2649F70294DB168919CBCAD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 2666A5013948E2EAD29458C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 26B73C77D47B146F92BEA265 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + 2708E4F2F73D88F73D8E54D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 278099898E32942D72AB635A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 278FB432DCB9A4F9DBEB64DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 27C340103177AB0848BCCC66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2820D74789660269902DB93A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + 282C1DA3A161FEF2AD6F94A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 2954678FE7AB78F318FBD4F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 295A470694011EBCA802822B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2968B26144E09D6A6659E739 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../../../modules/juce_video/playback/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2A835EF38887CAB750B49AC6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 2ACD67859FBC33EB743708CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + 2AE22D5AB8B2D3C381FBAC81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2B3A770317B04AAF24C28EF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C2B87B06DED242E1C4FE878 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C3298EC4F4D0DA7A6C4291F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C48ED514887D2F673B3B1BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = "SOURCE_ROOT"; }; + 2C516889F34A72150CDB6ADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C610D8010FF4A396101E2DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2C712E1519F7D4410288D35D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2C80ACF1A94F47BA05FA687C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2CD9DB6EFEAE8354A089CAC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CE3420FBFD3136621EAFB1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = "SOURCE_ROOT"; }; + 2CED94801F5481AE15648BF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D529158434D415C56A07479 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D5379BEA988458161F6694A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D585CE2B407C9072D9A22C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 2D6DAE85F0A729F1FF761DC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D93002DFF33B8BC3AD37520 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 2D9920BFC36E621CBDCE2381 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2DC1A9FFE2FADDF611409D6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 2E02355C7790F4B6EA0CC56E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 2E3C193C1C7AF236B10F01A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 2E7A4C5E41B3BEBC444B5935 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2F7FE4AA919A66D5EFF65A86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2FD23F0C1CE490858228180E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30416A5D76A365DDC434987E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3090FB05992F02292F415E33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30B5F2ABF28FD59FA7DA26E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/json/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30B7393EE0006E9958AD82C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; + 30F6134D7A127DFE9D1ADA20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + 3121916B396AFD0027FF1926 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + 31C1E172911A4C726A85EA02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 327D715A8B4C164B34398221 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 329BD0A0243005D36A444135 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 32B277F17C4052C6E4C70859 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32F08660DB00B6BD5C905FE3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + 32FBF4064072FEB06C6677C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 32FF688C9F64E07EA3917682 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 3342B88619BAEFF4C41078FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 33A84E7FDD64568649CC89BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + 33DAC2BB94AFCF8EB33A1417 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 33E3113EE5BF74F269FAD5EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + 33F9348D753D148E82519067 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3421ADCAF375264A71E5AF07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + 3477734262959639DF347D4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + 348002712045A8515DB393E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 34ADBF046976CA8A3932B5EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + 34BEABBC39678C06EA3BB307 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 34E9DFB552CA9B8FEF8DEF1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 350624CF3CD7DCA1E0313D3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 3507A95E429F11E5549286CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + 35089DB1D126566F2B5DD724 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + 353DB618823D6BC97E0986C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3543594CCB08E22D1EA8D2C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 359C09D53EFC4C1C557BC959 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35CA3E9AEE7BC7C005653A25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = "SOURCE_ROOT"; }; + 35F42453CF2745BD254BC71E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35FF3215D779C44F5B715702 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_events/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 36DD59799C3C4279B18DEAD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36EFC492079F0B7F4A1CB099 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3706A97B56FC6BFF72B700DF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3710B4143BD286E576B66C15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + 373EBC4E488B3EF8A0A72CAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3786A46162305EA0B75F35E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 37E2F2B9AFE2B6C1AA51A11A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38022D22AE783472BA32DF82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; + 3817585001205632BF471A05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + 3839556028D5A749F48340FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 385368D4C7693E8903E0C345 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 38B68694E6EDD6C29D1198D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = "SOURCE_ROOT"; }; + 38CDDFDC6697BF7BCFC8DAFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38E0255E6BB9600DEECD39F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + 393CDFCFA0358C689E5A3691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + 39DADA0AAD7468C535ECD5A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39ED2CD3C8A17DF313A0838B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 3A3C8D765CD02651E2C39102 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A7C2EA6B6C8E00BBE6A29B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 3A9AB41831037CF68FF5719F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3ADBF520293DBBCE5A605902 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + 3AEC36869846977B0C09A881 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 3B32FA1EF99322D3DED5F162 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3B583D35FAD0DE89F00F17C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 3C35334FE9451182FE7EC2B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DirectShowDemo.cpp; path = ../../Source/demos/DirectShowDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 3C97F910F4E20FC15DB607F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 3CF7FB16E7DFE7EC2636A45D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CFD018C7CC9E7B8E1E6232D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CFE82D0B21D705C8C6DFCF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 3D01072645251F386FCE636B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 3D11CF883EC31F74D97920D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 3D47500F131A273A8C29AAE2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D5DB29BE2D59A93B5516273 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D8ED4E2F2DFEBA891A4BD7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D9E23A71CF1E3FB6D532753 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DF6629A4DD77B71A5F855CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3E11497CB4E6589C8A10E740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3E49B797A7DF7B2F596F330B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + 3EBBCD2A01201C7CC76389CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3EE0B72A06759B14B7FC6836 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 3F273BE94572DB6E747B0793 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + 3F4889BE2D946E79745601A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 3FA49B24986D1DA7CFA612ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3FCF8E2901F23E806122E4AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + 3FFA55DA900886D84F5A0A7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 405F91E957609744EB0FC5C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + 419A5345B4F9B977B7C1FD2E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 422D4D8EE3470F57D56064AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4242718AFF89762AA5CEC247 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 4275F414173638509F56E09A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 42B89D48E9FB252F1BC3796A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 4306A3B2696CCE1D811D8C53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 431B8B4CCA364880B507DD4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43A4661DD876DBD6A6E1F5C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43D8FB16F1DE9F159C7A2F71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43E4604C39E9A992216F6B98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 441F40BFFD11D433F2FED531 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 44616895C0F4219D47AC7FEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 447E2F5BA5478E8233CE1A1B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 450F0C2A16431DBBAE50520E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 451D484BE77922E33CA60DFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + 4604F166A3FC6187967E2053 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 462F0D225347C4FDB943324C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 467EAE3A087BEF2C56EE3FF7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 476F1E00A832948D22B468C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 47B161CB864B6C499DE64416 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47BD3D6D5AC81F74179942FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + 47C2B600A45FAC095669304F = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_video/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 47DAE660790C8E8CE96A63FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 47F1E35082ED332567F9C727 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4871179A9D7239EDE34B33BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + 48DCD395FA50217F557ECC2A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 4916E6E942FDEA8E55DEEF64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucedemo_headers.h"; path = "../../Source/jucedemo_headers.h"; sourceTree = "SOURCE_ROOT"; }; + 49AD4268C6B2CF4E12806E56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 49C7D1146BE928E7FEF48A72 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 49DA3670A8CF79F133914D18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; + 49FED6A86A4F78CDB60CBC99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4A9E5DAE13069017FB5CAEB2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 4AC80644D0D73A0FF8656CAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 4ADF2B4274758FA3F435D6DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AF29A63EBF9E0693BF999C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + 4B86077AAC3D6C026B3E31CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 4CC2034DFB9E19F81E590E6E = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_devices/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 4CE1249813E63913B15BB51E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 4CE8628F7CAB483AFAFA01FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CFB262AA9778621B8B33A7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + 4D050E552CC0A82297D0AC86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4D2697EB7DF6121A0037A399 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + 4DCA9EF26A5F2CCF0B74F8A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4DE313B7586BAFF5E9BB0506 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E0A38A8008E55C09BFBA199 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 4E1E8D79739D5A1771F1CE96 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 4E6F438BDC119B89C9518531 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E8A36ACA8A867C7511B280A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EB06BB3A534C3865CD7A8B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 4EB13D757A756408053DBB79 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EC68506861032FFD4B848DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + 4EC77B02BE7457DE877E332B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + 4F2F636FB9416BFBB1FF2473 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F802BD98072EA49F7F4FE4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F854124B48F6358A992D164 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 4FC0DDA3086EE26242655E66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 5010D82E6ED57F014D8E88E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5031A666D462F64BF254F81C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 503F07193B665711417DF1FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + 508E1F2760E66BD1A73C235E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 5092F31788400A172E319CCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 50A201CF006DD19F648C429D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + 51A580427D01D51811D5F1D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 51AFA9AA1B3094239580A0B6 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 52CAE85DCE0FA2692B8A85C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52D9F5FD82C858FE4F134773 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52FD39B0A762C353D2FB09BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53A5227FBB8C0DD8F4442599 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53B187F6CFBDE72F4CEFE845 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_opengl/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 5435804E495A87442FD7A6F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 549BE844954C5CD52D46FBD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 54B6F856BA80756C0C139326 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 554399057C06249E6FAB9E20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + 55DDAA81843B00449145EA5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56CA808B4610A5C34730B4D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + 56D3242C281C2F19A2A6E81B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 570C04EF3724ADC8B2EF0563 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5712EB90A8B51DBBC4E19A39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5725CB557A7D55CA59E18324 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5741A7FD2C785C3F65377A45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 574BCE46C31D810F694B0651 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 575587359A2F65312CE97AC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 5786364EC4C531CDE41BDCEA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 579D22DA6ECC930E19B7104A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 58061ADC1867C814A334D49D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58864C3D7F369EBE01E42C5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 591E3F5832C08B0841971B01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59591325C73706DB6BD2C887 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5996F037CD5993251871573E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59A4C185020F908DEB4A844C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59F616BB319A05A8E93B89FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + 5ACCDDBA02C73CE15D6532E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 5AE8CCF926E311A0A7088E5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5BC78223CF42F85D660DA536 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CABE190EBD0F4EEB763114A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CE14F63495533AEDBD1688B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CE4B86B0FCE258A8A12AB09 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 5D312C2C94366F88C7A7A708 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + 5D7DE60BB4DF4CE300B4F343 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 5DBE1359F502F9C72E38800B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5E12C726C5DBB9C81963FAB5 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_extra/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 5ED8A827D78184F2E01A5511 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 5EFF3A95523D36B3F1A057C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60704E9013507A9F9729017D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 607083E28D3CAAC3C69D3010 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../../../modules/juce_video/playback/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 608BEDD96B33E0475FF1FD54 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + 614AE257736D79B36015DBC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + 6181080398CF1388C5C15051 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; + 618F07B344089C7B13EED411 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 61941C6E24D2D04F51F59134 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 61B4084F81D01C8730F5952F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61C6FB83D4582BF2F84EB464 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61D55BA26F1410A26A007514 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 61E83A490FBB38A8D7613146 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6289926B08B7CD4A990134F5 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; + 62AAFFC7E5754AA715DCB1E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + 62AFEF7525003814092C79FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6314AFE1A17F085C028B4C82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63A3A467F124B67D19587D4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63CF475000C8419AE8D25BD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + 63DD8F6DD0DDC9A6F45E0C90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + 6413A99AB17F3551937E397F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 641BCC559554D3C4B51A5B92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ObjCSuffix.h"; path = "../../../../modules/juce_core/native/juce_mac_ObjCSuffix.h"; sourceTree = "SOURCE_ROOT"; }; + 64485EF2AE378418411A8FCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 65A50CC38E2A045D320D4224 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6627248BD1D82CBA820F1FCF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 664211B1C9D22E34B60EF5E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66425E2428080B75F0FFB2C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6649385F220EB0B654AB61FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 669FD4C70B8BF2B87DEAFB73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + 66E3497A9DCF883BCE6A27A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66F2929C04B6E230FFA975C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6704DC3810D991DADFF947AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 678034FB9D177C3D08044AB9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67B45F46192481A24287B06C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + 67DA4E3A02A5697DE923E0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67F14D1D1869540E4B9540B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 683535B25CE57F64EC61EFD1 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 687E1D120E47EEFEEB73A4BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + 690BE5039AADEF787D6E13D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 6A4819E134CD45BD043C3219 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B03CB11D5DEABAEE7F9E0F1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B0F3AF3FE7B113C33112897 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 6BBB8746C2C1BB5F3C3F1FC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 6BBE4F2809E2AE0FE445302C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6BD99638187A39ABC44DCBA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + 6C608B44E265F761D09C91CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C956B90C1BB1217BF02F0D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 6CC2241F234EDD873FD5BDC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D0757D493441CFB9C1B426A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + 6D16F5C591F5558984437145 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DD58CBABB8009DAA5104BBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DF10AFB26794D47F3AC783B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E00A6B4B754E3008B969B8A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6E0DA76710F31FA13F5168B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 6E1CFF5227B2F2E200DD9EC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/native/juce_linux_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E365FC14CFBA3BD28196D3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 6EF8660ACF82A6472884ABB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 70350B2642B3D062D0A8D239 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 709D153E2940C162215E31F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 717A5E2F84E8D281325E9C1C = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = "SOURCE_ROOT"; }; + 720BE81011A4F54822E7F498 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 725D10330456FC57C9FEA75D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 726A4629ED6E091D24471CA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 72C3E3A3E2760E1ECB6BD30A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72FF1B91B6590B036636E20B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73108C67E00C3C958FFD23D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 731FFEA1471A03D05AED1B77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 7323A374566B649091DB8837 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 7334C493C3EC57C4AA200F01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 737F8D074841EE88B24DC761 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + 73AC2ABA9094C062E8DA773E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + 7415D37F43E9CA0C5D924D17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7434F00C0F5768C4CFFC9C30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74390F0BB6A54198B7EE12CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 747D307A1A0D468103D4B20E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74C5EA2191F9A05902D76BB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 74D36012BEBC6FDD72B0572F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7551834E76E49E9114B16B2B = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = "SOURCE_ROOT"; }; + 760B6B73C7C332980801C0C7 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 7667028F4EC27060934DCF30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 766F3BD777CA786CD6BE023E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 768D628853DDE9E4EF563DE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + 77488721DFFE4D0C22E19299 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + 7763574CC15B89B5BD8A4307 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77845C048A123FF3D2619158 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 77CB4C3F4C72996179768CB0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 785F32963F7F6458F3D4DC3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + 78AB95E1E7C39B3794F44E24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 78C4635C8F91A9A513C6B9DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 79078F37EB6919AA440017FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79441FABE26CE4CF9BA128CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 7985BF3EF947A7955C94364C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79E54897373142A27EC0FC40 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B0C40F57724D3021F83F423 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_video.h"; path = "../../../../modules/juce_video/juce_video.h"; sourceTree = "SOURCE_ROOT"; }; + 7B53B778BF20B1BC43E2D562 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BB52DAA6A783F0194EEF869 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 7BB9913643FCE12B216AD8C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C1A682DC90937487D6A4B0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + 7C57A68F39036348C34D73EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 7C7834D5AB7E6656A4CECF2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 7D01B73D4ECD4899173EE882 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D12F1C172F94A735E17ADD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 7DA4BF4F615254D8AFD37BEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + 7E0006CE91286527B25433FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 7E6041874E267458572B93A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + 7E6AEB024827FD9ACB353BB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + 7EF1F0BC4F4DE2986856DE41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 7F2A4EF4DE29CE775FF0F5E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F580113B80A85759A406E81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F65B8E1571AA346AA2F2FE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7FC1A0B1663AC9262104D715 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 8042D0D2B38EBD19652CBA55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 805B94425CD56EA78E0A705B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = "SOURCE_ROOT"; }; + 80E7D8D4E601BCC20054475E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 80EEC26431102B212C9F873B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 814313374CD209A40282985E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + 8154D2D681E028B8783E5331 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 81641BC45BAA99D207B153A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 823A2690E2229E32DE984AD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 82474A9673BE92E34D03FE39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 825BDA58C2694CE7F3FC2494 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + 82AD87FA68D9DDD78F9A4674 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 82DD6AB8F5279385455B0769 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 830186B50B369AD64C539EE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 834DCAD1857B654514D4A0BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8391251872CF6C7C11F11EEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 83D67DD10BD2ACDC0984ADCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 840EF2C371FCC5690DA216F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; + 8565630D87FEE505D50CE2EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + 85D1779E60213BC6670E2C75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + 8603713AFBC316218045A963 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 868D4BEF6B94EB7BF659CF01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 86A52913E895EFD9C4D43D04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; + 86DDC7DDD8BFE56FCA73E397 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 86DF811859C602F24589AC3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 877D61C08ADC5B13C2627327 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 87EDA764A802069F89CEC355 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 87FB016388B49E97FCCBE69B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + 8878426C7F58CB22969E7133 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + 89006BBD5040A06E6C559F16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 890F3D7DA5BC01DACF8E5431 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 8939B318C3AF6793C72D8A9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 893D867B3AB93E4D96AF060E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 896140063D12A19D1DCBF3DF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OldSchoolLookAndFeel.h"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 897420C9C4D80F1AE5F80637 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + 89ABB9AFCDB73A409754BE48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + 89F519023C03C9908F761BAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 8A15EDB6321B758A3EEF635B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 8A29D461DA6C72497B49189C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 8A6EC99172989940C08E809D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 8A79588D3BEDD0DF69065099 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8B0B9E8A37911F76577E3AA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 8B7490B27707118E03A50933 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + 8CA151FDAFC858B6535BF6A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8CB23F01604E12FD33256AC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + 8D3F5C48CD1B104A105845E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + 8D66115C77E904AB96FDF64E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 8E6E18125D1046B97EF7AEE2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8E7F5F80EB6D99EED152A465 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + 8EB9B4853F225BDB97D6626E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + 8EEB4DEB11F3DF01BA6F7528 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 8F1D89D1349B0DCC115B5D47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F37F4E9DB8E42EDF29DE166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 904B316152B6C23112E0A0B1 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 90F9E3FB8FF07BA924E42DC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + 924667AB0E27AC2CE1EB7828 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 927B5B18A655057D57C37D35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 936C6419223D7B28CE16A72B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9398049BFCAC42B8FD1E16C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectXPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_DirectXPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 93C594ECD5CEA7878114149A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 94A9A7DF00C64509E9B5A337 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 94EB4630C360BA31195FA13D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95305C4003CD4784CA20D1D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 956A7825F42E2D33FC97CF73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95CA7C1593FFDE7AF8CDE98F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + 9619FDAC2D7C1E273CFBD10C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96C8D0EE75ABEB02422AA41F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + 96DDB84D9722732A64DA57A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 973F391C41F2774E0CB8D54A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 97D6A96DEE15B1C9C270FAEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + 98028D7823ADA4594A8A2A22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 988A5D1934361EB3009CD52C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + 989587AD131FF27180BEB3D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 98C642B2E87A5D752E517A6D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 98C6708DE85079E157822A2A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98D731CDF5B6F60ED9198CC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 98DD360F5D3D60539185DE90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98EB4070281520EADE02212C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 99971599D48BFF60437E0F44 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99AAA16209763F3DA2113D1B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + 99B22FB30FB36F358A932F6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99FE46FBB05F16AFF37AB6A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + 9A1B5431CF0FFF248896A8F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9A947B1B4163730D13A4D24C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + 9AB36BCC26D5CC2CCC71E5E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 9AB8510F26D6035159042BC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9AE7533B1AD68245E130B3AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 9AFD4A062067D5F709FA793C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 9B07C7F9F91CDF9465EE2AEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 9B572F52342BE9169D435F1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 9B5833CD741A705B8AFAF9C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BA092AE037F13C968200B25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C0DB4F281D10303224E41A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + 9C5F40CA5A70DD8207F53047 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + 9C785342B462AEB3D63418F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C7B5E573807ED59065B54DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9CD9B6E7197079625A165653 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 9CF4E56974B8290F34032432 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D042E1CAB03CFCD4B937951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9D09225ABCE19597A944DEEA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 9D18794763C086784ECE98D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D70FB5DE184C636EC01EC67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + 9E80EC17EE6322C452E9A774 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E825AC2FBE27AC2BCAEA69F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 9F35ACC90F2A1C2E565148C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + A16EC49106F4E28AD49EECC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + A18C61D2206141C03B24BF9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + A1A96650D3211A87738A9B75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + A1D2256DD1E864A4560459F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + A26D0251E9EF4FAB12D1737B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + A2BBD7D58010E488BE904CCC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + A3346F6C215C2CEB5F9416FC = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + A34C1EFF7C51BEB33C22FAFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4BF6FE6902ACF80D2E3DB60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + A57A09A4137135A0AF6A0800 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + A58203002289D424A2CDF5DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + A588C458AC395D8AC09A433D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + A5A6819C57A0399C81E03301 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6073115FE5E1E635C78DDFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + A6C2A4889A4E70DE735EBA4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6C606F3BE6B630561EDE155 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6FCBC9721E7FC9DE30B6DC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + A72FB74D13AA5C6A472E9E82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + A763E7AF50D548D8C4A4C3D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + A7B3B265DACC82D9E9CFB3DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + A7BD5AB895B2531A75FE0268 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + A7F413D4C880363878469E5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/json/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + A80CC48B8215D447643CA411 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + A86557C09D01406BB6964DB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + A8B2537E3AEB0F0B791CF030 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + A8F2E649E566EDE8D4C42F21 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Binary Data/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; + A93A4042E1214A65BD70DAEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + A9566A42230AACC1AFDC6C5F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + A974197873E277C3BA5DF666 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; + A97EC32975392744C62684F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + A9958339328213FF76D8A79C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + A9B72D6049A3539B63AE79D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + AA0DE5CA2B089393B110FD25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + AAABC8FBF364D9A596F4AA4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + AAC98CB517D934F42A25416E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AB4A28A3667EA4C8393470A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + ABBA4018C1596481E7CD51CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + ABDBA289C591093A65BD526B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC2D4E1081F69B20AAB47E2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC3EFDDC80761A45E8BE0624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACB502AF25A235733295406E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + ACC522FB23E25ADDD38F8F98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + AE2C0F932F7E54799FA0897C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AE394742FA0F2C6AA39906DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_OpenGLComponent.mm"; path = "../../../../modules/juce_opengl/native/juce_mac_OpenGLComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + AE860FA70A2F37F4A889A9EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + AEA287A89324FB9D48370C33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF26F1B432EF78EB76107FDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF5FD9E66E46B600914FFE53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + AF9F8BD7FAA0567B70EA397C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + B0461717A1A4204943AB55C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + B16E1644785E869DC000112C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B1C64086587109AA429DE418 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + B1EF98E196E432165CEA08F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + B22D28FB41374E7092AEE96C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + B2F5CA0FBCECC10EEEAD11E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + B3C3985129CB310EECCBDFF7 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + B3E75CAB88F9CBD5145C226C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3FDF6B35E4E6ED6AAA8CDE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + B418FE6F1E2F268880AE00A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + B428CC689CD359B29C67272B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + B523ED8502475B9BB3F392C7 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_graphics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + B53B1A87D9A58B3E056B4D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + B59728841A18523C5950A51B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + B59DA3ED4F12C1FFEE433EE3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + B5B987C3029862AC58363F1A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B62A2E9AE08575992BAE53C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + B657CFA035D5285F14DE6AD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + B65938BA2A3EE3FEE9923E12 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + B6B93A495D82478E99956AD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + B6D34ED1DE5CC8010A1BE232 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6ECBC8983C8C13575A3420E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + B6F0FA98AD1AA6A3552A59FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6F619428216E8DD021C6ECD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + B792478999FB8A13DCE4FF99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B81FA2ED22BCC03D124031ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B875CBC2CBA6D01EE0AAB25C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + B91F3E65CE47056DAF5C4DA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + B9A07B3C2CC36D0830745F31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + BA710A8F1D5B056162B7CB3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + BA8CA56A4E1F30984B8E4208 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + BADAE0896F7D4AEAA481B257 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + BAEAC53813F354CE5E045E9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + BAF897CBD4F6F7382D4DC72A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + BB94B67B5B0EC06015621F59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + BBA5037F5ABAFDAB54EB6903 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; + BC3978DEBCC88DB02860E20C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC4827D57EDF30E1886FCEF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC6C5A22BC49D1F16B797A02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + BC94E7AC0B57A89C259A26A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = "SOURCE_ROOT"; }; + BC966E4E8DE070E482B296C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + BCEAC6346AB15421E3A5AB70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + BD1E818B710742D5EC07BAE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + BD69603F635BE80BC99C7865 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + BD7E3C305F0976D5C5395090 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + BD84136646D8700D41BE7EA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDC0E815578ED04901FB9251 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE4673AB9542C19D1C1C3A63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + BE95C8978503BFA15B38D3C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + BECF3DC9A5405B9856DEF975 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF2093D486040BEC64210EBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + BF59C96BC3BCB29CCB421861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + BF6F272194D16055D6A90D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF76B8C5007732311AF50543 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; + C03AF9257B94504D7270416A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C0608375ACE89B422431E9A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + C069C5FCE1539E9F85C7F29E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C07BEF22C24DD225C5D0940E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0E38F040D44C1474E42753A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = "SOURCE_ROOT"; }; + C1A15473893B354642F7531A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + C2072DE0D1FF6AA90A700D25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + C20DAAC0E23CCCB8FF64DFED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2692BB8791ADE59158D9F21 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + C26D5CE23205932DA1062C85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + C2AFCF5805D239DF9F9DE2D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + C2D1EE14670950990F0769B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2E3B2EC0F1EB46349FBAF63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + C30EE4EFDB359E2A9D58F677 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + C355FD0ABB078A342BF6A6AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + C3A77F115D67C0E24C65FC45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3E0EB7CDA04886FA8323C17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + C3F7B701463826A93DFE5587 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + C4169C8CB5406154E9BCE2B2 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + C427F2763EEE1F1C11E8EAF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + C4A730DEDDA33FA9A06CDA82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + C4C6D6B8731B400B29A3A4E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C50F17EA37434C3C7B52C3BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + C526F791D3168AC0E87C2DD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + C583836F43E174944C6098FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5CF3A35D0896F95596FAC4C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + C5FF20572B734C4EE8F204B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; + C66E08F5118F529FC623733E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + C766591C3E8CB978D6026F56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + C7835B9A7DA88BE84F1366E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + C7DAB2D405C907CDA83C2924 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7EBDC32959BE4405ECE2148 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + C87942E350F974B22047D457 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + C8E9F901721D86767BD458B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C92A08C836B3326D6EDB14E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + C94D5056497677CC3FCB5AAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9AEAD8B2366F9508E63A178 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + C9E621CAC46AE272EFB807E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + CA5844E270055529F3F3818F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + CA799D1FF79E811275318304 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + CAF961A7AFDB2830B419214C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CB179EBD4C1AB9F3F59E9D4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + CB68DC2B2EA837D6869AAACD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC0BC6AC42809A4F4FA21452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + CC1307C0AEE134EEA46F68EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + CCB4250C97008BF3E5F12D0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + CCD6FA03199F37A9CCA6340D = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_cryptography/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + CCE2933FEB395826A5710C6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + CCFBB22AC379DC3B3A839CA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD20E020C903C1E3AE12A1CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = "SOURCE_ROOT"; }; + CD2AEFC254C92A49F2D5DA64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD9EDF2EE190AFB02CCC3F49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + CE28146B186C11F00BCBBBBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + CE3DF5A017336CABFDD6926A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + CE66BAB575B13375E1EE937C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + CE882EE8C05AC3A809E41332 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEAE0C8168A4E71C6D607659 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEF96D559AAB6D61FB8A0288 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF0DB23C5950CB619CF8D812 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CF15EC19906A7A7C3D9E2407 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF2A1897A3C5610A282A2713 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + CF6533A53CCA75A2FAFACAB8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + CFB2E2DFBCBAA9BF91E7CB35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + CFF27E108381EC6BA758EE7E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + D0B9859FCC534C510C7F37A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + D0C3588FF8EF229B8F0CBCA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = "SOURCE_ROOT"; }; + D1CADE1C7E74F37D0D57575B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + D226630AEE6B273B6B1ED622 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D25A334218A3D87F4D0BBD15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + D27A3A58DCC37B5EFC3AD745 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + D27D41D4A06E286FDBDF7549 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + D2C40CDF46D894BFC72BDC56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + D2F161366612A4CDA6372113 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + D2F7081BE9A6E24BA7CD1A46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + D33142A214D7AC7A8ED27E4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + D33EBA9793C56D73135BD1F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + D3AD73A360B24493ECC4E092 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + D3BA1978EF5806DF8F3B32ED = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = "SOURCE_ROOT"; }; + D45EF873A4BD7D0E56274D79 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + D4CA129DE8BC9F6EDC2BCAD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = "SOURCE_ROOT"; }; + D4DC657E222FE2BDE92EC58E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + D57651845D6D9438DEA62F98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + D5DE603FFC184C590E2A6678 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + D602AE751C3C12A6458FCCD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D66048AF1E05FF836B2A813A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/native/juce_win32_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6C9614D1C6493DBEE370646 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6D0F076F54C7D669A9717C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLComponent.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D7239D5B984E07808E2DB28C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7E6E92AA32B7D51489FD256 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + D8081154AA3072D2F2C4B625 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + D866C4735BF1EF0CA24FC1FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/opengl/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + D8AFC87A918360FFC9D96BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + D9282DF6556197822D2BD5D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA0D464BE6E90C3668AD7C73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + DA2FCB30EE2A41085FF93B9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + DB507A1F7BB7489344FF90A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + DD40A3E06CA320D95F3924BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + DDEC339D244553357E234C92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE7617FB215CD22983E7D736 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + DE80C724F35B1464853FDE9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + DEA38275A65473112CD34252 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + DEB23C98FEC261260F63B6A4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + DED6D04CFED991C5924B78F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; + DF2D86EEA8031481C1FD08B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF47E8197FF5A9309C062C61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../../../modules/juce_graphics/placement/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF590CD70352A30FA3BD9835 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + E0AE248F52C70AA1DEA1A5A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + E249D6583995E0E6D0B3EADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + E26E3AC933F70B56B7B83EFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + E274BFB25D87D93EDBC23114 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + E34B2BCD14634ED3BC9F5431 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + E3D24CD61D75922457DB9642 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + E48E2824CED9933934127522 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + E6448B3F03DD2B41519DF93D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + D119A3871626EC2B8EFCB0D4 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + DEE1FC30E2FBB97921616CA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF3B7E1BC0AF0C826C47745B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + DFEAB699C98B89FF0B85F557 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + DFF6BF0BB64714A494A25E93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; + E15F577E82B2E12597447472 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + E2732267CD7C0C3BDB17456A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E38DE271B32DCC95E52C72DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + E3FC888CC9FAD650C469ACC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + E453E312D607E60FAA6D1BF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + E46977801F19277F4D3B324B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + E48615F1F7D8213F6DC24FC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + E5DC4602843749A071B17576 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + E6B13A51A01032961340735D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + E6C582E67DC0C4D0CCA18166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + E71C493A0E10D1AE4A3DB2AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + E7AECF0B52A9554442685859 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = "SOURCE_ROOT"; }; + E86CBC37B034041BFF5A10DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + E8FE41E21AD1029DD709FD7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + E94E773858B05D719E61DD6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + E963816786695359C91EF35D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + E9C3901F0B4AC410025D2086 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + EA1313A79BF10BE60238F3D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EA20E7FB414DD777C1618333 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + EACB4129861122ABC1A2BB37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + EADE149294A3A3509EC61E6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + EAE786E1125C492A7A8B1594 = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = "SOURCE_ROOT"; }; + EB902A37F3AA5BC62D523F5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + EB9E8921A8D36EDD7FF3245B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + EC180AD91D1B068D7A8F33BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EC89003BF30329181BB3EA4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/opengl/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + EC93857F367028441A067F45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + EC97B274D075920B2490E0D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + ECCEB7E5D6B18F1376E34EDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + ECEFF5A78873B5B388046E7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + ED467279290C0AA942FB2B27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + ED9A2289AECFD9B928A9A08A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + ED9FAEA9116C568942BAD000 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_OpenGLComponent.mm"; path = "../../../../modules/juce_opengl/native/juce_ios_OpenGLComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + EDDA4ADA880E3B78143801D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + EDDDD60231231B8221711145 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE2DACF73E083928ABDDA63B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + EEA3A060739CA049C1339B9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + EEC74D7DAF96D7ADBC917976 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F10EEBAD564A55F50CEE7181 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = "SOURCE_ROOT"; }; + F123556B79ADA02F5E549727 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1EEED4DC97678861086B282 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + F242ACDC3C1ED82039C45915 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + F250E301B85CB6140FC236A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + F26F7C7D6D9EBA2693914AA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F28314027C0D8E36A9FE43E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; + F315F477DE84E05E9E440ADA = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + F339FB092FFFBB9B95E7F732 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + F48AE8E1A9A1608BEB4C16A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F49BD909BB1DD4BE7B669FA6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + F4C50E1A3DC066396613C401 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + F534B4A3A4E46A8311A44649 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F53E1E312FBE025F836AA718 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5B3E5C6F10A97AEA5786AC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F664E58A0B3899FB98CF8E1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6AE140F7CE1B08B52A8C8AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6D1D5FD437BF40AC208AA2E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F76944FF282DB2FB4FB1B229 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + F796E49F8209912C1E8E0ADC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7BA444D0130F3613252D00D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + F84DBFF75F5334EA86AB2E37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F84F19D5BEF7E7AE00C8CDD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + F87BBC8FD2374628CFBC2EA6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = "SOURCE_ROOT"; }; + F8FB27C3434BB255CED42861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + F93E02181A90B71B0C16629F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; + F9474BBBA977F050C5C66E61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + F97E60F478662C7A4B413E5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + F9FE574AC4D30AE44C0DF98C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + FABF3148A2F5D3ACD48E8838 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAC8B4FB05C57F3461E3FE30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + FAD925A5A262E8ACF4F40354 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_utils/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + FB73EE6CD424A7543EE172D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + FBDA70B8FF6C6D669F9CF540 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + FC1201FBE79AED3FC831ABAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + FC19E4B3335185A35678B597 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC87932ECFE90EB63664B6BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; + FD36FD1612A96DDE000211E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + FE75937BEEFDA021D7767B59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE87322C0C3E84720083F1C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE89A070890FF722F9A128C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE9A5898294228EB7F439951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + FEA724E71E582903094A455F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + FEB2CCC12BBABEEC23384FDD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + FF93CCEC386B165840328831 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + FFAD5C56A4E4038FB532565F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; + FFF09A9DCDFECD32F25F0CDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + D5607E34AA2399378CA6F72B = { isa = PBXGroup; children = ( + D0C3588FF8EF229B8F0CBCA8, + 2C48ED514887D2F673B3B1BC, + F10EEBAD564A55F50CEE7181, + 805B94425CD56EA78E0A705B, + 200550A2DDDB012E26D6D005, + 1EC913A06CFCE35C9AE2AD29, + F87BBC8FD2374628CFBC2EA6, + 38B68694E6EDD6C29D1198D7, + 2275EB468CEA505ADE14C225, + CD20E020C903C1E3AE12A1CF, + 690BE5039AADEF787D6E13D9, + 35CA3E9AEE7BC7C005653A25, + 8F37F4E9DB8E42EDF29DE166, + 8A29D461DA6C72497B49189C, + 3C35334FE9451182FE7EC2B8, + 3D11CF883EC31F74D97920D3, + 73108C67E00C3C958FFD23D4, + 83D67DD10BD2ACDC0984ADCB, + 877D61C08ADC5B13C2627327, + 94A9A7DF00C64509E9B5A337, + 81641BC45BAA99D207B153A7, + BC94E7AC0B57A89C259A26A8, + 5ED8A827D78184F2E01A5511, + 01E2555EA1347B8C8CFC438D, + BD69603F635BE80BC99C7865, + C87942E350F974B22047D457, + 6649385F220EB0B654AB61FB ); name = Demos; sourceTree = ""; }; + C2E4D2C86DFBB8F14142D379 = { isa = PBXGroup; children = ( + D3BA1978EF5806DF8F3B32ED, + E7AECF0B52A9554442685859, + EAE786E1125C492A7A8B1594, + 7551834E76E49E9114B16B2B, + A8F2E649E566EDE8D4C42F21, + 717A5E2F84E8D281325E9C1C ); name = "Binary Data"; sourceTree = ""; }; + DC7F5A47CBDE7E3A9AA86F85 = { isa = PBXGroup; children = ( + D4CA129DE8BC9F6EDC2BCAD2, + 2CE3420FBFD3136621EAFB1D, + C0E38F040D44C1474E42753A, + 4916E6E942FDEA8E55DEEF64, + D5607E34AA2399378CA6F72B, + C2E4D2C86DFBB8F14142D379 ); name = "Juce Demo"; sourceTree = ""; }; + AAB457A3E170486A669BF7EA = { isa = PBXGroup; children = ( + 13C15669B35168563D72F6F8, + 669FD4C70B8BF2B87DEAFB73, + BC3978DEBCC88DB02860E20C, + F250E301B85CB6140FC236A6 ); name = buffers; sourceTree = ""; }; + 826DCB7D5E55310994355B53 = { isa = PBXGroup; children = ( + 3EBBCD2A01201C7CC76389CC, + 6413A99AB17F3551937E397F, + 44616895C0F4219D47AC7FEB, + 21605BADE3692FBBAE44F961, + 3A3C8D765CD02651E2C39102, + 614AE257736D79B36015DBC4, + 66F2929C04B6E230FFA975C8, + 5031A666D462F64BF254F81C, + B3E75CAB88F9CBD5145C226C, + 1F7DFE97A858AACDAF9EBB7D ); name = midi; sourceTree = ""; }; + 24381AC39E3E1E43706536D6 = { isa = PBXGroup; children = ( + 97D6A96DEE15B1C9C270FAEB, + 2CD9DB6EFEAE8354A089CAC9, + ED9A2289AECFD9B928A9A08A, + 2DC1A9FFE2FADDF611409D6B ); name = effects; sourceTree = ""; }; + 50C8E80F5986688023F19CAF = { isa = PBXGroup; children = ( + 3FFA55DA900886D84F5A0A7A, + 7434F00C0F5768C4CFFC9C30, + A7BD5AB895B2531A75FE0268, + EEC74D7DAF96D7ADBC917976, + E94E773858B05D719E61DD6A, + A6C606F3BE6B630561EDE155, + 9E825AC2FBE27AC2BCAEA69F, + 67DA4E3A02A5697DE923E0C5, + 98C642B2E87A5D752E517A6D, + 9D09225ABCE19597A944DEEA, + BC966E4E8DE070E482B296C6, + 7E0006CE91286527B25433FF, + 7F65B8E1571AA346AA2F2FE8, + C355FD0ABB078A342BF6A6AA, + C526F791D3168AC0E87C2DD9, + 82DD6AB8F5279385455B0769 ); name = sources; sourceTree = ""; }; + 5140207688AFBD7CD5356327 = { isa = PBXGroup; children = ( + CB179EBD4C1AB9F3F59E9D4A, + 7C57A68F39036348C34D73EC ); name = synthesisers; sourceTree = ""; }; + 0596B4096DD627F972BB026F = { isa = PBXGroup; children = ( + AAB457A3E170486A669BF7EA, + 826DCB7D5E55310994355B53, + 24381AC39E3E1E43706536D6, + 50C8E80F5986688023F19CAF, + 5140207688AFBD7CD5356327, + F315F477DE84E05E9E440ADA, + 1A03C9B88919CA79D176E738 ); name = "juce_audio_basics"; sourceTree = ""; }; + CEDD0F91222D58B6765E12BC = { isa = PBXGroup; children = ( + 37E2F2B9AFE2B6C1AA51A11A, + A763E7AF50D548D8C4A4C3D1, + F9474BBBA977F050C5C66E61, + 785F32963F7F6458F3D4DC3D, + 94EB4630C360BA31195FA13D, + EA20E7FB414DD777C1618333 ); name = "audio_io"; sourceTree = ""; }; + 9BA0F84BBF38B6B5DC702BCA = { isa = PBXGroup; children = ( + 3817585001205632BF471A05, + 3D47500F131A273A8C29AAE2, + 3477734262959639DF347D4E, + B3FDF6B35E4E6ED6AAA8CDE4, + E0AE248F52C70AA1DEA1A5A1 ); name = "midi_io"; sourceTree = ""; }; + 901A0B1C81CB2E60827ADA89 = { isa = PBXGroup; children = ( + 9619FDAC2D7C1E273CFBD10C, + E249D6583995E0E6D0B3EADF, + F5B3E5C6F10A97AEA5786AC5, + 0074FA7EFC2898B71E22A945 ); name = sources; sourceTree = ""; }; + 5D1463D0CAF326A035EFF063 = { isa = PBXGroup; children = ( + D5DE603FFC184C590E2A6678, + EEA3A060739CA049C1339B9F, + 4A9E5DAE13069017FB5CAEB2 ); name = "audio_cd"; sourceTree = ""; }; + E05126DD45F861CA44DBDCF0 = { isa = PBXGroup; children = ( + F339FB092FFFBB9B95E7F732, + 570C04EF3724ADC8B2EF0563, + BECF3DC9A5405B9856DEF975, + 149369775B267A04F9B0ACAE, + 5741A7FD2C785C3F65377A45, + 2AE22D5AB8B2D3C381FBAC81, + A6FCBC9721E7FC9DE30B6DC4, + FFAD5C56A4E4038FB532565F, + F7BA444D0130F3613252D00D, + 9CF4E56974B8290F34032432, + C92A08C836B3326D6EDB14E6, + 447E2F5BA5478E8233CE1A1B, + 4DCA9EF26A5F2CCF0B74F8A1, + 9A1B5431CF0FFF248896A8F2, + 54B6F856BA80756C0C139326, + DDEC339D244553357E234C92, + E3D24CD61D75922457DB9642, + EDDA4ADA880E3B78143801D0 ); name = native; sourceTree = ""; }; + 21689DE0A3F6A8E3550F027F = { isa = PBXGroup; children = ( + CEDD0F91222D58B6765E12BC, + 9BA0F84BBF38B6B5DC702BCA, + 901A0B1C81CB2E60827ADA89, + 5D1463D0CAF326A035EFF063, + E05126DD45F861CA44DBDCF0, + 4CC2034DFB9E19F81E590E6E, + 95CA7C1593FFDE7AF8CDE98F ); name = "juce_audio_devices"; sourceTree = ""; }; + E10D88B71B2B0B8E403457CC = { isa = PBXGroup; children = ( + 9BA092AE037F13C968200B25, + 4B86077AAC3D6C026B3E31CE, + 1A5382EC797EF333806B5AFC, + F97E60F478662C7A4B413E5D, + 25FECE7ACACB29E1725A6A17, + 64485EF2AE378418411A8FCB, + 77CB4C3F4C72996179768CB0, + 12B9DB1413B7647920B53C07, + 38CDDFDC6697BF7BCFC8DAFC, + B9A07B3C2CC36D0830745F31, + 0D59D15FB8BC9FE203586FB3, + ACC522FB23E25ADDD38F8F98 ); name = format; sourceTree = ""; }; + A383EDCA7A04B91EAA0A044E = { isa = PBXGroup; children = ( + 1264CE16C2930583C8AB553D, + 2C712E1519F7D4410288D35D, + 11E6C0893A679EAD806DA5C2, + 0DFB01AAFD08E7BAD09DDAA2, + 359C09D53EFC4C1C557BC959, + 4306A3B2696CCE1D811D8C53, + 3DF6629A4DD77B71A5F855CC, + 7334C493C3EC57C4AA200F01, + ED467279290C0AA942FB2B27, + E274BFB25D87D93EDBC23114, + 7763574CC15B89B5BD8A4307, + 4275F414173638509F56E09A, + 9C785342B462AEB3D63418F6, + F49BD909BB1DD4BE7B669FA6, + 450F0C2A16431DBBAE50520E, + CE3DF5A017336CABFDD6926A ); name = codecs; sourceTree = ""; }; + 21F527AEF9C266046A0A196E = { isa = PBXGroup; children = ( + FC19E4B3335185A35678B597, + 327D715A8B4C164B34398221 ); name = sampler; sourceTree = ""; }; + E9E9D81EA027C542C95D6294 = { isa = PBXGroup; children = ( + E10D88B71B2B0B8E403457CC, + A383EDCA7A04B91EAA0A044E, + 21F527AEF9C266046A0A196E, + B3C3985129CB310EECCBDFF7, + 405F91E957609744EB0FC5C8 ); name = "juce_audio_formats"; sourceTree = ""; }; + 105805580BAF2CEBE4D0DA33 = { isa = PBXGroup; children = ( + BBA5037F5ABAFDAB54EB6903, + 67B45F46192481A24287B06C, + B792478999FB8A13DCE4FF99, + 3710B4143BD286E576B66C15, + C7DAB2D405C907CDA83C2924, + 7323A374566B649091DB8837, + FE89A070890FF722F9A128C0, + E34B2BCD14634ED3BC9F5431, + 5AE8CCF926E311A0A7088E5B, + B16E1644785E869DC000112C, + 86DDC7DDD8BFE56FCA73E397, + 5EFF3A95523D36B3F1A057C1, + 814313374CD209A40282985E ); name = processors; sourceTree = ""; }; + 10F28FF3263B59E64AF73921 = { isa = PBXGroup; children = ( + 1C36F82D875B81C26A5752AF, + 350624CF3CD7DCA1E0313D3E, + 0655D6F5C85104403FC367AC, + 235894AFDA79AF1644B3A217 ); name = format; sourceTree = ""; }; + FD4542E6C91E7212198A0887 = { isa = PBXGroup; children = ( + FB73EE6CD424A7543EE172D0, + 8E7F5F80EB6D99EED152A465, + 9398049BFCAC42B8FD1E16C5, + 3F4889BE2D946E79745601A6, + A1D2256DD1E864A4560459F3, + 5DBE1359F502F9C72E38800B, + 89006BBD5040A06E6C559F16 ); name = "format_types"; sourceTree = ""; }; + AC7EF7E94559BBC511E03002 = { isa = PBXGroup; children = ( + C427F2763EEE1F1C11E8EAF9, + 451D484BE77922E33CA60DFE, + 72C3E3A3E2760E1ECB6BD30A, + BADAE0896F7D4AEAA481B257, + 2C516889F34A72150CDB6ADF, + AE2C0F932F7E54799FA0897C ); name = scanning; sourceTree = ""; }; + E0455F5194FF065007BE4B0B = { isa = PBXGroup; children = ( + 105805580BAF2CEBE4D0DA33, + 10F28FF3263B59E64AF73921, + FD4542E6C91E7212198A0887, + AC7EF7E94559BBC511E03002, + 904B316152B6C23112E0A0B1, + 768D628853DDE9E4EF563DE4 ); name = "juce_audio_processors"; sourceTree = ""; }; + 6AA0D6DFB981C9ECDFED4C40 = { isa = PBXGroup; children = ( + 6D16F5C591F5558984437145, + 47F1E35082ED332567F9C727, + 0D244B27274E1E7AB434C32B, + 38022D22AE783472BA32DF82, + D2F7081BE9A6E24BA7CD1A46, + 86A52913E895EFD9C4D43D04, + 1D3DA514A7B46A2A32A32060, + 6E00A6B4B754E3008B969B8A ); name = gui; sourceTree = ""; }; + 41225457F81F375E3C7BE9DD = { isa = PBXGroup; children = ( + 33F9348D753D148E82519067, + CCE2933FEB395826A5710C6F ); name = players; sourceTree = ""; }; + 810A00D2DFF4E5F57301390C = { isa = PBXGroup; children = ( + 6AA0D6DFB981C9ECDFED4C40, + 41225457F81F375E3C7BE9DD, + FAD925A5A262E8ACF4F40354, + FC87932ECFE90EB63664B6BE ); name = "juce_audio_utils"; sourceTree = ""; }; + 2EA2DD5FD46F5D789223B408 = { isa = PBXGroup; children = ( + 834DCAD1857B654514D4A0BD, + B65938BA2A3EE3FEE9923E12, + 3AEC36869846977B0C09A881, + 0BA047892DDF9066220EEDD2, + 4AC80644D0D73A0FF8656CAB, + C2AFCF5805D239DF9F9DE2D3, + 8391251872CF6C7C11F11EEC, + CE28146B186C11F00BCBBBBD, + 1007D3CD4E3D162CCE176520, + 8CB23F01604E12FD33256AC5, + 49C7D1146BE928E7FEF48A72, + 4EB13D757A756408053DBB79, + 34ADBF046976CA8A3932B5EF, + 8A79588D3BEDD0DF69065099, + 85D1779E60213BC6670E2C75, + E6B13A51A01032961340735D, + 89ABB9AFCDB73A409754BE48, + CE882EE8C05AC3A809E41332, + B6ECBC8983C8C13575A3420E ); name = text; sourceTree = ""; }; + 9E385EE2C33A34870884808C = { isa = PBXGroup; children = ( + 7B53B778BF20B1BC43E2D562, + 20D1EA31FD53A558EBD278B5, + 2666A5013948E2EAD29458C1, + C7835B9A7DA88BE84F1366E6, + A86557C09D01406BB6964DB6, + BC4827D57EDF30E1886FCEF4, + B6F619428216E8DD021C6ECD, + DB507A1F7BB7489344FF90A9 ); name = maths; sourceTree = ""; }; + 8FF03782352807A3E6E6F611 = { isa = PBXGroup; children = ( + D8AFC87A918360FFC9D96BE5, + 16A6895439607DD8E651BA87, + C1A15473893B354642F7531A, + D57651845D6D9438DEA62F98, + 737F8D074841EE88B24DC761, + C9E621CAC46AE272EFB807E3, + B1EF98E196E432165CEA08F7, + 48DCD395FA50217F557ECC2A, + 77488721DFFE4D0C22E19299, + 129BC61A6A0478DC45B5F8E1, + 4AF29A63EBF9E0693BF999C4, + 988A5D1934361EB3009CD52C ); name = memory; sourceTree = ""; }; + 35B88D644BE4CDE6A3A396DE = { isa = PBXGroup; children = ( + F84F19D5BEF7E7AE00C8CDD7, + D27A3A58DCC37B5EFC3AD745, + 6D0757D493441CFB9C1B426A, + 8939B318C3AF6793C72D8A9E, + CF15EC19906A7A7C3D9E2407, + 2302DFDF103BE152232EA767, + 10C0D0A587B834EA781EF5D5, + 102DDBEEEAD7EE71450C1EB9, + 78AB95E1E7C39B3794F44E24, + 47B161CB864B6C499DE64416, + 1139AACAD8CE6CD6E9A770B6, + 2590DCE65DE2323D9EF77214, + D9282DF6556197822D2BD5D4, + 3CFE82D0B21D705C8C6DFCF9, + BAF897CBD4F6F7382D4DC72A, + 6C956B90C1BB1217BF02F0D0, + 0A049E4E98CA579D41D98432, + 5D312C2C94366F88C7A7A708, + 9B5833CD741A705B8AFAF9C0, + 013DEB204CA02DFE8B745893 ); name = containers; sourceTree = ""; }; + 97091DE509793B81A0622449 = { isa = PBXGroup; children = ( + C20DAAC0E23CCCB8FF64DFED, + 51A580427D01D51811D5F1D0, + EC97B274D075920B2490E0D8, + C26D5CE23205932DA1062C85, + C766591C3E8CB978D6026F56, + CA5844E270055529F3F3818F, + 12B4120D10259DF8461D689F, + B91F3E65CE47056DAF5C4DA2, + 99FE46FBB05F16AFF37AB6A1, + 9A947B1B4163730D13A4D24C, + 8D66115C77E904AB96FDF64E, + A6073115FE5E1E635C78DDFE, + 19789C9C8EDD3CC9F37592C3, + B6B93A495D82478E99956AD7, + 6BD99638187A39ABC44DCBA0, + 070230F8B36CFD14E7EEAD71, + E48615F1F7D8213F6DC24FC9, + C2D1EE14670950990F0769B7, + 79441FABE26CE4CF9BA128CC, + 077C8710E1F237529330ED3B ); name = threads; sourceTree = ""; }; + 00E1F623EAD83AC9671516F8 = { isa = PBXGroup; children = ( + F1EEED4DC97678861086B282, + 30F6134D7A127DFE9D1ADA20, + 554399057C06249E6FAB9E20, + A26D0251E9EF4FAB12D1737B, + 98C6708DE85079E157822A2A, + F76944FF282DB2FB4FB1B229 ); name = time; sourceTree = ""; }; + 211CD90AA77DBE161D9DAA02 = { isa = PBXGroup; children = ( + F53E1E312FBE025F836AA718, + EE2DACF73E083928ABDDA63B, + 59A4C185020F908DEB4A844C, + 18E9157D37A11EDBDA35131A, + 58061ADC1867C814A334D49D, + 2954678FE7AB78F318FBD4F7, + 823A2690E2229E32DE984AD2, + 8A15EDB6321B758A3EEF635B, + 6DD58CBABB8009DAA5104BBC, + A16EC49106F4E28AD49EECC0, + 7E6AEB024827FD9ACB353BB6, + 2D529158434D415C56A07479, + 4EC68506861032FFD4B848DB ); name = files; sourceTree = ""; }; + C60D4C4FC42A554A46D46B83 = { isa = PBXGroup; children = ( + E26E3AC933F70B56B7B83EFA, + 2D93002DFF33B8BC3AD37520, + 7985BF3EF947A7955C94364C, + AF9F8BD7FAA0567B70EA397C, + 6A4819E134CD45BD043C3219, + F9FE574AC4D30AE44C0DF98C, + 5BC78223CF42F85D660DA536, + 608BEDD96B33E0475FF1FD54 ); name = network; sourceTree = ""; }; + 825131C75D8295428718D9AF = { isa = PBXGroup; children = ( + 936C6419223D7B28CE16A72B, + 32FBF4064072FEB06C6677C2, + C583836F43E174944C6098FC, + A8B2537E3AEB0F0B791CF030, + 3C97F910F4E20FC15DB607F0, + 2173828BA5C245AE8C598C6F, + 2C610D8010FF4A396101E2DD, + 8603713AFBC316218045A963, + 1DFE892B4249D1DA3549F13E, + 956A7825F42E2D33FC97CF73, + BC6C5A22BC49D1F16B797A02, + EACB4129861122ABC1A2BB37, + 2C80ACF1A94F47BA05FA687C, + 3D9E23A71CF1E3FB6D532753, + DE80C724F35B1464853FDE9E ); name = streams; sourceTree = ""; }; + 3F6A1A4FE9CE09F865C2F9EB = { isa = PBXGroup; children = ( + D25A334218A3D87F4D0BBD15, + 0574EFED0877A72D12A472E5, + C94D5056497677CC3FCB5AAD, + 393CDFCFA0358C689E5A3691 ); name = logging; sourceTree = ""; }; + E11D230996C7EA5090C8CF3B = { isa = PBXGroup; children = ( + 20C67AA68186D267436E7F39, + 6EF8660ACF82A6472884ABB6, + 1798F0BC1F2B2DF2F13193AB, + 8D3F5C48CD1B104A105845E9, + 62AAFFC7E5754AA715DCB1E5 ); name = system; sourceTree = ""; }; + 7950FD188ACB69BCCE4E592E = { isa = PBXGroup; children = ( + 72FF1B91B6590B036636E20B, + 39ED2CD3C8A17DF313A0838B, + 2D5379BEA988458161F6694A, + 20149C04068D071819A7BAFD ); name = xml; sourceTree = ""; }; + 356902978BF9F2910199BA96 = { isa = PBXGroup; children = ( + 30B5F2ABF28FD59FA7DA26E2, + A7F413D4C880363878469E5A ); name = json; sourceTree = ""; }; + 31679EC1083B0E93BD133F6D = { isa = PBXGroup; children = ( + 3786A46162305EA0B75F35E8, + C5CF3A35D0896F95596FAC4C, + 830186B50B369AD64C539EE1, + 47DAE660790C8E8CE96A63FB, + 419A5345B4F9B977B7C1FD2E, + AE860FA70A2F37F4A889A9EF ); name = zip; sourceTree = ""; }; + 29D30EC0005E4EA41AB30573 = { isa = PBXGroup; children = ( + 15B78E8E81D489F2711FDFBE, + 3E49B797A7DF7B2F596F330B ); name = "unit_tests"; sourceTree = ""; }; + FD57658D3C4937B68FC377C4 = { isa = PBXGroup; children = ( + 06D8EAABB6D94D55189361D0, + AB4A28A3667EA4C8393470A7, + 2820D74789660269902DB93A, + 549BE844954C5CD52D46FBD1, + 77845C048A123FF3D2619158 ); name = misc; sourceTree = ""; }; + DC206734AA07236B6CF2C486 = { isa = PBXGroup; children = ( + CFF27E108381EC6BA758EE7E, + AAABC8FBF364D9A596F4AA4E, + 0D2F4EE7A540CC2AAFD301E4, + A5A6819C57A0399C81E03301, + CEF96D559AAB6D61FB8A0288, + 82474A9673BE92E34D03FE39, + E48E2824CED9933934127522, + 7F580113B80A85759A406E81, + 353DB618823D6BC97E0986C1, + CA799D1FF79E811275318304, + B657CFA035D5285F14DE6AD3, + 9C0DB4F281D10303224E41A1, + 247646A6A435A3BDDEA602EE, + 641BCC559554D3C4B51A5B92, + B0461717A1A4204943AB55C3, + 9CD9B6E7197079625A165653, + 8B7490B27707118E03A50933, + 2597ED98D3C16A7EEF1FBFFD, + 4E6F438BDC119B89C9518531, + D8081154AA3072D2F2C4B625, + 1FD483D22D49AB7C716008DC, + DA2FCB30EE2A41085FF93B9B, + 03DA010C988E825AF3EFAE7A, + CEAE0C8168A4E71C6D607659, + 106B20CB3C94A1E72B19A7F7, + 8F1D89D1349B0DCC115B5D47 ); name = native; sourceTree = ""; }; + 4DC690DD63DDBC55E62125D7 = { isa = PBXGroup; children = ( + 2EA2DD5FD46F5D789223B408, + 9E385EE2C33A34870884808C, + 8FF03782352807A3E6E6F611, + 35B88D644BE4CDE6A3A396DE, + 97091DE509793B81A0622449, + 00E1F623EAD83AC9671516F8, + 211CD90AA77DBE161D9DAA02, + C60D4C4FC42A554A46D46B83, + 825131C75D8295428718D9AF, + 3F6A1A4FE9CE09F865C2F9EB, + E11D230996C7EA5090C8CF3B, + 7950FD188ACB69BCCE4E592E, + 356902978BF9F2910199BA96, + 31679EC1083B0E93BD133F6D, + 29D30EC0005E4EA41AB30573, + FD57658D3C4937B68FC377C4, + DC206734AA07236B6CF2C486, + A3346F6C215C2CEB5F9416FC, + 278FB432DCB9A4F9DBEB64DD ); name = "juce_core"; sourceTree = ""; }; + F70B6E2FF584AF141CA17BBE = { isa = PBXGroup; children = ( + 6181080398CF1388C5C15051, + 30B7393EE0006E9958AD82C3, + 2D9920BFC36E621CBDCE2381, + A93A4042E1214A65BD70DAEB, + FE87322C0C3E84720083F1C5, + DFF6BF0BB64714A494A25E93 ); name = encryption; sourceTree = ""; }; + D12B1750F63F258FD4B5CC6E = { isa = PBXGroup; children = ( + C07BEF22C24DD225C5D0940E, + DED6D04CFED991C5924B78F0, + C5FF20572B734C4EE8F204B6, + 840EF2C371FCC5690DA216F6 ); name = hashing; sourceTree = ""; }; + 22237417DF1FEB16A5FDCC96 = { isa = PBXGroup; children = ( + F70B6E2FF584AF141CA17BBE, + D12B1750F63F258FD4B5CC6E, + CCD6FA03199F37A9CCA6340D, + A974197873E277C3BA5DF666 ); name = "juce_cryptography"; sourceTree = ""; }; + A65902CD81957B294C593017 = { isa = PBXGroup; children = ( + 32B277F17C4052C6E4C70859, + 258AC1AA4F4459F9CF99944D, + 678034FB9D177C3D08044AB9, + C2E3B2EC0F1EB46349FBAF63 ); name = values; sourceTree = ""; }; + CE753C6AB61CCE0A7E574245 = { isa = PBXGroup; children = ( + 4D2697EB7DF6121A0037A399, + 137FD6DAC3FF840EBABD78E1, + C3F7B701463826A93DFE5587 ); name = undomanager; sourceTree = ""; }; + 172F56777A03BBB0ED14EAB3 = { isa = PBXGroup; children = ( + F123556B79ADA02F5E549727, + 1EA77055DF14613DD32065F3, + 24F057BF79A4723C521BBEE4, + 2E3C193C1C7AF236B10F01A6 ); name = "app_properties"; sourceTree = ""; }; + 43B31F713FF681531675E618 = { isa = PBXGroup; children = ( + A65902CD81957B294C593017, + CE753C6AB61CCE0A7E574245, + 172F56777A03BBB0ED14EAB3, + 51AFA9AA1B3094239580A0B6, + 0F77650615781AFD4374443B ); name = "juce_data_structures"; sourceTree = ""; }; + C12CEDFCB9C90CD0F767D7D0 = { isa = PBXGroup; children = ( + 22132E527A92309318A2D572, + E15F577E82B2E12597447472, + C66E08F5118F529FC623733E, + B6D34ED1DE5CC8010A1BE232, + 96C8D0EE75ABEB02422AA41F, + C4A730DEDDA33FA9A06CDA82, + 52CAE85DCE0FA2692B8A85C7, + 56CA808B4610A5C34730B4D2, + 55DDAA81843B00449145EA5A, + 6627248BD1D82CBA820F1FCF ); name = messages; sourceTree = ""; }; + EED6FE335B473510B17D26CE = { isa = PBXGroup; children = ( + ABDBA289C591093A65BD526B, + 973F391C41F2774E0CB8D54A, + AF26F1B432EF78EB76107FDA, + B59728841A18523C5950A51B ); name = timers; sourceTree = ""; }; + DA337AFA3100AEEA04703024 = { isa = PBXGroup; children = ( + F242ACDC3C1ED82039C45915, + 80E7D8D4E601BCC20054475E, + 0C4CA33345C6952BC8409D71, + AEA287A89324FB9D48370C33, + 59F616BB319A05A8E93B89FD, + A72FB74D13AA5C6A472E9E82, + ACB502AF25A235733295406E, + 6E365FC14CFBA3BD28196D3A, + 9D70FB5DE184C636EC01EC67 ); name = broadcasters; sourceTree = ""; }; + 106C22CF2DD971FCC2C2B45A = { isa = PBXGroup; children = ( + 79E54897373142A27EC0FC40, + 1BDF3CAE40B1FDD559BC3DD3, + 114E68D51824D42B0FFE9651, + 9AFD4A062067D5F709FA793C ); name = interprocess; sourceTree = ""; }; + 99E45617DBB30CEAE6F71DA5 = { isa = PBXGroup; children = ( + 98028D7823ADA4594A8A2A22, + B22D28FB41374E7092AEE96C, + 4604F166A3FC6187967E2053, + 22DA9E57AAA25391C7D1FBC6, + FFF09A9DCDFECD32F25F0CDF, + B62A2E9AE08575992BAE53C5, + A4BF6FE6902ACF80D2E3DB60, + ECEFF5A78873B5B388046E7A ); name = native; sourceTree = ""; }; + 069A030A72EF1BAF3C469E6C = { isa = PBXGroup; children = ( + C12CEDFCB9C90CD0F767D7D0, + EED6FE335B473510B17D26CE, + DA337AFA3100AEEA04703024, + 106C22CF2DD971FCC2C2B45A, + 99E45617DBB30CEAE6F71DA5, + 35FF3215D779C44F5B715702, + 3F273BE94572DB6E747B0793 ); name = "juce_events"; sourceTree = ""; }; + 6B073962B4485C2D4419DB53 = { isa = PBXGroup; children = ( + FE75937BEEFDA021D7767B59, + 08DC64993F213D275B988996, + 04184D8A7003E2E77ED66CFA, + 7D12F1C172F94A735E17ADD4, + 7415D37F43E9CA0C5D924D17, + CC0BC6AC42809A4F4FA21452, + 11B4C67851A83C42B8AC00C0, + E86CBC37B034041BFF5A10DB, + D0B9859FCC534C510C7F37A7 ); name = colour; sourceTree = ""; }; + A86D046BBA3A3F7575A24A75 = { isa = PBXGroup; children = ( + 3706A97B56FC6BFF72B700DF, + 508E1F2760E66BD1A73C235E, + 98D731CDF5B6F60ED9198CC7, + A6C2A4889A4E70DE735EBA4B, + 87EDA764A802069F89CEC355, + FABF3148A2F5D3ACD48E8838, + 385368D4C7693E8903E0C345 ); name = contexts; sourceTree = ""; }; + 24D8A81F218FDA69056FE3D2 = { isa = PBXGroup; children = ( + 07492D83B5CEED0F975EEF77, + 2D585CE2B407C9072D9A22C7, + 6BBE4F2809E2AE0FE445302C, + 24EF2357DEC8017E6EEC7F93, + BD84136646D8700D41BE7EA2, + B53B1A87D9A58B3E056B4D8E, + 664211B1C9D22E34B60EF5E6, + CF6533A53CCA75A2FAFACAB8 ); name = images; sourceTree = ""; }; + 08C024383E9C0EBA20B9B7FB = { isa = PBXGroup; children = ( + 6B03CB11D5DEABAEE7F9E0F1, + 2C2B87B06DED242E1C4FE878, + BE95C8978503BFA15B38D3C4 ); name = "image_formats"; sourceTree = ""; }; + A106FCB178451935674C6F15 = { isa = PBXGroup; children = ( + 27C340103177AB0848BCCC66, + E71C493A0E10D1AE4A3DB2AB, + 12EE1FB670B7894E873E9A57, + 21F1833EDC766935B1CBD2D5, + BA710A8F1D5B056162B7CB3E, + 73AC2ABA9094C062E8DA773E, + 105A6621F66CC8034DC59C9A, + 32F08660DB00B6BD5C905FE3, + 80EEC26431102B212C9F873B, + 3D01072645251F386FCE636B, + B6F0FA98AD1AA6A3552A59FE, + D4DC657E222FE2BDE92EC58E, + 33A84E7FDD64568649CC89BF, + 1089C7A1FF43033FDA63F711, + BF76B8C5007732311AF50543, + 38E0255E6BB9600DEECD39F8 ); name = geometry; sourceTree = ""; }; + BB4F117CD3A2EA9CE8390AD0 = { isa = PBXGroup; children = ( + DF47E8197FF5A9309C062C61, + 1375CAA34ECE0B3B292EEF0E, + C30EE4EFDB359E2A9D58F677, + 989587AD131FF27180BEB3D1 ); name = placement; sourceTree = ""; }; + 0FC4D9918A17F33EEF6831F1 = { isa = PBXGroup; children = ( + 39DADA0AAD7468C535ECD5A2, + 3A7C2EA6B6C8E00BBE6A29B1, + 36DD59799C3C4279B18DEAD3, + 1118BAEA98C38755FEB9E274, + DEE1FC30E2FBB97921616CA9, + 9C5F40CA5A70DD8207F53047, + D1CADE1C7E74F37D0D57575B, + C3E0EB7CDA04886FA8323C17, + FEA724E71E582903094A455F, + E9C3901F0B4AC410025D2086, + 2C3298EC4F4D0DA7A6C4291F, + 90F9E3FB8FF07BA924E42DC0 ); name = fonts; sourceTree = ""; }; + 401A2016A5C336D8F8813895 = { isa = PBXGroup; children = ( + 0B8D7873618440F42487EB7B, + 3EE0B72A06759B14B7FC6836, + 720BE81011A4F54822E7F498, + 12C5FC07F64317F5CF1063A3, + 9B07C7F9F91CDF9465EE2AEE ); name = effects; sourceTree = ""; }; + AE4D88D94AF6F0F06DE97BB6 = { isa = PBXGroup; children = ( + 4F2F636FB9416BFBB1FF2473, + 373EBC4E488B3EF8A0A72CAF, + 6C608B44E265F761D09C91CB, + 61D55BA26F1410A26A007514, + 8EB9B4853F225BDB97D6626E, + 8154D2D681E028B8783E5331, + 0BBEDD3E8C0C2B7C4B52016A, + 2649F70294DB168919CBCAD3, + 5712EB90A8B51DBBC4E19A39, + 6704DC3810D991DADFF947AC, + DFEAB699C98B89FF0B85F557, + 5CABE190EBD0F4EEB763114A ); name = native; sourceTree = ""; }; + 980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = ( + 6B073962B4485C2D4419DB53, + A86D046BBA3A3F7575A24A75, + 24D8A81F218FDA69056FE3D2, + 08C024383E9C0EBA20B9B7FB, + A106FCB178451935674C6F15, + BB4F117CD3A2EA9CE8390AD0, + 0FC4D9918A17F33EEF6831F1, + 401A2016A5C336D8F8813895, + AE4D88D94AF6F0F06DE97BB6, + B523ED8502475B9BB3F392C7, + BF59C96BC3BCB29CCB421861 ); name = "juce_graphics"; sourceTree = ""; }; + 754D5C51D503AEDC94BCDDFC = { isa = PBXGroup; children = ( + A9B72D6049A3539B63AE79D5, + 79078F37EB6919AA440017FC, + C9AEAD8B2366F9508E63A178, + BF6F272194D16055D6A90D94, + 7C1A682DC90937487D6A4B0A, + 6314AFE1A17F085C028B4C82, + BAEAC53813F354CE5E045E9F, + 7BB9913643FCE12B216AD8C8, + BE4673AB9542C19D1C1C3A63 ); name = components; sourceTree = ""; }; + 75FA4FA813EAB3BA61D0FC37 = { isa = PBXGroup; children = ( + 30416A5D76A365DDC434987E, + A57A09A4137135A0AF6A0800, + 3090FB05992F02292F415E33, + 467EAE3A087BEF2C56EE3FF7, + 4242718AFF89762AA5CEC247, + 78C4635C8F91A9A513C6B9DA, + EA1313A79BF10BE60238F3D5, + CCFBB22AC379DC3B3A839CA1, + D27D41D4A06E286FDBDF7549, + 61B4084F81D01C8730F5952F, + 74C5EA2191F9A05902D76BB3, + A9958339328213FF76D8A79C, + BA8CA56A4E1F30984B8E4208, + EDDDD60231231B8221711145, + 6E0DA76710F31FA13F5168B3, + A18C61D2206141C03B24BF9B, + E963816786695359C91EF35D ); name = mouse; sourceTree = ""; }; + FDFB0903CA0E73107353483F = { isa = PBXGroup; children = ( + 1FC2BD9784C0FCB1D259C006, + 11545F94DD1628DE57CB7768, + 03E820FAB7405937F26D6EF2, + 8B0B9E8A37911F76577E3AA8, + 18666AEC1FCCE5D1514EB1FD, + 7FC1A0B1663AC9262104D715, + CD2AEFC254C92A49F2D5DA64, + 05F2CE704CA3BC807CC5E19A, + 08B1356929EB57FE6FCE238F, + E8FE41E21AD1029DD709FD7C, + 726A4629ED6E091D24471CA8, + 95305C4003CD4784CA20D1D1, + FC1201FBE79AED3FC831ABAF ); name = keyboard; sourceTree = ""; }; + 14C6A919ACDD67A04594931C = { isa = PBXGroup; children = ( + 3A9AB41831037CF68FF5719F, + CCB4250C97008BF3E5F12D0B, + 60704E9013507A9F9729017D, + B5B987C3029862AC58363F1A, + 897420C9C4D80F1AE5F80637, + 7BB52DAA6A783F0194EEF869, + B418FE6F1E2F268880AE00A8, + 4F854124B48F6358A992D164, + 3FA49B24986D1DA7CFA612ED, + 893D867B3AB93E4D96AF060E, + 5CE14F63495533AEDBD1688B, + E5DC4602843749A071B17576, + CB68DC2B2EA837D6869AAACD, + 171777847EB6194910E9CFEC, + 34E9DFB552CA9B8FEF8DEF1D, + 98EB4070281520EADE02212C, + A34C1EFF7C51BEB33C22FAFA, + 3543594CCB08E22D1EA8D2C7, + F534B4A3A4E46A8311A44649, + CFB2E2DFBCBAA9BF91E7CB35, + 10152F168CB3E2039DF18EA8, + 0EA9280C282850BAB49C1696, + A80CC48B8215D447643CA411, + 3839556028D5A749F48340FE, + 5CE4B86B0FCE258A8A12AB09, + 4E8A36ACA8A867C7511B280A, + DEA38275A65473112CD34252 ); name = widgets; sourceTree = ""; }; + F6D3F46A7453FE306581C066 = { isa = PBXGroup; children = ( + 014740E7C97145AFAD9BD60C, + 0388C01D765585853A700C6A, + 96DDB84D9722732A64DA57A2, + B428CC689CD359B29C67272B, + 5435804E495A87442FD7A6F0, + 3421ADCAF375264A71E5AF07, + 22A86C5C4967A5844323F7BA, + D33142A214D7AC7A8ED27E4A, + A2BBD7D58010E488BE904CCC, + B59DA3ED4F12C1FFEE433EE3, + 63DD8F6DD0DDC9A6F45E0C90, + 119712DC26D0E95E209E85BB, + DF3B7E1BC0AF0C826C47745B, + 35F42453CF2745BD254BC71E, + FAC8B4FB05C57F3461E3FE30, + EC93857F367028441A067F45, + 9AB36BCC26D5CC2CCC71E5E4, + 4DE313B7586BAFF5E9BB0506, + 924667AB0E27AC2CE1EB7828 ); name = windows; sourceTree = ""; }; + 9AE0D12907BC79E230FC6920 = { isa = PBXGroup; children = ( + 56D3242C281C2F19A2A6E81B, + 66425E2428080B75F0FFB2C4, + 52FD39B0A762C353D2FB09BC, + CE66BAB575B13375E1EE937C, + 3CF7FB16E7DFE7EC2636A45D, + 3507A95E429F11E5549286CB ); name = menus; sourceTree = ""; }; + 63EF7163E3CE53A8167FD628 = { isa = PBXGroup; children = ( + F664E58A0B3899FB98CF8E1C, + 4EC77B02BE7457DE877E332B, + 23189A59169BC89E95A4A496, + D7E6E92AA32B7D51489FD256, + 61C6FB83D4582BF2F84EB464, + 825BDA58C2694CE7F3FC2494, + 422D4D8EE3470F57D56064AA, + CF2A1897A3C5610A282A2713, + 108D97ACAEDE5A8DF0A483B7, + 3B32FA1EF99322D3DED5F162, + E453E312D607E60FAA6D1BF0, + 6B0F3AF3FE7B113C33112897, + 7F2A4EF4DE29CE775FF0F5E5, + D602AE751C3C12A6458FCCD5, + 052964DDB569D0D8C38B89FA, + 9C7B5E573807ED59065B54DA, + AC2D4E1081F69B20AAB47E2F, + BCEAC6346AB15421E3A5AB70, + F48AE8E1A9A1608BEB4C16A9, + 9B572F52342BE9169D435F1C, + 2B3A770317B04AAF24C28EF5, + CD9EDF2EE190AFB02CCC3F49, + DD40A3E06CA320D95F3924BA, + FD36FD1612A96DDE000211E0, + 65A50CC38E2A045D320D4224, + 32FF688C9F64E07EA3917682, + 74D36012BEBC6FDD72B0572F, + AF5FD9E66E46B600914FFE53, + C4C6D6B8731B400B29A3A4E7, + 0EC1E7F1AE41C81E1EA23B2E, + 1A9EC07147DD48C0D68BF304, + 7EF1F0BC4F4DE2986856DE41 ); name = layout; sourceTree = ""; }; + D5D3EABCD52C4657BAA44568 = { isa = PBXGroup; children = ( + 43D8FB16F1DE9F159C7A2F71, + B1C64086587109AA429DE418, + 4D050E552CC0A82297D0AC86, + 7DA4BF4F615254D8AFD37BEE, + 9E80EC17EE6322C452E9A774, + E38DE271B32DCC95E52C72DA, + BDC0E815578ED04901FB9251, + DE7617FB215CD22983E7D736, + C7EBDC32959BE4405ECE2148, + 195326647ACE1A61018358BC, + 927B5B18A655057D57C37D35, + E6C582E67DC0C4D0CCA18166, + E3FC888CC9FAD650C469ACC5, + 2ACD67859FBC33EB743708CB, + 1A642D2FFD6CB47C8634337B, + 0E0F146C817BAD44A024ECC7, + 99B22FB30FB36F358A932F6A, + 67F14D1D1869540E4B9540B5 ); name = buttons; sourceTree = ""; }; + F9F59A6E27133C09D32DD9A2 = { isa = PBXGroup; children = ( + A588C458AC395D8AC09A433D, + 50A201CF006DD19F648C429D, + 99971599D48BFF60437E0F44, + 731FFEA1471A03D05AED1B77, + FF93CCEC386B165840328831, + 12DD0DF90EEEBCE88873C8B1, + D33EBA9793C56D73135BD1F0, + BB94B67B5B0EC06015621F59, + 09768BD4CFA73C85F8353F3A, + 63CF475000C8419AE8D25BD2, + 53A5227FBB8C0DD8F4442599, + 2A835EF38887CAB750B49AC6, + 06574539E17A8703E442F691, + 725D10330456FC57C9FEA75D ); name = positioning; sourceTree = ""; }; + B59BB676733E03D09CEEC9A7 = { isa = PBXGroup; children = ( + C50F17EA37434C3C7B52C3BD, + 503F07193B665711417DF1FC, + BD1E818B710742D5EC07BAE8, + 47BD3D6D5AC81F74179942FA, + CC1307C0AEE134EEA46F68EA, + 122C499E8D63BC4F91ACC7B6, + 2708E4F2F73D88F73D8E54D0, + 35089DB1D126566F2B5DD724, + 12B479E0CD2AAE105820B20D, + 156E421F5B0D6CAD8D415F53, + 5996F037CD5993251871573E, + AA0DE5CA2B089393B110FD25, + 687E1D120E47EEFEEB73A4BF, + 26B73C77D47B146F92BEA265, + 431B8B4CCA364880B507DD4E ); name = drawables; sourceTree = ""; }; + 50A2C093F5AE2410908018DA = { isa = PBXGroup; children = ( + 4CE8628F7CAB483AFAFA01FD, + E2732267CD7C0C3BDB17456A, + F796E49F8209912C1E8E0ADC, + 49FED6A86A4F78CDB60CBC99, + 709D153E2940C162215E31F7, + 462F0D225347C4FDB943324C, + 591E3F5832C08B0841971B01, + 31C1E172911A4C726A85EA02, + 2D6DAE85F0A729F1FF761DC7, + 34BEABBC39678C06EA3BB307, + 63A3A467F124B67D19587D4F, + 36EFC492079F0B7F4A1CB099, + F6AE140F7CE1B08B52A8C8AF, + 03AB3157D77979CDD2601A86 ); name = properties; sourceTree = ""; }; + E4A2262D5F17C9E13403F764 = { isa = PBXGroup; children = ( + 2F7FE4AA919A66D5EFF65A86, + 329BD0A0243005D36A444135 ); name = lookandfeel; sourceTree = ""; }; + D529A26C2B113F5DC6DD3571 = { isa = PBXGroup; children = ( + 5725CB557A7D55CA59E18324, + EC180AD91D1B068D7A8F33BB, + 348002712045A8515DB393E4, + FBDA70B8FF6C6D669F9CF540, + 66E3497A9DCF883BCE6A27A8, + C8E9F901721D86767BD458B3, + 89F519023C03C9908F761BAE, + F6D1D5FD437BF40AC208AA2E, + ECCEB7E5D6B18F1376E34EDC, + 574BCE46C31D810F694B0651, + BD7E3C305F0976D5C5395090, + 1A9B80E0518B9AA9C34D5804, + EB9E8921A8D36EDD7FF3245B, + 1D0DD674EEEF98B1E1B8D8D8, + 0C7631EB40FF52D74D3D0A8D, + 86DF811859C602F24589AC3D, + C069C5FCE1539E9F85C7F29E, + 59591325C73706DB6BD2C887, + 98DD360F5D3D60539185DE90, + CAF961A7AFDB2830B419214C, + DF2D86EEA8031481C1FD08B2, + 5010D82E6ED57F014D8E88E3, + F26F7C7D6D9EBA2693914AA1, + C03AF9257B94504D7270416A, + 6CC2241F234EDD873FD5BDC7, + F4C50E1A3DC066396613C401 ); name = filebrowser; sourceTree = ""; }; + 7BF561FBBF76BCAD37304ED8 = { isa = PBXGroup; children = ( + 3FCF8E2901F23E806122E4AA, + 747D307A1A0D468103D4B20E, + 5D7DE60BB4DF4CE300B4F343, + 43A4661DD876DBD6A6E1F5C7, + C0608375ACE89B422431E9A9, + 0782BB99E1CCE0474B695C7D, + EB902A37F3AA5BC62D523F5B, + 20E63E36AE128883F4144BC3, + 3121916B396AFD0027FF1926 ); name = commands; sourceTree = ""; }; + 78AB3C7F8B92CBD9F21EDD39 = { isa = PBXGroup; children = ( + 9D18794763C086784ECE98D6, + AAC98CB517D934F42A25416E, + A1A96650D3211A87738A9B75, + 3ADBF520293DBBCE5A605902 ); name = misc; sourceTree = ""; }; + 44C5E35F6404D0D81E2F93BF = { isa = PBXGroup; children = ( + A58203002289D424A2CDF5DD, + 3B583D35FAD0DE89F00F17C0, + 18D1181C39F5A59423AC7A3E ); name = application; sourceTree = ""; }; + 0741D0D65503C2C4BB227EC8 = { isa = PBXGroup; children = ( + A9566A42230AACC1AFDC6C5F, + 1B3C2797B04E0FC6699DFDF0, + 6BBB8746C2C1BB5F3C3F1FC2, + 9F35ACC90F2A1C2E565148C8, + 7667028F4EC27060934DCF30, + FEB2CCC12BBABEEC23384FDD, + 3D8ED4E2F2DFEBA891A4BD7B, + DA0D464BE6E90C3668AD7C73, + 4871179A9D7239EDE34B33BE, + F8FB27C3434BB255CED42861, + D3AD73A360B24493ECC4E092, + 5ACCDDBA02C73CE15D6532E9, + 22CD1BF5E83A216A0D18260D, + 62AFEF7525003814092C79FA, + 3E11497CB4E6589C8A10E740, + 52D9F5FD82C858FE4F134773 ); name = native; sourceTree = ""; }; + ADFD648375272A1E67B3CB5B = { isa = PBXGroup; children = ( + 754D5C51D503AEDC94BCDDFC, + 75FA4FA813EAB3BA61D0FC37, + FDFB0903CA0E73107353483F, + 14C6A919ACDD67A04594931C, + F6D3F46A7453FE306581C066, + 9AE0D12907BC79E230FC6920, + 63EF7163E3CE53A8167FD628, + D5D3EABCD52C4657BAA44568, + F9F59A6E27133C09D32DD9A2, + B59BB676733E03D09CEEC9A7, + 50A2C093F5AE2410908018DA, + E4A2262D5F17C9E13403F764, + D529A26C2B113F5DC6DD3571, + 7BF561FBBF76BCAD37304ED8, + 78AB3C7F8B92CBD9F21EDD39, + 44C5E35F6404D0D81E2F93BF, + 0741D0D65503C2C4BB227EC8, + 760B6B73C7C332980801C0C7, + B875CBC2CBA6D01EE0AAB25C ); name = "juce_gui_basics"; sourceTree = ""; }; + 0738039F7E5D430630032154 = { isa = PBXGroup; children = ( + 5092F31788400A172E319CCB, + 15DD1FC7780F48C6DFF56321, + C3A77F115D67C0E24C65FC45, + 441F40BFFD11D433F2FED531, + 282C1DA3A161FEF2AD6F94A6, + F84DBFF75F5334EA86AB2E37, + 618F07B344089C7B13EED411 ); name = "code_editor"; sourceTree = ""; }; + 640482925394FB311FDAB984 = { isa = PBXGroup; children = ( + D6C9614D1C6493DBEE370646, + 82AD87FA68D9DDD78F9A4674 ); name = documents; sourceTree = ""; }; + 1E1530112868032A2C02F4A4 = { isa = PBXGroup; children = ( + 2E7A4C5E41B3BEBC444B5935, + 1E868017015269856168EBA1, + D226630AEE6B273B6B1ED622 ); name = embedding; sourceTree = ""; }; + AD533544879D32FDC9647970 = { isa = PBXGroup; children = ( + 8042D0D2B38EBD19652CBA55, + 896140063D12A19D1DCBF3DF ); name = lookandfeel; sourceTree = ""; }; + E2081DA359B95C05D825E9DB = { isa = PBXGroup; children = ( + 1CCB7B18759F7CEBB065C31E, + 0E74D38CAF5F8C914132F4D5, + 61941C6E24D2D04F51F59134, + 2CED94801F5481AE15648BF9, + BF2093D486040BEC64210EBB, + 9AB8510F26D6035159042BC2, + 74390F0BB6A54198B7EE12CE, + 8E6E18125D1046B97EF7AEE2, + B2F5CA0FBCECC10EEEAD11E9, + 2FD23F0C1CE490858228180E, + 33E3113EE5BF74F269FAD5EB, + 14105A8032081F6FC44F7F0B, + C2692BB8791ADE59158D9F21, + 61E83A490FBB38A8D7613146, + 476F1E00A832948D22B468C1, + 9D042E1CAB03CFCD4B937951 ); name = misc; sourceTree = ""; }; + 6478E04ACFBEA2CBBBE97006 = { isa = PBXGroup; children = ( + 3D5DB29BE2D59A93B5516273, + 2E02355C7790F4B6EA0CC56E, + DF590CD70352A30FA3BD9835, + 3CFD018C7CC9E7B8E1E6232D, + 99AAA16209763F3DA2113D1B, + CF0DB23C5950CB619CF8D812, + ABBA4018C1596481E7CD51CD, + 147A045E381AE58EC0C54984, + 8CA151FDAFC858B6535BF6A3, + 3342B88619BAEFF4C41078FD, + 93C594ECD5CEA7878114149A ); name = native; sourceTree = ""; }; + FC8FF0152858F140DEB1622C = { isa = PBXGroup; children = ( + 0738039F7E5D430630032154, + 640482925394FB311FDAB984, + 1E1530112868032A2C02F4A4, + AD533544879D32FDC9647970, + E2081DA359B95C05D825E9DB, + 6478E04ACFBEA2CBBBE97006, + 5E12C726C5DBB9C81963FAB5, + A97EC32975392744C62684F9 ); name = "juce_gui_extra"; sourceTree = ""; }; + EB8917291F41B7345B13B53E = { isa = PBXGroup; children = ( + D866C4735BF1EF0CA24FC1FB, + 87FB016388B49E97FCCBE69B, + 4F802BD98072EA49F7F4FE4A, + D6D0F076F54C7D669A9717C9, + 5786364EC4C531CDE41BDCEA, + 8878426C7F58CB22969E7133, + AC3EFDDC80761A45E8BE0624, + 43E4604C39E9A992216F6B98, + 295A470694011EBCA802822B, + A7B3B265DACC82D9E9CFB3DA, + D7239D5B984E07808E2DB28C, + D2C40CDF46D894BFC72BDC56, + E46977801F19277F4D3B324B, + 17422D876DAAF091ED089B8D, + B81FA2ED22BCC03D124031ED, + 58864C3D7F369EBE01E42C5C, + 8EEB4DEB11F3DF01BA6F7528, + FE9A5898294228EB7F439951, + 4CFB262AA9778621B8B33A7D, + EC89003BF30329181BB3EA4B, + D2F161366612A4CDA6372113 ); name = opengl; sourceTree = ""; }; + C92FEA88254DAAE793DB3CF7 = { isa = PBXGroup; children = ( + 22C2C932398DC1EFE0880A9A, + ED9FAEA9116C568942BAD000, + 6E1CFF5227B2F2E200DD9EC7, + AE394742FA0F2C6AA39906DD, + 7E6041874E267458572B93A1, + 8565630D87FEE505D50CE2EF, + D66048AF1E05FF836B2A813A ); name = native; sourceTree = ""; }; + 7CFCB9A92FB574419734C1F5 = { isa = PBXGroup; children = ( + EB8917291F41B7345B13B53E, + C92FEA88254DAAE793DB3CF7, + 53B187F6CFBDE72F4CEFE845, + 2184D5F7212394F4BC1C3B45 ); name = "juce_opengl"; sourceTree = ""; }; + 269792C267D2F1CB065C91CF = { isa = PBXGroup; children = ( + 2968B26144E09D6A6659E739, + 607083E28D3CAAC3C69D3010 ); name = playback; sourceTree = ""; }; + A76B071B010FC4CF03DFE5C0 = { isa = PBXGroup; children = ( + F93E02181A90B71B0C16629F ); name = capture; sourceTree = ""; }; + 0F1BFB71EE708138D6BAE774 = { isa = PBXGroup; children = ( + 49AD4268C6B2CF4E12806E56, + F28314027C0D8E36A9FE43E3, + 1580FF065A04106DBBA8F475, + 6DF10AFB26794D47F3AC783B, + 4ADF2B4274758FA3F435D6DB, + 7D01B73D4ECD4899173EE882 ); name = native; sourceTree = ""; }; + A23C0116EA7422F7F759BFEF = { isa = PBXGroup; children = ( + 269792C267D2F1CB065C91CF, + A76B071B010FC4CF03DFE5C0, + 0F1BFB71EE708138D6BAE774, + 47C2B600A45FAC095669304F, + 7B0C40F57724D3021F83F423 ); name = "juce_video"; sourceTree = ""; }; + E9CE0CCE2CE829712D4E41BD = { isa = PBXGroup; children = ( + 0596B4096DD627F972BB026F, + 21689DE0A3F6A8E3550F027F, + E9E9D81EA027C542C95D6294, + E0455F5194FF065007BE4B0B, + 810A00D2DFF4E5F57301390C, + 4DC690DD63DDBC55E62125D7, + 22237417DF1FEB16A5FDCC96, + 43B31F713FF681531675E618, + 069A030A72EF1BAF3C469E6C, + 980520A52BB3BF76E45AECA8, + ADFD648375272A1E67B3CB5B, + FC8FF0152858F140DEB1622C, + 7CFCB9A92FB574419734C1F5, + A23C0116EA7422F7F759BFEF ); name = "Juce Modules"; sourceTree = ""; }; + 267F5230CADEEAB9CA475C2F = { isa = PBXGroup; children = ( + 4EB06BB3A534C3865CD7A8B8, + 579D22DA6ECC930E19B7104A, + 4E0A38A8008E55C09BFBA199, + 33DAC2BB94AFCF8EB33A1417, + 7C7834D5AB7E6656A4CECF2F, + EADE149294A3A3509EC61E6B, + 0FCE8CD83D0FA98563EE2920, + 278099898E32942D72AB635A, + 868D4BEF6B94EB7BF659CF01, + 4FC0DDA3086EE26242655E66, + 766F3BD777CA786CD6BE023E, + 890F3D7DA5BC01DACF8E5431, + 575587359A2F65312CE97AC4, + 4CE1249813E63913B15BB51E, + C2072DE0D1FF6AA90A700D25, + 9AE7533B1AD68245E130B3AC, + 49DA3670A8CF79F133914D18, + 42B89D48E9FB252F1BC3796A ); name = "Juce Library Code"; sourceTree = ""; }; + 539DF80B9269EFCA8BF42818 = { isa = PBXGroup; children = ( + 148C8FE6639F6CDF0E92235D, + 16793951B75EADE5C08FD129 ); name = Resources; sourceTree = ""; }; + 0AE68D12A51E59B084E046C1 = { isa = PBXGroup; children = ( + DEB23C98FEC261260F63B6A4, + 4E1E8D79739D5A1771F1CE96, + 07FECAD8E43331B1058FABD0, + C4169C8CB5406154E9BCE2B2, + D45EF873A4BD7D0E56274D79, + E6448B3F03DD2B41519DF93D, + 683535B25CE57F64EC61EFD1, + 1220770583209247B4A994BC, + 10C5331E1325E856FFD8733B, + 70350B2642B3D062D0A8D239, + 6289926B08B7CD4A990134F5, + 8A6EC99172989940C08E809D ); name = Frameworks; sourceTree = ""; }; + 913372FE9DAAA74F5520A786 = { isa = PBXGroup; children = ( + D119A3871626EC2B8EFCB0D4 ); name = Products; sourceTree = ""; }; + 197E966E1B8F9DE1A6F9F0D4 = { isa = PBXGroup; children = ( + DC7F5A47CBDE7E3A9AA86F85, + E9CE0CCE2CE829712D4E41BD, + 267F5230CADEEAB9CA475C2F, + 539DF80B9269EFCA8BF42818, + 0AE68D12A51E59B084E046C1, + 913372FE9DAAA74F5520A786 ); name = Source; sourceTree = ""; }; + 2FE1E46B92ED7BD427F01D8C = { isa = XCBuildConfiguration; buildSettings = { + HEADER_SEARCH_PATHS = "../../JuceLibraryCode $(inherited)"; GCC_OPTIMIZATION_LEVEL = 0; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; ONLY_ACTIVE_ARCH = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "_DEBUG=1", "DEBUG=1", "JUCE_ObjCExtraSuffix=JSLvvV6j", "JUCE_UNIT_TESTS=1", "JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Debug; }; - 8EF7C7FFD55219581A5075F3 = { isa = XCBuildConfiguration; buildSettings = { + 9E3B64077ABD2AA72A51EE7C = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; + HEADER_SEARCH_PATHS = "../../JuceLibraryCode $(inherited)"; GCC_OPTIMIZATION_LEVEL = s; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.4; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -215,7 +2040,7 @@ "JUCE_ObjCExtraSuffix=JSLvvV6j", "JUCE_UNIT_TESTS=1", "JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Release; }; - 7FA986B99AFC795723E00AB0 = { isa = XCBuildConfiguration; buildSettings = { + 7F619F19FB1204B9E5AA1421 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -230,7 +2055,7 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; PRODUCT_NAME = "JuceDemo"; }; name = Debug; }; - 623F392572A48BDD48CE1CC4 = { isa = XCBuildConfiguration; buildSettings = { + E713D5D6C98E4FFEF301FC0C = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -245,60 +2070,70 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; PRODUCT_NAME = "JuceDemo"; }; name = Release; }; - 2B22E1D006C8AF43954EE79D = { isa = XCConfigurationList; buildConfigurations = ( - 7FA986B99AFC795723E00AB0, - 623F392572A48BDD48CE1CC4 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - C264FE1BF62B589B345E0C81 = { isa = XCConfigurationList; buildConfigurations = ( - F46B3E8DBAFA746E04F4F62C, - 8EF7C7FFD55219581A5075F3 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - AE930F136F638C3C939F7146 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C0A3C433D146C7E1FFCADFB2 ); runOnlyForDeploymentPostprocessing = 0; }; - 7A3A0C722E5F96990CA1B5F2 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 78A66C2F9A9E2E6D011D8E5E, - CE5C46E66485B7D77B5ADB4E, - 2E2DB52D03DD6A56FAC937A4, - 8E0E3B718F35E9E1DC3D89C5, - C4C49D2D5D27730E55B27BCB, - 2CD67851BCF3F24E0B5F82CF, - 29C9F0E2824F63B105234C0A, - 7EFB4E7D738BFFF90F49E0C0, - B69F5957B1729915BFB18735, - F920A5AB6D0FF01022575079, - 940BE0338CC1FEB65B4B82E2, - A3AF0F559DD97F1B908AC1CA, - 2C0AB902CB01E38D87A2A6A5, - ACD2210FDE1137548F995F85, - 2F6BFF7DD839160223057CF7, - 1552CF5A0A932C5EB88EC56C, - 969C49FA8B55C700ED848494, - AE1CB65D73BFB3FA707B59FF, - 99D9F5D6FC8A015C603B32C3, - 563DEC7941B88163A50E0945, - F5691895ACDC7B12DE88EFF4, - 4D5C0ED42C87FBE02A9C7BE6, - 80926D2B83ACF680958111EC, - 2201A04DDCFC361882F8EA62, - 2E98B1DEA8B7FC20ACCD2E6D, - 3A2EC17F8472C338D6A26278, - 36B5D100604D9A300187B773 ); runOnlyForDeploymentPostprocessing = 0; }; - 2E5F3CCB074AC0B18683A4F3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 36AEC0EAE7AB9D061AD9EFEF, - DEDBEF9AC48F8AD1502B6DC2, - 92A7143821252FB13891CC53, - 687BFA1946EAD55C5C39907C, - ED283D0ABEC2EC312E40C6B4, - 420A9C88B711F5E4997FAAD0, - 29F75103FFB220F2E10CF9A9, - C1437C4A64EB72D2A86729D3, - B9911F3AC6CADFB47D1EA8D7, - F1BAE9DCD179C8784FF28F8D, - 452052BBDBAF17DCC06EF521, - 0CFE603DE523940AF3352227 ); runOnlyForDeploymentPostprocessing = 0; }; - F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( - AE930F136F638C3C939F7146, - 7A3A0C722E5F96990CA1B5F2, - 2E5F3CCB074AC0B18683A4F3 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 39B98C60B57B831FE5215CDD; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 1609BCDD8EC2BA2A162B68F3; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; + C01737B8733CB01B27C1DF59 = { isa = XCConfigurationList; buildConfigurations = ( + 7F619F19FB1204B9E5AA1421, + E713D5D6C98E4FFEF301FC0C ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 4EBA6A51E838E294DDFC57F8 = { isa = XCConfigurationList; buildConfigurations = ( + 2FE1E46B92ED7BD427F01D8C, + 9E3B64077ABD2AA72A51EE7C ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 2E115993E9743E9E60D96434 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 933C39A0A20A89B767742D07 ); runOnlyForDeploymentPostprocessing = 0; }; + 8478974C956501F4EA996448 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + F7DF6AC4276AD42F4F360E37, + B99620051F4C5A2FAB1DE49C, + 49FBA0236A1917CEF50FC456, + F5B4E1CC211F5215D6E05B44, + 6D221136E94E784E793B9CD5, + B43C4A8F569137053CCEAD76, + 127ED5764EA5A3BF3CEA5BBD, + C4FCFE5612A1ED999FB9D51D, + B2A1C85517169CCEBB79CB9F, + 196F67D37488DD92EF434694, + BF03F7C64A1FA6A2E15A9780, + 4CA7D59ACB03776D785FEB12, + 7DFFCAD7929BE7BA645C65ED, + BCFD0CA15F13967BF82B26A4, + C33DAAC97DACAEE978D635F0, + 4FEDD45FE6A26543E055F259, + F600FD434B52D887C1FB973D, + 0C993072AF2728D62BF28094, + 1D0E1EAD88C7EF8CBB16E841, + 85EB509411E79E3F970C9653, + C24BF8E3142DBFD0139EFEE9, + BEBB1C4BA92F6D4CDE224A15, + 662202A6B86B11E3DBD96D58, + B00C72D607AF2A98366B40DE, + 8938D948E7A216EE7264F500, + BA3DAB221F557B4C346EAFCF, + 26973D9739CE05EF7F41C687, + 020A3C34BE41F0B9B4AC7A64, + 845872D67C4313E91DCD3A8E, + 6488F374D2A9B9FEDAC40859, + F72A0043671FED94178413A1, + B639B9459CB9EBE2A00A37F3, + A9BC6DEA9311B5C74977A95E, + 3FCA7FE72D0EF062CB350F88, + 574104B02E5C0BFCCDA099B1, + BF1DE7C7A64706C9FBD7284E, + 4A61E54E2ADD5FBBB1486257 ); runOnlyForDeploymentPostprocessing = 0; }; + 8C6D93B7CB9CCF8025AA68EB = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0BCC52797AD97E09EA6DF0E4, + 7C26A95A4D47D3456AFF77ED, + 7717E0EB94DE6020C99D29DD, + 4163960D3A804CB466831F16, + F544EDBF5507628552174493, + 05E4BF5B924C8055524AE9C8, + A6BA1ABCFD4082DE39CA569C, + 70E15D9B766035A214A5EBF2, + B290DD7AE127F3B205E64287, + 87EDE18A8381271AE00E982D, + BC729FCFEF515CAE82E43DF6, + FA833091C017889D43AEB5CE ); runOnlyForDeploymentPostprocessing = 0; }; + 9A1F85020B3ADFBFE3D383F2 = { isa = PBXNativeTarget; buildConfigurationList = 4EBA6A51E838E294DDFC57F8; buildPhases = ( + 2E115993E9743E9E60D96434, + 8478974C956501F4EA996448, + 8C6D93B7CB9CCF8025AA68EB ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = D119A3871626EC2B8EFCB0D4; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + C1B2C620111BD898B338CCA1 = { isa = PBXProject; buildConfigurationList = C01737B8733CB01B27C1DF59; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 197E966E1B8F9DE1A6F9F0D4; projectDirPath = ""; projectRoot = ""; targets = ( 9A1F85020B3ADFBFE3D383F2 ); }; }; - rootObject = FD051827ADE403C022034508; + rootObject = C1B2C620111BD898B338CCA1; } diff --git a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.sln b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.sln index 20a7a7bdce..082b75a5bc 100644 --- a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.sln +++ b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.sln @@ -1,6 +1,6 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 +Microsoft Visual Studio Solution File, Format Version 9.00 # Visual C++ Express 2005 -Project("{7A947A64-CDD8-D41D-F886-5E65A8ABDF81}") = "Juce Demo", "Juce Demo.vcproj", "{36211E76-A802-50EE-3B95-0202F4EB67ED}" +Project("{B49533A3-E69B-E288-783B-47C939C7FB33}") = "Juce Demo", "Juce Demo.vcproj", "{E9F746BA-9271-B101-E5E2-1615849AF13D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,10 +8,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.Build.0 = Debug|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.ActiveCfg = Release|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.Build.0 = Release|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Debug|Win32.Build.0 = Debug|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Release|Win32.ActiveCfg = Release|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj index dce0f77a99..79f8a61125 100644 --- a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj +++ b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj @@ -3,7 +3,7 @@ @@ -32,7 +32,7 @@ Optimization="0" BufferSecurityCheck="" DebugInformationFormat="4" - AdditionalIncludeDirectories="" + AdditionalIncludeDirectories="..\..\JuceLibraryCode" PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2005_78A5003=1" RuntimeLibrary="1" RuntimeTypeInfo="true" @@ -54,6 +54,7 @@ GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug\JuceDemo.pdb" SubSystem="2" + GenerateManifest="true" TargetMachine="1"/> @@ -85,10 +86,10 @@ TypeLibraryName=".\Release\JuceDemo.tlb" HeaderFileName=""/> @@ -215,15 +216,4269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - diff --git a/extras/JuceDemo/Builds/VisualStudio2005/icon.ico b/extras/JuceDemo/Builds/VisualStudio2005/icon.ico index b5dbab53ed..8a216cd7f4 100644 Binary files a/extras/JuceDemo/Builds/VisualStudio2005/icon.ico and b/extras/JuceDemo/Builds/VisualStudio2005/icon.ico differ diff --git a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.sln b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.sln index f83ac8aa65..f318ea42e4 100644 --- a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.sln +++ b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C++ Express 2008 -Project("{7A947A64-CDD8-D41D-F886-5E65A8ABDF81}") = "Juce Demo", "Juce Demo.vcproj", "{36211E76-A802-50EE-3B95-0202F4EB67ED}" +Project("{B49533A3-E69B-E288-783B-47C939C7FB33}") = "Juce Demo", "Juce Demo.vcproj", "{E9F746BA-9271-B101-E5E2-1615849AF13D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,10 +8,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.Build.0 = Debug|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.ActiveCfg = Release|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.Build.0 = Release|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Debug|Win32.Build.0 = Debug|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Release|Win32.ActiveCfg = Release|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj index 3838035562..0cb3b801f2 100644 --- a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj +++ b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj @@ -3,7 +3,7 @@ @@ -32,7 +32,7 @@ Optimization="0" BufferSecurityCheck="" DebugInformationFormat="4" - AdditionalIncludeDirectories="" + AdditionalIncludeDirectories="..\..\JuceLibraryCode" PreprocessorDefinitions="WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2008_78A5006=1" RuntimeLibrary="1" RuntimeTypeInfo="true" @@ -54,6 +54,7 @@ GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug\JuceDemo.pdb" SubSystem="2" + GenerateManifest="true" TargetMachine="1"/> @@ -85,10 +86,10 @@ TypeLibraryName=".\Release\JuceDemo.tlb" HeaderFileName=""/> @@ -215,15 +216,4269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - diff --git a/extras/JuceDemo/Builds/VisualStudio2008/icon.ico b/extras/JuceDemo/Builds/VisualStudio2008/icon.ico index b5dbab53ed..8a216cd7f4 100644 Binary files a/extras/JuceDemo/Builds/VisualStudio2008/icon.ico and b/extras/JuceDemo/Builds/VisualStudio2008/icon.ico differ diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.sln b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.sln index b43badbc4b..ed5bc76051 100644 --- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.sln +++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.sln @@ -1,5 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 11.00 -Project("{7A947A64-CDD8-D41D-F886-5E65A8ABDF81}") = "Juce Demo", "Juce Demo.vcxproj", "{36211E76-A802-50EE-3B95-0202F4EB67ED}" +# Visual Studio 2010 +Project("{B49533A3-E69B-E288-783B-47C939C7FB33}") = "Juce Demo", "Juce Demo.vcxproj", "{E9F746BA-9271-B101-E5E2-1615849AF13D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -7,10 +8,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.Build.0 = Debug|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.ActiveCfg = Release|Win32 - {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.Build.0 = Release|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Debug|Win32.Build.0 = Debug|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Release|Win32.ActiveCfg = Release|Win32 + {E9F746BA-9271-B101-E5E2-1615849AF13D}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj index bf4ac85c0b..c70bbf7f71 100644 --- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj +++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj @@ -12,7 +12,7 @@ - {36211E76-A802-50EE-3B95-0202F4EB67ED} + {E9F746BA-9271-B101-E5E2-1615849AF13D} @@ -38,9 +38,11 @@ .\Debug\ .\Debug\ JuceDemo + true .\Release\ .\Release\ JuceDemo + true @@ -53,7 +55,7 @@ Disabled EditAndContinue - %(AdditionalIncludeDirectories) + ..\..\JuceLibraryCode;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) MultiThreadedDebug true @@ -63,6 +65,7 @@ .\Debug\ Level4 true + true _DEBUG;%(PreprocessorDefinitions) @@ -91,7 +94,7 @@ MaxSpeed - %(AdditionalIncludeDirectories) + ..\..\JuceLibraryCode;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions) MultiThreaded true @@ -101,6 +104,7 @@ .\Release\ Level4 true + true NDEBUG;%(PreprocessorDefinitions) @@ -144,11 +148,1062 @@ + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + - - - - + + + + + + + + + + + + + + @@ -160,6 +1215,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters index 27e96ed573..87d777de08 100644 --- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters +++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters @@ -3,16 +3,310 @@ - {D3C1BE7C-161D-78D2-AA4A-AE5B28A49DC5} + {FFB45265-A014-1875-5188-CD02DF0DAA70} - {0F706C6E-4C56-28CC-6E17-621CE5C94904} + {CEE291D2-B794-F8AD-E5CB-C6464CCC6C25} - {2AA5AF01-B73D-17DA-570C-25BCC6A2DE34} + {E8DF8151-62C1-E4A8-7266-43ADD4C9728E} + + + {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} + + + {3247ED97-A75A-F50B-8CCC-46155E895806} + + + {A33A1E1D-AC2C-6382-8681-48B0FC374C60} + + + {3FD908F5-98C8-9A61-FC03-0BAF8913CBB0} + + + {11A75801-B027-40BD-4993-023023ACCBF7} + + + {EF2CAB40-0432-429B-C517-86ADF136BB8A} + + + {8F7EC212-3168-AD81-5064-C45BA838C408} + + + {CACD7B50-4DB3-76AF-A6E8-90DF94F8F594} + + + {9D270B31-2425-8FDB-84A4-6A2288FF5B2F} + + + {0F766DD4-A277-CB86-5647-42498C8B41E1} + + + {D64942B4-6984-3623-3347-45D472AE1C61} + + + {45C2CE26-EC4B-BA52-58F3-297C408E1483} + + + {01603E05-423B-5FC3-1BEE-E15ED33B5688} + + + {65CB28F8-0422-A8F3-9A17-959E12A1F8E2} + + + {2FE25F4C-E9DF-04A5-CAED-6E4B7CF28C59} + + + {0CD9E281-DDD0-91EC-6F77-EA9D9D5E0E1A} + + + {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + + + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} + + + {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} + + + {476C69CE-0B67-6B85-E888-45D91E37A29E} + + + {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} + + + {0608ADE9-66EF-1A19-6D57-12D07F76EB53} + + + {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} + + + {C9F6D785-BF78-5AA1-B479-111C65397864} + + + {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} + + + {DA0DC4AC-B511-A2D4-199A-C93454D6F114} + + + {91929C6F-7902-B87D-5260-2F6CBF8ACD93} + + + {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} + + + {4634FFAE-9586-A970-364C-4FDDA635F99F} + + + {F2B2F310-F30F-7166-42A9-9BF9C230DA78} + + + {5B662103-FB59-7229-1076-6A6665724ED0} + + + {F03654BC-34D8-F975-BEA3-750CC2783D23} + + + {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} + + + {FA891A58-9FDA-9651-43C4-714A19B5D08D} + + + {C79A4D23-7866-8F3E-AC39-BD68C52A9259} + + + {3C7C8F35-6C08-9866-6663-6FEFE2EFC9FC} + + + {7703D2CE-C32A-936A-0EEF-949FE6E52EB5} + + + {8D283B6C-13BA-9EF6-1B18-B1C393786943} + + + {928D8FCC-5E00-174B-6538-93E8D75AB396} + + + {1988E68A-A964-64CA-0E0C-26FF9BC5176C} + + + {3DF036EA-3B80-553B-2494-3AAC835CAE75} + + + {358AEA11-3F96-36AE-7B32-71373B5C5396} + + + {F2A38F45-6E55-E147-2E52-64A89FDD9D59} + + + {6172822C-01A5-E824-12DA-FA43FA934D35} + + + {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} + + + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} + + + {6322B88F-984A-C3CD-6263-38D7AA49B6EC} + + + {73C1E759-AD90-59A3-942E-2D10FAA29107} + + + {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} + + + {4926B3FF-E797-F586-857A-69D9703FA2D1} + + + {EBC65085-3AD5-280C-1A29-2B1683643AA1} + + + {413F481F-075C-2958-115C-D8268682FCB7} + + + {69E1179D-76EC-26DC-C3E6-6602ED26D783} + + + {C1A1A236-AB01-173E-96C3-0706BFF93B1E} + + + {1182303F-ECA3-166D-AC0C-92C5E762CB93} + + + {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} + + + {E37D25CD-4350-4614-055B-7ABC55E67895} + + + {FFC6E1CC-C772-75E6-5087-FB5D4E016799} + + + {8E43579F-C185-266D-DD67-F8B95BD80F2F} + + + {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} + + + {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} + + + {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} + + + {75F1F352-251A-75E0-D941-8431588F5C1E} + + + {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} + + + {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} + + + {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} + + + {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} + + + {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} + + + {5A0AA36E-3957-E413-14C6-31CBE15271DF} + + + {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} + + + {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} + + + {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} + + + {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} + + + {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} + + + {61712B09-5783-ADFA-2001-5A0C3D7764EB} + + + {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} + + + {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} + + + {C60A6FCA-9462-922E-AD8D-69F10C9049AF} + + + {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} + + + {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} + + + {4980B18D-FEDE-B773-F254-E3B5207D81F0} + + + {66C9B809-8739-A217-C78D-A15D6089B8E3} + + + {C413328B-5D81-89EE-F4F3-75752E700DE4} + + + {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} + + + {2D8D0E19-E676-83EB-38D9-F73500DD6B79} + + + {151B49D8-6102-F802-1C07-D59931BC0574} + + + {72A923E2-C729-DB92-D7BF-A9D4AFAE5896} + + + {0E43EA8A-95EE-4253-E1B7-160F38ACBB00} + + + {7F11E7D2-54C0-2A36-5F15-BEC0A5374A08} + + + {EE985DEA-CD83-8132-7219-542BB1DAD560} - {F7048EA6-F4B2-F31B-E402-E05D678A1111} + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} @@ -100,49 +394,2476 @@ Juce Demo\Binary Data - - Juce Library Code + + Juce Modules\juce_audio_basics\buffers - - Juce Library Code + + Juce Modules\juce_audio_basics\buffers - - Juce Library Code + + Juce Modules\juce_audio_basics\midi - - Juce Library Code + + Juce Modules\juce_audio_basics\midi - - Juce Library Code + + Juce Modules\juce_audio_basics\midi - - - - Juce Demo - - - Juce Demo - - - Juce Demo\Demos - - - Juce Demo\Demos - - - Juce Demo\Demos - - - Juce Demo\Demos - - - Juce Demo\Demos - - - Juce Demo\Demos - - - Juce Demo\Demos + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\audio_cd + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\json + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\lookandfeel + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + Juce Demo + + + Juce Demo + + + Juce Demo\Demos + + + Juce Demo\Demos + + + Juce Demo\Demos + + + Juce Demo\Demos + + + Juce Demo\Demos + + + Juce Demo\Demos + + + Juce Demo\Demos + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\audio_cd + + + Juce Modules\juce_audio_devices\audio_cd + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\json + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\lookandfeel + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl + + + Juce Modules\juce_video\playback + + + Juce Modules\juce_video\playback + + + Juce Modules\juce_video\capture + + + Juce Modules\juce_video Juce Library Code diff --git a/extras/JuceDemo/Builds/VisualStudio2010/icon.ico b/extras/JuceDemo/Builds/VisualStudio2010/icon.ico index b5dbab53ed..8a216cd7f4 100644 Binary files a/extras/JuceDemo/Builds/VisualStudio2010/icon.ico and b/extras/JuceDemo/Builds/VisualStudio2010/icon.ico differ diff --git a/extras/JuceDemo/Builds/iOS/Icon.icns b/extras/JuceDemo/Builds/iOS/Icon.icns index 7763077cfb..a1d2ba8423 100644 Binary files a/extras/JuceDemo/Builds/iOS/Icon.icns and b/extras/JuceDemo/Builds/iOS/Icon.icns differ diff --git a/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj b/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj index 6c93b035fc..adae1a2f00 100644 --- a/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj @@ -3,192 +3,2020 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { - 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; - 7938A4501BDD574C4121B988 = { isa = PBXBuildFile; fileRef = 0D376A9686DFA1EAF983841C; }; - 8223C2805B1A9ECA27926EB5 = { isa = PBXBuildFile; fileRef = 1CFED196602026EF91937A0E; }; - 3BE296F09A47C0ECE4D91CF5 = { isa = PBXBuildFile; fileRef = 90E63FC1333F952D526FF194; }; - 268F2BF480CF9844E2F2B974 = { isa = PBXBuildFile; fileRef = B72353F9624D99DB6F93E400; }; - F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; - 1DF18F6B9CCFF7BD07C36AC2 = { isa = PBXBuildFile; fileRef = CE3A43E4FB4D61350C000764; }; - C0A3C433D146C7E1FFCADFB2 = { isa = PBXBuildFile; fileRef = 4ADECB09FD213B2E910EA229; }; - 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; - CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; - 2E2DB52D03DD6A56FAC937A4 = { isa = PBXBuildFile; fileRef = 0704E2D6B0D1B38FBBBC6B85; }; - 8E0E3B718F35E9E1DC3D89C5 = { isa = PBXBuildFile; fileRef = D856109CF311BB94D8EE8826; }; - C4C49D2D5D27730E55B27BCB = { isa = PBXBuildFile; fileRef = 411D5D0920812790F4F78462; }; - 2CD67851BCF3F24E0B5F82CF = { isa = PBXBuildFile; fileRef = 67F817AAB55ED2BE16B376BF; }; - 29C9F0E2824F63B105234C0A = { isa = PBXBuildFile; fileRef = FBCE524D94BF5BE0160142D4; }; - 7EFB4E7D738BFFF90F49E0C0 = { isa = PBXBuildFile; fileRef = 048CEE4CC06227D8A57E47F2; }; - B69F5957B1729915BFB18735 = { isa = PBXBuildFile; fileRef = 7D65727C8F72F2BCC9A17D34; }; - F920A5AB6D0FF01022575079 = { isa = PBXBuildFile; fileRef = 268D7AFE2F3822C2C8E9A612; }; - 940BE0338CC1FEB65B4B82E2 = { isa = PBXBuildFile; fileRef = E072353A8A1F26CFB7090905; }; - A3AF0F559DD97F1B908AC1CA = { isa = PBXBuildFile; fileRef = F23738E4EFD2323063F82F1C; }; - 2C0AB902CB01E38D87A2A6A5 = { isa = PBXBuildFile; fileRef = B7F4DAFA5F8F1FC976C8B55D; }; - ACD2210FDE1137548F995F85 = { isa = PBXBuildFile; fileRef = F7620D8D567CCE463ADDE0A6; }; - 2F6BFF7DD839160223057CF7 = { isa = PBXBuildFile; fileRef = DA3BCFCC5BF07FC689DB5C34; }; - 1552CF5A0A932C5EB88EC56C = { isa = PBXBuildFile; fileRef = D6EF70641473A3E7C0DC5168; }; - 969C49FA8B55C700ED848494 = { isa = PBXBuildFile; fileRef = 3BC17D4051063C1BF66548C6; }; - AE1CB65D73BFB3FA707B59FF = { isa = PBXBuildFile; fileRef = 08B45C29F5EEC874E014D122; }; - 99D9F5D6FC8A015C603B32C3 = { isa = PBXBuildFile; fileRef = D5F519861915C136BAA8D87A; }; - 563DEC7941B88163A50E0945 = { isa = PBXBuildFile; fileRef = 402768B1A52E32348D505F18; }; - F5691895ACDC7B12DE88EFF4 = { isa = PBXBuildFile; fileRef = F2EB42A070E349D77ACF77C9; }; - 4D5C0ED42C87FBE02A9C7BE6 = { isa = PBXBuildFile; fileRef = CF7FFEAFF4F386ED4DAED523; }; - 80926D2B83ACF680958111EC = { isa = PBXBuildFile; fileRef = E6EF5CE04768BA5B10050D51; }; - 2201A04DDCFC361882F8EA62 = { isa = PBXBuildFile; fileRef = BA05C84C3258A1978AF3D357; }; - 2E98B1DEA8B7FC20ACCD2E6D = { isa = PBXBuildFile; fileRef = F42C91375F3314CA6EE65697; }; - 3A2EC17F8472C338D6A26278 = { isa = PBXBuildFile; fileRef = 4D526A336B2E97ED42CADAD7; }; - 36B5D100604D9A300187B773 = { isa = PBXBuildFile; fileRef = 8679333E781A0A0116AE5D26; }; - 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 0D376A9686DFA1EAF983841C = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 1CFED196602026EF91937A0E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; - 90E63FC1333F952D526FF194 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - B72353F9624D99DB6F93E400 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; - 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - CE3A43E4FB4D61350C000764 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; - 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; - 4ADECB09FD213B2E910EA229 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; - 885A20D277AD743C21C822B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = "SOURCE_ROOT"; }; - 42291DB48BF81754D90FE200 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = "SOURCE_ROOT"; }; - 49138F5652E637AA67CD4B70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = "SOURCE_ROOT"; }; - 18BDC68F9701862603871A7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucedemo_headers.h"; path = "../../Source/jucedemo_headers.h"; sourceTree = "SOURCE_ROOT"; }; - 0704E2D6B0D1B38FBBBC6B85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = "SOURCE_ROOT"; }; - D793BFCCD11E218E5CED3320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = "SOURCE_ROOT"; }; - D856109CF311BB94D8EE8826 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = "SOURCE_ROOT"; }; - FC989E104DDB02E8A99B6564 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = "SOURCE_ROOT"; }; - 411D5D0920812790F4F78462 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = "SOURCE_ROOT"; }; - 570DE12AFA65E0EF97A76118 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = "SOURCE_ROOT"; }; - 67F817AAB55ED2BE16B376BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = "SOURCE_ROOT"; }; - 91ACA90EFCAD4614B3ECC0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = "SOURCE_ROOT"; }; - FBCE524D94BF5BE0160142D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = "SOURCE_ROOT"; }; - 865617D983052FBE0ADDDEDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = "SOURCE_ROOT"; }; - 048CEE4CC06227D8A57E47F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = "SOURCE_ROOT"; }; - 8BEA0B754661F3038DBAF558 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = "SOURCE_ROOT"; }; - 7D65727C8F72F2BCC9A17D34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 268D7AFE2F3822C2C8E9A612 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - E072353A8A1F26CFB7090905 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DirectShowDemo.cpp; path = ../../Source/demos/DirectShowDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F23738E4EFD2323063F82F1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - B7F4DAFA5F8F1FC976C8B55D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F7620D8D567CCE463ADDE0A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - DA3BCFCC5BF07FC689DB5C34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - D6EF70641473A3E7C0DC5168 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 3BC17D4051063C1BF66548C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = "SOURCE_ROOT"; }; - A6FB61B33BDDB0880203370C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = "SOURCE_ROOT"; }; - 08B45C29F5EEC874E014D122 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - D5F519861915C136BAA8D87A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - 402768B1A52E32348D505F18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - F2EB42A070E349D77ACF77C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - CF7FFEAFF4F386ED4DAED523 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; - ACFD7F6AAFC09C234D15501D = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = "SOURCE_ROOT"; }; - A869663CA0E96FE15BB42A97 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = "SOURCE_ROOT"; }; - A76B69386F1F19647804510D = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = "SOURCE_ROOT"; }; - 013E12213AD7B4BEB28A31BE = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = "SOURCE_ROOT"; }; - 3369CDF7AFD79D6F3B3744B1 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Binary Data/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; - C7327AD5191A22C1FBD4F5F9 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = "SOURCE_ROOT"; }; - EE37A0ECE471A928C6170F9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; - E6EF5CE04768BA5B10050D51 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; - CC7EB9777A4DE3408705625C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; - A6B37799E63CCE882A3383FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; - BA05C84C3258A1978AF3D357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = "SOURCE_ROOT"; }; - F42C91375F3314CA6EE65697 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = "SOURCE_ROOT"; }; - 4D526A336B2E97ED42CADAD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = "SOURCE_ROOT"; }; - 8679333E781A0A0116AE5D26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = "SOURCE_ROOT"; }; - 1045A435754FDEACC6D7259C = { isa = PBXGroup; children = ( - 0704E2D6B0D1B38FBBBC6B85, - D793BFCCD11E218E5CED3320, - D856109CF311BB94D8EE8826, - FC989E104DDB02E8A99B6564, - 411D5D0920812790F4F78462, - 570DE12AFA65E0EF97A76118, - 67F817AAB55ED2BE16B376BF, - 91ACA90EFCAD4614B3ECC0C5, - FBCE524D94BF5BE0160142D4, - 865617D983052FBE0ADDDEDF, - 048CEE4CC06227D8A57E47F2, - 8BEA0B754661F3038DBAF558, - 7D65727C8F72F2BCC9A17D34, - 268D7AFE2F3822C2C8E9A612, - E072353A8A1F26CFB7090905, - F23738E4EFD2323063F82F1C, - B7F4DAFA5F8F1FC976C8B55D, - F7620D8D567CCE463ADDE0A6, - DA3BCFCC5BF07FC689DB5C34, - D6EF70641473A3E7C0DC5168, - 3BC17D4051063C1BF66548C6, - A6FB61B33BDDB0880203370C, - 08B45C29F5EEC874E014D122, - D5F519861915C136BAA8D87A, - 402768B1A52E32348D505F18, - F2EB42A070E349D77ACF77C9, - CF7FFEAFF4F386ED4DAED523 ); name = Demos; sourceTree = ""; }; - 7B2518B268DCBBF7B74F2B1D = { isa = PBXGroup; children = ( - ACFD7F6AAFC09C234D15501D, - A869663CA0E96FE15BB42A97, - A76B69386F1F19647804510D, - 013E12213AD7B4BEB28A31BE, - 3369CDF7AFD79D6F3B3744B1, - C7327AD5191A22C1FBD4F5F9 ); name = "Binary Data"; sourceTree = ""; }; - D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( - 885A20D277AD743C21C822B5, - 42291DB48BF81754D90FE200, - 49138F5652E637AA67CD4B70, - 18BDC68F9701862603871A7A, - 1045A435754FDEACC6D7259C, - 7B2518B268DCBBF7B74F2B1D ); name = "Juce Demo"; sourceTree = ""; }; - 4C2E644EAC72C263D09C74BB = { isa = PBXGroup; children = ( - EE37A0ECE471A928C6170F9B, - E6EF5CE04768BA5B10050D51, - CC7EB9777A4DE3408705625C, - A6B37799E63CCE882A3383FB, - BA05C84C3258A1978AF3D357, - F42C91375F3314CA6EE65697, - 4D526A336B2E97ED42CADAD7, - 8679333E781A0A0116AE5D26 ); name = "Juce Library Code"; sourceTree = ""; }; - 019CD423F1EFF7A1A0A079DD = { isa = PBXGroup; children = ( - 1A9DEA62F6A3CD1FB5CF105B, - 4ADECB09FD213B2E910EA229 ); name = Resources; sourceTree = ""; }; - 244B9AF7D858999910FD243E = { isa = PBXGroup; children = ( - 7B6D428682221857EAEA1C7D, - 0D376A9686DFA1EAF983841C, - 1CFED196602026EF91937A0E, - 90E63FC1333F952D526FF194, - B72353F9624D99DB6F93E400, - 4A96850C150C1C6D87A0D21A, - CE3A43E4FB4D61350C000764 ); name = Frameworks; sourceTree = ""; }; - 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( - 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = ""; }; - 1609BCDD8EC2BA2A162B68F3 = { isa = PBXGroup; children = ( - D6A4B94A747BFCF299B17932, - 4C2E644EAC72C263D09C74BB, - 019CD423F1EFF7A1A0A079DD, - 244B9AF7D858999910FD243E, - 3F406773369804D0FBF2789A ); name = Source; sourceTree = ""; }; - F46B3E8DBAFA746E04F4F62C = { isa = XCBuildConfiguration; buildSettings = { - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; + 0BCC52797AD97E09EA6DF0E4 = { isa = PBXBuildFile; fileRef = DEB23C98FEC261260F63B6A4; }; + 874D7495FAC2F4537D6AA989 = { isa = PBXBuildFile; fileRef = EE3E9902579904E57D1A5A18; }; + F544EDBF5507628552174493 = { isa = PBXBuildFile; fileRef = D45EF873A4BD7D0E56274D79; }; + A2DE43FDC367184A8239D7B2 = { isa = PBXBuildFile; fileRef = 3E51C5F35FB095AF4F0E373F; }; + 74CCB5B6EA1B00750D1831DA = { isa = PBXBuildFile; fileRef = 6FCC44A5DB0B881454AAD300; }; + B2E59607B91E74E94565E022 = { isa = PBXBuildFile; fileRef = 2425625EE014356B5980B238; }; + 87EDE18A8381271AE00E982D = { isa = PBXBuildFile; fileRef = 70350B2642B3D062D0A8D239; }; + 44198BB3EF9EB0F469BA45E7 = { isa = PBXBuildFile; fileRef = 72421270611D3B09781CA634; }; + 933C39A0A20A89B767742D07 = { isa = PBXBuildFile; fileRef = 16793951B75EADE5C08FD129; }; + F7DF6AC4276AD42F4F360E37 = { isa = PBXBuildFile; fileRef = D4CA129DE8BC9F6EDC2BCAD2; }; + B99620051F4C5A2FAB1DE49C = { isa = PBXBuildFile; fileRef = 2CE3420FBFD3136621EAFB1D; }; + 49FBA0236A1917CEF50FC456 = { isa = PBXBuildFile; fileRef = D0C3588FF8EF229B8F0CBCA8; }; + F5B4E1CC211F5215D6E05B44 = { isa = PBXBuildFile; fileRef = F10EEBAD564A55F50CEE7181; }; + 6D221136E94E784E793B9CD5 = { isa = PBXBuildFile; fileRef = 200550A2DDDB012E26D6D005; }; + B43C4A8F569137053CCEAD76 = { isa = PBXBuildFile; fileRef = F87BBC8FD2374628CFBC2EA6; }; + 127ED5764EA5A3BF3CEA5BBD = { isa = PBXBuildFile; fileRef = 2275EB468CEA505ADE14C225; }; + C4FCFE5612A1ED999FB9D51D = { isa = PBXBuildFile; fileRef = 690BE5039AADEF787D6E13D9; }; + B2A1C85517169CCEBB79CB9F = { isa = PBXBuildFile; fileRef = 8F37F4E9DB8E42EDF29DE166; }; + 196F67D37488DD92EF434694 = { isa = PBXBuildFile; fileRef = 8A29D461DA6C72497B49189C; }; + BF03F7C64A1FA6A2E15A9780 = { isa = PBXBuildFile; fileRef = 3C35334FE9451182FE7EC2B8; }; + 4CA7D59ACB03776D785FEB12 = { isa = PBXBuildFile; fileRef = 3D11CF883EC31F74D97920D3; }; + 7DFFCAD7929BE7BA645C65ED = { isa = PBXBuildFile; fileRef = 73108C67E00C3C958FFD23D4; }; + BCFD0CA15F13967BF82B26A4 = { isa = PBXBuildFile; fileRef = 83D67DD10BD2ACDC0984ADCB; }; + C33DAAC97DACAEE978D635F0 = { isa = PBXBuildFile; fileRef = 877D61C08ADC5B13C2627327; }; + 4FEDD45FE6A26543E055F259 = { isa = PBXBuildFile; fileRef = 94A9A7DF00C64509E9B5A337; }; + F600FD434B52D887C1FB973D = { isa = PBXBuildFile; fileRef = 81641BC45BAA99D207B153A7; }; + 0C993072AF2728D62BF28094 = { isa = PBXBuildFile; fileRef = 5ED8A827D78184F2E01A5511; }; + 1D0E1EAD88C7EF8CBB16E841 = { isa = PBXBuildFile; fileRef = 01E2555EA1347B8C8CFC438D; }; + 85EB509411E79E3F970C9653 = { isa = PBXBuildFile; fileRef = BD69603F635BE80BC99C7865; }; + C24BF8E3142DBFD0139EFEE9 = { isa = PBXBuildFile; fileRef = C87942E350F974B22047D457; }; + BEBB1C4BA92F6D4CDE224A15 = { isa = PBXBuildFile; fileRef = 6649385F220EB0B654AB61FB; }; + 662202A6B86B11E3DBD96D58 = { isa = PBXBuildFile; fileRef = 579D22DA6ECC930E19B7104A; }; + B00C72D607AF2A98366B40DE = { isa = PBXBuildFile; fileRef = 33DAC2BB94AFCF8EB33A1417; }; + 8938D948E7A216EE7264F500 = { isa = PBXBuildFile; fileRef = 7C7834D5AB7E6656A4CECF2F; }; + BA3DAB221F557B4C346EAFCF = { isa = PBXBuildFile; fileRef = EADE149294A3A3509EC61E6B; }; + 26973D9739CE05EF7F41C687 = { isa = PBXBuildFile; fileRef = 0FCE8CD83D0FA98563EE2920; }; + 020A3C34BE41F0B9B4AC7A64 = { isa = PBXBuildFile; fileRef = 278099898E32942D72AB635A; }; + 845872D67C4313E91DCD3A8E = { isa = PBXBuildFile; fileRef = 868D4BEF6B94EB7BF659CF01; }; + 6488F374D2A9B9FEDAC40859 = { isa = PBXBuildFile; fileRef = 4FC0DDA3086EE26242655E66; }; + F72A0043671FED94178413A1 = { isa = PBXBuildFile; fileRef = 766F3BD777CA786CD6BE023E; }; + B639B9459CB9EBE2A00A37F3 = { isa = PBXBuildFile; fileRef = 890F3D7DA5BC01DACF8E5431; }; + A9BC6DEA9311B5C74977A95E = { isa = PBXBuildFile; fileRef = 575587359A2F65312CE97AC4; }; + 3FCA7FE72D0EF062CB350F88 = { isa = PBXBuildFile; fileRef = 4CE1249813E63913B15BB51E; }; + 574104B02E5C0BFCCDA099B1 = { isa = PBXBuildFile; fileRef = C2072DE0D1FF6AA90A700D25; }; + BF1DE7C7A64706C9FBD7284E = { isa = PBXBuildFile; fileRef = 9AE7533B1AD68245E130B3AC; }; + 4A61E54E2ADD5FBBB1486257 = { isa = PBXBuildFile; fileRef = 49DA3670A8CF79F133914D18; }; + 0074FA7EFC2898B71E22A945 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + 013DEB204CA02DFE8B745893 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + 014740E7C97145AFAD9BD60C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 01E2555EA1347B8C8CFC438D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingDemo.cpp; path = ../../Source/demos/ThreadingDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 0388C01D765585853A700C6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 03AB3157D77979CDD2601A86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 03DA010C988E825AF3EFAE7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 03E820FAB7405937F26D6EF2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04184D8A7003E2E77ED66CFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + 052964DDB569D0D8C38B89FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0574EFED0877A72D12A472E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + 05F2CE704CA3BC807CC5E19A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + 0655D6F5C85104403FC367AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06574539E17A8703E442F691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06D8EAABB6D94D55189361D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + 070230F8B36CFD14E7EEAD71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07492D83B5CEED0F975EEF77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + 077C8710E1F237529330ED3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 0782BB99E1CCE0474B695C7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + 08B1356929EB57FE6FCE238F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + 08DC64993F213D275B988996 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + 09768BD4CFA73C85F8353F3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0A049E4E98CA579D41D98432 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + 0B8D7873618440F42487EB7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0BA047892DDF9066220EEDD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + 0BBEDD3E8C0C2B7C4B52016A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 0C4CA33345C6952BC8409D71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 0C7631EB40FF52D74D3D0A8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0D244B27274E1E7AB434C32B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D2F4EE7A540CC2AAFD301E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D59D15FB8BC9FE203586FB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DFB01AAFD08E7BAD09DDAA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 0E0F146C817BAD44A024ECC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 0E74D38CAF5F8C914132F4D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0EA9280C282850BAB49C1696 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0EC1E7F1AE41C81E1EA23B2E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0F77650615781AFD4374443B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 0FCE8CD83D0FA98563EE2920 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 1007D3CD4E3D162CCE176520 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10152F168CB3E2039DF18EA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 102DDBEEEAD7EE71450C1EB9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 105A6621F66CC8034DC59C9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 106B20CB3C94A1E72B19A7F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1089C7A1FF43033FDA63F711 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 108D97ACAEDE5A8DF0A483B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10C0D0A587B834EA781EF5D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + 1118BAEA98C38755FEB9E274 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + 1139AACAD8CE6CD6E9A770B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + 114E68D51824D42B0FFE9651 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11545F94DD1628DE57CB7768 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 119712DC26D0E95E209E85BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11B4C67851A83C42B8AC00C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11E6C0893A679EAD806DA5C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 122C499E8D63BC4F91ACC7B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + 1264CE16C2930583C8AB553D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 129BC61A6A0478DC45B5F8E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 12B4120D10259DF8461D689F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12B479E0CD2AAE105820B20D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12B9DB1413B7647920B53C07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + 12C5FC07F64317F5CF1063A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 12DD0DF90EEEBCE88873C8B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 12EE1FB670B7894E873E9A57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 1375CAA34ECE0B3B292EEF0E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + 137FD6DAC3FF840EBABD78E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 13C15669B35168563D72F6F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14105A8032081F6FC44F7F0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + 147A045E381AE58EC0C54984 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 148C8FE6639F6CDF0E92235D = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; + 149369775B267A04F9B0ACAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + 156E421F5B0D6CAD8D415F53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 1580FF065A04106DBBA8F475 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 15B78E8E81D489F2711FDFBE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + 15DD1FC7780F48C6DFF56321 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 16793951B75EADE5C08FD129 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; + 16A6895439607DD8E651BA87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 171777847EB6194910E9CFEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 17422D876DAAF091ED089B8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + 1798F0BC1F2B2DF2F13193AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18666AEC1FCCE5D1514EB1FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18D1181C39F5A59423AC7A3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_gui_basics/application/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + 18E9157D37A11EDBDA35131A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + 195326647ACE1A61018358BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + 19789C9C8EDD3CC9F37592C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A03C9B88919CA79D176E738 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 1A5382EC797EF333806B5AFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A642D2FFD6CB47C8634337B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A9B80E0518B9AA9C34D5804 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A9EC07147DD48C0D68BF304 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1B3C2797B04E0FC6699DFDF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BDF3CAE40B1FDD559BC3DD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + 1C36F82D875B81C26A5752AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1CCB7B18759F7CEBB065C31E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + 1D0DD674EEEF98B1E1B8D8D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1D3DA514A7B46A2A32A32060 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1DFE892B4249D1DA3549F13E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 1E868017015269856168EBA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 1EA77055DF14613DD32065F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + 1EC913A06CFCE35C9AE2AD29 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoRecordPage.h; path = ../../Source/demos/AudioDemoRecordPage.h; sourceTree = "SOURCE_ROOT"; }; + 1F7DFE97A858AACDAF9EBB7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + 1FC2BD9784C0FCB1D259C006 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1FD483D22D49AB7C716008DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + 200550A2DDDB012E26D6D005 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoRecordPage.cpp; path = ../../Source/demos/AudioDemoRecordPage.cpp; sourceTree = "SOURCE_ROOT"; }; + 20149C04068D071819A7BAFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 20C67AA68186D267436E7F39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + 20D1EA31FD53A558EBD278B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + 20E63E36AE128883F4144BC3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 21605BADE3692FBBAE44F961 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + 2173828BA5C245AE8C598C6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2184D5F7212394F4BC1C3B45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + 21F1833EDC766935B1CBD2D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22132E527A92309318A2D572 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2275EB468CEA505ADE14C225 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSynthPage.cpp; path = ../../Source/demos/AudioDemoSynthPage.cpp; sourceTree = "SOURCE_ROOT"; }; + 22A86C5C4967A5844323F7BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22C2C932398DC1EFE0880A9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/native/juce_android_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22CD1BF5E83A216A0D18260D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 22DA9E57AAA25391C7D1FBC6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 2302DFDF103BE152232EA767 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 23189A59169BC89E95A4A496 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 235894AFDA79AF1644B3A217 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 2425625EE014356B5980B238 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 247646A6A435A3BDDEA602EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + 24EF2357DEC8017E6EEC7F93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 24F057BF79A4723C521BBEE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 258AC1AA4F4459F9CF99944D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + 2590DCE65DE2323D9EF77214 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 2597ED98D3C16A7EEF1FBFFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 25FECE7ACACB29E1725A6A17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2649F70294DB168919CBCAD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 2666A5013948E2EAD29458C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 26B73C77D47B146F92BEA265 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + 2708E4F2F73D88F73D8E54D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 278099898E32942D72AB635A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 278FB432DCB9A4F9DBEB64DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 27C340103177AB0848BCCC66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2820D74789660269902DB93A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + 282C1DA3A161FEF2AD6F94A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 2954678FE7AB78F318FBD4F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 295A470694011EBCA802822B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2968B26144E09D6A6659E739 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../../../modules/juce_video/playback/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2A835EF38887CAB750B49AC6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 2ACD67859FBC33EB743708CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + 2AE22D5AB8B2D3C381FBAC81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2B3A770317B04AAF24C28EF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C2B87B06DED242E1C4FE878 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C3298EC4F4D0DA7A6C4291F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C48ED514887D2F673B3B1BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoLatencyPage.h; path = ../../Source/demos/AudioDemoLatencyPage.h; sourceTree = "SOURCE_ROOT"; }; + 2C516889F34A72150CDB6ADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C610D8010FF4A396101E2DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2C712E1519F7D4410288D35D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2C80ACF1A94F47BA05FA687C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2CD9DB6EFEAE8354A089CAC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CE3420FBFD3136621EAFB1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainDemoWindow.cpp; path = ../../Source/MainDemoWindow.cpp; sourceTree = "SOURCE_ROOT"; }; + 2CED94801F5481AE15648BF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D529158434D415C56A07479 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D5379BEA988458161F6694A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D585CE2B407C9072D9A22C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 2D6DAE85F0A729F1FF761DC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D93002DFF33B8BC3AD37520 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 2D9920BFC36E621CBDCE2381 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2DC1A9FFE2FADDF611409D6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 2E02355C7790F4B6EA0CC56E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 2E3C193C1C7AF236B10F01A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 2E7A4C5E41B3BEBC444B5935 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2F7FE4AA919A66D5EFF65A86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2FD23F0C1CE490858228180E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30416A5D76A365DDC434987E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3090FB05992F02292F415E33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30B5F2ABF28FD59FA7DA26E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/json/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30B7393EE0006E9958AD82C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; + 30F6134D7A127DFE9D1ADA20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + 3121916B396AFD0027FF1926 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + 31C1E172911A4C726A85EA02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 327D715A8B4C164B34398221 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 329BD0A0243005D36A444135 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 32B277F17C4052C6E4C70859 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32F08660DB00B6BD5C905FE3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + 32FBF4064072FEB06C6677C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 32FF688C9F64E07EA3917682 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 3342B88619BAEFF4C41078FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 33A84E7FDD64568649CC89BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + 33DAC2BB94AFCF8EB33A1417 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 33E3113EE5BF74F269FAD5EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + 33F9348D753D148E82519067 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3421ADCAF375264A71E5AF07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + 3477734262959639DF347D4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + 348002712045A8515DB393E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 34ADBF046976CA8A3932B5EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + 34BEABBC39678C06EA3BB307 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 34E9DFB552CA9B8FEF8DEF1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 350624CF3CD7DCA1E0313D3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 3507A95E429F11E5549286CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + 35089DB1D126566F2B5DD724 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + 353DB618823D6BC97E0986C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3543594CCB08E22D1EA8D2C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 359C09D53EFC4C1C557BC959 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35CA3E9AEE7BC7C005653A25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoTabComponent.h; path = ../../Source/demos/AudioDemoTabComponent.h; sourceTree = "SOURCE_ROOT"; }; + 35F42453CF2745BD254BC71E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35FF3215D779C44F5B715702 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_events/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 36DD59799C3C4279B18DEAD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36EFC492079F0B7F4A1CB099 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3706A97B56FC6BFF72B700DF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3710B4143BD286E576B66C15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + 373EBC4E488B3EF8A0A72CAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3786A46162305EA0B75F35E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 37E2F2B9AFE2B6C1AA51A11A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38022D22AE783472BA32DF82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; + 3817585001205632BF471A05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + 3839556028D5A749F48340FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 385368D4C7693E8903E0C345 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 38B68694E6EDD6C29D1198D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSetupPage.h; path = ../../Source/demos/AudioDemoSetupPage.h; sourceTree = "SOURCE_ROOT"; }; + 38CDDFDC6697BF7BCFC8DAFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38E0255E6BB9600DEECD39F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + 393CDFCFA0358C689E5A3691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + 39DADA0AAD7468C535ECD5A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39ED2CD3C8A17DF313A0838B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 3A3C8D765CD02651E2C39102 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A7C2EA6B6C8E00BBE6A29B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 3A9AB41831037CF68FF5719F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3ADBF520293DBBCE5A605902 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + 3AEC36869846977B0C09A881 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 3B32FA1EF99322D3DED5F162 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3B583D35FAD0DE89F00F17C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 3C35334FE9451182FE7EC2B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DirectShowDemo.cpp; path = ../../Source/demos/DirectShowDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 3C97F910F4E20FC15DB607F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 3CF7FB16E7DFE7EC2636A45D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CFD018C7CC9E7B8E1E6232D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CFE82D0B21D705C8C6DFCF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 3D01072645251F386FCE636B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 3D11CF883EC31F74D97920D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DragAndDropDemo.cpp; path = ../../Source/demos/DragAndDropDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 3D47500F131A273A8C29AAE2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D5DB29BE2D59A93B5516273 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D8ED4E2F2DFEBA891A4BD7B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D9E23A71CF1E3FB6D532753 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DF6629A4DD77B71A5F855CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3E11497CB4E6589C8A10E740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3E49B797A7DF7B2F596F330B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + 3E51C5F35FB095AF4F0E373F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + 3EBBCD2A01201C7CC76389CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3EE0B72A06759B14B7FC6836 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 3F273BE94572DB6E747B0793 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + 3F4889BE2D946E79745601A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 3FA49B24986D1DA7CFA612ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3FCF8E2901F23E806122E4AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + 3FFA55DA900886D84F5A0A7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 405F91E957609744EB0FC5C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + 419A5345B4F9B977B7C1FD2E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 422D4D8EE3470F57D56064AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4242718AFF89762AA5CEC247 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 4275F414173638509F56E09A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 42B89D48E9FB252F1BC3796A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 4306A3B2696CCE1D811D8C53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 431B8B4CCA364880B507DD4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43A4661DD876DBD6A6E1F5C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43D8FB16F1DE9F159C7A2F71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43E4604C39E9A992216F6B98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 441F40BFFD11D433F2FED531 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 44616895C0F4219D47AC7FEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 447E2F5BA5478E8233CE1A1B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 450F0C2A16431DBBAE50520E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 451D484BE77922E33CA60DFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + 4604F166A3FC6187967E2053 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 462F0D225347C4FDB943324C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 467EAE3A087BEF2C56EE3FF7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 476F1E00A832948D22B468C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 47B161CB864B6C499DE64416 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47BD3D6D5AC81F74179942FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + 47C2B600A45FAC095669304F = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_video/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 47DAE660790C8E8CE96A63FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 47F1E35082ED332567F9C727 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4871179A9D7239EDE34B33BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + 48DCD395FA50217F557ECC2A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 4916E6E942FDEA8E55DEEF64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucedemo_headers.h"; path = "../../Source/jucedemo_headers.h"; sourceTree = "SOURCE_ROOT"; }; + 49AD4268C6B2CF4E12806E56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 49C7D1146BE928E7FEF48A72 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 49DA3670A8CF79F133914D18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; + 49FED6A86A4F78CDB60CBC99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4A9E5DAE13069017FB5CAEB2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 4AC80644D0D73A0FF8656CAB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 4ADF2B4274758FA3F435D6DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AF29A63EBF9E0693BF999C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + 4B86077AAC3D6C026B3E31CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 4CC2034DFB9E19F81E590E6E = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_devices/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 4CE1249813E63913B15BB51E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 4CE8628F7CAB483AFAFA01FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CFB262AA9778621B8B33A7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + 4D050E552CC0A82297D0AC86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4D2697EB7DF6121A0037A399 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + 4DCA9EF26A5F2CCF0B74F8A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4DE313B7586BAFF5E9BB0506 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E0A38A8008E55C09BFBA199 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 4E6F438BDC119B89C9518531 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E8A36ACA8A867C7511B280A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EB06BB3A534C3865CD7A8B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 4EB13D757A756408053DBB79 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EC68506861032FFD4B848DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + 4EC77B02BE7457DE877E332B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + 4F2F636FB9416BFBB1FF2473 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F802BD98072EA49F7F4FE4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F854124B48F6358A992D164 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 4FC0DDA3086EE26242655E66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 5010D82E6ED57F014D8E88E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5031A666D462F64BF254F81C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 503F07193B665711417DF1FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + 508E1F2760E66BD1A73C235E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 5092F31788400A172E319CCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 50A201CF006DD19F648C429D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + 51A580427D01D51811D5F1D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 51AFA9AA1B3094239580A0B6 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 52CAE85DCE0FA2692B8A85C7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52D9F5FD82C858FE4F134773 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52FD39B0A762C353D2FB09BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53A5227FBB8C0DD8F4442599 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53B187F6CFBDE72F4CEFE845 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_opengl/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 5435804E495A87442FD7A6F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 549BE844954C5CD52D46FBD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 54B6F856BA80756C0C139326 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 554399057C06249E6FAB9E20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + 55DDAA81843B00449145EA5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56CA808B4610A5C34730B4D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + 56D3242C281C2F19A2A6E81B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 570C04EF3724ADC8B2EF0563 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5712EB90A8B51DBBC4E19A39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5725CB557A7D55CA59E18324 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5741A7FD2C785C3F65377A45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 574BCE46C31D810F694B0651 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 575587359A2F65312CE97AC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 5786364EC4C531CDE41BDCEA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 579D22DA6ECC930E19B7104A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 58061ADC1867C814A334D49D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58864C3D7F369EBE01E42C5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 591E3F5832C08B0841971B01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59591325C73706DB6BD2C887 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5996F037CD5993251871573E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59A4C185020F908DEB4A844C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59F616BB319A05A8E93B89FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + 5ACCDDBA02C73CE15D6532E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 5AE8CCF926E311A0A7088E5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5BC78223CF42F85D660DA536 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CABE190EBD0F4EEB763114A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CE14F63495533AEDBD1688B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CE4B86B0FCE258A8A12AB09 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 5D312C2C94366F88C7A7A708 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + 5D7DE60BB4DF4CE300B4F343 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 5DBE1359F502F9C72E38800B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5E12C726C5DBB9C81963FAB5 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_extra/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 5ED8A827D78184F2E01A5511 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TableDemo.cpp; path = ../../Source/demos/TableDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 5EFF3A95523D36B3F1A057C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60704E9013507A9F9729017D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 607083E28D3CAAC3C69D3010 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../../../modules/juce_video/playback/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 608BEDD96B33E0475FF1FD54 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + 614AE257736D79B36015DBC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + 6181080398CF1388C5C15051 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; + 618F07B344089C7B13EED411 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 61941C6E24D2D04F51F59134 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 61B4084F81D01C8730F5952F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61C6FB83D4582BF2F84EB464 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61D55BA26F1410A26A007514 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 61E83A490FBB38A8D7613146 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62AAFFC7E5754AA715DCB1E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + 62AFEF7525003814092C79FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6314AFE1A17F085C028B4C82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63A3A467F124B67D19587D4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63CF475000C8419AE8D25BD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + 63DD8F6DD0DDC9A6F45E0C90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + 6413A99AB17F3551937E397F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 641BCC559554D3C4B51A5B92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ObjCSuffix.h"; path = "../../../../modules/juce_core/native/juce_mac_ObjCSuffix.h"; sourceTree = "SOURCE_ROOT"; }; + 64485EF2AE378418411A8FCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 65A50CC38E2A045D320D4224 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6627248BD1D82CBA820F1FCF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 664211B1C9D22E34B60EF5E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66425E2428080B75F0FFB2C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6649385F220EB0B654AB61FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetsDemo.cpp; path = ../../Source/demos/WidgetsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 669FD4C70B8BF2B87DEAFB73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + 66E3497A9DCF883BCE6A27A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66F2929C04B6E230FFA975C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6704DC3810D991DADFF947AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 678034FB9D177C3D08044AB9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67B45F46192481A24287B06C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + 67DA4E3A02A5697DE923E0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67F14D1D1869540E4B9540B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 687E1D120E47EEFEEB73A4BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + 690BE5039AADEF787D6E13D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoTabComponent.cpp; path = ../../Source/demos/AudioDemoTabComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 6A4819E134CD45BD043C3219 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B03CB11D5DEABAEE7F9E0F1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B0F3AF3FE7B113C33112897 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 6BBB8746C2C1BB5F3C3F1FC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 6BBE4F2809E2AE0FE445302C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6BD99638187A39ABC44DCBA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + 6C608B44E265F761D09C91CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C956B90C1BB1217BF02F0D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 6CC2241F234EDD873FD5BDC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D0757D493441CFB9C1B426A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + 6D16F5C591F5558984437145 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DD58CBABB8009DAA5104BBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DF10AFB26794D47F3AC783B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E00A6B4B754E3008B969B8A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6E0DA76710F31FA13F5168B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 6E1CFF5227B2F2E200DD9EC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/native/juce_linux_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E365FC14CFBA3BD28196D3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 6EF8660ACF82A6472884ABB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 6FCC44A5DB0B881454AAD300 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 70350B2642B3D062D0A8D239 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 709D153E2940C162215E31F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 717A5E2F84E8D281325E9C1C = { isa = PBXFileReference; lastKnownFileType = file.xml; name = treedemo.xml; path = "../../Binary Data/treedemo.xml"; sourceTree = "SOURCE_ROOT"; }; + 720BE81011A4F54822E7F498 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72421270611D3B09781CA634 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 725D10330456FC57C9FEA75D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 726A4629ED6E091D24471CA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 72C3E3A3E2760E1ECB6BD30A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72FF1B91B6590B036636E20B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73108C67E00C3C958FFD23D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FontsAndTextDemo.cpp; path = ../../Source/demos/FontsAndTextDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 731FFEA1471A03D05AED1B77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 7323A374566B649091DB8837 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 7334C493C3EC57C4AA200F01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 737F8D074841EE88B24DC761 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + 73AC2ABA9094C062E8DA773E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + 7415D37F43E9CA0C5D924D17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7434F00C0F5768C4CFFC9C30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74390F0BB6A54198B7EE12CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 747D307A1A0D468103D4B20E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74C5EA2191F9A05902D76BB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 74D36012BEBC6FDD72B0572F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7551834E76E49E9114B16B2B = { isa = PBXFileReference; lastKnownFileType = image.png; name = juce.png; path = "../../Binary Data/juce.png"; sourceTree = "SOURCE_ROOT"; }; + 760B6B73C7C332980801C0C7 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 7667028F4EC27060934DCF30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 766F3BD777CA786CD6BE023E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 768D628853DDE9E4EF563DE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + 77488721DFFE4D0C22E19299 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + 7763574CC15B89B5BD8A4307 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77845C048A123FF3D2619158 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 77CB4C3F4C72996179768CB0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 785F32963F7F6458F3D4DC3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + 78AB95E1E7C39B3794F44E24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 78C4635C8F91A9A513C6B9DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 79078F37EB6919AA440017FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79441FABE26CE4CF9BA128CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 7985BF3EF947A7955C94364C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79E54897373142A27EC0FC40 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B0C40F57724D3021F83F423 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_video.h"; path = "../../../../modules/juce_video/juce_video.h"; sourceTree = "SOURCE_ROOT"; }; + 7B53B778BF20B1BC43E2D562 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BB52DAA6A783F0194EEF869 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 7BB9913643FCE12B216AD8C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C1A682DC90937487D6A4B0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + 7C57A68F39036348C34D73EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 7C7834D5AB7E6656A4CECF2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 7D01B73D4ECD4899173EE882 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D12F1C172F94A735E17ADD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 7DA4BF4F615254D8AFD37BEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + 7E0006CE91286527B25433FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 7E6041874E267458572B93A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + 7E6AEB024827FD9ACB353BB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + 7EF1F0BC4F4DE2986856DE41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 7F2A4EF4DE29CE775FF0F5E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F580113B80A85759A406E81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F65B8E1571AA346AA2F2FE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7FC1A0B1663AC9262104D715 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 8042D0D2B38EBD19652CBA55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 805B94425CD56EA78E0A705B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = "SOURCE_ROOT"; }; + 80E7D8D4E601BCC20054475E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 80EEC26431102B212C9F873B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 814313374CD209A40282985E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + 8154D2D681E028B8783E5331 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 81641BC45BAA99D207B153A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RenderingTestComponent.cpp; path = ../../Source/demos/RenderingTestComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 823A2690E2229E32DE984AD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 82474A9673BE92E34D03FE39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 825BDA58C2694CE7F3FC2494 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + 82AD87FA68D9DDD78F9A4674 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 82DD6AB8F5279385455B0769 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 830186B50B369AD64C539EE1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 834DCAD1857B654514D4A0BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8391251872CF6C7C11F11EEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 83D67DD10BD2ACDC0984ADCB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InterprocessCommsDemo.cpp; path = ../../Source/demos/InterprocessCommsDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 840EF2C371FCC5690DA216F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; + 8565630D87FEE505D50CE2EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + 85D1779E60213BC6670E2C75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + 8603713AFBC316218045A963 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 868D4BEF6B94EB7BF659CF01 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 86A52913E895EFD9C4D43D04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; + 86DDC7DDD8BFE56FCA73E397 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 86DF811859C602F24589AC3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 877D61C08ADC5B13C2627327 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 87EDA764A802069F89CEC355 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 87FB016388B49E97FCCBE69B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + 8878426C7F58CB22969E7133 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + 89006BBD5040A06E6C559F16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 890F3D7DA5BC01DACF8E5431 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 8939B318C3AF6793C72D8A9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 893D867B3AB93E4D96AF060E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 896140063D12A19D1DCBF3DF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OldSchoolLookAndFeel.h"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 897420C9C4D80F1AE5F80637 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + 89ABB9AFCDB73A409754BE48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + 89F519023C03C9908F761BAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 8A15EDB6321B758A3EEF635B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 8A29D461DA6C72497B49189C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CodeEditorDemo.cpp; path = ../../Source/demos/CodeEditorDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 8A79588D3BEDD0DF69065099 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8B0B9E8A37911F76577E3AA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 8B7490B27707118E03A50933 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + 8CA151FDAFC858B6535BF6A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8CB23F01604E12FD33256AC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + 8D3F5C48CD1B104A105845E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + 8D66115C77E904AB96FDF64E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 8E6E18125D1046B97EF7AEE2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8E7F5F80EB6D99EED152A465 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + 8EB9B4853F225BDB97D6626E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + 8EEB4DEB11F3DF01BA6F7528 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 8F1D89D1349B0DCC115B5D47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F37F4E9DB8E42EDF29DE166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CameraDemo.cpp; path = ../../Source/demos/CameraDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 904B316152B6C23112E0A0B1 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 90F9E3FB8FF07BA924E42DC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + 924667AB0E27AC2CE1EB7828 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 927B5B18A655057D57C37D35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 936C6419223D7B28CE16A72B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9398049BFCAC42B8FD1E16C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectXPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_DirectXPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 93C594ECD5CEA7878114149A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 94A9A7DF00C64509E9B5A337 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = QuickTimeDemo.cpp; path = ../../Source/demos/QuickTimeDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 94EB4630C360BA31195FA13D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95305C4003CD4784CA20D1D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 956A7825F42E2D33FC97CF73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95CA7C1593FFDE7AF8CDE98F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + 9619FDAC2D7C1E273CFBD10C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96C8D0EE75ABEB02422AA41F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + 96DDB84D9722732A64DA57A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 973F391C41F2774E0CB8D54A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 97D6A96DEE15B1C9C270FAEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + 98028D7823ADA4594A8A2A22 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 988A5D1934361EB3009CD52C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + 989587AD131FF27180BEB3D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 98C642B2E87A5D752E517A6D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 98C6708DE85079E157822A2A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98D731CDF5B6F60ED9198CC7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 98DD360F5D3D60539185DE90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98EB4070281520EADE02212C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 99971599D48BFF60437E0F44 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99AAA16209763F3DA2113D1B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + 99B22FB30FB36F358A932F6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99FE46FBB05F16AFF37AB6A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + 9A1B5431CF0FFF248896A8F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9A947B1B4163730D13A4D24C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + 9AB36BCC26D5CC2CCC71E5E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 9AB8510F26D6035159042BC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9AE7533B1AD68245E130B3AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 9AFD4A062067D5F709FA793C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 9B07C7F9F91CDF9465EE2AEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 9B572F52342BE9169D435F1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 9B5833CD741A705B8AFAF9C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BA092AE037F13C968200B25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C0DB4F281D10303224E41A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + 9C5F40CA5A70DD8207F53047 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + 9C785342B462AEB3D63418F6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C7B5E573807ED59065B54DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9CD9B6E7197079625A165653 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 9CF4E56974B8290F34032432 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D042E1CAB03CFCD4B937951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9D09225ABCE19597A944DEEA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 9D18794763C086784ECE98D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D70FB5DE184C636EC01EC67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + 9E80EC17EE6322C452E9A774 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E825AC2FBE27AC2BCAEA69F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 9F35ACC90F2A1C2E565148C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + A16EC49106F4E28AD49EECC0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + A18C61D2206141C03B24BF9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + A1A96650D3211A87738A9B75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + A1D2256DD1E864A4560459F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + A26D0251E9EF4FAB12D1737B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + A2BBD7D58010E488BE904CCC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + A3346F6C215C2CEB5F9416FC = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + A34C1EFF7C51BEB33C22FAFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4BF6FE6902ACF80D2E3DB60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + A57A09A4137135A0AF6A0800 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + A58203002289D424A2CDF5DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + A588C458AC395D8AC09A433D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + A5A6819C57A0399C81E03301 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6073115FE5E1E635C78DDFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + A6C2A4889A4E70DE735EBA4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6C606F3BE6B630561EDE155 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6FCBC9721E7FC9DE30B6DC4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + A72FB74D13AA5C6A472E9E82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + A763E7AF50D548D8C4A4C3D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + A7B3B265DACC82D9E9CFB3DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + A7BD5AB895B2531A75FE0268 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + A7F413D4C880363878469E5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/json/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + A80CC48B8215D447643CA411 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + A86557C09D01406BB6964DB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + A8B2537E3AEB0F0B791CF030 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + A8F2E649E566EDE8D4C42F21 = { isa = PBXFileReference; lastKnownFileType = image.png; name = "juce_icon.png"; path = "../../Binary Data/juce_icon.png"; sourceTree = "SOURCE_ROOT"; }; + A93A4042E1214A65BD70DAEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + A9566A42230AACC1AFDC6C5F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + A974197873E277C3BA5DF666 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; + A97EC32975392744C62684F9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + A9958339328213FF76D8A79C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + A9B72D6049A3539B63AE79D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + AA0DE5CA2B089393B110FD25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + AAABC8FBF364D9A596F4AA4E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + AAC98CB517D934F42A25416E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AB4A28A3667EA4C8393470A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + ABBA4018C1596481E7CD51CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + ABDBA289C591093A65BD526B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC2D4E1081F69B20AAB47E2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC3EFDDC80761A45E8BE0624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACB502AF25A235733295406E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + ACC522FB23E25ADDD38F8F98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + AE2C0F932F7E54799FA0897C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AE394742FA0F2C6AA39906DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_OpenGLComponent.mm"; path = "../../../../modules/juce_opengl/native/juce_mac_OpenGLComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + AE860FA70A2F37F4A889A9EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + AEA287A89324FB9D48370C33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF26F1B432EF78EB76107FDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF5FD9E66E46B600914FFE53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + AF9F8BD7FAA0567B70EA397C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + B0461717A1A4204943AB55C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + B16E1644785E869DC000112C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B1C64086587109AA429DE418 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + B1EF98E196E432165CEA08F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + B22D28FB41374E7092AEE96C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + B2F5CA0FBCECC10EEEAD11E9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + B3C3985129CB310EECCBDFF7 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + B3E75CAB88F9CBD5145C226C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3FDF6B35E4E6ED6AAA8CDE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + B418FE6F1E2F268880AE00A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + B428CC689CD359B29C67272B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + B523ED8502475B9BB3F392C7 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_graphics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + B53B1A87D9A58B3E056B4D8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + B59728841A18523C5950A51B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + B59DA3ED4F12C1FFEE433EE3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + B5B987C3029862AC58363F1A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B62A2E9AE08575992BAE53C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + B657CFA035D5285F14DE6AD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + B65938BA2A3EE3FEE9923E12 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + B6B93A495D82478E99956AD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + B6D34ED1DE5CC8010A1BE232 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6ECBC8983C8C13575A3420E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + B6F0FA98AD1AA6A3552A59FE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6F619428216E8DD021C6ECD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + B792478999FB8A13DCE4FF99 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B81FA2ED22BCC03D124031ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B875CBC2CBA6D01EE0AAB25C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + B91F3E65CE47056DAF5C4DA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + B9A07B3C2CC36D0830745F31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + BA710A8F1D5B056162B7CB3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + BA8CA56A4E1F30984B8E4208 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + BADAE0896F7D4AEAA481B257 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + BAEAC53813F354CE5E045E9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + BAF897CBD4F6F7382D4DC72A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + BB94B67B5B0EC06015621F59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + BBA5037F5ABAFDAB54EB6903 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; + BC3978DEBCC88DB02860E20C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC4827D57EDF30E1886FCEF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC6C5A22BC49D1F16B797A02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + BC94E7AC0B57A89C259A26A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RenderingTestComponent.h; path = ../../Source/demos/RenderingTestComponent.h; sourceTree = "SOURCE_ROOT"; }; + BC966E4E8DE070E482B296C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + BCEAC6346AB15421E3A5AB70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + BD1E818B710742D5EC07BAE8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + BD69603F635BE80BC99C7865 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TreeViewDemo.cpp; path = ../../Source/demos/TreeViewDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + BD7E3C305F0976D5C5395090 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + BD84136646D8700D41BE7EA2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDC0E815578ED04901FB9251 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE4673AB9542C19D1C1C3A63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + BE95C8978503BFA15B38D3C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + BECF3DC9A5405B9856DEF975 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF2093D486040BEC64210EBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + BF59C96BC3BCB29CCB421861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + BF6F272194D16055D6A90D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF76B8C5007732311AF50543 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; + C03AF9257B94504D7270416A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C0608375ACE89B422431E9A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + C069C5FCE1539E9F85C7F29E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C07BEF22C24DD225C5D0940E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0E38F040D44C1474E42753A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainDemoWindow.h; path = ../../Source/MainDemoWindow.h; sourceTree = "SOURCE_ROOT"; }; + C1A15473893B354642F7531A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + C2072DE0D1FF6AA90A700D25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + C20DAAC0E23CCCB8FF64DFED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2692BB8791ADE59158D9F21 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + C26D5CE23205932DA1062C85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + C2AFCF5805D239DF9F9DE2D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + C2D1EE14670950990F0769B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2E3B2EC0F1EB46349FBAF63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + C30EE4EFDB359E2A9D58F677 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + C355FD0ABB078A342BF6A6AA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + C3A77F115D67C0E24C65FC45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3E0EB7CDA04886FA8323C17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + C3F7B701463826A93DFE5587 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + C427F2763EEE1F1C11E8EAF9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + C4A730DEDDA33FA9A06CDA82 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + C4C6D6B8731B400B29A3A4E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C50F17EA37434C3C7B52C3BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + C526F791D3168AC0E87C2DD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + C583836F43E174944C6098FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5CF3A35D0896F95596FAC4C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + C5FF20572B734C4EE8F204B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; + C66E08F5118F529FC623733E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + C766591C3E8CB978D6026F56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + C7835B9A7DA88BE84F1366E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + C7DAB2D405C907CDA83C2924 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7EBDC32959BE4405ECE2148 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + C87942E350F974B22047D457 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebBrowserDemo.cpp; path = ../../Source/demos/WebBrowserDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + C8E9F901721D86767BD458B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C92A08C836B3326D6EDB14E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + C94D5056497677CC3FCB5AAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9AEAD8B2366F9508E63A178 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + C9E621CAC46AE272EFB807E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + CA5844E270055529F3F3818F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + CA799D1FF79E811275318304 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + CAF961A7AFDB2830B419214C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CB179EBD4C1AB9F3F59E9D4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + CB68DC2B2EA837D6869AAACD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC0BC6AC42809A4F4FA21452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + CC1307C0AEE134EEA46F68EA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + CCB4250C97008BF3E5F12D0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + CCD6FA03199F37A9CCA6340D = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_cryptography/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + CCE2933FEB395826A5710C6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + CCFBB22AC379DC3B3A839CA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD20E020C903C1E3AE12A1CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoSynthPage.h; path = ../../Source/demos/AudioDemoSynthPage.h; sourceTree = "SOURCE_ROOT"; }; + CD2AEFC254C92A49F2D5DA64 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD9EDF2EE190AFB02CCC3F49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + CE28146B186C11F00BCBBBBD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + CE3DF5A017336CABFDD6926A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + CE66BAB575B13375E1EE937C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + CE882EE8C05AC3A809E41332 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEAE0C8168A4E71C6D607659 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEF96D559AAB6D61FB8A0288 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF0DB23C5950CB619CF8D812 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CF15EC19906A7A7C3D9E2407 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF2A1897A3C5610A282A2713 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + CF6533A53CCA75A2FAFACAB8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + CFB2E2DFBCBAA9BF91E7CB35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + CFF27E108381EC6BA758EE7E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + D0B9859FCC534C510C7F37A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + D0C3588FF8EF229B8F0CBCA8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoLatencyPage.cpp; path = ../../Source/demos/AudioDemoLatencyPage.cpp; sourceTree = "SOURCE_ROOT"; }; + D1CADE1C7E74F37D0D57575B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + D226630AEE6B273B6B1ED622 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D25A334218A3D87F4D0BBD15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + D27A3A58DCC37B5EFC3AD745 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + D27D41D4A06E286FDBDF7549 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + D2C40CDF46D894BFC72BDC56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + D2F161366612A4CDA6372113 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + D33142A214D7AC7A8ED27E4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + D33EBA9793C56D73135BD1F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + D3AD73A360B24493ECC4E092 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + D3BA1978EF5806DF8F3B32ED = { isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = "../../Binary Data/cello.wav"; sourceTree = "SOURCE_ROOT"; }; + D45EF873A4BD7D0E56274D79 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + D4CA129DE8BC9F6EDC2BCAD2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ApplicationStartup.cpp; path = ../../Source/ApplicationStartup.cpp; sourceTree = "SOURCE_ROOT"; }; + D4DC657E222FE2BDE92EC58E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + D57651845D6D9438DEA62F98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + D5DE603FFC184C590E2A6678 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + D602AE751C3C12A6458FCCD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D66048AF1E05FF836B2A813A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_OpenGLComponent.cpp"; path = "../../../../modules/juce_opengl/native/juce_win32_OpenGLComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6C9614D1C6493DBEE370646 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6D0F076F54C7D669A9717C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLComponent.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D7239D5B984E07808E2DB28C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7E6E92AA32B7D51489FD256 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + D8081154AA3072D2F2C4B625 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + D866C4735BF1EF0CA24FC1FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/opengl/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + D8AFC87A918360FFC9D96BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + D9282DF6556197822D2BD5D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA0D464BE6E90C3668AD7C73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + DA2FCB30EE2A41085FF93B9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + DB507A1F7BB7489344FF90A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + DD40A3E06CA320D95F3924BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + DDEC339D244553357E234C92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE7617FB215CD22983E7D736 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + DE80C724F35B1464853FDE9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + DEA38275A65473112CD34252 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + DEB23C98FEC261260F63B6A4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + DED6D04CFED991C5924B78F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; + DF2D86EEA8031481C1FD08B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF590CD70352A30FA3BD9835 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + DFF6BF0BB64714A494A25E93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; + E0AE248F52C70AA1DEA1A5A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + E249D6583995E0E6D0B3EADF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + E26E3AC933F70B56B7B83EFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + E34B2BCD14634ED3BC9F5431 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + E3D24CD61D75922457DB9642 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + E48615F1F7D8213F6DC24FC9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + E94E773858B05D719E61DD6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + EE3E9902579904E57D1A5A18 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + D119A3871626EC2B8EFCB0D4 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + D2F7081BE9A6E24BA7CD1A46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEE1FC30E2FBB97921616CA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF3B7E1BC0AF0C826C47745B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + DF47E8197FF5A9309C062C61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../../../modules/juce_graphics/placement/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; }; + DFEAB699C98B89FF0B85F557 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + E15F577E82B2E12597447472 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + E2732267CD7C0C3BDB17456A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E274BFB25D87D93EDBC23114 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + E38DE271B32DCC95E52C72DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + E3FC888CC9FAD650C469ACC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + E453E312D607E60FAA6D1BF0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + E46977801F19277F4D3B324B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + E48E2824CED9933934127522 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + E5DC4602843749A071B17576 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + E6B13A51A01032961340735D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + E6C582E67DC0C4D0CCA18166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + E71C493A0E10D1AE4A3DB2AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + E7AECF0B52A9554442685859 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "demo table data.xml"; path = "../../Binary Data/demo table data.xml"; sourceTree = "SOURCE_ROOT"; }; + E86CBC37B034041BFF5A10DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + E8FE41E21AD1029DD709FD7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + E963816786695359C91EF35D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + E9C3901F0B4AC410025D2086 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + EA1313A79BF10BE60238F3D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EA20E7FB414DD777C1618333 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + EACB4129861122ABC1A2BB37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + EADE149294A3A3509EC61E6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + EAE786E1125C492A7A8B1594 = { isa = PBXFileReference; lastKnownFileType = file.zip; name = icons.zip; path = "../../Binary Data/icons.zip"; sourceTree = "SOURCE_ROOT"; }; + EB902A37F3AA5BC62D523F5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + EB9E8921A8D36EDD7FF3245B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + EC180AD91D1B068D7A8F33BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EC89003BF30329181BB3EA4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/opengl/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + EC93857F367028441A067F45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + EC97B274D075920B2490E0D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + ECCEB7E5D6B18F1376E34EDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + ECEFF5A78873B5B388046E7A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + ED467279290C0AA942FB2B27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + ED9A2289AECFD9B928A9A08A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + ED9FAEA9116C568942BAD000 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_OpenGLComponent.mm"; path = "../../../../modules/juce_opengl/native/juce_ios_OpenGLComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + EDDA4ADA880E3B78143801D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + EDDDD60231231B8221711145 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE2DACF73E083928ABDDA63B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + EEA3A060739CA049C1339B9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + EEC74D7DAF96D7ADBC917976 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F10EEBAD564A55F50CEE7181 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoPlaybackPage.cpp; path = ../../Source/demos/AudioDemoPlaybackPage.cpp; sourceTree = "SOURCE_ROOT"; }; + F123556B79ADA02F5E549727 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1EEED4DC97678861086B282 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + F242ACDC3C1ED82039C45915 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + F250E301B85CB6140FC236A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + F26F7C7D6D9EBA2693914AA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F28314027C0D8E36A9FE43E3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; + F315F477DE84E05E9E440ADA = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + F339FB092FFFBB9B95E7F732 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + F48AE8E1A9A1608BEB4C16A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F49BD909BB1DD4BE7B669FA6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + F4C50E1A3DC066396613C401 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + F534B4A3A4E46A8311A44649 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F53E1E312FBE025F836AA718 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5B3E5C6F10A97AEA5786AC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F664E58A0B3899FB98CF8E1C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6AE140F7CE1B08B52A8C8AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F6D1D5FD437BF40AC208AA2E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F76944FF282DB2FB4FB1B229 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + F796E49F8209912C1E8E0ADC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7BA444D0130F3613252D00D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + F84DBFF75F5334EA86AB2E37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F84F19D5BEF7E7AE00C8CDD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + F87BBC8FD2374628CFBC2EA6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDemoSetupPage.cpp; path = ../../Source/demos/AudioDemoSetupPage.cpp; sourceTree = "SOURCE_ROOT"; }; + F8FB27C3434BB255CED42861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + F93E02181A90B71B0C16629F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; + F9474BBBA977F050C5C66E61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + F97E60F478662C7A4B413E5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + F9FE574AC4D30AE44C0DF98C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + FABF3148A2F5D3ACD48E8838 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAC8B4FB05C57F3461E3FE30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + FAD925A5A262E8ACF4F40354 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_utils/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + FB73EE6CD424A7543EE172D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + FBDA70B8FF6C6D669F9CF540 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + FC1201FBE79AED3FC831ABAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + FC19E4B3335185A35678B597 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC87932ECFE90EB63664B6BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; + FD36FD1612A96DDE000211E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + FE75937BEEFDA021D7767B59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE87322C0C3E84720083F1C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE89A070890FF722F9A128C0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE9A5898294228EB7F439951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + FEA724E71E582903094A455F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + FEB2CCC12BBABEEC23384FDD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + FF93CCEC386B165840328831 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + FFAD5C56A4E4038FB532565F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; + FFF09A9DCDFECD32F25F0CDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + D5607E34AA2399378CA6F72B = { isa = PBXGroup; children = ( + D0C3588FF8EF229B8F0CBCA8, + 2C48ED514887D2F673B3B1BC, + F10EEBAD564A55F50CEE7181, + 805B94425CD56EA78E0A705B, + 200550A2DDDB012E26D6D005, + 1EC913A06CFCE35C9AE2AD29, + F87BBC8FD2374628CFBC2EA6, + 38B68694E6EDD6C29D1198D7, + 2275EB468CEA505ADE14C225, + CD20E020C903C1E3AE12A1CF, + 690BE5039AADEF787D6E13D9, + 35CA3E9AEE7BC7C005653A25, + 8F37F4E9DB8E42EDF29DE166, + 8A29D461DA6C72497B49189C, + 3C35334FE9451182FE7EC2B8, + 3D11CF883EC31F74D97920D3, + 73108C67E00C3C958FFD23D4, + 83D67DD10BD2ACDC0984ADCB, + 877D61C08ADC5B13C2627327, + 94A9A7DF00C64509E9B5A337, + 81641BC45BAA99D207B153A7, + BC94E7AC0B57A89C259A26A8, + 5ED8A827D78184F2E01A5511, + 01E2555EA1347B8C8CFC438D, + BD69603F635BE80BC99C7865, + C87942E350F974B22047D457, + 6649385F220EB0B654AB61FB ); name = Demos; sourceTree = ""; }; + C2E4D2C86DFBB8F14142D379 = { isa = PBXGroup; children = ( + D3BA1978EF5806DF8F3B32ED, + E7AECF0B52A9554442685859, + EAE786E1125C492A7A8B1594, + 7551834E76E49E9114B16B2B, + A8F2E649E566EDE8D4C42F21, + 717A5E2F84E8D281325E9C1C ); name = "Binary Data"; sourceTree = ""; }; + DC7F5A47CBDE7E3A9AA86F85 = { isa = PBXGroup; children = ( + D4CA129DE8BC9F6EDC2BCAD2, + 2CE3420FBFD3136621EAFB1D, + C0E38F040D44C1474E42753A, + 4916E6E942FDEA8E55DEEF64, + D5607E34AA2399378CA6F72B, + C2E4D2C86DFBB8F14142D379 ); name = "Juce Demo"; sourceTree = ""; }; + AAB457A3E170486A669BF7EA = { isa = PBXGroup; children = ( + 13C15669B35168563D72F6F8, + 669FD4C70B8BF2B87DEAFB73, + BC3978DEBCC88DB02860E20C, + F250E301B85CB6140FC236A6 ); name = buffers; sourceTree = ""; }; + 826DCB7D5E55310994355B53 = { isa = PBXGroup; children = ( + 3EBBCD2A01201C7CC76389CC, + 6413A99AB17F3551937E397F, + 44616895C0F4219D47AC7FEB, + 21605BADE3692FBBAE44F961, + 3A3C8D765CD02651E2C39102, + 614AE257736D79B36015DBC4, + 66F2929C04B6E230FFA975C8, + 5031A666D462F64BF254F81C, + B3E75CAB88F9CBD5145C226C, + 1F7DFE97A858AACDAF9EBB7D ); name = midi; sourceTree = ""; }; + 24381AC39E3E1E43706536D6 = { isa = PBXGroup; children = ( + 97D6A96DEE15B1C9C270FAEB, + 2CD9DB6EFEAE8354A089CAC9, + ED9A2289AECFD9B928A9A08A, + 2DC1A9FFE2FADDF611409D6B ); name = effects; sourceTree = ""; }; + 50C8E80F5986688023F19CAF = { isa = PBXGroup; children = ( + 3FFA55DA900886D84F5A0A7A, + 7434F00C0F5768C4CFFC9C30, + A7BD5AB895B2531A75FE0268, + EEC74D7DAF96D7ADBC917976, + E94E773858B05D719E61DD6A, + A6C606F3BE6B630561EDE155, + 9E825AC2FBE27AC2BCAEA69F, + 67DA4E3A02A5697DE923E0C5, + 98C642B2E87A5D752E517A6D, + 9D09225ABCE19597A944DEEA, + BC966E4E8DE070E482B296C6, + 7E0006CE91286527B25433FF, + 7F65B8E1571AA346AA2F2FE8, + C355FD0ABB078A342BF6A6AA, + C526F791D3168AC0E87C2DD9, + 82DD6AB8F5279385455B0769 ); name = sources; sourceTree = ""; }; + 5140207688AFBD7CD5356327 = { isa = PBXGroup; children = ( + CB179EBD4C1AB9F3F59E9D4A, + 7C57A68F39036348C34D73EC ); name = synthesisers; sourceTree = ""; }; + 0596B4096DD627F972BB026F = { isa = PBXGroup; children = ( + AAB457A3E170486A669BF7EA, + 826DCB7D5E55310994355B53, + 24381AC39E3E1E43706536D6, + 50C8E80F5986688023F19CAF, + 5140207688AFBD7CD5356327, + F315F477DE84E05E9E440ADA, + 1A03C9B88919CA79D176E738 ); name = "juce_audio_basics"; sourceTree = ""; }; + CEDD0F91222D58B6765E12BC = { isa = PBXGroup; children = ( + 37E2F2B9AFE2B6C1AA51A11A, + A763E7AF50D548D8C4A4C3D1, + F9474BBBA977F050C5C66E61, + 785F32963F7F6458F3D4DC3D, + 94EB4630C360BA31195FA13D, + EA20E7FB414DD777C1618333 ); name = "audio_io"; sourceTree = ""; }; + 9BA0F84BBF38B6B5DC702BCA = { isa = PBXGroup; children = ( + 3817585001205632BF471A05, + 3D47500F131A273A8C29AAE2, + 3477734262959639DF347D4E, + B3FDF6B35E4E6ED6AAA8CDE4, + E0AE248F52C70AA1DEA1A5A1 ); name = "midi_io"; sourceTree = ""; }; + 901A0B1C81CB2E60827ADA89 = { isa = PBXGroup; children = ( + 9619FDAC2D7C1E273CFBD10C, + E249D6583995E0E6D0B3EADF, + F5B3E5C6F10A97AEA5786AC5, + 0074FA7EFC2898B71E22A945 ); name = sources; sourceTree = ""; }; + 5D1463D0CAF326A035EFF063 = { isa = PBXGroup; children = ( + D5DE603FFC184C590E2A6678, + EEA3A060739CA049C1339B9F, + 4A9E5DAE13069017FB5CAEB2 ); name = "audio_cd"; sourceTree = ""; }; + E05126DD45F861CA44DBDCF0 = { isa = PBXGroup; children = ( + F339FB092FFFBB9B95E7F732, + 570C04EF3724ADC8B2EF0563, + BECF3DC9A5405B9856DEF975, + 149369775B267A04F9B0ACAE, + 5741A7FD2C785C3F65377A45, + 2AE22D5AB8B2D3C381FBAC81, + A6FCBC9721E7FC9DE30B6DC4, + FFAD5C56A4E4038FB532565F, + F7BA444D0130F3613252D00D, + 9CF4E56974B8290F34032432, + C92A08C836B3326D6EDB14E6, + 447E2F5BA5478E8233CE1A1B, + 4DCA9EF26A5F2CCF0B74F8A1, + 9A1B5431CF0FFF248896A8F2, + 54B6F856BA80756C0C139326, + DDEC339D244553357E234C92, + E3D24CD61D75922457DB9642, + EDDA4ADA880E3B78143801D0 ); name = native; sourceTree = ""; }; + 21689DE0A3F6A8E3550F027F = { isa = PBXGroup; children = ( + CEDD0F91222D58B6765E12BC, + 9BA0F84BBF38B6B5DC702BCA, + 901A0B1C81CB2E60827ADA89, + 5D1463D0CAF326A035EFF063, + E05126DD45F861CA44DBDCF0, + 4CC2034DFB9E19F81E590E6E, + 95CA7C1593FFDE7AF8CDE98F ); name = "juce_audio_devices"; sourceTree = ""; }; + E10D88B71B2B0B8E403457CC = { isa = PBXGroup; children = ( + 9BA092AE037F13C968200B25, + 4B86077AAC3D6C026B3E31CE, + 1A5382EC797EF333806B5AFC, + F97E60F478662C7A4B413E5D, + 25FECE7ACACB29E1725A6A17, + 64485EF2AE378418411A8FCB, + 77CB4C3F4C72996179768CB0, + 12B9DB1413B7647920B53C07, + 38CDDFDC6697BF7BCFC8DAFC, + B9A07B3C2CC36D0830745F31, + 0D59D15FB8BC9FE203586FB3, + ACC522FB23E25ADDD38F8F98 ); name = format; sourceTree = ""; }; + A383EDCA7A04B91EAA0A044E = { isa = PBXGroup; children = ( + 1264CE16C2930583C8AB553D, + 2C712E1519F7D4410288D35D, + 11E6C0893A679EAD806DA5C2, + 0DFB01AAFD08E7BAD09DDAA2, + 359C09D53EFC4C1C557BC959, + 4306A3B2696CCE1D811D8C53, + 3DF6629A4DD77B71A5F855CC, + 7334C493C3EC57C4AA200F01, + ED467279290C0AA942FB2B27, + E274BFB25D87D93EDBC23114, + 7763574CC15B89B5BD8A4307, + 4275F414173638509F56E09A, + 9C785342B462AEB3D63418F6, + F49BD909BB1DD4BE7B669FA6, + 450F0C2A16431DBBAE50520E, + CE3DF5A017336CABFDD6926A ); name = codecs; sourceTree = ""; }; + 21F527AEF9C266046A0A196E = { isa = PBXGroup; children = ( + FC19E4B3335185A35678B597, + 327D715A8B4C164B34398221 ); name = sampler; sourceTree = ""; }; + E9E9D81EA027C542C95D6294 = { isa = PBXGroup; children = ( + E10D88B71B2B0B8E403457CC, + A383EDCA7A04B91EAA0A044E, + 21F527AEF9C266046A0A196E, + B3C3985129CB310EECCBDFF7, + 405F91E957609744EB0FC5C8 ); name = "juce_audio_formats"; sourceTree = ""; }; + 105805580BAF2CEBE4D0DA33 = { isa = PBXGroup; children = ( + BBA5037F5ABAFDAB54EB6903, + 67B45F46192481A24287B06C, + B792478999FB8A13DCE4FF99, + 3710B4143BD286E576B66C15, + C7DAB2D405C907CDA83C2924, + 7323A374566B649091DB8837, + FE89A070890FF722F9A128C0, + E34B2BCD14634ED3BC9F5431, + 5AE8CCF926E311A0A7088E5B, + B16E1644785E869DC000112C, + 86DDC7DDD8BFE56FCA73E397, + 5EFF3A95523D36B3F1A057C1, + 814313374CD209A40282985E ); name = processors; sourceTree = ""; }; + 10F28FF3263B59E64AF73921 = { isa = PBXGroup; children = ( + 1C36F82D875B81C26A5752AF, + 350624CF3CD7DCA1E0313D3E, + 0655D6F5C85104403FC367AC, + 235894AFDA79AF1644B3A217 ); name = format; sourceTree = ""; }; + FD4542E6C91E7212198A0887 = { isa = PBXGroup; children = ( + FB73EE6CD424A7543EE172D0, + 8E7F5F80EB6D99EED152A465, + 9398049BFCAC42B8FD1E16C5, + 3F4889BE2D946E79745601A6, + A1D2256DD1E864A4560459F3, + 5DBE1359F502F9C72E38800B, + 89006BBD5040A06E6C559F16 ); name = "format_types"; sourceTree = ""; }; + AC7EF7E94559BBC511E03002 = { isa = PBXGroup; children = ( + C427F2763EEE1F1C11E8EAF9, + 451D484BE77922E33CA60DFE, + 72C3E3A3E2760E1ECB6BD30A, + BADAE0896F7D4AEAA481B257, + 2C516889F34A72150CDB6ADF, + AE2C0F932F7E54799FA0897C ); name = scanning; sourceTree = ""; }; + E0455F5194FF065007BE4B0B = { isa = PBXGroup; children = ( + 105805580BAF2CEBE4D0DA33, + 10F28FF3263B59E64AF73921, + FD4542E6C91E7212198A0887, + AC7EF7E94559BBC511E03002, + 904B316152B6C23112E0A0B1, + 768D628853DDE9E4EF563DE4 ); name = "juce_audio_processors"; sourceTree = ""; }; + 6AA0D6DFB981C9ECDFED4C40 = { isa = PBXGroup; children = ( + 6D16F5C591F5558984437145, + 47F1E35082ED332567F9C727, + 0D244B27274E1E7AB434C32B, + 38022D22AE783472BA32DF82, + D2F7081BE9A6E24BA7CD1A46, + 86A52913E895EFD9C4D43D04, + 1D3DA514A7B46A2A32A32060, + 6E00A6B4B754E3008B969B8A ); name = gui; sourceTree = ""; }; + 41225457F81F375E3C7BE9DD = { isa = PBXGroup; children = ( + 33F9348D753D148E82519067, + CCE2933FEB395826A5710C6F ); name = players; sourceTree = ""; }; + 810A00D2DFF4E5F57301390C = { isa = PBXGroup; children = ( + 6AA0D6DFB981C9ECDFED4C40, + 41225457F81F375E3C7BE9DD, + FAD925A5A262E8ACF4F40354, + FC87932ECFE90EB63664B6BE ); name = "juce_audio_utils"; sourceTree = ""; }; + 2EA2DD5FD46F5D789223B408 = { isa = PBXGroup; children = ( + 834DCAD1857B654514D4A0BD, + B65938BA2A3EE3FEE9923E12, + 3AEC36869846977B0C09A881, + 0BA047892DDF9066220EEDD2, + 4AC80644D0D73A0FF8656CAB, + C2AFCF5805D239DF9F9DE2D3, + 8391251872CF6C7C11F11EEC, + CE28146B186C11F00BCBBBBD, + 1007D3CD4E3D162CCE176520, + 8CB23F01604E12FD33256AC5, + 49C7D1146BE928E7FEF48A72, + 4EB13D757A756408053DBB79, + 34ADBF046976CA8A3932B5EF, + 8A79588D3BEDD0DF69065099, + 85D1779E60213BC6670E2C75, + E6B13A51A01032961340735D, + 89ABB9AFCDB73A409754BE48, + CE882EE8C05AC3A809E41332, + B6ECBC8983C8C13575A3420E ); name = text; sourceTree = ""; }; + 9E385EE2C33A34870884808C = { isa = PBXGroup; children = ( + 7B53B778BF20B1BC43E2D562, + 20D1EA31FD53A558EBD278B5, + 2666A5013948E2EAD29458C1, + C7835B9A7DA88BE84F1366E6, + A86557C09D01406BB6964DB6, + BC4827D57EDF30E1886FCEF4, + B6F619428216E8DD021C6ECD, + DB507A1F7BB7489344FF90A9 ); name = maths; sourceTree = ""; }; + 8FF03782352807A3E6E6F611 = { isa = PBXGroup; children = ( + D8AFC87A918360FFC9D96BE5, + 16A6895439607DD8E651BA87, + C1A15473893B354642F7531A, + D57651845D6D9438DEA62F98, + 737F8D074841EE88B24DC761, + C9E621CAC46AE272EFB807E3, + B1EF98E196E432165CEA08F7, + 48DCD395FA50217F557ECC2A, + 77488721DFFE4D0C22E19299, + 129BC61A6A0478DC45B5F8E1, + 4AF29A63EBF9E0693BF999C4, + 988A5D1934361EB3009CD52C ); name = memory; sourceTree = ""; }; + 35B88D644BE4CDE6A3A396DE = { isa = PBXGroup; children = ( + F84F19D5BEF7E7AE00C8CDD7, + D27A3A58DCC37B5EFC3AD745, + 6D0757D493441CFB9C1B426A, + 8939B318C3AF6793C72D8A9E, + CF15EC19906A7A7C3D9E2407, + 2302DFDF103BE152232EA767, + 10C0D0A587B834EA781EF5D5, + 102DDBEEEAD7EE71450C1EB9, + 78AB95E1E7C39B3794F44E24, + 47B161CB864B6C499DE64416, + 1139AACAD8CE6CD6E9A770B6, + 2590DCE65DE2323D9EF77214, + D9282DF6556197822D2BD5D4, + 3CFE82D0B21D705C8C6DFCF9, + BAF897CBD4F6F7382D4DC72A, + 6C956B90C1BB1217BF02F0D0, + 0A049E4E98CA579D41D98432, + 5D312C2C94366F88C7A7A708, + 9B5833CD741A705B8AFAF9C0, + 013DEB204CA02DFE8B745893 ); name = containers; sourceTree = ""; }; + 97091DE509793B81A0622449 = { isa = PBXGroup; children = ( + C20DAAC0E23CCCB8FF64DFED, + 51A580427D01D51811D5F1D0, + EC97B274D075920B2490E0D8, + C26D5CE23205932DA1062C85, + C766591C3E8CB978D6026F56, + CA5844E270055529F3F3818F, + 12B4120D10259DF8461D689F, + B91F3E65CE47056DAF5C4DA2, + 99FE46FBB05F16AFF37AB6A1, + 9A947B1B4163730D13A4D24C, + 8D66115C77E904AB96FDF64E, + A6073115FE5E1E635C78DDFE, + 19789C9C8EDD3CC9F37592C3, + B6B93A495D82478E99956AD7, + 6BD99638187A39ABC44DCBA0, + 070230F8B36CFD14E7EEAD71, + E48615F1F7D8213F6DC24FC9, + C2D1EE14670950990F0769B7, + 79441FABE26CE4CF9BA128CC, + 077C8710E1F237529330ED3B ); name = threads; sourceTree = ""; }; + 00E1F623EAD83AC9671516F8 = { isa = PBXGroup; children = ( + F1EEED4DC97678861086B282, + 30F6134D7A127DFE9D1ADA20, + 554399057C06249E6FAB9E20, + A26D0251E9EF4FAB12D1737B, + 98C6708DE85079E157822A2A, + F76944FF282DB2FB4FB1B229 ); name = time; sourceTree = ""; }; + 211CD90AA77DBE161D9DAA02 = { isa = PBXGroup; children = ( + F53E1E312FBE025F836AA718, + EE2DACF73E083928ABDDA63B, + 59A4C185020F908DEB4A844C, + 18E9157D37A11EDBDA35131A, + 58061ADC1867C814A334D49D, + 2954678FE7AB78F318FBD4F7, + 823A2690E2229E32DE984AD2, + 8A15EDB6321B758A3EEF635B, + 6DD58CBABB8009DAA5104BBC, + A16EC49106F4E28AD49EECC0, + 7E6AEB024827FD9ACB353BB6, + 2D529158434D415C56A07479, + 4EC68506861032FFD4B848DB ); name = files; sourceTree = ""; }; + C60D4C4FC42A554A46D46B83 = { isa = PBXGroup; children = ( + E26E3AC933F70B56B7B83EFA, + 2D93002DFF33B8BC3AD37520, + 7985BF3EF947A7955C94364C, + AF9F8BD7FAA0567B70EA397C, + 6A4819E134CD45BD043C3219, + F9FE574AC4D30AE44C0DF98C, + 5BC78223CF42F85D660DA536, + 608BEDD96B33E0475FF1FD54 ); name = network; sourceTree = ""; }; + 825131C75D8295428718D9AF = { isa = PBXGroup; children = ( + 936C6419223D7B28CE16A72B, + 32FBF4064072FEB06C6677C2, + C583836F43E174944C6098FC, + A8B2537E3AEB0F0B791CF030, + 3C97F910F4E20FC15DB607F0, + 2173828BA5C245AE8C598C6F, + 2C610D8010FF4A396101E2DD, + 8603713AFBC316218045A963, + 1DFE892B4249D1DA3549F13E, + 956A7825F42E2D33FC97CF73, + BC6C5A22BC49D1F16B797A02, + EACB4129861122ABC1A2BB37, + 2C80ACF1A94F47BA05FA687C, + 3D9E23A71CF1E3FB6D532753, + DE80C724F35B1464853FDE9E ); name = streams; sourceTree = ""; }; + 3F6A1A4FE9CE09F865C2F9EB = { isa = PBXGroup; children = ( + D25A334218A3D87F4D0BBD15, + 0574EFED0877A72D12A472E5, + C94D5056497677CC3FCB5AAD, + 393CDFCFA0358C689E5A3691 ); name = logging; sourceTree = ""; }; + E11D230996C7EA5090C8CF3B = { isa = PBXGroup; children = ( + 20C67AA68186D267436E7F39, + 6EF8660ACF82A6472884ABB6, + 1798F0BC1F2B2DF2F13193AB, + 8D3F5C48CD1B104A105845E9, + 62AAFFC7E5754AA715DCB1E5 ); name = system; sourceTree = ""; }; + 7950FD188ACB69BCCE4E592E = { isa = PBXGroup; children = ( + 72FF1B91B6590B036636E20B, + 39ED2CD3C8A17DF313A0838B, + 2D5379BEA988458161F6694A, + 20149C04068D071819A7BAFD ); name = xml; sourceTree = ""; }; + 356902978BF9F2910199BA96 = { isa = PBXGroup; children = ( + 30B5F2ABF28FD59FA7DA26E2, + A7F413D4C880363878469E5A ); name = json; sourceTree = ""; }; + 31679EC1083B0E93BD133F6D = { isa = PBXGroup; children = ( + 3786A46162305EA0B75F35E8, + C5CF3A35D0896F95596FAC4C, + 830186B50B369AD64C539EE1, + 47DAE660790C8E8CE96A63FB, + 419A5345B4F9B977B7C1FD2E, + AE860FA70A2F37F4A889A9EF ); name = zip; sourceTree = ""; }; + 29D30EC0005E4EA41AB30573 = { isa = PBXGroup; children = ( + 15B78E8E81D489F2711FDFBE, + 3E49B797A7DF7B2F596F330B ); name = "unit_tests"; sourceTree = ""; }; + FD57658D3C4937B68FC377C4 = { isa = PBXGroup; children = ( + 06D8EAABB6D94D55189361D0, + AB4A28A3667EA4C8393470A7, + 2820D74789660269902DB93A, + 549BE844954C5CD52D46FBD1, + 77845C048A123FF3D2619158 ); name = misc; sourceTree = ""; }; + DC206734AA07236B6CF2C486 = { isa = PBXGroup; children = ( + CFF27E108381EC6BA758EE7E, + AAABC8FBF364D9A596F4AA4E, + 0D2F4EE7A540CC2AAFD301E4, + A5A6819C57A0399C81E03301, + CEF96D559AAB6D61FB8A0288, + 82474A9673BE92E34D03FE39, + E48E2824CED9933934127522, + 7F580113B80A85759A406E81, + 353DB618823D6BC97E0986C1, + CA799D1FF79E811275318304, + B657CFA035D5285F14DE6AD3, + 9C0DB4F281D10303224E41A1, + 247646A6A435A3BDDEA602EE, + 641BCC559554D3C4B51A5B92, + B0461717A1A4204943AB55C3, + 9CD9B6E7197079625A165653, + 8B7490B27707118E03A50933, + 2597ED98D3C16A7EEF1FBFFD, + 4E6F438BDC119B89C9518531, + D8081154AA3072D2F2C4B625, + 1FD483D22D49AB7C716008DC, + DA2FCB30EE2A41085FF93B9B, + 03DA010C988E825AF3EFAE7A, + CEAE0C8168A4E71C6D607659, + 106B20CB3C94A1E72B19A7F7, + 8F1D89D1349B0DCC115B5D47 ); name = native; sourceTree = ""; }; + 4DC690DD63DDBC55E62125D7 = { isa = PBXGroup; children = ( + 2EA2DD5FD46F5D789223B408, + 9E385EE2C33A34870884808C, + 8FF03782352807A3E6E6F611, + 35B88D644BE4CDE6A3A396DE, + 97091DE509793B81A0622449, + 00E1F623EAD83AC9671516F8, + 211CD90AA77DBE161D9DAA02, + C60D4C4FC42A554A46D46B83, + 825131C75D8295428718D9AF, + 3F6A1A4FE9CE09F865C2F9EB, + E11D230996C7EA5090C8CF3B, + 7950FD188ACB69BCCE4E592E, + 356902978BF9F2910199BA96, + 31679EC1083B0E93BD133F6D, + 29D30EC0005E4EA41AB30573, + FD57658D3C4937B68FC377C4, + DC206734AA07236B6CF2C486, + A3346F6C215C2CEB5F9416FC, + 278FB432DCB9A4F9DBEB64DD ); name = "juce_core"; sourceTree = ""; }; + F70B6E2FF584AF141CA17BBE = { isa = PBXGroup; children = ( + 6181080398CF1388C5C15051, + 30B7393EE0006E9958AD82C3, + 2D9920BFC36E621CBDCE2381, + A93A4042E1214A65BD70DAEB, + FE87322C0C3E84720083F1C5, + DFF6BF0BB64714A494A25E93 ); name = encryption; sourceTree = ""; }; + D12B1750F63F258FD4B5CC6E = { isa = PBXGroup; children = ( + C07BEF22C24DD225C5D0940E, + DED6D04CFED991C5924B78F0, + C5FF20572B734C4EE8F204B6, + 840EF2C371FCC5690DA216F6 ); name = hashing; sourceTree = ""; }; + 22237417DF1FEB16A5FDCC96 = { isa = PBXGroup; children = ( + F70B6E2FF584AF141CA17BBE, + D12B1750F63F258FD4B5CC6E, + CCD6FA03199F37A9CCA6340D, + A974197873E277C3BA5DF666 ); name = "juce_cryptography"; sourceTree = ""; }; + A65902CD81957B294C593017 = { isa = PBXGroup; children = ( + 32B277F17C4052C6E4C70859, + 258AC1AA4F4459F9CF99944D, + 678034FB9D177C3D08044AB9, + C2E3B2EC0F1EB46349FBAF63 ); name = values; sourceTree = ""; }; + CE753C6AB61CCE0A7E574245 = { isa = PBXGroup; children = ( + 4D2697EB7DF6121A0037A399, + 137FD6DAC3FF840EBABD78E1, + C3F7B701463826A93DFE5587 ); name = undomanager; sourceTree = ""; }; + 172F56777A03BBB0ED14EAB3 = { isa = PBXGroup; children = ( + F123556B79ADA02F5E549727, + 1EA77055DF14613DD32065F3, + 24F057BF79A4723C521BBEE4, + 2E3C193C1C7AF236B10F01A6 ); name = "app_properties"; sourceTree = ""; }; + 43B31F713FF681531675E618 = { isa = PBXGroup; children = ( + A65902CD81957B294C593017, + CE753C6AB61CCE0A7E574245, + 172F56777A03BBB0ED14EAB3, + 51AFA9AA1B3094239580A0B6, + 0F77650615781AFD4374443B ); name = "juce_data_structures"; sourceTree = ""; }; + C12CEDFCB9C90CD0F767D7D0 = { isa = PBXGroup; children = ( + 22132E527A92309318A2D572, + E15F577E82B2E12597447472, + C66E08F5118F529FC623733E, + B6D34ED1DE5CC8010A1BE232, + 96C8D0EE75ABEB02422AA41F, + C4A730DEDDA33FA9A06CDA82, + 52CAE85DCE0FA2692B8A85C7, + 56CA808B4610A5C34730B4D2, + 55DDAA81843B00449145EA5A, + 6627248BD1D82CBA820F1FCF ); name = messages; sourceTree = ""; }; + EED6FE335B473510B17D26CE = { isa = PBXGroup; children = ( + ABDBA289C591093A65BD526B, + 973F391C41F2774E0CB8D54A, + AF26F1B432EF78EB76107FDA, + B59728841A18523C5950A51B ); name = timers; sourceTree = ""; }; + DA337AFA3100AEEA04703024 = { isa = PBXGroup; children = ( + F242ACDC3C1ED82039C45915, + 80E7D8D4E601BCC20054475E, + 0C4CA33345C6952BC8409D71, + AEA287A89324FB9D48370C33, + 59F616BB319A05A8E93B89FD, + A72FB74D13AA5C6A472E9E82, + ACB502AF25A235733295406E, + 6E365FC14CFBA3BD28196D3A, + 9D70FB5DE184C636EC01EC67 ); name = broadcasters; sourceTree = ""; }; + 106C22CF2DD971FCC2C2B45A = { isa = PBXGroup; children = ( + 79E54897373142A27EC0FC40, + 1BDF3CAE40B1FDD559BC3DD3, + 114E68D51824D42B0FFE9651, + 9AFD4A062067D5F709FA793C ); name = interprocess; sourceTree = ""; }; + 99E45617DBB30CEAE6F71DA5 = { isa = PBXGroup; children = ( + 98028D7823ADA4594A8A2A22, + B22D28FB41374E7092AEE96C, + 4604F166A3FC6187967E2053, + 22DA9E57AAA25391C7D1FBC6, + FFF09A9DCDFECD32F25F0CDF, + B62A2E9AE08575992BAE53C5, + A4BF6FE6902ACF80D2E3DB60, + ECEFF5A78873B5B388046E7A ); name = native; sourceTree = ""; }; + 069A030A72EF1BAF3C469E6C = { isa = PBXGroup; children = ( + C12CEDFCB9C90CD0F767D7D0, + EED6FE335B473510B17D26CE, + DA337AFA3100AEEA04703024, + 106C22CF2DD971FCC2C2B45A, + 99E45617DBB30CEAE6F71DA5, + 35FF3215D779C44F5B715702, + 3F273BE94572DB6E747B0793 ); name = "juce_events"; sourceTree = ""; }; + 6B073962B4485C2D4419DB53 = { isa = PBXGroup; children = ( + FE75937BEEFDA021D7767B59, + 08DC64993F213D275B988996, + 04184D8A7003E2E77ED66CFA, + 7D12F1C172F94A735E17ADD4, + 7415D37F43E9CA0C5D924D17, + CC0BC6AC42809A4F4FA21452, + 11B4C67851A83C42B8AC00C0, + E86CBC37B034041BFF5A10DB, + D0B9859FCC534C510C7F37A7 ); name = colour; sourceTree = ""; }; + A86D046BBA3A3F7575A24A75 = { isa = PBXGroup; children = ( + 3706A97B56FC6BFF72B700DF, + 508E1F2760E66BD1A73C235E, + 98D731CDF5B6F60ED9198CC7, + A6C2A4889A4E70DE735EBA4B, + 87EDA764A802069F89CEC355, + FABF3148A2F5D3ACD48E8838, + 385368D4C7693E8903E0C345 ); name = contexts; sourceTree = ""; }; + 24D8A81F218FDA69056FE3D2 = { isa = PBXGroup; children = ( + 07492D83B5CEED0F975EEF77, + 2D585CE2B407C9072D9A22C7, + 6BBE4F2809E2AE0FE445302C, + 24EF2357DEC8017E6EEC7F93, + BD84136646D8700D41BE7EA2, + B53B1A87D9A58B3E056B4D8E, + 664211B1C9D22E34B60EF5E6, + CF6533A53CCA75A2FAFACAB8 ); name = images; sourceTree = ""; }; + 08C024383E9C0EBA20B9B7FB = { isa = PBXGroup; children = ( + 6B03CB11D5DEABAEE7F9E0F1, + 2C2B87B06DED242E1C4FE878, + BE95C8978503BFA15B38D3C4 ); name = "image_formats"; sourceTree = ""; }; + A106FCB178451935674C6F15 = { isa = PBXGroup; children = ( + 27C340103177AB0848BCCC66, + E71C493A0E10D1AE4A3DB2AB, + 12EE1FB670B7894E873E9A57, + 21F1833EDC766935B1CBD2D5, + BA710A8F1D5B056162B7CB3E, + 73AC2ABA9094C062E8DA773E, + 105A6621F66CC8034DC59C9A, + 32F08660DB00B6BD5C905FE3, + 80EEC26431102B212C9F873B, + 3D01072645251F386FCE636B, + B6F0FA98AD1AA6A3552A59FE, + D4DC657E222FE2BDE92EC58E, + 33A84E7FDD64568649CC89BF, + 1089C7A1FF43033FDA63F711, + BF76B8C5007732311AF50543, + 38E0255E6BB9600DEECD39F8 ); name = geometry; sourceTree = ""; }; + BB4F117CD3A2EA9CE8390AD0 = { isa = PBXGroup; children = ( + DF47E8197FF5A9309C062C61, + 1375CAA34ECE0B3B292EEF0E, + C30EE4EFDB359E2A9D58F677, + 989587AD131FF27180BEB3D1 ); name = placement; sourceTree = ""; }; + 0FC4D9918A17F33EEF6831F1 = { isa = PBXGroup; children = ( + 39DADA0AAD7468C535ECD5A2, + 3A7C2EA6B6C8E00BBE6A29B1, + 36DD59799C3C4279B18DEAD3, + 1118BAEA98C38755FEB9E274, + DEE1FC30E2FBB97921616CA9, + 9C5F40CA5A70DD8207F53047, + D1CADE1C7E74F37D0D57575B, + C3E0EB7CDA04886FA8323C17, + FEA724E71E582903094A455F, + E9C3901F0B4AC410025D2086, + 2C3298EC4F4D0DA7A6C4291F, + 90F9E3FB8FF07BA924E42DC0 ); name = fonts; sourceTree = ""; }; + 401A2016A5C336D8F8813895 = { isa = PBXGroup; children = ( + 0B8D7873618440F42487EB7B, + 3EE0B72A06759B14B7FC6836, + 720BE81011A4F54822E7F498, + 12C5FC07F64317F5CF1063A3, + 9B07C7F9F91CDF9465EE2AEE ); name = effects; sourceTree = ""; }; + AE4D88D94AF6F0F06DE97BB6 = { isa = PBXGroup; children = ( + 4F2F636FB9416BFBB1FF2473, + 373EBC4E488B3EF8A0A72CAF, + 6C608B44E265F761D09C91CB, + 61D55BA26F1410A26A007514, + 8EB9B4853F225BDB97D6626E, + 8154D2D681E028B8783E5331, + 0BBEDD3E8C0C2B7C4B52016A, + 2649F70294DB168919CBCAD3, + 5712EB90A8B51DBBC4E19A39, + 6704DC3810D991DADFF947AC, + DFEAB699C98B89FF0B85F557, + 5CABE190EBD0F4EEB763114A ); name = native; sourceTree = ""; }; + 980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = ( + 6B073962B4485C2D4419DB53, + A86D046BBA3A3F7575A24A75, + 24D8A81F218FDA69056FE3D2, + 08C024383E9C0EBA20B9B7FB, + A106FCB178451935674C6F15, + BB4F117CD3A2EA9CE8390AD0, + 0FC4D9918A17F33EEF6831F1, + 401A2016A5C336D8F8813895, + AE4D88D94AF6F0F06DE97BB6, + B523ED8502475B9BB3F392C7, + BF59C96BC3BCB29CCB421861 ); name = "juce_graphics"; sourceTree = ""; }; + 754D5C51D503AEDC94BCDDFC = { isa = PBXGroup; children = ( + A9B72D6049A3539B63AE79D5, + 79078F37EB6919AA440017FC, + C9AEAD8B2366F9508E63A178, + BF6F272194D16055D6A90D94, + 7C1A682DC90937487D6A4B0A, + 6314AFE1A17F085C028B4C82, + BAEAC53813F354CE5E045E9F, + 7BB9913643FCE12B216AD8C8, + BE4673AB9542C19D1C1C3A63 ); name = components; sourceTree = ""; }; + 75FA4FA813EAB3BA61D0FC37 = { isa = PBXGroup; children = ( + 30416A5D76A365DDC434987E, + A57A09A4137135A0AF6A0800, + 3090FB05992F02292F415E33, + 467EAE3A087BEF2C56EE3FF7, + 4242718AFF89762AA5CEC247, + 78C4635C8F91A9A513C6B9DA, + EA1313A79BF10BE60238F3D5, + CCFBB22AC379DC3B3A839CA1, + D27D41D4A06E286FDBDF7549, + 61B4084F81D01C8730F5952F, + 74C5EA2191F9A05902D76BB3, + A9958339328213FF76D8A79C, + BA8CA56A4E1F30984B8E4208, + EDDDD60231231B8221711145, + 6E0DA76710F31FA13F5168B3, + A18C61D2206141C03B24BF9B, + E963816786695359C91EF35D ); name = mouse; sourceTree = ""; }; + FDFB0903CA0E73107353483F = { isa = PBXGroup; children = ( + 1FC2BD9784C0FCB1D259C006, + 11545F94DD1628DE57CB7768, + 03E820FAB7405937F26D6EF2, + 8B0B9E8A37911F76577E3AA8, + 18666AEC1FCCE5D1514EB1FD, + 7FC1A0B1663AC9262104D715, + CD2AEFC254C92A49F2D5DA64, + 05F2CE704CA3BC807CC5E19A, + 08B1356929EB57FE6FCE238F, + E8FE41E21AD1029DD709FD7C, + 726A4629ED6E091D24471CA8, + 95305C4003CD4784CA20D1D1, + FC1201FBE79AED3FC831ABAF ); name = keyboard; sourceTree = ""; }; + 14C6A919ACDD67A04594931C = { isa = PBXGroup; children = ( + 3A9AB41831037CF68FF5719F, + CCB4250C97008BF3E5F12D0B, + 60704E9013507A9F9729017D, + B5B987C3029862AC58363F1A, + 897420C9C4D80F1AE5F80637, + 7BB52DAA6A783F0194EEF869, + B418FE6F1E2F268880AE00A8, + 4F854124B48F6358A992D164, + 3FA49B24986D1DA7CFA612ED, + 893D867B3AB93E4D96AF060E, + 5CE14F63495533AEDBD1688B, + E5DC4602843749A071B17576, + CB68DC2B2EA837D6869AAACD, + 171777847EB6194910E9CFEC, + 34E9DFB552CA9B8FEF8DEF1D, + 98EB4070281520EADE02212C, + A34C1EFF7C51BEB33C22FAFA, + 3543594CCB08E22D1EA8D2C7, + F534B4A3A4E46A8311A44649, + CFB2E2DFBCBAA9BF91E7CB35, + 10152F168CB3E2039DF18EA8, + 0EA9280C282850BAB49C1696, + A80CC48B8215D447643CA411, + 3839556028D5A749F48340FE, + 5CE4B86B0FCE258A8A12AB09, + 4E8A36ACA8A867C7511B280A, + DEA38275A65473112CD34252 ); name = widgets; sourceTree = ""; }; + F6D3F46A7453FE306581C066 = { isa = PBXGroup; children = ( + 014740E7C97145AFAD9BD60C, + 0388C01D765585853A700C6A, + 96DDB84D9722732A64DA57A2, + B428CC689CD359B29C67272B, + 5435804E495A87442FD7A6F0, + 3421ADCAF375264A71E5AF07, + 22A86C5C4967A5844323F7BA, + D33142A214D7AC7A8ED27E4A, + A2BBD7D58010E488BE904CCC, + B59DA3ED4F12C1FFEE433EE3, + 63DD8F6DD0DDC9A6F45E0C90, + 119712DC26D0E95E209E85BB, + DF3B7E1BC0AF0C826C47745B, + 35F42453CF2745BD254BC71E, + FAC8B4FB05C57F3461E3FE30, + EC93857F367028441A067F45, + 9AB36BCC26D5CC2CCC71E5E4, + 4DE313B7586BAFF5E9BB0506, + 924667AB0E27AC2CE1EB7828 ); name = windows; sourceTree = ""; }; + 9AE0D12907BC79E230FC6920 = { isa = PBXGroup; children = ( + 56D3242C281C2F19A2A6E81B, + 66425E2428080B75F0FFB2C4, + 52FD39B0A762C353D2FB09BC, + CE66BAB575B13375E1EE937C, + 3CF7FB16E7DFE7EC2636A45D, + 3507A95E429F11E5549286CB ); name = menus; sourceTree = ""; }; + 63EF7163E3CE53A8167FD628 = { isa = PBXGroup; children = ( + F664E58A0B3899FB98CF8E1C, + 4EC77B02BE7457DE877E332B, + 23189A59169BC89E95A4A496, + D7E6E92AA32B7D51489FD256, + 61C6FB83D4582BF2F84EB464, + 825BDA58C2694CE7F3FC2494, + 422D4D8EE3470F57D56064AA, + CF2A1897A3C5610A282A2713, + 108D97ACAEDE5A8DF0A483B7, + 3B32FA1EF99322D3DED5F162, + E453E312D607E60FAA6D1BF0, + 6B0F3AF3FE7B113C33112897, + 7F2A4EF4DE29CE775FF0F5E5, + D602AE751C3C12A6458FCCD5, + 052964DDB569D0D8C38B89FA, + 9C7B5E573807ED59065B54DA, + AC2D4E1081F69B20AAB47E2F, + BCEAC6346AB15421E3A5AB70, + F48AE8E1A9A1608BEB4C16A9, + 9B572F52342BE9169D435F1C, + 2B3A770317B04AAF24C28EF5, + CD9EDF2EE190AFB02CCC3F49, + DD40A3E06CA320D95F3924BA, + FD36FD1612A96DDE000211E0, + 65A50CC38E2A045D320D4224, + 32FF688C9F64E07EA3917682, + 74D36012BEBC6FDD72B0572F, + AF5FD9E66E46B600914FFE53, + C4C6D6B8731B400B29A3A4E7, + 0EC1E7F1AE41C81E1EA23B2E, + 1A9EC07147DD48C0D68BF304, + 7EF1F0BC4F4DE2986856DE41 ); name = layout; sourceTree = ""; }; + D5D3EABCD52C4657BAA44568 = { isa = PBXGroup; children = ( + 43D8FB16F1DE9F159C7A2F71, + B1C64086587109AA429DE418, + 4D050E552CC0A82297D0AC86, + 7DA4BF4F615254D8AFD37BEE, + 9E80EC17EE6322C452E9A774, + E38DE271B32DCC95E52C72DA, + BDC0E815578ED04901FB9251, + DE7617FB215CD22983E7D736, + C7EBDC32959BE4405ECE2148, + 195326647ACE1A61018358BC, + 927B5B18A655057D57C37D35, + E6C582E67DC0C4D0CCA18166, + E3FC888CC9FAD650C469ACC5, + 2ACD67859FBC33EB743708CB, + 1A642D2FFD6CB47C8634337B, + 0E0F146C817BAD44A024ECC7, + 99B22FB30FB36F358A932F6A, + 67F14D1D1869540E4B9540B5 ); name = buttons; sourceTree = ""; }; + F9F59A6E27133C09D32DD9A2 = { isa = PBXGroup; children = ( + A588C458AC395D8AC09A433D, + 50A201CF006DD19F648C429D, + 99971599D48BFF60437E0F44, + 731FFEA1471A03D05AED1B77, + FF93CCEC386B165840328831, + 12DD0DF90EEEBCE88873C8B1, + D33EBA9793C56D73135BD1F0, + BB94B67B5B0EC06015621F59, + 09768BD4CFA73C85F8353F3A, + 63CF475000C8419AE8D25BD2, + 53A5227FBB8C0DD8F4442599, + 2A835EF38887CAB750B49AC6, + 06574539E17A8703E442F691, + 725D10330456FC57C9FEA75D ); name = positioning; sourceTree = ""; }; + B59BB676733E03D09CEEC9A7 = { isa = PBXGroup; children = ( + C50F17EA37434C3C7B52C3BD, + 503F07193B665711417DF1FC, + BD1E818B710742D5EC07BAE8, + 47BD3D6D5AC81F74179942FA, + CC1307C0AEE134EEA46F68EA, + 122C499E8D63BC4F91ACC7B6, + 2708E4F2F73D88F73D8E54D0, + 35089DB1D126566F2B5DD724, + 12B479E0CD2AAE105820B20D, + 156E421F5B0D6CAD8D415F53, + 5996F037CD5993251871573E, + AA0DE5CA2B089393B110FD25, + 687E1D120E47EEFEEB73A4BF, + 26B73C77D47B146F92BEA265, + 431B8B4CCA364880B507DD4E ); name = drawables; sourceTree = ""; }; + 50A2C093F5AE2410908018DA = { isa = PBXGroup; children = ( + 4CE8628F7CAB483AFAFA01FD, + E2732267CD7C0C3BDB17456A, + F796E49F8209912C1E8E0ADC, + 49FED6A86A4F78CDB60CBC99, + 709D153E2940C162215E31F7, + 462F0D225347C4FDB943324C, + 591E3F5832C08B0841971B01, + 31C1E172911A4C726A85EA02, + 2D6DAE85F0A729F1FF761DC7, + 34BEABBC39678C06EA3BB307, + 63A3A467F124B67D19587D4F, + 36EFC492079F0B7F4A1CB099, + F6AE140F7CE1B08B52A8C8AF, + 03AB3157D77979CDD2601A86 ); name = properties; sourceTree = ""; }; + E4A2262D5F17C9E13403F764 = { isa = PBXGroup; children = ( + 2F7FE4AA919A66D5EFF65A86, + 329BD0A0243005D36A444135 ); name = lookandfeel; sourceTree = ""; }; + D529A26C2B113F5DC6DD3571 = { isa = PBXGroup; children = ( + 5725CB557A7D55CA59E18324, + EC180AD91D1B068D7A8F33BB, + 348002712045A8515DB393E4, + FBDA70B8FF6C6D669F9CF540, + 66E3497A9DCF883BCE6A27A8, + C8E9F901721D86767BD458B3, + 89F519023C03C9908F761BAE, + F6D1D5FD437BF40AC208AA2E, + ECCEB7E5D6B18F1376E34EDC, + 574BCE46C31D810F694B0651, + BD7E3C305F0976D5C5395090, + 1A9B80E0518B9AA9C34D5804, + EB9E8921A8D36EDD7FF3245B, + 1D0DD674EEEF98B1E1B8D8D8, + 0C7631EB40FF52D74D3D0A8D, + 86DF811859C602F24589AC3D, + C069C5FCE1539E9F85C7F29E, + 59591325C73706DB6BD2C887, + 98DD360F5D3D60539185DE90, + CAF961A7AFDB2830B419214C, + DF2D86EEA8031481C1FD08B2, + 5010D82E6ED57F014D8E88E3, + F26F7C7D6D9EBA2693914AA1, + C03AF9257B94504D7270416A, + 6CC2241F234EDD873FD5BDC7, + F4C50E1A3DC066396613C401 ); name = filebrowser; sourceTree = ""; }; + 7BF561FBBF76BCAD37304ED8 = { isa = PBXGroup; children = ( + 3FCF8E2901F23E806122E4AA, + 747D307A1A0D468103D4B20E, + 5D7DE60BB4DF4CE300B4F343, + 43A4661DD876DBD6A6E1F5C7, + C0608375ACE89B422431E9A9, + 0782BB99E1CCE0474B695C7D, + EB902A37F3AA5BC62D523F5B, + 20E63E36AE128883F4144BC3, + 3121916B396AFD0027FF1926 ); name = commands; sourceTree = ""; }; + 78AB3C7F8B92CBD9F21EDD39 = { isa = PBXGroup; children = ( + 9D18794763C086784ECE98D6, + AAC98CB517D934F42A25416E, + A1A96650D3211A87738A9B75, + 3ADBF520293DBBCE5A605902 ); name = misc; sourceTree = ""; }; + 44C5E35F6404D0D81E2F93BF = { isa = PBXGroup; children = ( + A58203002289D424A2CDF5DD, + 3B583D35FAD0DE89F00F17C0, + 18D1181C39F5A59423AC7A3E ); name = application; sourceTree = ""; }; + 0741D0D65503C2C4BB227EC8 = { isa = PBXGroup; children = ( + A9566A42230AACC1AFDC6C5F, + 1B3C2797B04E0FC6699DFDF0, + 6BBB8746C2C1BB5F3C3F1FC2, + 9F35ACC90F2A1C2E565148C8, + 7667028F4EC27060934DCF30, + FEB2CCC12BBABEEC23384FDD, + 3D8ED4E2F2DFEBA891A4BD7B, + DA0D464BE6E90C3668AD7C73, + 4871179A9D7239EDE34B33BE, + F8FB27C3434BB255CED42861, + D3AD73A360B24493ECC4E092, + 5ACCDDBA02C73CE15D6532E9, + 22CD1BF5E83A216A0D18260D, + 62AFEF7525003814092C79FA, + 3E11497CB4E6589C8A10E740, + 52D9F5FD82C858FE4F134773 ); name = native; sourceTree = ""; }; + ADFD648375272A1E67B3CB5B = { isa = PBXGroup; children = ( + 754D5C51D503AEDC94BCDDFC, + 75FA4FA813EAB3BA61D0FC37, + FDFB0903CA0E73107353483F, + 14C6A919ACDD67A04594931C, + F6D3F46A7453FE306581C066, + 9AE0D12907BC79E230FC6920, + 63EF7163E3CE53A8167FD628, + D5D3EABCD52C4657BAA44568, + F9F59A6E27133C09D32DD9A2, + B59BB676733E03D09CEEC9A7, + 50A2C093F5AE2410908018DA, + E4A2262D5F17C9E13403F764, + D529A26C2B113F5DC6DD3571, + 7BF561FBBF76BCAD37304ED8, + 78AB3C7F8B92CBD9F21EDD39, + 44C5E35F6404D0D81E2F93BF, + 0741D0D65503C2C4BB227EC8, + 760B6B73C7C332980801C0C7, + B875CBC2CBA6D01EE0AAB25C ); name = "juce_gui_basics"; sourceTree = ""; }; + 0738039F7E5D430630032154 = { isa = PBXGroup; children = ( + 5092F31788400A172E319CCB, + 15DD1FC7780F48C6DFF56321, + C3A77F115D67C0E24C65FC45, + 441F40BFFD11D433F2FED531, + 282C1DA3A161FEF2AD6F94A6, + F84DBFF75F5334EA86AB2E37, + 618F07B344089C7B13EED411 ); name = "code_editor"; sourceTree = ""; }; + 640482925394FB311FDAB984 = { isa = PBXGroup; children = ( + D6C9614D1C6493DBEE370646, + 82AD87FA68D9DDD78F9A4674 ); name = documents; sourceTree = ""; }; + 1E1530112868032A2C02F4A4 = { isa = PBXGroup; children = ( + 2E7A4C5E41B3BEBC444B5935, + 1E868017015269856168EBA1, + D226630AEE6B273B6B1ED622 ); name = embedding; sourceTree = ""; }; + AD533544879D32FDC9647970 = { isa = PBXGroup; children = ( + 8042D0D2B38EBD19652CBA55, + 896140063D12A19D1DCBF3DF ); name = lookandfeel; sourceTree = ""; }; + E2081DA359B95C05D825E9DB = { isa = PBXGroup; children = ( + 1CCB7B18759F7CEBB065C31E, + 0E74D38CAF5F8C914132F4D5, + 61941C6E24D2D04F51F59134, + 2CED94801F5481AE15648BF9, + BF2093D486040BEC64210EBB, + 9AB8510F26D6035159042BC2, + 74390F0BB6A54198B7EE12CE, + 8E6E18125D1046B97EF7AEE2, + B2F5CA0FBCECC10EEEAD11E9, + 2FD23F0C1CE490858228180E, + 33E3113EE5BF74F269FAD5EB, + 14105A8032081F6FC44F7F0B, + C2692BB8791ADE59158D9F21, + 61E83A490FBB38A8D7613146, + 476F1E00A832948D22B468C1, + 9D042E1CAB03CFCD4B937951 ); name = misc; sourceTree = ""; }; + 6478E04ACFBEA2CBBBE97006 = { isa = PBXGroup; children = ( + 3D5DB29BE2D59A93B5516273, + 2E02355C7790F4B6EA0CC56E, + DF590CD70352A30FA3BD9835, + 3CFD018C7CC9E7B8E1E6232D, + 99AAA16209763F3DA2113D1B, + CF0DB23C5950CB619CF8D812, + ABBA4018C1596481E7CD51CD, + 147A045E381AE58EC0C54984, + 8CA151FDAFC858B6535BF6A3, + 3342B88619BAEFF4C41078FD, + 93C594ECD5CEA7878114149A ); name = native; sourceTree = ""; }; + FC8FF0152858F140DEB1622C = { isa = PBXGroup; children = ( + 0738039F7E5D430630032154, + 640482925394FB311FDAB984, + 1E1530112868032A2C02F4A4, + AD533544879D32FDC9647970, + E2081DA359B95C05D825E9DB, + 6478E04ACFBEA2CBBBE97006, + 5E12C726C5DBB9C81963FAB5, + A97EC32975392744C62684F9 ); name = "juce_gui_extra"; sourceTree = ""; }; + EB8917291F41B7345B13B53E = { isa = PBXGroup; children = ( + D866C4735BF1EF0CA24FC1FB, + 87FB016388B49E97FCCBE69B, + 4F802BD98072EA49F7F4FE4A, + D6D0F076F54C7D669A9717C9, + 5786364EC4C531CDE41BDCEA, + 8878426C7F58CB22969E7133, + AC3EFDDC80761A45E8BE0624, + 43E4604C39E9A992216F6B98, + 295A470694011EBCA802822B, + A7B3B265DACC82D9E9CFB3DA, + D7239D5B984E07808E2DB28C, + D2C40CDF46D894BFC72BDC56, + E46977801F19277F4D3B324B, + 17422D876DAAF091ED089B8D, + B81FA2ED22BCC03D124031ED, + 58864C3D7F369EBE01E42C5C, + 8EEB4DEB11F3DF01BA6F7528, + FE9A5898294228EB7F439951, + 4CFB262AA9778621B8B33A7D, + EC89003BF30329181BB3EA4B, + D2F161366612A4CDA6372113 ); name = opengl; sourceTree = ""; }; + C92FEA88254DAAE793DB3CF7 = { isa = PBXGroup; children = ( + 22C2C932398DC1EFE0880A9A, + ED9FAEA9116C568942BAD000, + 6E1CFF5227B2F2E200DD9EC7, + AE394742FA0F2C6AA39906DD, + 7E6041874E267458572B93A1, + 8565630D87FEE505D50CE2EF, + D66048AF1E05FF836B2A813A ); name = native; sourceTree = ""; }; + 7CFCB9A92FB574419734C1F5 = { isa = PBXGroup; children = ( + EB8917291F41B7345B13B53E, + C92FEA88254DAAE793DB3CF7, + 53B187F6CFBDE72F4CEFE845, + 2184D5F7212394F4BC1C3B45 ); name = "juce_opengl"; sourceTree = ""; }; + 269792C267D2F1CB065C91CF = { isa = PBXGroup; children = ( + 2968B26144E09D6A6659E739, + 607083E28D3CAAC3C69D3010 ); name = playback; sourceTree = ""; }; + A76B071B010FC4CF03DFE5C0 = { isa = PBXGroup; children = ( + F93E02181A90B71B0C16629F ); name = capture; sourceTree = ""; }; + 0F1BFB71EE708138D6BAE774 = { isa = PBXGroup; children = ( + 49AD4268C6B2CF4E12806E56, + F28314027C0D8E36A9FE43E3, + 1580FF065A04106DBBA8F475, + 6DF10AFB26794D47F3AC783B, + 4ADF2B4274758FA3F435D6DB, + 7D01B73D4ECD4899173EE882 ); name = native; sourceTree = ""; }; + A23C0116EA7422F7F759BFEF = { isa = PBXGroup; children = ( + 269792C267D2F1CB065C91CF, + A76B071B010FC4CF03DFE5C0, + 0F1BFB71EE708138D6BAE774, + 47C2B600A45FAC095669304F, + 7B0C40F57724D3021F83F423 ); name = "juce_video"; sourceTree = ""; }; + E9CE0CCE2CE829712D4E41BD = { isa = PBXGroup; children = ( + 0596B4096DD627F972BB026F, + 21689DE0A3F6A8E3550F027F, + E9E9D81EA027C542C95D6294, + E0455F5194FF065007BE4B0B, + 810A00D2DFF4E5F57301390C, + 4DC690DD63DDBC55E62125D7, + 22237417DF1FEB16A5FDCC96, + 43B31F713FF681531675E618, + 069A030A72EF1BAF3C469E6C, + 980520A52BB3BF76E45AECA8, + ADFD648375272A1E67B3CB5B, + FC8FF0152858F140DEB1622C, + 7CFCB9A92FB574419734C1F5, + A23C0116EA7422F7F759BFEF ); name = "Juce Modules"; sourceTree = ""; }; + 267F5230CADEEAB9CA475C2F = { isa = PBXGroup; children = ( + 4EB06BB3A534C3865CD7A8B8, + 579D22DA6ECC930E19B7104A, + 4E0A38A8008E55C09BFBA199, + 33DAC2BB94AFCF8EB33A1417, + 7C7834D5AB7E6656A4CECF2F, + EADE149294A3A3509EC61E6B, + 0FCE8CD83D0FA98563EE2920, + 278099898E32942D72AB635A, + 868D4BEF6B94EB7BF659CF01, + 4FC0DDA3086EE26242655E66, + 766F3BD777CA786CD6BE023E, + 890F3D7DA5BC01DACF8E5431, + 575587359A2F65312CE97AC4, + 4CE1249813E63913B15BB51E, + C2072DE0D1FF6AA90A700D25, + 9AE7533B1AD68245E130B3AC, + 49DA3670A8CF79F133914D18, + 42B89D48E9FB252F1BC3796A ); name = "Juce Library Code"; sourceTree = ""; }; + 539DF80B9269EFCA8BF42818 = { isa = PBXGroup; children = ( + 148C8FE6639F6CDF0E92235D, + 16793951B75EADE5C08FD129 ); name = Resources; sourceTree = ""; }; + 0AE68D12A51E59B084E046C1 = { isa = PBXGroup; children = ( + DEB23C98FEC261260F63B6A4, + EE3E9902579904E57D1A5A18, + D45EF873A4BD7D0E56274D79, + 3E51C5F35FB095AF4F0E373F, + 6FCC44A5DB0B881454AAD300, + 2425625EE014356B5980B238, + 70350B2642B3D062D0A8D239, + 72421270611D3B09781CA634 ); name = Frameworks; sourceTree = ""; }; + 913372FE9DAAA74F5520A786 = { isa = PBXGroup; children = ( + D119A3871626EC2B8EFCB0D4 ); name = Products; sourceTree = ""; }; + 197E966E1B8F9DE1A6F9F0D4 = { isa = PBXGroup; children = ( + DC7F5A47CBDE7E3A9AA86F85, + E9CE0CCE2CE829712D4E41BD, + 267F5230CADEEAB9CA475C2F, + 539DF80B9269EFCA8BF42818, + 0AE68D12A51E59B084E046C1, + 913372FE9DAAA74F5520A786 ); name = Source; sourceTree = ""; }; + 2FE1E46B92ED7BD427F01D8C = { isa = XCBuildConfiguration; buildSettings = { + HEADER_SEARCH_PATHS = "../../JuceLibraryCode $(inherited)"; GCC_OPTIMIZATION_LEVEL = 0; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; ONLY_ACTIVE_ARCH = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "_DEBUG=1", "DEBUG=1", "JUCE_ObjCExtraSuffix=JSLvvV6j", "JUCE_UNIT_TESTS=1", "JUCER_XCODE_IPHONE_5BC26AE3=1"); }; name = Debug; }; - 8EF7C7FFD55219581A5075F3 = { isa = XCBuildConfiguration; buildSettings = { + 9E3B64077ABD2AA72A51EE7C = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - PREBINDING = NO; - HEADER_SEARCH_PATHS = " $(inherited)"; + HEADER_SEARCH_PATHS = "../../JuceLibraryCode $(inherited)"; GCC_OPTIMIZATION_LEVEL = s; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -197,7 +2025,7 @@ "JUCE_ObjCExtraSuffix=JSLvvV6j", "JUCE_UNIT_TESTS=1", "JUCER_XCODE_IPHONE_5BC26AE3=1"); }; name = Release; }; - 7FA986B99AFC795723E00AB0 = { isa = XCBuildConfiguration; buildSettings = { + 7F619F19FB1204B9E5AA1421 = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -215,7 +2043,7 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; PRODUCT_NAME = "JuceDemo"; }; name = Debug; }; - 623F392572A48BDD48CE1CC4 = { isa = XCBuildConfiguration; buildSettings = { + E713D5D6C98E4FFEF301FC0C = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -233,55 +2061,66 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf"; PRODUCT_NAME = "JuceDemo"; }; name = Release; }; - 2B22E1D006C8AF43954EE79D = { isa = XCConfigurationList; buildConfigurations = ( - 7FA986B99AFC795723E00AB0, - 623F392572A48BDD48CE1CC4 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - C264FE1BF62B589B345E0C81 = { isa = XCConfigurationList; buildConfigurations = ( - F46B3E8DBAFA746E04F4F62C, - 8EF7C7FFD55219581A5075F3 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - AE930F136F638C3C939F7146 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C0A3C433D146C7E1FFCADFB2 ); runOnlyForDeploymentPostprocessing = 0; }; - 7A3A0C722E5F96990CA1B5F2 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 78A66C2F9A9E2E6D011D8E5E, - CE5C46E66485B7D77B5ADB4E, - 2E2DB52D03DD6A56FAC937A4, - 8E0E3B718F35E9E1DC3D89C5, - C4C49D2D5D27730E55B27BCB, - 2CD67851BCF3F24E0B5F82CF, - 29C9F0E2824F63B105234C0A, - 7EFB4E7D738BFFF90F49E0C0, - B69F5957B1729915BFB18735, - F920A5AB6D0FF01022575079, - 940BE0338CC1FEB65B4B82E2, - A3AF0F559DD97F1B908AC1CA, - 2C0AB902CB01E38D87A2A6A5, - ACD2210FDE1137548F995F85, - 2F6BFF7DD839160223057CF7, - 1552CF5A0A932C5EB88EC56C, - 969C49FA8B55C700ED848494, - AE1CB65D73BFB3FA707B59FF, - 99D9F5D6FC8A015C603B32C3, - 563DEC7941B88163A50E0945, - F5691895ACDC7B12DE88EFF4, - 4D5C0ED42C87FBE02A9C7BE6, - 80926D2B83ACF680958111EC, - 2201A04DDCFC361882F8EA62, - 2E98B1DEA8B7FC20ACCD2E6D, - 3A2EC17F8472C338D6A26278, - 36B5D100604D9A300187B773 ); runOnlyForDeploymentPostprocessing = 0; }; - 2E5F3CCB074AC0B18683A4F3 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 36AEC0EAE7AB9D061AD9EFEF, - 7938A4501BDD574C4121B988, - 8223C2805B1A9ECA27926EB5, - 3BE296F09A47C0ECE4D91CF5, - 268F2BF480CF9844E2F2B974, - F1BAE9DCD179C8784FF28F8D, - 1DF18F6B9CCFF7BD07C36AC2 ); runOnlyForDeploymentPostprocessing = 0; }; - F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( - AE930F136F638C3C939F7146, - 7A3A0C722E5F96990CA1B5F2, - 2E5F3CCB074AC0B18683A4F3 ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = 39B98C60B57B831FE5215CDD; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - FD051827ADE403C022034508 = { isa = PBXProject; buildConfigurationList = 2B22E1D006C8AF43954EE79D; compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 0; mainGroup = 1609BCDD8EC2BA2A162B68F3; projectDirPath = ""; projectRoot = ""; targets = ( F26B86DEACDEE5DFB60E10B1 ); }; + C01737B8733CB01B27C1DF59 = { isa = XCConfigurationList; buildConfigurations = ( + 7F619F19FB1204B9E5AA1421, + E713D5D6C98E4FFEF301FC0C ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 4EBA6A51E838E294DDFC57F8 = { isa = XCConfigurationList; buildConfigurations = ( + 2FE1E46B92ED7BD427F01D8C, + 9E3B64077ABD2AA72A51EE7C ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 2E115993E9743E9E60D96434 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 933C39A0A20A89B767742D07 ); runOnlyForDeploymentPostprocessing = 0; }; + 8478974C956501F4EA996448 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + F7DF6AC4276AD42F4F360E37, + B99620051F4C5A2FAB1DE49C, + 49FBA0236A1917CEF50FC456, + F5B4E1CC211F5215D6E05B44, + 6D221136E94E784E793B9CD5, + B43C4A8F569137053CCEAD76, + 127ED5764EA5A3BF3CEA5BBD, + C4FCFE5612A1ED999FB9D51D, + B2A1C85517169CCEBB79CB9F, + 196F67D37488DD92EF434694, + BF03F7C64A1FA6A2E15A9780, + 4CA7D59ACB03776D785FEB12, + 7DFFCAD7929BE7BA645C65ED, + BCFD0CA15F13967BF82B26A4, + C33DAAC97DACAEE978D635F0, + 4FEDD45FE6A26543E055F259, + F600FD434B52D887C1FB973D, + 0C993072AF2728D62BF28094, + 1D0E1EAD88C7EF8CBB16E841, + 85EB509411E79E3F970C9653, + C24BF8E3142DBFD0139EFEE9, + BEBB1C4BA92F6D4CDE224A15, + 662202A6B86B11E3DBD96D58, + B00C72D607AF2A98366B40DE, + 8938D948E7A216EE7264F500, + BA3DAB221F557B4C346EAFCF, + 26973D9739CE05EF7F41C687, + 020A3C34BE41F0B9B4AC7A64, + 845872D67C4313E91DCD3A8E, + 6488F374D2A9B9FEDAC40859, + F72A0043671FED94178413A1, + B639B9459CB9EBE2A00A37F3, + A9BC6DEA9311B5C74977A95E, + 3FCA7FE72D0EF062CB350F88, + 574104B02E5C0BFCCDA099B1, + BF1DE7C7A64706C9FBD7284E, + 4A61E54E2ADD5FBBB1486257 ); runOnlyForDeploymentPostprocessing = 0; }; + 8C6D93B7CB9CCF8025AA68EB = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0BCC52797AD97E09EA6DF0E4, + 874D7495FAC2F4537D6AA989, + F544EDBF5507628552174493, + A2DE43FDC367184A8239D7B2, + 74CCB5B6EA1B00750D1831DA, + B2E59607B91E74E94565E022, + 87EDE18A8381271AE00E982D, + 44198BB3EF9EB0F469BA45E7 ); runOnlyForDeploymentPostprocessing = 0; }; + 9A1F85020B3ADFBFE3D383F2 = { isa = PBXNativeTarget; buildConfigurationList = 4EBA6A51E838E294DDFC57F8; buildPhases = ( + 2E115993E9743E9E60D96434, + 8478974C956501F4EA996448, + 8C6D93B7CB9CCF8025AA68EB ); buildRules = ( ); dependencies = ( ); name = "Juce Demo"; productName = "Juce Demo"; productReference = D119A3871626EC2B8EFCB0D4; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + C1B2C620111BD898B338CCA1 = { isa = PBXProject; buildConfigurationList = C01737B8733CB01B27C1DF59; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 197E966E1B8F9DE1A6F9F0D4; projectDirPath = ""; projectRoot = ""; targets = ( 9A1F85020B3ADFBFE3D383F2 ); }; }; - rootObject = FD051827ADE403C022034508; + rootObject = C1B2C620111BD898B338CCA1; } diff --git a/extras/JuceDemo/Juce Demo.jucer b/extras/JuceDemo/Juce Demo.jucer index 7338693643..47ae7a2306 100644 --- a/extras/JuceDemo/Juce Demo.jucer +++ b/extras/JuceDemo/Juce Demo.jucer @@ -7,32 +7,80 @@ pluginCode="Abcd" pluginChannelConfigs="{ {1, 1}, {2, 2} }" pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0" pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="JuceDemoAU" - pluginAUViewClass="JuceDemoAU_V1" pluginRTASCategory="" icon="Duj062Top" - bigIcon="f4hwldS"> + pluginAUViewClass="JuceDemoAU_V1" pluginRTASCategory="" icon="Duj062Top"> + juceFolder="../../../juce" objCExtraSuffix="JSLvvV6j" bigIcon="f4hwldS"> + + + + + + juceFolder="../../../juce" objCExtraSuffix="JSLvvV6j" bigIcon="f4hwldS"> + + + + + + rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../../../juce" libraryType="1" + bigIcon="f4hwldS"> + + + + + - + rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../../../juce" libraryType="1" + bigIcon="f4hwldS"> + + + + + + + + + + + - + rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="../../../juce" + bigIcon="f4hwldS"> + + + + + + + + + + + - - - - @@ -108,15 +156,25 @@ - + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/JuceDemo/JuceLibraryCode/AppConfig.h b/extras/JuceDemo/JuceLibraryCode/AppConfig.h index b40b66507e..9c58c123eb 100644 --- a/extras/JuceDemo/JuceLibraryCode/AppConfig.h +++ b/extras/JuceDemo/JuceLibraryCode/AppConfig.h @@ -3,39 +3,163 @@ IMPORTANT! This file is auto-generated each time you save your project - if you alter its contents, your changes may be overwritten! - If you want to change any of these values, use the Introjucer to do so, rather than - editing this file directly! + If you want to change any of these values, use the Introjucer to do so, + rather than editing this file directly! - Any commented-out settings will fall back to using the default values that - they are given in juce_Config.h + Any commented-out settings will assume their default values. */ -//#define JUCE_FORCE_DEBUG -//#define JUCE_LOG_ASSERTIONS -//#define JUCE_ASIO -//#define JUCE_WASAPI -//#define JUCE_DIRECTSOUND -//#define JUCE_DIRECTSHOW -//#define JUCE_MEDIAFOUNDATION -//#define JUCE_ALSA -//#define JUCE_QUICKTIME -//#define JUCE_OPENGL -//#define JUCE_DIRECT2D -//#define JUCE_USE_FLAC -//#define JUCE_USE_OGGVORBIS -//#define JUCE_USE_CDBURNER -//#define JUCE_USE_CDREADER -//#define JUCE_USE_CAMERA -//#define JUCE_ENABLE_REPAINT_DEBUGGING -//#define JUCE_USE_XINERAMA -//#define JUCE_USE_XSHM -//#define JUCE_USE_XRENDER -//#define JUCE_USE_XCURSOR -#define JUCE_PLUGINHOST_VST 0 -#define JUCE_PLUGINHOST_AU 0 -//#define JUCE_ONLY_BUILD_CORE_LIBRARY -//#define JUCE_WEB_BROWSER -//#define JUCE_SUPPORT_CARBON -//#define JUCE_CHECK_MEMORY_LEAKS -//#define JUCE_CATCH_UNHANDLED_EXCEPTIONS +#ifndef __JUCE_APPCONFIG_SLVVV6J__ +#define __JUCE_APPCONFIG_SLVVV6J__ + +//============================================================================== +#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_utils 1 +#define JUCE_MODULE_AVAILABLE_juce_core 1 +#define JUCE_MODULE_AVAILABLE_juce_cryptography 1 +#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 +#define JUCE_MODULE_AVAILABLE_juce_events 1 +#define JUCE_MODULE_AVAILABLE_juce_graphics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 +#define JUCE_MODULE_AVAILABLE_juce_opengl 1 +#define JUCE_MODULE_AVAILABLE_juce_video 1 + +//============================================================================== +// juce_audio_devices flags: + +#ifndef JUCE_ASIO + //#define JUCE_ASIO +#endif + +#ifndef JUCE_WASAPI + //#define JUCE_WASAPI +#endif + +#ifndef JUCE_DIRECTSOUND + //#define JUCE_DIRECTSOUND +#endif + +#ifndef JUCE_ALSA + //#define JUCE_ALSA +#endif + +#ifndef JUCE_JACK + //#define JUCE_JACK +#endif + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER +#endif + +//============================================================================== +// juce_audio_formats flags: + +#ifndef JUCE_USE_FLAC + //#define JUCE_USE_FLAC +#endif + +#ifndef JUCE_USE_OGGVORBIS + //#define JUCE_USE_OGGVORBIS +#endif + +#ifndef JUCE_USE_MP3AUDIOFORMAT + //#define JUCE_USE_MP3AUDIOFORMAT +#endif + +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + #define JUCE_PLUGINHOST_VST 0 +#endif + +#ifndef JUCE_PLUGINHOST_AU + #define JUCE_PLUGINHOST_AU 0 +#endif + +//============================================================================== +// juce_core flags: + +#ifndef JUCE_FORCE_DEBUG + //#define JUCE_FORCE_DEBUG +#endif + +#ifndef JUCE_LOG_ASSERTIONS + //#define JUCE_LOG_ASSERTIONS +#endif + +#ifndef JUCE_CHECK_MEMORY_LEAKS + //#define JUCE_CHECK_MEMORY_LEAKS +#endif + +#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES + //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES +#endif + +//============================================================================== +// juce_graphics flags: + +#ifndef JUCE_USE_COREIMAGE_LOADER + //#define JUCE_USE_COREIMAGE_LOADER +#endif + +#ifndef JUCE_USE_DIRECTWRITE + //#define JUCE_USE_DIRECTWRITE +#endif + +//============================================================================== +// juce_gui_basics flags: + +#ifndef JUCE_ENABLE_REPAINT_DEBUGGING + //#define JUCE_ENABLE_REPAINT_DEBUGGING +#endif + +#ifndef JUCE_USE_XSHM + //#define JUCE_USE_XSHM +#endif + +#ifndef JUCE_USE_XRENDER + //#define JUCE_USE_XRENDER +#endif + +#ifndef JUCE_USE_XCURSOR + //#define JUCE_USE_XCURSOR +#endif + +//============================================================================== +// juce_gui_extra flags: + +#ifndef JUCE_WEB_BROWSER + //#define JUCE_WEB_BROWSER +#endif + +//============================================================================== +// juce_video flags: + +#ifndef JUCE_DIRECTSHOW + //#define JUCE_DIRECTSHOW +#endif + +#ifndef JUCE_MEDIAFOUNDATION + //#define JUCE_MEDIAFOUNDATION +#endif + +#ifndef JUCE_QUICKTIME + //#define JUCE_QUICKTIME +#endif + +#ifndef JUCE_USE_CAMERA + //#define JUCE_USE_CAMERA +#endif + + +#endif // __JUCE_APPCONFIG_SLVVV6J__ diff --git a/extras/JuceDemo/JuceLibraryCode/BinaryData.cpp b/extras/JuceDemo/JuceLibraryCode/BinaryData.cpp index 3b24907906..5c942bebb0 100644 --- a/extras/JuceDemo/JuceLibraryCode/BinaryData.cpp +++ b/extras/JuceDemo/JuceLibraryCode/BinaryData.cpp @@ -5,30 +5,8 @@ */ -#include "BinaryData.h" - - -const char* BinaryData::getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +namespace BinaryData { - int hash = 0; - if (resourceNameUTF8 != 0) - while (*resourceNameUTF8 != 0) - hash = 31 * hash + *resourceNameUTF8++; - - switch (hash) - { - case 0x62032efa: numBytes = BinaryData::cello_wavSize; return BinaryData::cello_wav; - case 0xaec3f52f: numBytes = BinaryData::demo_table_data_xmlSize; return BinaryData::demo_table_data_xml; - case 0xae303c7c: numBytes = BinaryData::icons_zipSize; return BinaryData::icons_zip; - case 0xdf2195d7: numBytes = BinaryData::juce_pngSize; return BinaryData::juce_png; - case 0xdd644959: numBytes = BinaryData::treedemo_xmlSize; return BinaryData::treedemo_xml; - default: break; - } - - numBytes = 0; - return 0; -} - //================== cello.wav ================== static const unsigned char temp_55d084b5[] = @@ -639,7 +617,7 @@ static const unsigned char temp_55d084b5[] = 255,242,255,242,255,238,255,241,255,238,255,239,255,237,255,239,255,241,255,235,255,232,255,231,255,230,255,234,255,231,255,232,255,230,255,234,255,235,255,234,255,227,255,230,255,231,255,220,255,217,255,210,255,213,255,217,255,217,255,219,255,220,255, 219,255,226,255,223,255,212,255,220,255,220,255,220,255,210,255,223,255,230,255,224,255,227,255,231,255,231,255,231,255,234,255,226,255,232,255,237,255,241,255,235,255,232,255,231,255,232,255,237,255,235,255,234,255,0,0 }; -const char* BinaryData::cello_wav = (const char*) temp_55d084b5; +const char* cello_wav = (const char*) temp_55d084b5; //================== demo table data.xml ================== static const unsigned char temp_5a40772c[] = @@ -693,7 +671,7 @@ static const unsigned char temp_5a40772c[] = " \r\n" ""; -const char* BinaryData::demo_table_data_xml = (const char*) temp_5a40772c; +const char* demo_table_data_xml = (const char*) temp_5a40772c; //================== icons.zip ================== static const unsigned char temp_a1fd9237[] = @@ -1887,7 +1865,7 @@ static const unsigned char temp_a1fd9237[] = 194,180,16,0,0,195,74,0,0,22,0,0,0,0,0,0,0,1,0,32,0,0,0,236,35,1,0,112,114,101,102,101,114,101,110,99,101,115,45,115,121,115,116,101,109,46,115,118,103,80,75,1,2,20,0,20,0,2,0,8,0,183,128,249,52,199,174,1,222,145,13,0,0,154,63,0,0,18,0,0,0,0,0,0,0,1, 0,32,0,0,0,212,52,1,0,115,121,115,116,101,109,45,108,111,103,45,111,117,116,46,115,118,103,80,75,5,6,0,0,0,0,20,0,20,0,249,4,0,0,149,66,1,0,0,0,0,0 }; -const char* BinaryData::icons_zip = (const char*) temp_a1fd9237; +const char* icons_zip = (const char*) temp_a1fd9237; //================== juce.png ================== static const unsigned char temp_ffaf8e7e[] = @@ -2106,7 +2084,7 @@ static const unsigned char temp_ffaf8e7e[] = 5,5,121,88,4,4,120,152,128,189,32,208,249,43,255,222,188,249,8,154,219,1,221,19,4,219,204,143,60,183,67,179,173,12,163,128,58,0,32,128,24,169,104,14,108,152,30,148,104,96,183,130,192,206,199,67,62,144,8,54,143,129,124,139,202,223,209,196,50,52,0,64,0, 49,82,217,44,88,245,132,126,19,61,174,9,48,228,33,254,209,196,50,4,0,64,128,1,0,102,20,176,16,7,130,12,56,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* BinaryData::juce_png = (const char*) temp_ffaf8e7e; +const char* juce_png = (const char*) temp_ffaf8e7e; //================== treedemo.xml ================== static const unsigned char temp_816ae700[] = @@ -2161,4 +2139,33 @@ static const unsigned char temp_816ae700[] = " \r\n" ""; -const char* BinaryData::treedemo_xml = (const char*) temp_816ae700; +const char* treedemo_xml = (const char*) temp_816ae700; + + +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +{ + int hash = 0; + if (resourceNameUTF8 != 0) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + *resourceNameUTF8++; + + switch (hash) + { + case 0x62032efa: + case 0x877c5941: numBytes = 46348; return cello_wav; + case 0xaec3f52f: + case 0x5ef7e0f0: numBytes = 5239; return demo_table_data_xml; + case 0xae303c7c: + case 0xae3ee894: numBytes = 83876; return icons_zip; + case 0xdf2195d7: + case 0xc23b6643: numBytes = 15290; return juce_png; + case 0xdd644959: + case 0x0ff8e16f: numBytes = 1126; return treedemo_xml; + default: break; + } + + numBytes = 0; + return 0; +} + +} diff --git a/extras/JuceDemo/JuceLibraryCode/BinaryData.h b/extras/JuceDemo/JuceLibraryCode/BinaryData.h index 144c767467..89d27cf6c8 100644 --- a/extras/JuceDemo/JuceLibraryCode/BinaryData.h +++ b/extras/JuceDemo/JuceLibraryCode/BinaryData.h @@ -25,4 +25,25 @@ namespace BinaryData // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); + + //============================================================================== + // This class acts as an ImageProvider that will access the BinaryData images + class ImageProvider : public juce::ComponentBuilder::ImageProvider + { + public: + ImageProvider() noexcept {} + + juce::Image getImageForIdentifier (const juce::var& imageIdentifier) + { + int dataSize = 0; + const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize); + + if (data != nullptr) + return juce::ImageCache::getFromMemory (data, dataSize); + + return juce::Image(); + } + + juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); } + }; } diff --git a/extras/JuceDemo/JuceLibraryCode/JuceHeader.h b/extras/JuceDemo/JuceLibraryCode/JuceHeader.h index 9306f73603..e432129d83 100644 --- a/extras/JuceDemo/JuceLibraryCode/JuceHeader.h +++ b/extras/JuceDemo/JuceLibraryCode/JuceHeader.h @@ -4,8 +4,8 @@ project - if you alter its contents, your changes may be overwritten! This is the header file that your files should include in order to get all the - Juce library headers. You should NOT include juce.h or juce_amalgamated.h directly in - your own source files, because that wouldn't pick up the correct Juce configuration + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration options for your app. */ @@ -14,9 +14,28 @@ #define __APPHEADERFILE_SLVVV6J__ #include "AppConfig.h" -#include "../../../juce_amalgamated.h" +#include "modules/juce_audio_basics/juce_audio_basics.h" +#include "modules/juce_audio_devices/juce_audio_devices.h" +#include "modules/juce_audio_formats/juce_audio_formats.h" +#include "modules/juce_audio_processors/juce_audio_processors.h" +#include "modules/juce_audio_utils/juce_audio_utils.h" +#include "modules/juce_core/juce_core.h" +#include "modules/juce_cryptography/juce_cryptography.h" +#include "modules/juce_data_structures/juce_data_structures.h" +#include "modules/juce_events/juce_events.h" +#include "modules/juce_graphics/juce_graphics.h" +#include "modules/juce_gui_basics/juce_gui_basics.h" +#include "modules/juce_gui_extra/juce_gui_extra.h" +#include "modules/juce_opengl/juce_opengl.h" +#include "modules/juce_video/juce_video.h" #include "BinaryData.h" +#if ! DONT_SET_USING_JUCE_NAMESPACE + // If your code uses a lot of JUCE classes, then this will obviously save you + // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. + using namespace juce; +#endif + namespace ProjectInfo { const char* const projectName = "Juce Demo"; diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode1.cpp b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode1.cpp deleted file mode 100644 index 2d6380298b..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode1.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated1.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode1.mm b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode1.mm deleted file mode 100644 index 2d6380298b..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode1.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated1.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode2.cpp b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode2.cpp deleted file mode 100644 index 655d816baf..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode2.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated2.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode2.mm b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode2.mm deleted file mode 100644 index 655d816baf..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode2.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated2.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode3.cpp b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode3.cpp deleted file mode 100644 index 5d7de97f50..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode3.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated3.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode3.mm b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode3.mm deleted file mode 100644 index 5d7de97f50..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode3.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated3.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode4.cpp b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode4.cpp deleted file mode 100644 index 1ece5dc3d2..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode4.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated4.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode4.mm b/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode4.mm deleted file mode 100644 index 1ece5dc3d2..0000000000 --- a/extras/JuceDemo/JuceLibraryCode/JuceLibraryCode4.mm +++ /dev/null @@ -1,15 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This file pulls in all the Juce source code, and builds it using the settings - defined in AppConfig.h. - - If you want to change the method by which Juce is linked into your app, use the - Jucer to change it, rather than trying to edit this file directly. - -*/ - -#include "AppConfig.h" -#include "../../../amalgamation/juce_amalgamated4.cpp" diff --git a/extras/JuceDemo/JuceLibraryCode/ReadMe.txt b/extras/JuceDemo/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000000..f6c3564e99 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Introjucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Introjucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Introjucer has saved its changes). diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h new file mode 100644 index 0000000000..b9a775c861 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_basics/juce_audio_basics.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h new file mode 100644 index 0000000000..6a672ccda4 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_devices/juce_audio_devices.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h new file mode 100644 index 0000000000..4307ccc794 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_formats/juce_audio_formats.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h new file mode 100644 index 0000000000..bd61929b93 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_processors/juce_audio_processors.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_utils/juce_audio_utils.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_utils/juce_audio_utils.h new file mode 100644 index 0000000000..dfd50e5536 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_audio_utils/juce_audio_utils.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_utils/juce_audio_utils.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_core/juce_core.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_core/juce_core.h new file mode 100644 index 0000000000..ee07e01a50 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_core/juce_core.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_core/juce_core.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h new file mode 100644 index 0000000000..860c0221c7 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_cryptography/juce_cryptography.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h new file mode 100644 index 0000000000..00f01d46aa --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_data_structures/juce_data_structures.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_events/juce_events.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_events/juce_events.h new file mode 100644 index 0000000000..d0b4133815 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_events/juce_events.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_events/juce_events.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_graphics/juce_graphics.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_graphics/juce_graphics.h new file mode 100644 index 0000000000..f287a18ee6 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_graphics/juce_graphics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_graphics/juce_graphics.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h new file mode 100644 index 0000000000..c678c1cfc9 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_gui_basics/juce_gui_basics.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h new file mode 100644 index 0000000000..7efee1d103 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_gui_extra/juce_gui_extra.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_opengl/juce_opengl.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_opengl/juce_opengl.h new file mode 100644 index 0000000000..e427fa2135 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_opengl/juce_opengl.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_opengl/juce_opengl.h" + diff --git a/extras/JuceDemo/JuceLibraryCode/modules/juce_video/juce_video.h b/extras/JuceDemo/JuceLibraryCode/modules/juce_video/juce_video.h new file mode 100644 index 0000000000..1b77c4a466 --- /dev/null +++ b/extras/JuceDemo/JuceLibraryCode/modules/juce_video/juce_video.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_video/juce_video.h" + diff --git a/extras/JuceDemo/Source/ApplicationStartup.cpp b/extras/JuceDemo/Source/ApplicationStartup.cpp index 24bf7dcba2..093d763d11 100644 --- a/extras/JuceDemo/Source/ApplicationStartup.cpp +++ b/extras/JuceDemo/Source/ApplicationStartup.cpp @@ -43,13 +43,13 @@ public: //============================================================================== void initialise (const String& /*commandLine*/) { - #if JUCE_IOS || JUCE_ANDROID + #if JUCE_IOS || JUCE_ANDROID theMainWindow.setVisible (true); theMainWindow.setFullScreen (true); - #else + #else theMainWindow.centreWithSize (700, 600); theMainWindow.setVisible (true); - #endif + #endif // this little function just demonstrates a few system info calls Logger::outputDebugString (collectSomeSystemInfo()); diff --git a/extras/JuceDemo/Source/MainDemoWindow.cpp b/extras/JuceDemo/Source/MainDemoWindow.cpp index a2bad8e515..492fc945bb 100644 --- a/extras/JuceDemo/Source/MainDemoWindow.cpp +++ b/extras/JuceDemo/Source/MainDemoWindow.cpp @@ -34,43 +34,39 @@ class ContentComp : public Component, { public: //============================================================================== - ContentComp (MainDemoWindow* mainWindow_) + ContentComp (MainDemoWindow& mainWindow_) : mainWindow (mainWindow_), currentDemoId (0) { invokeDirectly (showRendering, true); } - ~ContentComp() - { - } - - //============================================================================== - void resized() - { - if (currentDemo != 0) - currentDemo->setBounds (0, 0, getWidth(), getHeight()); - } - //============================================================================== void showDemo (Component* demoComp) { currentDemo = demoComp; - addAndMakeVisible (currentDemo); - resized(); + + #if JUCE_OPENGL + if (openGLWrapperComp != nullptr) + openGLWrapperComp->addAndMakeVisible (currentDemo); + else + #endif + addAndMakeVisible (currentDemo); + + currentDemo->setBounds ("0, 0, parent.width, parent.height"); } //============================================================================== const StringArray getMenuBarNames() { - const char* const names[] = { "Demo", "Look-and-feel", 0 }; + const char* const names[] = { "Demo", "Look-and-feel", nullptr }; return StringArray (names); } const PopupMenu getMenuForIndex (int menuIndex, const String& /*menuName*/) { - ApplicationCommandManager* commandManager = &(mainWindow->commandManager); + ApplicationCommandManager* commandManager = &(mainWindow.commandManager); PopupMenu menu; @@ -102,22 +98,25 @@ public: menu.addSeparator(); menu.addCommandItem (commandManager, useNativeTitleBar); -#if JUCE_MAC + #if JUCE_MAC menu.addCommandItem (commandManager, useNativeMenus); -#endif + #endif -#if ! JUCE_LINUX + #if ! JUCE_LINUX menu.addCommandItem (commandManager, goToKioskMode); -#endif + #endif + + StringArray engines (getRenderingEngines()); - StringArray renderingEngines (getPeer()->getAvailableRenderingEngines()); - if (renderingEngines.size() > 1) + if (engines.size() > 1) { menu.addSeparator(); - for (int i = 0; i < renderingEngines.size(); ++i) - menu.addItem (5001 + i, "Use " + renderingEngines[i], true, - i == getPeer()->getCurrentRenderingEngine()); + const int currentEngine = openGLWrapperComp != nullptr ? engines.size() - 1 + : getPeer()->getCurrentRenderingEngine(); + + for (int i = 0; i < engines.size(); ++i) + menu.addItem (5001 + i, "Use " + engines[i], true, i == currentEngine); } } @@ -130,7 +129,40 @@ public: // other special cases here.. if (menuItemID >= 5001 && menuItemID < 5010) - getPeer()->setCurrentRenderingEngine (menuItemID - 5001); + { + const int engineIndex = menuItemID - 5001; + + #if JUCE_OPENGL + if (engineIndex >= getPeer()->getAvailableRenderingEngines().size()) + { + setUsingOpenGLRenderer (true); + return; + } + #endif + + setUsingOpenGLRenderer (false); + getPeer()->setCurrentRenderingEngine (engineIndex); + } + } + + void setUsingOpenGLRenderer (bool shouldUseOpenGL) + { + #if JUCE_OPENGL + if (shouldUseOpenGL && currentDemoId != showOpenGL) + { + if (openGLWrapperComp == nullptr) + { + addAndMakeVisible (openGLWrapperComp = new DemoOpenGLComp (currentDemo)); + openGLWrapperComp->setBounds ("0, 0, parent.width, parent.height"); + } + } + else + { + openGLWrapperComp = nullptr; + addAndMakeVisible (currentDemo); + resized(); + } + #endif } //============================================================================== @@ -166,13 +198,13 @@ public: setDefaultLookAndFeel, setOldSchoolLookAndFeel, useNativeTitleBar -#if JUCE_MAC - , useNativeMenus -#endif + #if JUCE_MAC + , useNativeMenus + #endif -#if ! JUCE_LINUX - , goToKioskMode -#endif + #if ! JUCE_LINUX + , goToKioskMode + #endif }; commands.addArray (ids, numElementsInArray (ids)); @@ -239,45 +271,45 @@ public: result.setInfo ("OpenGL", "Shows the OpenGL demo", demosCategory, 0); result.addDefaultKeypress ('9', ModifierKeys::commandModifier); result.setTicked (currentDemoId == showOpenGL); -#if ! JUCE_OPENGL + #if ! JUCE_OPENGL result.setActive (false); -#endif + #endif break; case showQuicktime: result.setInfo ("Quicktime", "Shows the Quicktime demo", demosCategory, 0); result.addDefaultKeypress ('b', ModifierKeys::commandModifier); result.setTicked (currentDemoId == showQuicktime); -#if ! (JUCE_QUICKTIME && ! JUCE_LINUX) + #if ! (JUCE_QUICKTIME && ! JUCE_LINUX) result.setActive (false); -#endif + #endif break; case showDirectShow: result.setInfo ("DirectShow", "Shows the DirectShow demo", demosCategory, 0); result.addDefaultKeypress ('b', ModifierKeys::commandModifier); result.setTicked (currentDemoId == showDirectShow); -#if ! JUCE_DIRECTSHOW + #if ! JUCE_DIRECTSHOW result.setActive (false); -#endif + #endif break; case showCamera: result.setInfo ("Camera Capture", "Shows the camera demo", demosCategory, 0); result.addDefaultKeypress ('c', ModifierKeys::commandModifier); result.setTicked (currentDemoId == showCamera); -#if ! JUCE_USE_CAMERA + #if ! JUCE_USE_CAMERA result.setActive (false); -#endif + #endif break; case showWebBrowser: result.setInfo ("Web Browser", "Shows the web browser demo", demosCategory, 0); result.addDefaultKeypress ('i', ModifierKeys::commandModifier); result.setTicked (currentDemoId == showWebBrowser); -#if (! JUCE_WEB_BROWSER) || JUCE_LINUX + #if (! JUCE_WEB_BROWSER) || JUCE_LINUX result.setActive (false); -#endif + #endif break; case showCodeEditor: @@ -304,22 +336,22 @@ public: case useNativeTitleBar: result.setInfo ("Use native window title bar", String::empty, generalCategory, 0); - result.setTicked (mainWindow->isUsingNativeTitleBar()); + result.setTicked (mainWindow.isUsingNativeTitleBar()); break; -#if JUCE_MAC + #if JUCE_MAC case useNativeMenus: result.setInfo ("Use the native OSX menu bar", String::empty, generalCategory, 0); result.setTicked (MenuBarModel::getMacMainMenu() != 0); break; -#endif + #endif -#if ! JUCE_LINUX + #if ! JUCE_LINUX case goToKioskMode: result.setInfo ("Show full-screen kiosk mode", String::empty, generalCategory, 0); result.setTicked (Desktop::getInstance().getKioskModeComponent() != 0); break; -#endif + #endif default: break; @@ -372,38 +404,43 @@ public: break; case showOpenGL: -#if JUCE_OPENGL + #if JUCE_OPENGL + setUsingOpenGLRenderer (false); showDemo (createOpenGLDemo()); currentDemoId = showOpenGL; -#endif + #endif break; case showQuicktime: -#if JUCE_QUICKTIME && ! JUCE_LINUX + #if JUCE_QUICKTIME && ! JUCE_LINUX + setUsingOpenGLRenderer (false); showDemo (createQuickTimeDemo()); currentDemoId = showQuicktime; -#endif + #endif break; case showDirectShow: -#if JUCE_DIRECTSHOW + #if JUCE_DIRECTSHOW + setUsingOpenGLRenderer (false); showDemo (createDirectShowDemo()); currentDemoId = showDirectShow; -#endif + #endif break; case showCamera: -#if JUCE_USE_CAMERA + #if JUCE_USE_CAMERA + setUsingOpenGLRenderer (false); showDemo (createCameraDemo()); currentDemoId = showCamera; -#endif + #endif break; case showWebBrowser: -#if JUCE_WEB_BROWSER + #if JUCE_WEB_BROWSER + setUsingOpenGLRenderer (false); showDemo (createWebBrowserDemo()); currentDemoId = showWebBrowser; -#endif + #endif break; case showCodeEditor: @@ -425,38 +462,38 @@ public: break; case useNativeTitleBar: - mainWindow->setUsingNativeTitleBar (! mainWindow->isUsingNativeTitleBar()); + mainWindow.setUsingNativeTitleBar (! mainWindow.isUsingNativeTitleBar()); break; -#if JUCE_MAC + #if JUCE_MAC case useNativeMenus: if (MenuBarModel::getMacMainMenu() != 0) { MenuBarModel::setMacMainMenu (0); - mainWindow->setMenuBar ((ContentComp*) mainWindow->getContentComponent()); + mainWindow.setMenuBar ((ContentComp*) mainWindow.getContentComponent()); } else { - MenuBarModel::setMacMainMenu ((ContentComp*) mainWindow->getContentComponent()); - mainWindow->setMenuBar (0); + MenuBarModel::setMacMainMenu ((ContentComp*) mainWindow.getContentComponent()); + mainWindow.setMenuBar (0); } break; -#endif + #endif -#if ! JUCE_LINUX + #if ! JUCE_LINUX case goToKioskMode: - if (Desktop::getInstance().getKioskModeComponent() == 0) { - Desktop::getInstance().setKioskModeComponent (getTopLevelComponent()); - } - else - { - Desktop::getInstance().setKioskModeComponent (0); - } + Desktop& desktop = Desktop::getInstance(); - break; -#endif + if (desktop.getKioskModeComponent() == nullptr) + desktop.setKioskModeComponent (getTopLevelComponent()); + else + desktop.setKioskModeComponent (nullptr); + + break; + } + #endif default: return false; @@ -467,7 +504,7 @@ public: private: //============================================================================== - MainDemoWindow* mainWindow; + MainDemoWindow& mainWindow; OldSchoolLookAndFeel oldLookAndFeel; ScopedPointer currentDemo; int currentDemoId; @@ -476,6 +513,49 @@ private: // just need to create one of these and leave it // there to do its work.. + //============================================================================== + #if JUCE_OPENGL + class DemoOpenGLComp : public OpenGLComponent + { + public: + DemoOpenGLComp (Component* contentComp) + : OpenGLComponent (useBackgroundThread | allowSubComponents) + { + addAndMakeVisible (contentComp); + } + + ~DemoOpenGLComp() + { + // It's essential to call this method before our class is destroyed, to + // make sure that the background renderer thread doesn't try to call it + // while it's being dismantled.. + stopRenderThread(); + } + + void newOpenGLContextCreated() {} + void renderOpenGL() {} + + void paint (Graphics& g) + { + g.fillAll (Colours::azure); + } + }; + + ScopedPointer openGLWrapperComp; + #endif + + StringArray getRenderingEngines() + { + StringArray renderingEngines (getPeer()->getAvailableRenderingEngines()); + + #if JUCE_OPENGL + renderingEngines.add ("Use OpenGL Renderer"); + #endif + + return renderingEngines; + } + + //============================================================================== enum CommandIDs { showRendering = 0x2000, @@ -526,10 +606,6 @@ public: setIconTooltip ("Juce Demo App!"); } - ~DemoTaskbarComponent() - { - } - void mouseDown (const MouseEvent&) { PopupMenu m; @@ -554,7 +630,7 @@ MainDemoWindow::MainDemoWindow() setResizable (true, false); // resizability is a property of ResizableWindow setResizeLimits (400, 300, 8192, 8192); - ContentComp* contentComp = new ContentComp (this); + ContentComp* contentComp = new ContentComp (*this); commandManager.registerAllCommandsForTarget (contentComp); commandManager.registerAllCommandsForTarget (JUCEApplication::getInstance()); @@ -577,20 +653,20 @@ MainDemoWindow::MainDemoWindow() setVisible (true); - #if JUCE_WINDOWS || JUCE_LINUX + #if JUCE_WINDOWS || JUCE_LINUX taskbarIcon = new DemoTaskbarComponent(); - #endif + #endif } MainDemoWindow::~MainDemoWindow() { // because we've set the content comp to be used as our menu bar model, we // have to switch this off before deleting the content comp.. - setMenuBar (0); + setMenuBar (nullptr); - #if JUCE_MAC // ..and also the main bar if we're using that on a Mac... - MenuBarModel::setMacMainMenu (0); - #endif + #if JUCE_MAC // ..and also the main bar if we're using that on a Mac... + MenuBarModel::setMacMainMenu (nullptr); + #endif // clearing the content component will delete the current one, and // that will in turn delete all its child components. You don't always diff --git a/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp b/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp index c4a0e1d21e..0ba089f8f9 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp +++ b/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp @@ -24,20 +24,26 @@ #include "AudioDemoPlaybackPage.h" - //[MiscUserDefs] You can add your own user definitions and misc code here... class DemoThumbnailComp : public Component, public ChangeListener, - public FileDragAndDropTarget + public FileDragAndDropTarget, + private Timer { public: - DemoThumbnailComp() - : thumbnailCache (5), + DemoThumbnailComp (AudioFormatManager& formatManager, + AudioTransportSource& transportSource_, + Slider& zoomSlider_) + : transportSource (transportSource_), + zoomSlider (zoomSlider_), + thumbnailCache (5), thumbnail (512, formatManager, thumbnailCache) { startTime = endTime = 0; - formatManager.registerBasicFormats(); thumbnail.addChangeListener (this); + + currentPositionMarker.setFill (Colours::purple.withAlpha (0.7f)); + addAndMakeVisible (¤tPositionMarker); } ~DemoThumbnailComp() @@ -50,14 +56,17 @@ public: thumbnail.setSource (new FileInputSource (file)); startTime = 0; endTime = thumbnail.getTotalLength(); + startTimer (1000 / 40); } void setZoomFactor (double amount) { if (thumbnail.getTotalLength() > 0) { - double timeDisplayed = jmax (0.001, (thumbnail.getTotalLength() - startTime) * (1.0 - jlimit (0.0, 1.0, amount))); - endTime = startTime + timeDisplayed; + const double newScale = jmax (0.001, thumbnail.getTotalLength() * (1.0 - jlimit (0.0, 0.99, amount))); + const double timeAtCentre = xToTime (getWidth() / 2.0f); + startTime = timeAtCentre - newScale * 0.5; + endTime = timeAtCentre + newScale * 0.5; repaint(); } } @@ -66,10 +75,14 @@ public: { if (thumbnail.getTotalLength() > 0) { - double newStart = startTime + (wheelIncrementX + wheelIncrementY) * (endTime - startTime) / 10.0; - newStart = jlimit (0.0, thumbnail.getTotalLength() - (endTime - startTime), newStart); + double newStart = startTime - wheelIncrementX * (endTime - startTime) / 10.0; + newStart = jlimit (0.0, jmax (0.0, thumbnail.getTotalLength() - (endTime - startTime)), newStart); endTime = newStart + (endTime - startTime); startTime = newStart; + + if (wheelIncrementY != 0) + zoomSlider.setValue (zoomSlider.getValue() - wheelIncrementY); + repaint(); } } @@ -77,8 +90,7 @@ public: void paint (Graphics& g) { g.fillAll (Colours::white); - - g.setColour (Colours::mediumblue); + g.setColour (Colours::lightblue); if (thumbnail.getTotalLength() > 0) { @@ -112,10 +124,49 @@ public: demoPage->showFile (File (files[0])); } - AudioFormatManager formatManager; + void mouseDown (const MouseEvent& e) + { + mouseDrag (e); + } + + void mouseDrag (const MouseEvent& e) + { + transportSource.setPosition (jmax (0.0, xToTime ((float) e.x))); + } + + void mouseUp (const MouseEvent&) + { + transportSource.start(); + } + + void timerCallback() + { + currentPositionMarker.setVisible (transportSource.isPlaying() || isMouseButtonDown()); + + double currentPlayPosition = transportSource.getCurrentPosition(); + + currentPositionMarker.setRectangle (Rectangle (timeToX (currentPlayPosition) - 0.75f, 0, + 1.5f, (float) getHeight())); + } + +private: + AudioTransportSource& transportSource; + Slider& zoomSlider; AudioThumbnailCache thumbnailCache; AudioThumbnail thumbnail; double startTime, endTime; + + DrawableRectangle currentPositionMarker; + + float timeToX (const double time) const + { + return getWidth() * (float) ((time - startTime) / (endTime - startTime)); + } + + double xToTime (const float x) const + { + return (x / getWidth()) * (endTime - startTime) + startTime; + } }; //[/MiscUserDefs] @@ -140,15 +191,6 @@ AudioDemoPlaybackPage::AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_ zoomLabel->setColour (TextEditor::textColourId, Colours::black); zoomLabel->setColour (TextEditor::backgroundColourId, Colour (0x0)); - addAndMakeVisible (thumbnail = new DemoThumbnailComp()); - - addAndMakeVisible (startStopButton = new TextButton (String::empty)); - startStopButton->setButtonText (L"Play/Stop"); - startStopButton->addListener (this); - startStopButton->setColour (TextButton::buttonColourId, Colour (0xff79ed7f)); - - addAndMakeVisible (fileTreeComp = new FileTreeComponent (directoryList)); - addAndMakeVisible (explanation = new Label (String::empty, L"Select an audio file in the treeview above, and this page will display its waveform, and let you play it..")); explanation->setFont (Font (14.0000f, Font::plain)); @@ -164,6 +206,14 @@ AudioDemoPlaybackPage::AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_ zoomSlider->addListener (this); zoomSlider->setSkewFactor (2); + addAndMakeVisible (thumbnail = new DemoThumbnailComp (formatManager, transportSource, *zoomSlider)); + + addAndMakeVisible (startStopButton = new TextButton (String::empty)); + startStopButton->setButtonText (L"Play/Stop"); + startStopButton->addListener (this); + startStopButton->setColour (TextButton::buttonColourId, Colour (0xff79ed7f)); + + addAndMakeVisible (fileTreeComp = new FileTreeComponent (directoryList)); //[UserPreSize] //[/UserPreSize] @@ -172,6 +222,8 @@ AudioDemoPlaybackPage::AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_ //[Constructor] You can add your own custom stuff here.. + formatManager.registerBasicFormats(); + directoryList.setDirectory (File::getSpecialLocation (File::userHomeDirectory), true, true); thread.startThread (3); @@ -186,8 +238,8 @@ AudioDemoPlaybackPage::AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_ AudioDemoPlaybackPage::~AudioDemoPlaybackPage() { //[Destructor_pre]. You can add your own custom destruction code here.. - transportSource.setSource (0); - audioSourcePlayer.setSource (0); + transportSource.setSource (nullptr); + audioSourcePlayer.setSource (nullptr); deviceManager.removeAudioCallback (&audioSourcePlayer); fileTreeComp->removeListener (this); @@ -285,22 +337,19 @@ void AudioDemoPlaybackPage::loadFileIntoTransport (const File& audioFile) { // unload the previous file source and delete it.. transportSource.stop(); - transportSource.setSource (0); - currentAudioFileSource = 0; - - // get a format manager and set it up with the basic types (wav and aiff). - AudioFormatManager formatManager; - formatManager.registerBasicFormats(); + transportSource.setSource (nullptr); + currentAudioFileSource = nullptr; AudioFormatReader* reader = formatManager.createReaderFor (audioFile); - if (reader != 0) + if (reader != nullptr) { currentAudioFileSource = new AudioFormatReaderSource (reader, true); // ..and plug it into our transport source transportSource.setSource (currentAudioFileSource, 32768, // tells it to buffer this many samples ahead + &thread, // this is the background thread to use for reading-ahead reader->sampleRate); } } @@ -339,15 +388,6 @@ BEGIN_JUCER_METADATA edBkgCol="0" labelText="zoom:" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" fontsize="15" bold="0" italic="0" justification="34"/> - - -