diff --git a/ChangeList.txt b/ChangeList.txt index a936e323ba..92c26cb363 100644 --- a/ChangeList.txt +++ b/ChangeList.txt @@ -2,54 +2,69 @@ == Major JUCE features and updates == This file just lists the more notable headline features. For more detailed info -about minor changes and bugfixes, please see the git log! - -Version 4.3.0 - - Added API and examples for ROLI Blocks - - Multiple Projucer live-build UI and diagnostics improvements - - JUCE now supports hosting multi-bus plug-ins - - BufferingAudioSource now supports pre-buffering (useful for offline processing) - - Added microphone permissions switch to Projucer for iOS targets - - Standalone wrappers now correctly save and restore midi settings - - Various performance improvements to BigInteger - - Fixed various FlexBox bugs - - Added a workaround for the broken “Open Recent…” menu on os x - - Various minor improvements and bug fixes - - Various documentation improvements - -Version 4.2.4 - - Pre-release of live build engine on Windows - - Added FlexBox layout engine - - Removed dependency on external Steinberg SDK when building and/or hosting VST2 plug-ins - - Added support for MIDI network sessions in the iOS simulator - - Added support for symmetric skew to Slider, NormalisableRange and SliderPropertyComponent - - Projucer now asks the user what to do when it detects that the .jucer file was modified outside of the Projucer - - Improved support for Windows 10 touch devices - - Added begin/end iterator methods for ValueTree, for handy range-based-for loops over its children - - Added support for recent mingw-w64 compilers - - Added useful proportional Rectangle utility methods - - Significantly improved the performance of BigInteger - - Added support for expiring licenses to juce_tracktion_marketplace - - Added support for retina mouse cursors on OS X - - Added a new low-quality mode for the CameraDevice - - Added pkg-config support for Linux - - Projucer will now wrap your AAX plug-in in the bundle format expected Pro Tools on Windows - - Multiple bug-fixes for AudioUnit parameter ids - - Fixed a bug where AlertWindows weren’t always on top - - Multiple fixes for web InputStreams - - Various improvements to the live build engine - - Various minor improvements and bug fixes - - Various documentation improvements - -Version 4.2.3 - - Various VST3 improvements: resizing VST3 windows, plug-in compatibility issues - - Use NSURLSession on newer OS X versions - - Add compatibility for VST 3 SDK update 3.6.6 +about minor changes and bugfixes, please see the git log! + +Version 4.3.1 + - Added support for iOS download tasks + - Added support for AAX plug-in meters + - Added support for dynamically disabling/enabling sidechains in ProTools + - Re-introduced support for VST3 plug-ins reporting which VST2 plug-in they can replace + - Added withRightX and withBottomY methods to Rectangle + - Added support for windows 10 on screen keyboard + - Added move semantics to AudioBuffer + - Added colour coding scheme to module icons in the Projucer to indicate which type of license a module uses + - Removed all deprecation warnings for macOS Sierra + - Fixed multiple touch, pen and mouse input related bugs on Windows + - Added submenu support to ComboBoxes and simplified the usage of ComboBoxes + - Various minor improvements and bug fixes + - Various documentation improvements + +Version 4.3.0 + - Added API and examples for ROLI Blocks + - Multiple Projucer live-build UI and diagnostics improvements + - JUCE now supports hosting multi-bus plug-ins + - BufferingAudioSource now supports pre-buffering (useful for offline processing) + - Added microphone permissions switch to Projucer for iOS targets + - Standalone wrappers now correctly save and restore midi settings + - Various performance improvements to BigInteger + - Fixed various FlexBox bugs + - Added a workaround for the broken “Open Recent…” menu on os x + - Various minor improvements and bug fixes + - Various documentation improvements + +Version 4.2.4 + - Pre-release of live build engine on Windows + - Added FlexBox layout engine + - Removed dependency on external Steinberg SDK when building and/or hosting VST2 plug-ins + - Added support for MIDI network sessions in the iOS simulator + - Added support for symmetric skew to Slider, NormalisableRange and SliderPropertyComponent + - Projucer now asks the user what to do when it detects that the .jucer file was modified outside of the Projucer + - Improved support for Windows 10 touch devices + - Added begin/end iterator methods for ValueTree, for handy range-based-for loops over its children + - Added support for recent mingw-w64 compilers + - Added useful proportional Rectangle utility methods + - Significantly improved the performance of BigInteger + - Added support for expiring licenses to juce_tracktion_marketplace + - Added support for retina mouse cursors on OS X + - Added a new low-quality mode for the CameraDevice + - Added pkg-config support for Linux + - Projucer will now wrap your AAX plug-in in the bundle format expected Pro Tools on Windows + - Multiple bug-fixes for AudioUnit parameter ids + - Fixed a bug where AlertWindows weren’t always on top + - Multiple fixes for web InputStreams + - Various improvements to the live build engine + - Various minor improvements and bug fixes + - Various documentation improvements + +Version 4.2.3 + - Various VST3 improvements: resizing VST3 windows, plug-in compatibility issues + - Use NSURLSession on newer OS X versions + - Add compatibility for VST 3 SDK update 3.6.6 - Miscellaneous fixes and improvements Version 4.2.1 - - New class CachedValue, for providing easy and efficient access to ValueTree properties - - Reduced audio plug-in binary sizes on OS X and added symbol-stripping option + - New class CachedValue, for providing easy and efficient access to ValueTree properties + - Reduced audio plug-in binary sizes on OS X and added symbol-stripping option - Miscellaneous fixes and improvements Version 4.2 diff --git a/examples/AUv3Synth/AUv3Synth.jucer b/examples/AUv3Synth/AUv3Synth.jucer index 897ce54fa9..6a50388932 100644 --- a/examples/AUv3Synth/AUv3Synth.jucer +++ b/examples/AUv3Synth/AUv3Synth.jucer @@ -8,7 +8,7 @@ pluginCode="AUv3" pluginChannelConfigs="" pluginIsSynth="1" pluginWantsMidiIn="1" pluginProducesMidiOut="0" pluginIsMidiEffectPlugin="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="AUv3SynthAU" pluginRTASCategory="" aaxIdentifier="com.roli.development.AUv3Synth" - pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.0" + pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.1" buildStandalone="1"> diff --git a/examples/AUv3Synth/Builds/MacOSX/AUv3Synth.xcodeproj/project.pbxproj b/examples/AUv3Synth/Builds/MacOSX/AUv3Synth.xcodeproj/project.pbxproj index 1fd607b992..1cf727c398 100644 --- a/examples/AUv3Synth/Builds/MacOSX/AUv3Synth.xcodeproj/project.pbxproj +++ b/examples/AUv3Synth/Builds/MacOSX/AUv3Synth.xcodeproj/project.pbxproj @@ -508,6 +508,7 @@ 5F6BB197FA13DEB1F2260CC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; 5F8395E0825F03C65968D1DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = transupp.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/transupp.h"; sourceTree = "SOURCE_ROOT"; }; 5F894362C162E5468B51333A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F8E2C23BFE1D8B6AE6A5167 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FC18CC5CC7BB4A01EEA2B7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FE4811A1F224B9DC3F0751D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; 600E363997E4D34382349626 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -648,6 +649,7 @@ 7D1F7E9BADEA63755327DAE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; 7D2FEE652DDC90049F523828 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 7D67149A7BE6BBB85FCB2CCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7DCE08C331AF91A0267EB347 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 7E46D4C045D1A7060C7DE3D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_books.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h"; sourceTree = "SOURCE_ROOT"; }; 7E53C9E87A3F9EBE4D454BA8 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-VST3.plist"; path = "Info-VST3.plist"; sourceTree = "SOURCE_ROOT"; }; 7E838C96F00848B2EE6E2F72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -712,6 +714,7 @@ 89B0332A462BFD5984B97302 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; 89B73E1F52531A1A8A1C3E9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; 89CC639E5B1CDE71BDBC02D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 89D728223B434EEAB08E29F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 89E00773FE73394C30642A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; 8A3F809F240408D5195FB0F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; 8AA012F95CDEE0ECAC1D698E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; @@ -885,7 +888,6 @@ AC223785E50A0284BAC9C879 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; AC3D1C939D60CBB9F06E5195 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; ACDA8668B39A102D419BD481 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; - ACDCFB7C5CE966089DF7665E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; AD228AE61929A94FFBE55CF4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAAtomicStack.h; path = "../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CAAtomicStack.h"; sourceTree = "SOURCE_ROOT"; }; AD49758CCCDB81F781160518 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; AD748818ED49AF2A6BF7AF0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAMath.h; path = "../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CAMath.h"; sourceTree = "SOURCE_ROOT"; }; @@ -959,6 +961,7 @@ A236B01D70F55D3570330B44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; AC3356631ED2AC043BC67B79 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; AC36AEF9A7D94B5F50725E38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + ACDCFB7C5CE966089DF7665E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; B2A30D3171F293ECE50DC06B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; B48471A74A3A2BDA248931F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c"; sourceTree = "SOURCE_ROOT"; }; B774AC9A00BFF63E24EA0646 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1007,7 +1010,6 @@ C9494DFECDCD27C0815A6F17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; CA633B8B756E9E7826C8D173 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; CC155101953B89262C8B633C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - CD44BCDC60998F9B56D816C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../../../modules/juce_core/zip/zlib/adler32.c"; sourceTree = "SOURCE_ROOT"; }; CDE81ADB14F09742FBBA28E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; CF344C62ABCBA9BAAB6ACFA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; CFAFC86F4D25AB5A31DF3BE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1030,6 +1032,7 @@ CC32EDCC4709790EBBA55941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_44.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = "SOURCE_ROOT"; }; CD3ABE20AE524B92B9B6A6FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; CD41042388657A558C93AD86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; + CD44BCDC60998F9B56D816C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../../../modules/juce_core/zip/zlib/adler32.c"; sourceTree = "SOURCE_ROOT"; }; CE491063B3EF486A263519F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; CE517EF86B0776BA9B27F3F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUTimestampGenerator.h; path = "../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUTimestampGenerator.h"; sourceTree = "SOURCE_ROOT"; }; CE7E28DA6360B3B4BBCBFD04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1856,6 +1859,7 @@ 4E7035D318D7951EA416F253, E59314439566CDF7981F7D9F, 6738C919984D53FF07CDD5A6, + 7DCE08C331AF91A0267EB347, B3425236EBB43087A2C4AA71, C002FF4D43F9C779CB5B2B5C, 997766E6B5491A51A5242F68, @@ -1970,7 +1974,9 @@ 823EFD7B765AD6D20D4053BF, 5776A5993098A57A7A1E6A27, 0E429E673C3066089538F4FF, - 003AD91863D1E07BEFDCDB46, ); name = network; sourceTree = ""; }; + 003AD91863D1E07BEFDCDB46, + 5F8E2C23BFE1D8B6AE6A5167, + 89D728223B434EEAB08E29F5, ); name = network; sourceTree = ""; }; DFE76F9120B809A20693F40C = {isa = PBXGroup; children = ( 3BD48100798B29CFBB31E240, D776C107490A52D250B8327B, diff --git a/examples/AUv3Synth/Builds/iOS/AUv3Synth.xcodeproj/project.pbxproj b/examples/AUv3Synth/Builds/iOS/AUv3Synth.xcodeproj/project.pbxproj index f32129d536..72b4409b80 100644 --- a/examples/AUv3Synth/Builds/iOS/AUv3Synth.xcodeproj/project.pbxproj +++ b/examples/AUv3Synth/Builds/iOS/AUv3Synth.xcodeproj/project.pbxproj @@ -502,6 +502,7 @@ 5F6BB197FA13DEB1F2260CC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; 5F8395E0825F03C65968D1DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = transupp.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/transupp.h"; sourceTree = "SOURCE_ROOT"; }; 5F894362C162E5468B51333A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F8E2C23BFE1D8B6AE6A5167 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FC18CC5CC7BB4A01EEA2B7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FE4811A1F224B9DC3F0751D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; 600E363997E4D34382349626 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -642,6 +643,7 @@ 7D1F7E9BADEA63755327DAE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; 7D2FEE652DDC90049F523828 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 7D67149A7BE6BBB85FCB2CCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7DCE08C331AF91A0267EB347 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 7E46D4C045D1A7060C7DE3D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_books.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h"; sourceTree = "SOURCE_ROOT"; }; 7E838C96F00848B2EE6E2F72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; 7F1746052D09CD80BDB28BF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -705,6 +707,7 @@ 89B0332A462BFD5984B97302 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; 89B73E1F52531A1A8A1C3E9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; 89CC639E5B1CDE71BDBC02D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 89D728223B434EEAB08E29F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 89E00773FE73394C30642A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; 8A3F809F240408D5195FB0F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; 8AA012F95CDEE0ECAC1D698E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1063,7 +1066,6 @@ D9B9854449877DBFC0C1CC3B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; D9D057AE4FE642513602611B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; D9D833D2912CC83006BD9FA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; - D9ED0926381D40DA1A66C26D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; DA1AD416DB2E990AD25806AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; DA42AACD549E6C214EE09CF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; DA4E0EA3EB80BE34F9047E72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1078,7 +1080,6 @@ DC18200A3CD14E988426420C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; DC6A702F738F41B34B329097 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; DC6E859FF89B5A3C9BAFE19F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; - DCEA692A420A94DE110CC07D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; DE76DD99A5E06C01C57957A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; DEC24A286A1DEF26BE35CC20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = "SOURCE_ROOT"; }; DEC3BDE099A6E8517815F464 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1087,12 +1088,14 @@ EC3DE1F504C76EEDDA7F2216 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AUv3Synth.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; 9536B5A780A03F6BACB24144 = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAUv3Synth.a; sourceTree = "BUILT_PRODUCTS_DIR"; }; D7F0DF2B23660D1E12432C36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + D9ED0926381D40DA1A66C26D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; DB43ED26DBABD0BC17385E6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; DC1C558103B4D458A6CA037C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; DC235ECDD76E245939C49092 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "codec_internal.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = "SOURCE_ROOT"; }; DC60BA9AC2BA5D2C3B5C3001 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; DC8F10CCAC55F7216F0304F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AAX_Wrapper.cpp"; path = "../../../../modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; }; DCAE9F130E3E70FA100BEE16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; + DCEA692A420A94DE110CC07D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; DCF51EBC4D12F196EEB28FB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; DD0F106B173A73C954D57AE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewBase.h; path = "../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.h"; sourceTree = "SOURCE_ROOT"; }; DD9FC19B24786726D89345A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1841,6 +1844,7 @@ 4E7035D318D7951EA416F253, E59314439566CDF7981F7D9F, 6738C919984D53FF07CDD5A6, + 7DCE08C331AF91A0267EB347, B3425236EBB43087A2C4AA71, C002FF4D43F9C779CB5B2B5C, 997766E6B5491A51A5242F68, @@ -1955,7 +1959,9 @@ 823EFD7B765AD6D20D4053BF, 5776A5993098A57A7A1E6A27, 0E429E673C3066089538F4FF, - 003AD91863D1E07BEFDCDB46, ); name = network; sourceTree = ""; }; + 003AD91863D1E07BEFDCDB46, + 5F8E2C23BFE1D8B6AE6A5167, + 89D728223B434EEAB08E29F5, ); name = network; sourceTree = ""; }; DFE76F9120B809A20693F40C = {isa = PBXGroup; children = ( 3BD48100798B29CFBB31E240, D776C107490A52D250B8327B, diff --git a/examples/AUv3Synth/JuceLibraryCode/AppConfig.h b/examples/AUv3Synth/JuceLibraryCode/AppConfig.h index 62e1eef377..8f7e328242 100644 --- a/examples/AUv3Synth/JuceLibraryCode/AppConfig.h +++ b/examples/AUv3Synth/JuceLibraryCode/AppConfig.h @@ -107,6 +107,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/AnimationAppExample/AnimationAppExample.jucer b/examples/AnimationAppExample/AnimationAppExample.jucer index 057acc6046..a6d7a4f34d 100644 --- a/examples/AnimationAppExample/AnimationAppExample.jucer +++ b/examples/AnimationAppExample/AnimationAppExample.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> <_ProjectFileVersion>10.0.30319.1 AnimationAppExample + .exe true AnimationAppExample + .exe true @@ -506,6 +508,9 @@ true + + true + true @@ -641,6 +646,9 @@ true + + true + true @@ -1898,6 +1906,7 @@ + diff --git a/examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj.filters b/examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj.filters index ead1b781a4..5f112a4f70 100644 --- a/examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj.filters +++ b/examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj.filters @@ -754,6 +754,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -904,6 +907,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2757,6 +2763,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj b/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj index 6e29729251..a4c045d2ad 100644 --- a/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj +++ b/examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj @@ -139,6 +139,7 @@ 1A667A0FBCC8FC7EBBD15B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; 1A7002B936C11924FDC07023 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; 1A788BE93E528FDAA62EA02B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A88DD59EE5CEB032E36CEDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 1AB580D4342BFFD41F220358 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; 1AB9713046E08B68A6F672CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; 1B3B7CBA0D25C83B8AF72641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -442,6 +443,7 @@ 5D43D909CB26D4A07A62A4F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; 5D4A62D4893C16D7B17C6A43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; 5E4173ECA316E90CD7DE4378 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = assert.h; path = "../../../../modules/juce_audio_formats/codecs/flac/assert.h"; sourceTree = "SOURCE_ROOT"; }; + 5F52EB31811C8E0B8D650E80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FF5374AB0A2ABCD55C5C0F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder_framing.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h"; sourceTree = "SOURCE_ROOT"; }; 6018A3A37F34AE52B39A14D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; 604EC12730E93902B59C16BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c"; sourceTree = "SOURCE_ROOT"; }; @@ -996,6 +998,7 @@ D8256B8AA794F43A2259638A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; D886106C60A496E47C48AFB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; D8BAA82AC820CEF315BD9DCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + D947EFF0807C2C2E197777BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; D949A0753DEE4B4AACDDA3AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; D9FAC914CA572410C055D109 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; DA9671908F37549C583C61E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1586,6 +1589,7 @@ FD1FFBCE5E94D08B6FB60F70, FF70C4AB4F37D7C7E1668660, F36FACCDB4B94286F6042490, + D947EFF0807C2C2E197777BA, B462D25B3F8AA3F7BD76DBD3, DD2007C851B70E2C71171145, E4D5FB6A6F806D9400BBF344, @@ -1700,7 +1704,9 @@ 9E44079E499D4F4ECE55354A, 2B57EB41D3962E3518B79FD8, D6D37626671B0FB1CE8505C9, - DBFBBC58ED4A18EA9FE04D1D, ); name = network; sourceTree = ""; }; + DBFBBC58ED4A18EA9FE04D1D, + 5F52EB31811C8E0B8D650E80, + 1A88DD59EE5CEB032E36CEDE, ); name = network; sourceTree = ""; }; 3D28E7CB6B486D4772A202D2 = {isa = PBXGroup; children = ( 23936BBF807CCF5B1EEB9F00, BDA5B0C014F6DCC188465060, diff --git a/examples/AudioAppExample/AudioAppExample.jucer b/examples/AudioAppExample/AudioAppExample.jucer index 07ae4ca998..ffd87a051a 100644 --- a/examples/AudioAppExample/AudioAppExample.jucer +++ b/examples/AudioAppExample/AudioAppExample.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> <_ProjectFileVersion>10.0.30319.1 AudioAppExample + .exe true AudioAppExample + .exe true @@ -554,6 +556,9 @@ true + + true + true @@ -689,6 +694,9 @@ true + + true + true @@ -1961,6 +1969,7 @@ + diff --git a/examples/AudioAppExample/Builds/VisualStudio2010/AudioAppExample.vcxproj.filters b/examples/AudioAppExample/Builds/VisualStudio2010/AudioAppExample.vcxproj.filters index 536646c34c..4844be310d 100644 --- a/examples/AudioAppExample/Builds/VisualStudio2010/AudioAppExample.vcxproj.filters +++ b/examples/AudioAppExample/Builds/VisualStudio2010/AudioAppExample.vcxproj.filters @@ -832,6 +832,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -982,6 +985,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2880,6 +2886,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj b/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj index d6e4cdd7c9..09eb7f967a 100644 --- a/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj +++ b/examples/AudioAppExample/Builds/iOS/AudioAppExample.xcodeproj/project.pbxproj @@ -966,9 +966,11 @@ C7E2FCA48D1B8E4342E3764E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_16.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = "SOURCE_ROOT"; }; C7E4FDCBB6C2E749B4071D7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = "SOURCE_ROOT"; }; C7ED330EB140FCC0B096E2E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C800B322AE3875D43FB27C10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; C803F9C7B980825563EF5C61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; }; C807A91F69CF02432499E1E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; }; C81CCF965B4C7E21308B305C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + C835FDC5976EE01472DA0EBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; C86F3258822428DB91009687 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; C8931FE1A63291CBAFB35814 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = "SOURCE_ROOT"; }; C8A3BA380B7DADEBA46EC1FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -1029,6 +1031,7 @@ D34801677A2E2B17CD6CF93A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; D396F2D0FF34CC5C59FA3DC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; D3AE4AEF45E4694F90FA90BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + D3DE34B0C32C3F6EE541CD8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; D41591FF892A6E2E672C7A18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; D45B9852EE24763DB29A07CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; D45FA51540441FC7D57E016A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1668,6 +1671,7 @@ E858258484916776F887FCDF, 2BF48C4EED551C019F3D293D, 296031FF025F31DCE8472A08, + C800B322AE3875D43FB27C10, AF2B0596EA1859EE7964AB8D, 1C88AFF1BEE2BBD2646C3FE0, 1F9C7404B23AF0D8456ED1AD, @@ -1782,7 +1786,9 @@ 13A8EAABA98838BC051D7ECD, 1F293903C761D909018FDD67, 0A4F90598876FBE7A67A13D0, - B59C7AFE7DA427E795F736CE, ); name = network; sourceTree = ""; }; + B59C7AFE7DA427E795F736CE, + D3DE34B0C32C3F6EE541CD8A, + C835FDC5976EE01472DA0EBC, ); name = network; sourceTree = ""; }; BCA23AD0BDC591CF6F02AEF0 = {isa = PBXGroup; children = ( 490FFC3A7899AA8FBE8E2D0E, E0EEC67C10363E4FB3C0B956, diff --git a/examples/BLOCKS/BlocksDrawing/BlocksDrawing.jucer b/examples/BLOCKS/BlocksDrawing/BlocksDrawing.jucer index a1a471a65a..8731b9f488 100644 --- a/examples/BLOCKS/BlocksDrawing/BlocksDrawing.jucer +++ b/examples/BLOCKS/BlocksDrawing/BlocksDrawing.jucer @@ -2,9 +2,11 @@ + jucerVersion="4.3.1"> + @@ -27,8 +29,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -69,6 +96,8 @@ + + @@ -88,6 +117,8 @@ + + @@ -95,6 +126,8 @@ + + diff --git a/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile b/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile index fbe33e8c5c..d98729626f 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile +++ b/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := BlocksDrawing BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := BlocksDrawing BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -61,6 +68,8 @@ OBJECTS := \ $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o \ $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o \ $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o \ + $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o \ + $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o \ $(JUCE_OBJDIR)/juce_blocks_basics_d4b203f5.o \ $(JUCE_OBJDIR)/juce_core_75b14332.o \ $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o \ @@ -77,7 +86,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -85,7 +94,7 @@ check-pkg-config: clean: @echo Cleaning BlocksDrawing - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping BlocksDrawing @@ -94,61 +103,71 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp + -@mkdir -p $(JUCE_OBJDIR) + @echo "Compiling juce_audio_processors.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp + -@mkdir -p $(JUCE_OBJDIR) + @echo "Compiling juce_audio_utils.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_blocks_basics_d4b203f5.o: ../../JuceLibraryCode/juce_blocks_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_blocks_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/BlocksDrawing.xcodeproj/project.pbxproj b/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/BlocksDrawing.xcodeproj/project.pbxproj index 14b56c9e03..0dd0779da0 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/BlocksDrawing.xcodeproj/project.pbxproj +++ b/examples/BLOCKS/BlocksDrawing/Builds/MacOSX/BlocksDrawing.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 8852261A4E917CD1AED7E45E = {isa = PBXBuildFile; fileRef = 8E8E9DC0DD1905D43E295D8A; }; 23D2896D495239FEA26A3255 = {isa = PBXBuildFile; fileRef = 11AEC78B996D849B2EA9C96F; }; E759B32B9B193C5530B5728D = {isa = PBXBuildFile; fileRef = A2D1D8C580DFDB5C8E011C80; }; + DBFC216C1E1FB0D88DD5336D = {isa = PBXBuildFile; fileRef = 610305F3F98A6F916F67D343; }; A616212899B39931D525663E = {isa = PBXBuildFile; fileRef = 25D249E24CF8513F7B245F8C; }; A6DD612C38EE8DBFD4011BCF = {isa = PBXBuildFile; fileRef = BEBF18621B604A4DE3180F89; }; 3517782FB58BA6883F7A9D6F = {isa = PBXBuildFile; fileRef = D2E3DCE1B8C06CB72C0E7E1E; }; @@ -22,6 +23,8 @@ 24C420997F20D0A7722D42F4 = {isa = PBXBuildFile; fileRef = DA8A4007E66A5DAF6714958C; }; 049EFBDC407E74FEFD6B5BC4 = {isa = PBXBuildFile; fileRef = 95CF46398870352FCFC6060A; }; 14F7090DA7E5514C84EDEAEC = {isa = PBXBuildFile; fileRef = 6897FB6E71DC9317E49C7878; }; + 8219D6828DCCAEDF01F5337C = {isa = PBXBuildFile; fileRef = 5E407472A12335C0FB5D1731; }; + 36767EDDC8BFC684119EDFE8 = {isa = PBXBuildFile; fileRef = 65CE7B4496F15E1572D77172; }; 6A180703D5E1FF08436F86BD = {isa = PBXBuildFile; fileRef = F6846615852B68E9AC653C15; }; 778865742AAC536B855F7811 = {isa = PBXBuildFile; fileRef = 1ACBA85AD353C8C85A01F6A4; }; 3605BE75533AB0654207D383 = {isa = PBXBuildFile; fileRef = 78246E70C7F9C5C5FE05D6D3; }; @@ -33,10 +36,12 @@ 002081401EB031560B2EC23D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 004F22C36FC01D6FDFF1DA3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; 0066F77648F3BDE61FA586D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 007103A1EA6F6DD30ABF9D4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 00761EB1B52F84D5D8A980F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; 0134541F88473B067DD0FC3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; 0146ADA6A37B56C2B80B664B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 023F49CCDC1E02B09597C66E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 029FBEC54DD4C8A657EF3BD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; 02C1D8DDC7431B47680C884D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; 0353E7FB538930065FE42F3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDRow.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDRow.h"; sourceTree = "SOURCE_ROOT"; }; 037F0FA4D8A2AF9C315C4043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -77,6 +82,7 @@ 0A4A8668A6C39539E9353BF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; 0A526E1279C058ECEB5D72E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0A98DFE44610565EF648D538 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0B0185EBD24E4B48AD01D22B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 0B0E6BBD74D806034228CD61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 0BA1A36CC006BB5B35A09E06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0BB27BEFDC069EDBC8A863CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; @@ -91,14 +97,18 @@ 0D75C63F78F611EF265DDD00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c"; sourceTree = "SOURCE_ROOT"; }; 0DAA3726FC94F23E5A583A67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; 0DC492C9812308493090CBD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 0DD776B8FC26133978E29E1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0E42B615AFEEDD7E91F69F3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0E4DBF54BA05AA884EA76D6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; 0E90D8E7451AF40D3A29DF67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 0F2A7783A8F66902008EC156 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 0F49043494C2D1C50D787795 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = "SOURCE_ROOT"; }; 0F939B5F2399CFD6C4B5225E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; 0F9867566F439625DCCD9E20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; 0FA78CA2930349913F5B6AF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; + 102A6E0A33E64D932229A131 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 10C0A00B736989F933478B16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10C3385241F325F0213F9F55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; 10C405B7EC6821FEA0C19088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; 10EF808AC938A441E7443840 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c"; sourceTree = "SOURCE_ROOT"; }; 111367FFC293098B75C802F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_blocks_basics.h"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.h"; sourceTree = "SOURCE_ROOT"; }; @@ -120,12 +130,16 @@ 13F49EB3AE13CDD2331F0D8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = "SOURCE_ROOT"; }; 141B5486B9DE5E175F54300E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; 142DACDBB2E8CCDBC92AFA21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1446C82D08483F1ED8E7E377 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; 1446EB4219341EA5B6B0A500 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; + 14942080E74577CCBBCA1199 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; 14D6FADA9CE0607012BE74D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; 15084C7DDC789B403498C10B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; 1582CA65E7C557627CAA8F5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; 1607EFD478CD23076A9CBE3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1623CBF04E3D67539B70610D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; 1639FF06D27B84F3842F4562 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 16AE065E8018313BDF2DDA6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; 16CB2435896E92B50CA98632 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_TopologySource.h"; sourceTree = "SOURCE_ROOT"; }; 17A479D1C363ADB40C23A6DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; 17A75A5B2018AF3DD4CAEAE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = "SOURCE_ROOT"; }; @@ -156,6 +170,7 @@ 1CF7C7004E788245BE5FFF63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; 1D0631AE2D6F169182E62BAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = compat.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/compat.h"; sourceTree = "SOURCE_ROOT"; }; 1D59E459EEEDB9E5D454DF5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1D86B7A676AB774FE7BAFE2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; 1DB6128ED112939DF6D08C3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; 1DBC75BB007FC806B0AD27C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; 1DC4186072CFD272F5AAFF2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -215,10 +230,12 @@ 290F124B244C09E6964234E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; 295AD44153ADE7714563E352 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; 298C022C57704BDC157AA9C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 298CC9E8C54D19B7742025F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; 29BF54C26D1118B8618201CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; 29D582B81D48ACB55B82D3D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; 2A0F270864162E316C58B149 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; 2A1D8A60BC973056EAC9D44B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A48387726C402539AA7E04E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; 2A6913FDD4BD2C9238310B2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; 2A8136A983CE21073E16D40A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; 2AE6B05474C7AB5179544774 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; @@ -238,6 +255,7 @@ 2CD956D8AC55456D758139BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; 2D04DCD5191030ECAC7A7066 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; 2D09DB1F0F60421C24555BD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D0CF751B6458AA4118FA80D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; 2DA8268B68970ED28D8C6063 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; 2DDAB967201CB1E26FB2016B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = "../../../../../modules/juce_core/zip/zlib/zutil.h"; sourceTree = "SOURCE_ROOT"; }; 2E0169C5F6520FDCBF0AD415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h"; sourceTree = "SOURCE_ROOT"; }; @@ -249,11 +267,14 @@ 2F05FC33C11271527B090E20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c"; sourceTree = "SOURCE_ROOT"; }; 2F07F356B586297441C03FD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; 2F4B9232765C11AF743E173F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrumPadLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 2F5570B2C6B5D3EE68860431 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 2F9E0C26FE9DA472D2D7C2AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 2FD22509C8339B373DC63012 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c"; sourceTree = "SOURCE_ROOT"; }; 300E4F29AA370E48EC0BE8DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; 30A6525A80C10CAB453C8649 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; 30B31EE1B29FA4116F390154 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h"; sourceTree = "SOURCE_ROOT"; }; + 30D2D5A363AB7A6754D5AA19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30DF327E6C9B3A8F16A96385 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 3146322BAEB67344B4969CE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; 325C094CD77DDDF596F68739 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; 32CF5277357C6BF109C965E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -271,6 +292,7 @@ 34210DF6FF04098CE9FDF1D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../JuceLibraryCode/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; 344D18532509B867ECE196E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; 356836FC63C553DE7E939438 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3577E13160F200904CD249F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 357E6A36AF5DEB7DAB77280B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = "SOURCE_ROOT"; }; 35EB2AC6E224BFF79671F5A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 3626A7F4986882E314E193DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; @@ -297,6 +319,7 @@ 3A26E022C114766276A15799 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; 3A58806F1A210DB171E6FDD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 3AADA20AD02A1052F80B2857 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 3B27D41422A586E48DDFF7BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; 3B3A0DE861C9D67CE502A7FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; 3B4774F8B271C48F991A20BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; 3B78CFAE2DBC0A8DACC832AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; @@ -309,13 +332,17 @@ 3C6DEA1D9CF09ED6F08F8D97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C71778B17054C9F858FA865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; 3CAD7F04BB8AC0A31D578AA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = "SOURCE_ROOT"; }; + 3CEC86343BDD4389D5A7DD10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; 3D1F21B2DBFA9980BA10CC5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h"; sourceTree = "SOURCE_ROOT"; }; 3DDA7C8BF74C996ABCB5E42E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 3E000A18C8EF629F102EE7E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + 3E1C8E82ED645A4722601B8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; 3E28690EA1B84705F43E3D50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; 3E3AD57C396C694F715232F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 3E482755EDFA44494FF023D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; 3E53AAF6A7C50B871CC2B84B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; 3EAA7B2934AA9AF16F86BA43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F295D1367247F2D85A1C172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; 3F4AD344A9B3A6B75BE3FFED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 3F50B376A0FED903BEF9D6E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; 40636EB94227E67A528D519B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -332,10 +359,12 @@ 43A9DE0FFB1C5A5CA2CFF625 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; 43B541DE2AE988D5DF58776B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; 43C6225F03FFB572BE6D67AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../../../../modules/juce_core/zip/zlib/inffast.c"; sourceTree = "SOURCE_ROOT"; }; + 441A6FB9478D1EE3A9E584EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; 44232F9780A5411FCF2A8917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; 444983159A76796F60409C6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; 4463E0EE235D2C829F6FDB1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; 4483F159C5ACFFC36F93872F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 448B6E970DA168958D1AECAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; 44D08244DA1B152854D77BB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c"; sourceTree = "SOURCE_ROOT"; }; 450C2C035F67A393EE398389 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; 45191F8C48FCE643824B67F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -389,6 +418,7 @@ 522270278A659CBC622295F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; 52BECDFDC5A1AB81350C3852 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; 531AF914074A371A2E23A32E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 534F94CFAF4EA8FD945111E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; 536BC600CA34FB063F45C1E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 53737E956EE99C3D7259B31A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; 538CFEAD991A38E937468632 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; @@ -454,6 +484,7 @@ 5E06F5051C1D854B2455CB87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; 5E22100B218036559DC43F44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; }; 5E23D96E2EB9F88F38D93DFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + 5E407472A12335C0FB5D1731 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; 5E69CD9BD8767CC7DEC344FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; 5EA4D7EB503ED1646A1FECA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; 5EB0F9F985EEE1043B06F8D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h"; sourceTree = "SOURCE_ROOT"; }; @@ -466,6 +497,7 @@ 60357B0189F033F10BDACB40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; 607A351282D13B9C4D931487 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c"; sourceTree = "SOURCE_ROOT"; }; 60CC9ADC40B2E610426CADDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 610305F3F98A6F916F67D343 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; 610B1C222257F0AF100C0FD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = "../../../../../modules/juce_core/zip/zlib/inflate.c"; sourceTree = "SOURCE_ROOT"; }; 61117FCD0F1DBE0C0A0848CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 61248F75652B6DAFA4F38B3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; @@ -490,6 +522,7 @@ 641EFA9EEC15017AE80A1DA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = "SOURCE_ROOT"; }; 644469ECB4E590A9C15A52B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h"; sourceTree = "SOURCE_ROOT"; }; 6458E206EE79D7E0784192D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + 6488257C2DDEC54495FB5B09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 649085EB467A026676DBB4F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; 6492E3152651A34E24D6B872 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; 64F71A2D964E6A0FB566F130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = "SOURCE_ROOT"; }; @@ -498,10 +531,12 @@ 657A6786386C94EBFB7E3663 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; 65807062EC07B4BD5D370E59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; 6583030D2AD858AC45E0E96C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.in.h"; sourceTree = "SOURCE_ROOT"; }; + 65CE7B4496F15E1572D77172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; 663569EC98ED7266031231D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; 66A487257989CA14B111F1A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; 66B3431BDF25570225A5AB8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; 66B742B483616B3D07D6C2A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66C352909564E0006CCE4973 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; 673E8C7D27E3CC7E4FC7C140 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = "SOURCE_ROOT"; }; 6782E466222709D18B09D48D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; 67EC8AD0CD7DAC5481B04190 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -517,6 +552,7 @@ 6999B5B3C67F6A85AFE73030 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 6A06D4935ADEFEDD5AD4DEB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDGrid.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDGrid.h"; sourceTree = "SOURCE_ROOT"; }; 6A60D471004BE04081759888 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A61666BB94BA3EF3BA5D3B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 6A64E63EE6FDE58B69CD1BAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; 6A6C31420003DA6CA2AC0919 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; 6A7F5A9D49123D2E95B49772 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -524,6 +560,7 @@ 6B1587A046ABBCBECC7EEE89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c"; sourceTree = "SOURCE_ROOT"; }; 6B21CA4E90B1E4E4A7C7C58D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; 6B671201E1FF73FCDD6CAAEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; + 6B9078F12282899131454A86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; 6C1EE0564BB0C2F66F9C2433 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; 6D0D508CB90E1424BF8A5212 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; 6D39BB7673BAF2E3C8AAE91F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -557,6 +594,7 @@ 729650F24BDFFEA4A46D10E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h"; sourceTree = "SOURCE_ROOT"; }; 7298CC9DA61DDEC96BD5EE34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmemsys.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h"; sourceTree = "SOURCE_ROOT"; }; 73121BD33FD2353A25A35A94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; + 7375A19B214DBBC50A7BF8E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 73992D8767EDEF2D6EB6D53D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; 73A2D848ED2A8543B70BC377 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; 73D6496962BD45E5C330E28D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; @@ -571,6 +609,7 @@ 7518FF0D86762A4002CB3BF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; 7536C2D11B41187764CB4EB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; 75379B0DDC5FA7ACA7EF1E0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 754F4939BE1D485DCA282976 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; 75ACA1805C5BBEBBB33D37A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; 75B91A274177138164C8E8FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h"; sourceTree = "SOURCE_ROOT"; }; 75BBB2617BAF223C144AD83F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; @@ -579,7 +618,9 @@ 76B2B7A289FE75D96E2BAD6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; 76B90630B964BB29F039EE98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; 76D0BF8B5577AF7CF4080556 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 7719697A2AAB8CF71EAD1283 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; 7784DD20B44E78AE08F056BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 778C16B40D2D8B9D57CEDDB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; 7801374F867F19B791714ABE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; 7815F96579EF3984A823D01A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; 78246E70C7F9C5C5FE05D6D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../JuceLibraryCode/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -614,10 +655,12 @@ 7DF934500DF6CAB57C080788 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; 7E7377E9D88AF945C81B1508 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; 7E94ACC1938D2378F8D2A72D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E9C283336BCEB055825D495 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 7F1C7B3E3DE4FC281F9900C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c"; sourceTree = "SOURCE_ROOT"; }; 80127DADFFB0364380063858 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlockModels.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlockModels.h"; sourceTree = "SOURCE_ROOT"; }; 80DCA56117702F7F20E01546 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; 812545D343F30186508BFFCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8147D84AA5D7264D3B58F05C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 8219D04401B4E7A3132836E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; 82455A57CDA42849C17908BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; 83532D5F5DDC2434D116D2D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_events.cpp"; path = "../../../../../modules/juce_events/juce_events.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -658,8 +701,10 @@ 8C39F2FC681488A978C02F5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; 8C64DB8B08929B71E71FE00B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; 8CA9A46A8EEB6EAFF14F01CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Block.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.h"; sourceTree = "SOURCE_ROOT"; }; + 8D5B87979E2CA0D65A0513C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; 8DA7C37254BBEA4385A7272C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_extra.cpp"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.cpp"; sourceTree = "SOURCE_ROOT"; }; 8DD871588D5CA5B49031268F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 8DDDA6F7FACC77A15D569931 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; 8E09F168C2F3D7F02A560B5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; 8E8E9DC0DD1905D43E295D8A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 8EBA149C544E2531D23342B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -679,6 +724,7 @@ 92D9732668F8306983A2C8AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; 9342911CEAFB09DDF359AEB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; 934AE9A59C6374B938BE3E59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 93BA21E4F030A9B5E0F9E2C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; 945C3EC8D157047CDBB40D8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; 958BCC24A1E4AB1BAEACF4EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 95971D0F582F6929C281163E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = misc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h"; sourceTree = "SOURCE_ROOT"; }; @@ -702,7 +748,9 @@ 98871DB50478294FB98B1250 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; 98B11261E0FC7EE6D99E7DF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h"; sourceTree = "SOURCE_ROOT"; }; 98E2AD4DF8685112F956B0CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 993A3BEE971C778CF8155E3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 9960BC593F02AC48F6A08361 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 99BCF4DE0EA33AE37F49020F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 99CEF028EC17F57AC2E1A9AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; 9A0F119D9863AE9F5C0A4251 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; 9ADBEEDEFC166D8D54552C17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; @@ -712,6 +760,7 @@ 9B27CF1ED3952EFBFA499E38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; 9B6B508CEEB3F5EC8F7CA865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; 9B9CD377B20CE92F487443F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c"; sourceTree = "SOURCE_ROOT"; }; + 9BAEFCE7EF6E6DF5B741D93A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; 9BFD087AC2047471E1A72573 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; 9C3421F6E24D5B91A0CC7D3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; 9C8498C25697BD9D5A3F6D3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -743,6 +792,8 @@ A2E54CC2C9122D6EAC457A7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; A30E3FCC559193AE6F7F1F78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; A3191FE1009A7FEF6BA3D845 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + A31EB6C6B0C9920AC9C695EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + A37E3B659E77CF966DDCE80C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; A38D7A623B8E8ADA0B271A17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; A3BF0F7F436BFD8E77FB20D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h"; sourceTree = "SOURCE_ROOT"; }; A4702F8FBEA4EEC93C642201 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; @@ -754,8 +805,11 @@ A56ED345A6C89B13D2D0AC89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; A5AB415F38801E8B9E42BC18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; A5D61A4D8387CE0D63C2EA9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + A5FB8CEF68BED90C34C95456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; A5FDD01BAD9616628F32C831 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A65FE46744D96E66B719C85C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; A6846271DA4C65E13671FDFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + A697C5219F0A9F4CF6DCCBEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; A6D97766BECDD4C23BE1B953 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c"; sourceTree = "SOURCE_ROOT"; }; A74640D9C2E16C5C87E2E623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; A78B312A1934BBE26732F230 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; @@ -770,13 +824,16 @@ AAECFC780C79188EAB8E191A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; AB15F30C4F3A5709ADA3C5B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; AB21709C107E99105A6FB362 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + AB3F888E0C4539F51C1EAF1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; AB80352DA944BD5DA249706F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; AB989510F98B9761E74742D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; ABA9D69C67D0234528DEB39B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + ABCCD7D0910C95224D48B832 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; AC5639600E1A1B0179AD1E92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; AC62274498F9BDA29F8E8F9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h"; sourceTree = "SOURCE_ROOT"; }; AC97D162AA13FBF82C986A15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; ACD13A8C04CEC6BD1ACF93EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACDE162988D6C7E849B7DEBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; AD8F4F2CA47F83B1A807F2E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; ADB9047E9B3711E62B59B135 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; ADC573E1DE05C8BF45BA5B59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; @@ -794,13 +851,16 @@ B01CDF8E11068A6CC13DE786 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; B025DD0A3F91CFD919E11B07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; B09A2E2F16477C99EA897073 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + B0DFC6378444A0A7FCCB195A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; B1613A82275D9F1E92EDFAC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + B166162E4DAF54904C3D74CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; B1BC8916C2175FCC490D6C2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; B1C0B81D1BD4D3231134325F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; B1DBB67D021C6766CBBE18D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = "SOURCE_ROOT"; }; B2219699BDACA12A3379C88C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c"; sourceTree = "SOURCE_ROOT"; }; B22866EBFB0C99DE4D42CE0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; B242FAC40794E6AA4764100C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c"; sourceTree = "SOURCE_ROOT"; }; + B25712FEFEE9BFBA9B12C261 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; B264338B2CB821C82D66E580 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; B270479985DD8DDA845A54B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h"; sourceTree = "SOURCE_ROOT"; }; B2D67E046E2D97AD7F5ABFB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -819,6 +879,7 @@ B516C7504041F3EE923DDD57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; B522A301353479C5903C2BBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; B53F0009D4FB58F0AC18538C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5B8E749E67CC79C247A876E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; B5D27AA95B2A067854F67E5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BitmapLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; B60CFF7FCC83192561D27CB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; B6B1184B6619487E8B2AE5C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; @@ -827,6 +888,7 @@ B81A3688EF80E88F9A69CB5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; B85D5F20DD455F0A09E51890 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; B89E123B84D78A063F86C450 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c"; sourceTree = "SOURCE_ROOT"; }; + BA13C891528DB15821D243F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; BA174BBB2231F7A8D1621BE9 = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; BA1D0F30B2E5F0F96F4185DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; BA3924B82348A40C2FEBFFAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backends.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h"; sourceTree = "SOURCE_ROOT"; }; @@ -835,6 +897,7 @@ BAF0BD1C8BB7C746AAC1D571 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; BB09C4787A9C5C0AE51C2BD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; BB2CD5BCE2AEF09C4C823288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c"; sourceTree = "SOURCE_ROOT"; }; + BB4984282EBBC6E9F9C8FEF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; BB638189F556D13F0AB77A18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; BBAB8667033A9E3B295E3211 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; BBC54027807B8B7B1ACD6000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; @@ -845,8 +908,10 @@ BD64382F5648F98E5DFB2A11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; BDBD094B7DA913DEDA5D7688 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c"; sourceTree = "SOURCE_ROOT"; }; BDCD1040A270CAF356A41207 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + BDD35C78D78BC07BB7E42C9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; BDF255F033104DE89BBF5753 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h"; sourceTree = "SOURCE_ROOT"; }; BE4CB834C716473B6B313399 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + BE575C0C6A626A61827729F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; BE78B2465604039AB4A65752 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; BE9BAFCCA84A57BCC7757A63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; BEB30294F6BD8139B70ACA29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; @@ -878,7 +943,9 @@ C282CB01D300C1E7E27868BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CatmullRomInterpolator.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; C289CBA2B8F95F33925A5AEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; C294028BADB2FCB4DFA91F50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C2987136B8BDA24AA81ACB39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; C2A466EB36712942B38373CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + C308EE421ECFBBACD7A75CDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; C33281228651767DDAA05EAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; C354BB508CAA843514B0DC9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; C378F00E8279BEB7A09F2A72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -889,6 +956,7 @@ C40EABB3E75B9AD8FCAB53AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; C42E1A852A4060C39A22C1BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h"; sourceTree = "SOURCE_ROOT"; }; C4976B0216C3F8E8A56F712C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + C4BD68C22BCD71B945684B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LightpadComponent.h; path = ../../Source/LightpadComponent.h; sourceTree = "SOURCE_ROOT"; }; C5104A09F22FB66E2AC19B0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h"; sourceTree = "SOURCE_ROOT"; }; C5350D02D320948DED393876 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; C5777CD565420A7EB18DD101 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngpriv.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h"; sourceTree = "SOURCE_ROOT"; }; @@ -905,6 +973,7 @@ C7432E6D6DC03F9DCAD71B62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; C7450EA94B66FBE26DD4425C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; C7B16C910228ED1FAC8453A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = registry.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h"; sourceTree = "SOURCE_ROOT"; }; + C80D9CA4AEF9534B290A031A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; C80EFFF599AEAB505C66280D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; C820D0678311506A298CFE8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; C8340D5843D5D25231C0F1C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../JuceLibraryCode/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -921,6 +990,7 @@ CAB0FFD4ACE46B5BB6559F49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; CAC17359BB40A2600B570176 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; CAED4415E9FA4A520C781C91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_all.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h"; sourceTree = "SOURCE_ROOT"; }; + CB3827FF9CF3E1FEDE6544FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; CB5D7AB96931DD45ABE6D2FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; CC141B102407EB5556A247F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; CC1774E1F34D88E2F4CE51F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; @@ -936,6 +1006,7 @@ CF66C32B9525ACB1889A39E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; CF792DD18C25B9EE9757BD61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; CFA1FBA0FEC0A35E7F6124DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFA350CFCFB84C1F13101D50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; CFD4B5AC0AB05BE52362CFDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; CFF2489C2AEB28C3A650B7D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; CFFA9AE468F79CE1FA0F55B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; @@ -958,6 +1029,7 @@ D44B50CE1B7346171B34DB94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; D47D205D6F961B6EBC4D54DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; D4BFD81E44C76AD3D342F720 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + D520D4D905FC322079B794C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; D555883E46392E7615FF364B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; D5616DB6D85E2197BF1E9CCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; D56BD4164BA909ABBB1857A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; @@ -973,9 +1045,11 @@ D609AAFD609E9980F07C042C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; D61BBAED71EAA177A28395D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; D69D1212C5157C2BE27910CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6C6483E911F495C31BBB9F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; D6F89D54CA1A79972E08BADC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; D731608ADAF378A4059E1D7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; D7DCCE5D9835450DDA2E29E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + D81387E53F99829772233515 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; D821537DAB00A6DCF62878A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; D89C2F630DFB81B6B2AD1C1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; D8BF2EA2311BC20E72F780A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -993,7 +1067,9 @@ DB2D6628B85027F8AB8BED39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DB316449643AAC516003AE16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; DBC3697C47DEEC4E4DAEBFF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + DBC611580D5DE40216213D46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; DBC93310B4C31F4F591D5552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = "SOURCE_ROOT"; }; + DBE28D801A842A896DB70516 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; DBE3E85682E80FAA051D6514 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; DBF3D142BA9A164FB8881C1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = "SOURCE_ROOT"; }; DC18C91A5FBE1FB377120DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1008,14 +1084,19 @@ DDD4F13758E6FDA532A03F05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; DDDC3967C8D0DD1F07F4F2BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; DDF9E58DE5C251C1E7D039CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + DE620A8EB3A0C0089A08FBBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; DE6B8ADF052D45BACFF2C641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE9BD5C857DAB14FE50955CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; DF2F608DC15355B00A3BA719 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrumPadLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; DF64E9F78EBF3B58607D5865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; DF7E0DE4FE09D4EDF5155754 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; E012323C1204D53AFDC987D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + E038ED5E03CC02795BEBC91D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; E05078B9CED5C15A479F71B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c"; sourceTree = "SOURCE_ROOT"; }; E0C969049C24A8E43F0486DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + E0F3F39E80E633965C4ED3B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; E1139AB7DDF9577A4980F362 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + E13D107B6E10E6A507D5FD1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; E14D4575A6CDFC70041FE56A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; E1999A43823A763801FB5FA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; E1DC127CD1917EDC47AFB39D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1035,6 +1116,7 @@ E4CBBF362EA9FEA76D089795 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; E536E1E838D941CF1DFF60F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; E5858F0CD2D3EE349B30CA5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E5A9E24AF7A52B817DC5BA45 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; E5AD2180C57F5EBB1A39F66F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexItem.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h"; sourceTree = "SOURCE_ROOT"; }; E650055955C59718FA306757 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; E66238B027B9175B79BFE0E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1043,6 +1125,7 @@ E6C6F3A38D8979DFD60EEF2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c"; sourceTree = "SOURCE_ROOT"; }; E6CF77D082C93F8B2D3CAF9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; E6EC16C0592B91025CC07278 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_32.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = "SOURCE_ROOT"; }; + E7998A010E1004F59BC23385 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; E7A9C044D65548A7EF9B2408 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; E80DC5E1829B4F57F52EF78D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; E8436FD10AED36594510428E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1060,12 +1143,14 @@ EA87BD84F0A54889DCA2C9B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; EA8AA050C16F1217F3438AF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; EB064E6E42732DD8623092DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + EBE0DCE4673FCE299E0ACB6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; EBED707414352EB0E0A5D5F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; EBF04AA55AD5EAB164D8A8BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; EC1A921FCF02AF23FAECA63B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; EC66AD10984C221B97C10667 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; ECB2EC0CF7DD9626979F4E99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; ECD62CD88DCBB8DC105ECA90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + ED03974F9538EE7B3A1DCD81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; EE0BE235603DED2039A8A376 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; EE52B7BBD6EEAC47129DA7FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; EEECE62F6037C2321B2ACF08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1089,6 +1174,7 @@ F378FC2132C2580E4C4E6992 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; F3A4FF5FDA257CAD38849C35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; F3A66E239C90932DE7F6DD40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3F0988C86C064B2F0C4823D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; F4335B83494891C421FA04E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; F4470F1C34F0F6A324987570 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; F46055F9E7B61F6AE9547B05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PhysicalTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1108,17 +1194,20 @@ F9165F30946DC46BCAE86E7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; F9192631BB2F48E64EFD2FD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; F91C18845B000BFD9394DB88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9755D24CFC3C8346861921E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; F994478EC1241EE08FB8D207 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; F9D1D7808EB6923DF8954E20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; FA1E892179949EA7374BC35C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; FA40DB2441500AF4B0ECA71B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; FA537C8B56BCCF97545A916F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; FA734613A284C21C1CAE8A93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_devices.cpp"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA9EB34524507C99A8E1C5A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; FAD7FB53E0C69BF3CBDA507A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; FAE35C089A5CE8275D9A348E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; }; FB171AC63682377ADBD4DFAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "win_utf8_io.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h"; sourceTree = "SOURCE_ROOT"; }; FB565EABA6355CFB94D9E2D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; FB678E72A050B9C8405A49D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FC0C2F25DE3E8A38D3EDCA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; FC2AC5AB9DA0202896FFC1A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; FC849CBFC2B5E9D584151565 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; FCC8E19B4E8537120C6F3B2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1126,19 +1215,24 @@ FCE2AB34D1C54832F4AC47C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; FCE4EC729B0D9F1E38B94F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; FD346DC35FA3268FF7304168 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + FD59A62CA004E0F308897119 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; FD796A075B8DA4EAB5C3D4B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; FDB06E14CF1FCB034663395B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../../../modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; FDCB3E4E7614A659785FE0CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; FDD9E523BA9313C8F0234145 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; + FE7BD7141A2DB21FA7B57E36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; FE967F394CAA522759ABA2AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; FEA03311B1C8F40C86887D26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; FEB48C07204CFD8949E8B669 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; FECDEC0CF69A38A446783AA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/endswap.h"; sourceTree = "SOURCE_ROOT"; }; + FEF64E9C7BC62BDC186C828C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; FF459A86F895958A65E5CA34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; FF5A926355A65BE4932368F6 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "LittleFoot Language README.txt"; path = "../../../../../modules/juce_blocks_basics/littlefoot/LittleFoot Language README.txt"; sourceTree = "SOURCE_ROOT"; }; FF624BF63C3BBD494478D2A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; FFA048FF349F1B798B6471FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdhuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h"; sourceTree = "SOURCE_ROOT"; }; + FFE3C362ED4F23A1377A5668 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; AA00B6CDF58EE5901BBEF67C = {isa = PBXGroup; children = ( + C4BD68C22BCD71B945684B0A, 38BEC0B6AFAFA022B355CC1B, 49F51637C89080A76F65E9F7, ); name = Source; sourceTree = ""; }; 9886851267A0D1BF2E10BA86 = {isa = PBXGroup; children = ( @@ -1462,6 +1556,111 @@ 7A1CBB013812C5077EF88455, 5C8D3EA6AD2DD7A4223CB76C, 7A1CBB013812C5077EF88455, ); name = "juce_audio_formats"; sourceTree = ""; }; + 56F778EEE37603DEABB89B4B = {isa = PBXGroup; children = ( + 8147D84AA5D7264D3B58F05C, + 99BCF4DE0EA33AE37F49020F, + BB4984282EBBC6E9F9C8FEF5, + 3CEC86343BDD4389D5A7DD10, ); name = format; sourceTree = ""; }; + E378D4DF6F0EE16852533275 = {isa = PBXGroup; children = ( + C2987136B8BDA24AA81ACB39, + F9755D24CFC3C8346861921E, + 2D0CF751B6458AA4118FA80D, + 6488257C2DDEC54495FB5B09, + 7375A19B214DBBC50A7BF8E0, + A697C5219F0A9F4CF6DCCBEF, + D6C6483E911F495C31BBB9F3, + 3577E13160F200904CD249F6, + 007103A1EA6F6DD30ABF9D4C, + AB3F888E0C4539F51C1EAF1B, + 7719697A2AAB8CF71EAD1283, + 2A48387726C402539AA7E04E, + 993A3BEE971C778CF8155E3A, + D520D4D905FC322079B794C6, ); name = "format_types"; sourceTree = ""; }; + 6694EB584DE6455DEF011D38 = {isa = PBXGroup; children = ( + ABCCD7D0910C95224D48B832, + 1623CBF04E3D67539B70610D, + B25712FEFEE9BFBA9B12C261, + BE575C0C6A626A61827729F6, + 3B27D41422A586E48DDFF7BF, + 10C3385241F325F0213F9F55, + 66C352909564E0006CCE4973, + 8D5B87979E2CA0D65A0513C4, + E0F3F39E80E633965C4ED3B6, + E7998A010E1004F59BC23385, + A5FB8CEF68BED90C34C95456, + B0DFC6378444A0A7FCCB195A, + 3F295D1367247F2D85A1C172, + DBC611580D5DE40216213D46, ); name = processors; sourceTree = ""; }; + 34682C5CBB2B57416A02B407 = {isa = PBXGroup; children = ( + A31EB6C6B0C9920AC9C695EC, + B5B8E749E67CC79C247A876E, + ED03974F9538EE7B3A1DCD81, + 6B9078F12282899131454A86, + 7E9C283336BCEB055825D495, + E038ED5E03CC02795BEBC91D, ); name = scanning; sourceTree = ""; }; + 2FC973C45952E30BA01B8D07 = {isa = PBXGroup; children = ( + 1D86B7A676AB774FE7BAFE2A, + DE9BD5C857DAB14FE50955CF, + 9BAEFCE7EF6E6DF5B741D93A, + 8DDDA6F7FACC77A15D569931, + DBE28D801A842A896DB70516, + BDD35C78D78BC07BB7E42C9C, + FC0C2F25DE3E8A38D3EDCA16, + A37E3B659E77CF966DDCE80C, ); name = utilities; sourceTree = ""; }; + F85AB86FEF99E7285BB1F102 = {isa = PBXGroup; children = ( + 56F778EEE37603DEABB89B4B, + E378D4DF6F0EE16852533275, + 6694EB584DE6455DEF011D38, + 34682C5CBB2B57416A02B407, + 2FC973C45952E30BA01B8D07, + FA9EB34524507C99A8E1C5A9, + DE620A8EB3A0C0089A08FBBA, + A65FE46744D96E66B719C85C, + DE620A8EB3A0C0089A08FBBA, ); name = "juce_audio_processors"; sourceTree = ""; }; + 60674B33757161EB0CF640C7 = {isa = PBXGroup; children = ( + 3E000A18C8EF629F102EE7E1, + 30D2D5A363AB7A6754D5AA19, + E5A9E24AF7A52B817DC5BA45, ); name = "audio_cd"; sourceTree = ""; }; + 98EFEA843911571C36FFA086 = {isa = PBXGroup; children = ( + 0DD776B8FC26133978E29E1D, + 298CC9E8C54D19B7742025F0, + 102A6E0A33E64D932229A131, + 441A6FB9478D1EE3A9E584EC, + EBE0DCE4673FCE299E0ACB6E, + ACDE162988D6C7E849B7DEBF, + 448B6E970DA168958D1AECAA, + 93BA21E4F030A9B5E0F9E2C2, + 778C16B40D2D8B9D57CEDDB1, + FEF64E9C7BC62BDC186C828C, + B166162E4DAF54904C3D74CF, + C80D9CA4AEF9534B290A031A, + 6A61666BB94BA3EF3BA5D3B4, + CFA350CFCFB84C1F13101D50, ); name = gui; sourceTree = ""; }; + 427301A4052E8E812A8E1B3B = {isa = PBXGroup; children = ( + 2F5570B2C6B5D3EE68860431, + F3F0988C86C064B2F0C4823D, + C308EE421ECFBBACD7A75CDB, + BA13C891528DB15821D243F7, + 754F4939BE1D485DCA282976, + 3E1C8E82ED645A4722601B8F, + FFE3C362ED4F23A1377A5668, + E13D107B6E10E6A507D5FD1C, + D81387E53F99829772233515, + 1446C82D08483F1ED8E7E377, ); name = native; sourceTree = ""; }; + 5E326F050F877FD746CC5D97 = {isa = PBXGroup; children = ( + 14942080E74577CCBBCA1199, + 029FBEC54DD4C8A657EF3BD1, + CB3827FF9CF3E1FEDE6544FC, + 534F94CFAF4EA8FD945111E5, ); name = players; sourceTree = ""; }; + 5F50743BF25EA650063BDE9F = {isa = PBXGroup; children = ( + 60674B33757161EB0CF640C7, + 98EFEA843911571C36FFA086, + 427301A4052E8E812A8E1B3B, + 5E326F050F877FD746CC5D97, + FD59A62CA004E0F308897119, + 16AE065E8018313BDF2DDA6A, + FE7BD7141A2DB21FA7B57E36, + 16AE065E8018313BDF2DDA6A, ); name = "juce_audio_utils"; sourceTree = ""; }; E7EAF8D1A991C98EA8528707 = {isa = PBXGroup; children = ( 519AD5862822EDEBAC0B90BC, 8CA9A46A8EEB6EAFF14F01CF, @@ -1515,6 +1714,7 @@ 4D99FF33B0B3A9DCB92F5398, D9CF06E1D818462B23A2985D, AE8A2F2B590228AA79922EFC, + 30DF327E6C9B3A8F16A96385, 30A6525A80C10CAB453C8649, 0715D437CBE3222794DDA264, 4090EEAB1ADDDE82E77B5DA3, @@ -1629,7 +1829,9 @@ 7AD76C1D103EB21BED1F37B5, DD2A9FD91FDD559EA8CBD65E, DA96E7939F94646A306F2CA5, - 3146322BAEB67344B4969CE5, ); name = network; sourceTree = ""; }; + 3146322BAEB67344B4969CE5, + 0B0185EBD24E4B48AD01D22B, + 0F2A7783A8F66902008EC156, ); name = network; sourceTree = ""; }; 389E649B225AF3FB56651E27 = {isa = PBXGroup; children = ( 71AD6F9EE810D5E64501A9EE, EF7A763B6ECD5D6D5C352EEE, @@ -2437,6 +2639,8 @@ 665E1B7D0F3287E61328962A, 9AC105FA2D78A2FF360E72CF, 3A7E92469DD583BC27D6A0C3, + F85AB86FEF99E7285BB1F102, + 5F50743BF25EA650063BDE9F, 6703540BB2129E337C6A36A2, 502E1E6A813AB55B9E50E94B, C26A50FC2442172A34F9428E, @@ -2450,6 +2654,8 @@ DA8A4007E66A5DAF6714958C, 95CF46398870352FCFC6060A, 6897FB6E71DC9317E49C7878, + 5E407472A12335C0FB5D1731, + 65CE7B4496F15E1572D77172, F6846615852B68E9AC653C15, 1ACBA85AD353C8C85A01F6A4, 78246E70C7F9C5C5FE05D6D3, @@ -2469,6 +2675,7 @@ 8E8E9DC0DD1905D43E295D8A, 11AEC78B996D849B2EA9C96F, A2D1D8C580DFDB5C8E011C80, + 610305F3F98A6F916F67D343, 25D249E24CF8513F7B245F8C, BEBF18621B604A4DE3180F89, D2E3DCE1B8C06CB72C0E7E1E, @@ -2573,6 +2780,8 @@ 24C420997F20D0A7722D42F4, 049EFBDC407E74FEFD6B5BC4, 14F7090DA7E5514C84EDEAEC, + 8219D6828DCCAEDF01F5337C, + 36767EDDC8BFC684119EDFE8, 6A180703D5E1FF08436F86BD, 778865742AAC536B855F7811, 3605BE75533AB0654207D383, @@ -2588,6 +2797,7 @@ 8852261A4E917CD1AED7E45E, 23D2896D495239FEA26A3255, E759B32B9B193C5530B5728D, + DBFC216C1E1FB0D88DD5336D, A616212899B39931D525663E, A6DD612C38EE8DBFD4011BCF, 3517782FB58BA6883F7A9D6F, diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj index 70f765a0d8..6b57c77d64 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 BlocksDrawing + .exe true BlocksDrawing + .exe true v120 @@ -457,6 +459,102 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -481,6 +579,9 @@ true + + true + true @@ -616,6 +717,9 @@ true + + true + true @@ -1576,6 +1680,8 @@ + + @@ -1586,6 +1692,7 @@ + @@ -1737,6 +1844,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1824,6 +1977,7 @@ + diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj.filters b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj.filters index b143dfb224..1f38db4557 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj.filters +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2013/BlocksDrawing.vcxproj.filters @@ -98,6 +98,39 @@ {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} @@ -670,6 +703,123 @@ Juce Modules\juce_audio_formats + + 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\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\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -694,6 +844,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -844,6 +997,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1876,6 +2032,12 @@ Juce Library Code + + Juce Library Code + + + Juce Library Code + Juce Library Code @@ -1902,6 +2064,9 @@ + + BlocksDrawing\Source + BlocksDrawing\Source @@ -2355,6 +2520,144 @@ Juce Modules\juce_audio_formats + + 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\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\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\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\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\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -2616,6 +2919,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj index c068baadce..84581f8b4a 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 BlocksDrawing + .exe true BlocksDrawing + .exe true v140 @@ -457,6 +459,102 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -481,6 +579,9 @@ true + + true + true @@ -616,6 +717,9 @@ true + + true + true @@ -1576,6 +1680,8 @@ + + @@ -1586,6 +1692,7 @@ + @@ -1737,6 +1844,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1824,6 +1977,7 @@ + diff --git a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj.filters b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj.filters index ba43ee5c3c..d3fc0f48f3 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj.filters +++ b/examples/BLOCKS/BlocksDrawing/Builds/VisualStudio2015/BlocksDrawing.vcxproj.filters @@ -98,6 +98,39 @@ {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} @@ -670,6 +703,123 @@ Juce Modules\juce_audio_formats + + 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\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\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -694,6 +844,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -844,6 +997,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1876,6 +2032,12 @@ Juce Library Code + + Juce Library Code + + + Juce Library Code + Juce Library Code @@ -1902,6 +2064,9 @@ + + BlocksDrawing\Source + BlocksDrawing\Source @@ -2355,6 +2520,144 @@ Juce Modules\juce_audio_formats + + 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\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\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\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\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\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -2616,6 +2919,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/BLOCKS/BlocksDrawing/Builds/iOS/BlocksDrawing.xcodeproj/project.pbxproj b/examples/BLOCKS/BlocksDrawing/Builds/iOS/BlocksDrawing.xcodeproj/project.pbxproj index ee7ff9378e..dd18f27488 100644 --- a/examples/BLOCKS/BlocksDrawing/Builds/iOS/BlocksDrawing.xcodeproj/project.pbxproj +++ b/examples/BLOCKS/BlocksDrawing/Builds/iOS/BlocksDrawing.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ BBE14F0993C20E2D963EB167 = {isa = PBXBuildFile; fileRef = 5BFC1DE795FB9081364BFC41; }; 2A39C67F26307A5C8875160A = {isa = PBXBuildFile; fileRef = 2534868A44A9EAA66A584C16; }; 23D2896D495239FEA26A3255 = {isa = PBXBuildFile; fileRef = 11AEC78B996D849B2EA9C96F; }; + EC92D4CA1DAD1B1AB983F355 = {isa = PBXBuildFile; fileRef = C34F16925E640C3542B78B92; }; EE68388C08422C998F9418CC = {isa = PBXBuildFile; fileRef = E427494183B988C7A7BD1017; }; E759B32B9B193C5530B5728D = {isa = PBXBuildFile; fileRef = A2D1D8C580DFDB5C8E011C80; }; 6CC5F22634ACED43D520FDF1 = {isa = PBXBuildFile; fileRef = 4D4A93B14DDB028B9592C841; }; @@ -19,11 +20,12 @@ 3517782FB58BA6883F7A9D6F = {isa = PBXBuildFile; fileRef = D2E3DCE1B8C06CB72C0E7E1E; }; 7292839DA84380BAA0F12E31 = {isa = PBXBuildFile; fileRef = 4DCF6F0AB88DA09CE8F97DD4; }; 2A5E87443C41335CD944ACB8 = {isa = PBXBuildFile; fileRef = 4FE119D4AAC2809C3D698315; }; - D354A0AD7CBDBDD1D8132ECC = {isa = PBXBuildFile; fileRef = 3A534A7474110674C69C1FC9; }; F1C1D8F4BDE85067F5E61D08 = {isa = PBXBuildFile; fileRef = 49F51637C89080A76F65E9F7; }; 24C420997F20D0A7722D42F4 = {isa = PBXBuildFile; fileRef = DA8A4007E66A5DAF6714958C; }; 049EFBDC407E74FEFD6B5BC4 = {isa = PBXBuildFile; fileRef = 95CF46398870352FCFC6060A; }; 14F7090DA7E5514C84EDEAEC = {isa = PBXBuildFile; fileRef = 6897FB6E71DC9317E49C7878; }; + 8219D6828DCCAEDF01F5337C = {isa = PBXBuildFile; fileRef = 5E407472A12335C0FB5D1731; }; + 36767EDDC8BFC684119EDFE8 = {isa = PBXBuildFile; fileRef = 65CE7B4496F15E1572D77172; }; 6A180703D5E1FF08436F86BD = {isa = PBXBuildFile; fileRef = F6846615852B68E9AC653C15; }; 778865742AAC536B855F7811 = {isa = PBXBuildFile; fileRef = 1ACBA85AD353C8C85A01F6A4; }; 3605BE75533AB0654207D383 = {isa = PBXBuildFile; fileRef = 78246E70C7F9C5C5FE05D6D3; }; @@ -35,10 +37,12 @@ 002081401EB031560B2EC23D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 004F22C36FC01D6FDFF1DA3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; 0066F77648F3BDE61FA586D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 007103A1EA6F6DD30ABF9D4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 00761EB1B52F84D5D8A980F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; 0134541F88473B067DD0FC3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; 0146ADA6A37B56C2B80B664B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 023F49CCDC1E02B09597C66E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 029FBEC54DD4C8A657EF3BD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; 02C1D8DDC7431B47680C884D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; 0353E7FB538930065FE42F3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDRow.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDRow.h"; sourceTree = "SOURCE_ROOT"; }; 037F0FA4D8A2AF9C315C4043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -79,6 +83,7 @@ 0A4A8668A6C39539E9353BF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; 0A526E1279C058ECEB5D72E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0A98DFE44610565EF648D538 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0B0185EBD24E4B48AD01D22B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 0B0E6BBD74D806034228CD61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 0BA1A36CC006BB5B35A09E06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0BB27BEFDC069EDBC8A863CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; @@ -93,14 +98,18 @@ 0D75C63F78F611EF265DDD00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c"; sourceTree = "SOURCE_ROOT"; }; 0DAA3726FC94F23E5A583A67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; 0DC492C9812308493090CBD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 0DD776B8FC26133978E29E1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0E42B615AFEEDD7E91F69F3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0E4DBF54BA05AA884EA76D6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; 0E90D8E7451AF40D3A29DF67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 0F2A7783A8F66902008EC156 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 0F49043494C2D1C50D787795 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = "SOURCE_ROOT"; }; 0F939B5F2399CFD6C4B5225E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; 0F9867566F439625DCCD9E20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; 0FA78CA2930349913F5B6AF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; + 102A6E0A33E64D932229A131 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 10C0A00B736989F933478B16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10C3385241F325F0213F9F55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; 10C405B7EC6821FEA0C19088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; 10EF808AC938A441E7443840 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c"; sourceTree = "SOURCE_ROOT"; }; 111367FFC293098B75C802F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_blocks_basics.h"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.h"; sourceTree = "SOURCE_ROOT"; }; @@ -122,12 +131,16 @@ 13F49EB3AE13CDD2331F0D8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = "SOURCE_ROOT"; }; 141B5486B9DE5E175F54300E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; 142DACDBB2E8CCDBC92AFA21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1446C82D08483F1ED8E7E377 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; 1446EB4219341EA5B6B0A500 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; + 14942080E74577CCBBCA1199 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; 14D6FADA9CE0607012BE74D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; 15084C7DDC789B403498C10B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; 1582CA65E7C557627CAA8F5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; 1607EFD478CD23076A9CBE3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1623CBF04E3D67539B70610D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; 1639FF06D27B84F3842F4562 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 16AE065E8018313BDF2DDA6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; 16CB2435896E92B50CA98632 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_TopologySource.h"; sourceTree = "SOURCE_ROOT"; }; 17A479D1C363ADB40C23A6DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; 17A75A5B2018AF3DD4CAEAE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = "SOURCE_ROOT"; }; @@ -158,6 +171,7 @@ 1CF7C7004E788245BE5FFF63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; 1D0631AE2D6F169182E62BAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = compat.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/compat.h"; sourceTree = "SOURCE_ROOT"; }; 1D59E459EEEDB9E5D454DF5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1D86B7A676AB774FE7BAFE2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; 1DB6128ED112939DF6D08C3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; 1DBC75BB007FC806B0AD27C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; 1DC4186072CFD272F5AAFF2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -217,10 +231,12 @@ 290F124B244C09E6964234E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; 295AD44153ADE7714563E352 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; 298C022C57704BDC157AA9C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 298CC9E8C54D19B7742025F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; 29BF54C26D1118B8618201CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; 29D582B81D48ACB55B82D3D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; 2A0F270864162E316C58B149 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; 2A1D8A60BC973056EAC9D44B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A48387726C402539AA7E04E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; 2A6913FDD4BD2C9238310B2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; 2A8136A983CE21073E16D40A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; 2AE6B05474C7AB5179544774 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; @@ -240,6 +256,7 @@ 2CD956D8AC55456D758139BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; 2D04DCD5191030ECAC7A7066 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; 2D09DB1F0F60421C24555BD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D0CF751B6458AA4118FA80D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; 2DA8268B68970ED28D8C6063 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; 2DDAB967201CB1E26FB2016B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = "../../../../../modules/juce_core/zip/zlib/zutil.h"; sourceTree = "SOURCE_ROOT"; }; 2E0169C5F6520FDCBF0AD415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h"; sourceTree = "SOURCE_ROOT"; }; @@ -251,11 +268,14 @@ 2F05FC33C11271527B090E20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c"; sourceTree = "SOURCE_ROOT"; }; 2F07F356B586297441C03FD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; 2F4B9232765C11AF743E173F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrumPadLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 2F5570B2C6B5D3EE68860431 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 2F9E0C26FE9DA472D2D7C2AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 2FD22509C8339B373DC63012 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c"; sourceTree = "SOURCE_ROOT"; }; 300E4F29AA370E48EC0BE8DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; 30A6525A80C10CAB453C8649 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; 30B31EE1B29FA4116F390154 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h"; sourceTree = "SOURCE_ROOT"; }; + 30D2D5A363AB7A6754D5AA19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30DF327E6C9B3A8F16A96385 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 3146322BAEB67344B4969CE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; 325C094CD77DDDF596F68739 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; 32CF5277357C6BF109C965E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -273,6 +293,7 @@ 34210DF6FF04098CE9FDF1D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../JuceLibraryCode/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; 344D18532509B867ECE196E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; 356836FC63C553DE7E939438 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3577E13160F200904CD249F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 357E6A36AF5DEB7DAB77280B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = "SOURCE_ROOT"; }; 35EB2AC6E224BFF79671F5A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 3626A7F4986882E314E193DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; @@ -297,9 +318,9 @@ 39B8B06446BAB8D893095B95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; 3A2314D17819BDF12A7EA07E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; 3A26E022C114766276A15799 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; - 3A534A7474110674C69C1FC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; 3A58806F1A210DB171E6FDD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 3AADA20AD02A1052F80B2857 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 3B27D41422A586E48DDFF7BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; 3B3A0DE861C9D67CE502A7FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; 3B4774F8B271C48F991A20BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; 3B78CFAE2DBC0A8DACC832AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; @@ -312,13 +333,17 @@ 3C6DEA1D9CF09ED6F08F8D97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C71778B17054C9F858FA865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; 3CAD7F04BB8AC0A31D578AA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = "SOURCE_ROOT"; }; + 3CEC86343BDD4389D5A7DD10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; 3D1F21B2DBFA9980BA10CC5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h"; sourceTree = "SOURCE_ROOT"; }; 3DDA7C8BF74C996ABCB5E42E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 3E000A18C8EF629F102EE7E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + 3E1C8E82ED645A4722601B8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; 3E28690EA1B84705F43E3D50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; 3E3AD57C396C694F715232F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 3E482755EDFA44494FF023D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; 3E53AAF6A7C50B871CC2B84B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; 3EAA7B2934AA9AF16F86BA43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F295D1367247F2D85A1C172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; 3F4AD344A9B3A6B75BE3FFED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 3F50B376A0FED903BEF9D6E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; 40636EB94227E67A528D519B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -335,10 +360,12 @@ 43A9DE0FFB1C5A5CA2CFF625 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; 43B541DE2AE988D5DF58776B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; 43C6225F03FFB572BE6D67AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../../../../modules/juce_core/zip/zlib/inffast.c"; sourceTree = "SOURCE_ROOT"; }; + 441A6FB9478D1EE3A9E584EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; 44232F9780A5411FCF2A8917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; 444983159A76796F60409C6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; 4463E0EE235D2C829F6FDB1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; 4483F159C5ACFFC36F93872F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 448B6E970DA168958D1AECAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; 44D08244DA1B152854D77BB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c"; sourceTree = "SOURCE_ROOT"; }; 450C2C035F67A393EE398389 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; 45191F8C48FCE643824B67F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -395,6 +422,7 @@ 522270278A659CBC622295F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; 52BECDFDC5A1AB81350C3852 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; 531AF914074A371A2E23A32E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 534F94CFAF4EA8FD945111E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; 536BC600CA34FB063F45C1E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 53737E956EE99C3D7259B31A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; 538CFEAD991A38E937468632 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; @@ -460,6 +488,7 @@ 5E06F5051C1D854B2455CB87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; 5E22100B218036559DC43F44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; }; 5E23D96E2EB9F88F38D93DFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + 5E407472A12335C0FB5D1731 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; 5E69CD9BD8767CC7DEC344FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; 5EA4D7EB503ED1646A1FECA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; 5EB0F9F985EEE1043B06F8D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h"; sourceTree = "SOURCE_ROOT"; }; @@ -496,6 +525,7 @@ 641EFA9EEC15017AE80A1DA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = "SOURCE_ROOT"; }; 644469ECB4E590A9C15A52B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h"; sourceTree = "SOURCE_ROOT"; }; 6458E206EE79D7E0784192D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + 6488257C2DDEC54495FB5B09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 649085EB467A026676DBB4F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; 6492E3152651A34E24D6B872 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; 64F71A2D964E6A0FB566F130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = "SOURCE_ROOT"; }; @@ -504,10 +534,12 @@ 657A6786386C94EBFB7E3663 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; 65807062EC07B4BD5D370E59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; 6583030D2AD858AC45E0E96C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.in.h"; sourceTree = "SOURCE_ROOT"; }; + 65CE7B4496F15E1572D77172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; 663569EC98ED7266031231D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; 66A487257989CA14B111F1A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; 66B3431BDF25570225A5AB8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; 66B742B483616B3D07D6C2A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66C352909564E0006CCE4973 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; 673E8C7D27E3CC7E4FC7C140 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = "SOURCE_ROOT"; }; 6782E466222709D18B09D48D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; 67EC8AD0CD7DAC5481B04190 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -523,6 +555,7 @@ 6999B5B3C67F6A85AFE73030 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 6A06D4935ADEFEDD5AD4DEB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDGrid.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDGrid.h"; sourceTree = "SOURCE_ROOT"; }; 6A60D471004BE04081759888 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A61666BB94BA3EF3BA5D3B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 6A64E63EE6FDE58B69CD1BAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; 6A6C31420003DA6CA2AC0919 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; 6A7F5A9D49123D2E95B49772 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -530,6 +563,7 @@ 6B1587A046ABBCBECC7EEE89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c"; sourceTree = "SOURCE_ROOT"; }; 6B21CA4E90B1E4E4A7C7C58D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; 6B671201E1FF73FCDD6CAAEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; + 6B9078F12282899131454A86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; 6C1EE0564BB0C2F66F9C2433 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; 6D0D508CB90E1424BF8A5212 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; 6D39BB7673BAF2E3C8AAE91F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -563,6 +597,7 @@ 729650F24BDFFEA4A46D10E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h"; sourceTree = "SOURCE_ROOT"; }; 7298CC9DA61DDEC96BD5EE34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmemsys.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h"; sourceTree = "SOURCE_ROOT"; }; 73121BD33FD2353A25A35A94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; + 7375A19B214DBBC50A7BF8E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 73992D8767EDEF2D6EB6D53D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; 73A2D848ED2A8543B70BC377 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; 73D6496962BD45E5C330E28D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; @@ -577,6 +612,7 @@ 7518FF0D86762A4002CB3BF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; 7536C2D11B41187764CB4EB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; 75379B0DDC5FA7ACA7EF1E0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 754F4939BE1D485DCA282976 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; 75ACA1805C5BBEBBB33D37A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; 75B91A274177138164C8E8FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h"; sourceTree = "SOURCE_ROOT"; }; 75BBB2617BAF223C144AD83F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; @@ -585,7 +621,9 @@ 76B2B7A289FE75D96E2BAD6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; 76B90630B964BB29F039EE98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; 76D0BF8B5577AF7CF4080556 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 7719697A2AAB8CF71EAD1283 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; 7784DD20B44E78AE08F056BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 778C16B40D2D8B9D57CEDDB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; 7801374F867F19B791714ABE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; 7815F96579EF3984A823D01A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; 78246E70C7F9C5C5FE05D6D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../JuceLibraryCode/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -620,10 +658,12 @@ 7DF934500DF6CAB57C080788 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; 7E7377E9D88AF945C81B1508 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; 7E94ACC1938D2378F8D2A72D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E9C283336BCEB055825D495 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 7F1C7B3E3DE4FC281F9900C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c"; sourceTree = "SOURCE_ROOT"; }; 80127DADFFB0364380063858 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlockModels.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlockModels.h"; sourceTree = "SOURCE_ROOT"; }; 80DCA56117702F7F20E01546 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; 812545D343F30186508BFFCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8147D84AA5D7264D3B58F05C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 8219D04401B4E7A3132836E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; 82455A57CDA42849C17908BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; 83532D5F5DDC2434D116D2D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_events.cpp"; path = "../../../../../modules/juce_events/juce_events.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -664,8 +704,10 @@ 8C39F2FC681488A978C02F5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; 8C64DB8B08929B71E71FE00B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; 8CA9A46A8EEB6EAFF14F01CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Block.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.h"; sourceTree = "SOURCE_ROOT"; }; + 8D5B87979E2CA0D65A0513C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; 8DA7C37254BBEA4385A7272C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_extra.cpp"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.cpp"; sourceTree = "SOURCE_ROOT"; }; 8DD871588D5CA5B49031268F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 8DDDA6F7FACC77A15D569931 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; 8E09F168C2F3D7F02A560B5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; 8EBA149C544E2531D23342B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; 8F288B420371B401EC1F6ED5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; @@ -684,6 +726,7 @@ 92D9732668F8306983A2C8AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; 9342911CEAFB09DDF359AEB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; 934AE9A59C6374B938BE3E59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 93BA21E4F030A9B5E0F9E2C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; 945C3EC8D157047CDBB40D8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; 958BCC24A1E4AB1BAEACF4EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 95971D0F582F6929C281163E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = misc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h"; sourceTree = "SOURCE_ROOT"; }; @@ -707,7 +750,9 @@ 98871DB50478294FB98B1250 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; 98B11261E0FC7EE6D99E7DF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h"; sourceTree = "SOURCE_ROOT"; }; 98E2AD4DF8685112F956B0CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 993A3BEE971C778CF8155E3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 9960BC593F02AC48F6A08361 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 99BCF4DE0EA33AE37F49020F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 99CEF028EC17F57AC2E1A9AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; 9A0F119D9863AE9F5C0A4251 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; 9ADBEEDEFC166D8D54552C17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; @@ -717,6 +762,7 @@ 9B27CF1ED3952EFBFA499E38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; 9B6B508CEEB3F5EC8F7CA865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; 9B9CD377B20CE92F487443F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c"; sourceTree = "SOURCE_ROOT"; }; + 9BAEFCE7EF6E6DF5B741D93A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; 9BFD087AC2047471E1A72573 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; 9C3421F6E24D5B91A0CC7D3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; 9C8498C25697BD9D5A3F6D3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -748,6 +794,8 @@ A2E54CC2C9122D6EAC457A7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; A30E3FCC559193AE6F7F1F78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; A3191FE1009A7FEF6BA3D845 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + A31EB6C6B0C9920AC9C695EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + A37E3B659E77CF966DDCE80C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; A38D7A623B8E8ADA0B271A17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; A3BF0F7F436BFD8E77FB20D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h"; sourceTree = "SOURCE_ROOT"; }; A4702F8FBEA4EEC93C642201 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; @@ -759,8 +807,11 @@ A56ED345A6C89B13D2D0AC89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; A5AB415F38801E8B9E42BC18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; A5D61A4D8387CE0D63C2EA9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + A5FB8CEF68BED90C34C95456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; A5FDD01BAD9616628F32C831 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A65FE46744D96E66B719C85C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; A6846271DA4C65E13671FDFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + A697C5219F0A9F4CF6DCCBEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; A6D97766BECDD4C23BE1B953 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c"; sourceTree = "SOURCE_ROOT"; }; A74640D9C2E16C5C87E2E623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; A78B312A1934BBE26732F230 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; @@ -775,12 +826,15 @@ AAECFC780C79188EAB8E191A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; AB15F30C4F3A5709ADA3C5B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; AB21709C107E99105A6FB362 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + AB3F888E0C4539F51C1EAF1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; AB80352DA944BD5DA249706F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; AB989510F98B9761E74742D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + ABCCD7D0910C95224D48B832 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; AC5639600E1A1B0179AD1E92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; AC62274498F9BDA29F8E8F9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h"; sourceTree = "SOURCE_ROOT"; }; AC97D162AA13FBF82C986A15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; ACD13A8C04CEC6BD1ACF93EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACDE162988D6C7E849B7DEBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; AD8F4F2CA47F83B1A807F2E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; ADB9047E9B3711E62B59B135 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; ADC573E1DE05C8BF45BA5B59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; @@ -798,13 +852,16 @@ B01CDF8E11068A6CC13DE786 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; B025DD0A3F91CFD919E11B07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; B09A2E2F16477C99EA897073 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + B0DFC6378444A0A7FCCB195A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; B1613A82275D9F1E92EDFAC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + B166162E4DAF54904C3D74CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; B1BC8916C2175FCC490D6C2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; B1C0B81D1BD4D3231134325F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; B1DBB67D021C6766CBBE18D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = "SOURCE_ROOT"; }; B2219699BDACA12A3379C88C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c"; sourceTree = "SOURCE_ROOT"; }; B22866EBFB0C99DE4D42CE0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; B242FAC40794E6AA4764100C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c"; sourceTree = "SOURCE_ROOT"; }; + B25712FEFEE9BFBA9B12C261 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; B264338B2CB821C82D66E580 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; B270479985DD8DDA845A54B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h"; sourceTree = "SOURCE_ROOT"; }; B2D67E046E2D97AD7F5ABFB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -823,6 +880,7 @@ B516C7504041F3EE923DDD57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; B522A301353479C5903C2BBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; B53F0009D4FB58F0AC18538C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5B8E749E67CC79C247A876E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; B5D27AA95B2A067854F67E5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BitmapLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; B60CFF7FCC83192561D27CB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; B6B1184B6619487E8B2AE5C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; @@ -831,6 +889,7 @@ B81A3688EF80E88F9A69CB5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; B85D5F20DD455F0A09E51890 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; B89E123B84D78A063F86C450 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c"; sourceTree = "SOURCE_ROOT"; }; + BA13C891528DB15821D243F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; BA1D0F30B2E5F0F96F4185DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; BA3924B82348A40C2FEBFFAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backends.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h"; sourceTree = "SOURCE_ROOT"; }; BA486909AAA0C990DAE290EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -838,6 +897,7 @@ BAF0BD1C8BB7C746AAC1D571 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; BB09C4787A9C5C0AE51C2BD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; BB2CD5BCE2AEF09C4C823288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c"; sourceTree = "SOURCE_ROOT"; }; + BB4984282EBBC6E9F9C8FEF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; BB638189F556D13F0AB77A18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; BBAB8667033A9E3B295E3211 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; BBC54027807B8B7B1ACD6000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; @@ -848,8 +908,10 @@ BD64382F5648F98E5DFB2A11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; BDBD094B7DA913DEDA5D7688 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c"; sourceTree = "SOURCE_ROOT"; }; BDCD1040A270CAF356A41207 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + BDD35C78D78BC07BB7E42C9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; BDF255F033104DE89BBF5753 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h"; sourceTree = "SOURCE_ROOT"; }; BE4CB834C716473B6B313399 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + BE575C0C6A626A61827729F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; BE78B2465604039AB4A65752 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; BE9BAFCCA84A57BCC7757A63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; BEB30294F6BD8139B70ACA29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; @@ -880,8 +942,11 @@ C282CB01D300C1E7E27868BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CatmullRomInterpolator.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; C289CBA2B8F95F33925A5AEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; C294028BADB2FCB4DFA91F50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C2987136B8BDA24AA81ACB39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; C2A466EB36712942B38373CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + C308EE421ECFBBACD7A75CDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; C33281228651767DDAA05EAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + C34F16925E640C3542B78B92 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; C354BB508CAA843514B0DC9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; C378F00E8279BEB7A09F2A72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; C392ABC2B2ADD1DE523ABE3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; @@ -891,6 +956,7 @@ C40EABB3E75B9AD8FCAB53AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; C42E1A852A4060C39A22C1BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h"; sourceTree = "SOURCE_ROOT"; }; C4976B0216C3F8E8A56F712C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + C4BD68C22BCD71B945684B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LightpadComponent.h; path = ../../Source/LightpadComponent.h; sourceTree = "SOURCE_ROOT"; }; C5104A09F22FB66E2AC19B0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h"; sourceTree = "SOURCE_ROOT"; }; C5350D02D320948DED393876 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; C5777CD565420A7EB18DD101 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngpriv.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h"; sourceTree = "SOURCE_ROOT"; }; @@ -908,6 +974,7 @@ C7450EA94B66FBE26DD4425C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; C759B8DF15E2D97796C44195 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; C7B16C910228ED1FAC8453A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = registry.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h"; sourceTree = "SOURCE_ROOT"; }; + C80D9CA4AEF9534B290A031A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; C80EFFF599AEAB505C66280D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; C820D0678311506A298CFE8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; C8340D5843D5D25231C0F1C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../JuceLibraryCode/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -924,6 +991,7 @@ CAB0FFD4ACE46B5BB6559F49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; CAC17359BB40A2600B570176 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; CAED4415E9FA4A520C781C91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_all.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h"; sourceTree = "SOURCE_ROOT"; }; + CB3827FF9CF3E1FEDE6544FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; CB5D7AB96931DD45ABE6D2FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; CC141B102407EB5556A247F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; CC1774E1F34D88E2F4CE51F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; @@ -939,6 +1007,7 @@ CF66C32B9525ACB1889A39E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; CF792DD18C25B9EE9757BD61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; CFA1FBA0FEC0A35E7F6124DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFA350CFCFB84C1F13101D50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; CFD4B5AC0AB05BE52362CFDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; CFF2489C2AEB28C3A650B7D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; CFFA9AE468F79CE1FA0F55B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; @@ -961,6 +1030,7 @@ D44B50CE1B7346171B34DB94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; D47D205D6F961B6EBC4D54DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; D4BFD81E44C76AD3D342F720 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + D520D4D905FC322079B794C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; D555883E46392E7615FF364B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; D5616DB6D85E2197BF1E9CCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; D56BD4164BA909ABBB1857A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; @@ -976,9 +1046,11 @@ D609AAFD609E9980F07C042C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; D61BBAED71EAA177A28395D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; D69D1212C5157C2BE27910CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6C6483E911F495C31BBB9F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; D6F89D54CA1A79972E08BADC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; D731608ADAF378A4059E1D7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; D7DCCE5D9835450DDA2E29E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + D81387E53F99829772233515 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; D821537DAB00A6DCF62878A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; D89C2F630DFB81B6B2AD1C1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; D8BF2EA2311BC20E72F780A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -996,7 +1068,9 @@ DB2D6628B85027F8AB8BED39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DB316449643AAC516003AE16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; DBC3697C47DEEC4E4DAEBFF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + DBC611580D5DE40216213D46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; DBC93310B4C31F4F591D5552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = "SOURCE_ROOT"; }; + DBE28D801A842A896DB70516 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; DBE3E85682E80FAA051D6514 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; DBF3D142BA9A164FB8881C1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = "SOURCE_ROOT"; }; DC18C91A5FBE1FB377120DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1011,14 +1085,19 @@ DDD4F13758E6FDA532A03F05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; DDDC3967C8D0DD1F07F4F2BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; DDF9E58DE5C251C1E7D039CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + DE620A8EB3A0C0089A08FBBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; DE6B8ADF052D45BACFF2C641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE9BD5C857DAB14FE50955CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; DF2F608DC15355B00A3BA719 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrumPadLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; DF64E9F78EBF3B58607D5865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; DF7E0DE4FE09D4EDF5155754 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; E012323C1204D53AFDC987D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + E038ED5E03CC02795BEBC91D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; E05078B9CED5C15A479F71B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c"; sourceTree = "SOURCE_ROOT"; }; E0C969049C24A8E43F0486DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + E0F3F39E80E633965C4ED3B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; E1139AB7DDF9577A4980F362 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + E13D107B6E10E6A507D5FD1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; E14D4575A6CDFC70041FE56A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; E1999A43823A763801FB5FA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; E1DC127CD1917EDC47AFB39D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1039,6 +1118,7 @@ E4CBBF362EA9FEA76D089795 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; E536E1E838D941CF1DFF60F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; E5858F0CD2D3EE349B30CA5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E5A9E24AF7A52B817DC5BA45 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; E5AD2180C57F5EBB1A39F66F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexItem.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h"; sourceTree = "SOURCE_ROOT"; }; E650055955C59718FA306757 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; E66238B027B9175B79BFE0E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1048,6 +1128,7 @@ E6CF77D082C93F8B2D3CAF9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; E6EC16C0592B91025CC07278 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_32.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = "SOURCE_ROOT"; }; E731A28F9A361B554E8926EE = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + E7998A010E1004F59BC23385 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; E7A9C044D65548A7EF9B2408 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; E80DC5E1829B4F57F52EF78D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; E8436FD10AED36594510428E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1065,12 +1146,14 @@ EA87BD84F0A54889DCA2C9B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; EA8AA050C16F1217F3438AF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; EB064E6E42732DD8623092DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + EBE0DCE4673FCE299E0ACB6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; EBED707414352EB0E0A5D5F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; EBF04AA55AD5EAB164D8A8BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; EC1A921FCF02AF23FAECA63B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; EC66AD10984C221B97C10667 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; ECB2EC0CF7DD9626979F4E99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; ECD62CD88DCBB8DC105ECA90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + ED03974F9538EE7B3A1DCD81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; EE0BE235603DED2039A8A376 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; EE52B7BBD6EEAC47129DA7FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; EEECE62F6037C2321B2ACF08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1094,6 +1177,7 @@ F378FC2132C2580E4C4E6992 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; F3A4FF5FDA257CAD38849C35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; F3A66E239C90932DE7F6DD40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3F0988C86C064B2F0C4823D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; F4335B83494891C421FA04E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; F4470F1C34F0F6A324987570 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; F46055F9E7B61F6AE9547B05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PhysicalTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1112,17 +1196,20 @@ F9165F30946DC46BCAE86E7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; F9192631BB2F48E64EFD2FD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; F91C18845B000BFD9394DB88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9755D24CFC3C8346861921E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; F994478EC1241EE08FB8D207 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; F9D1D7808EB6923DF8954E20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; FA1E892179949EA7374BC35C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; FA40DB2441500AF4B0ECA71B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; FA537C8B56BCCF97545A916F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; FA734613A284C21C1CAE8A93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_devices.cpp"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA9EB34524507C99A8E1C5A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; FAD7FB53E0C69BF3CBDA507A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; FAE35C089A5CE8275D9A348E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; }; FB171AC63682377ADBD4DFAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "win_utf8_io.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h"; sourceTree = "SOURCE_ROOT"; }; FB565EABA6355CFB94D9E2D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; FB678E72A050B9C8405A49D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FC0C2F25DE3E8A38D3EDCA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; FC2AC5AB9DA0202896FFC1A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; FC849CBFC2B5E9D584151565 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; FCC8E19B4E8537120C6F3B2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1130,20 +1217,24 @@ FCE2AB34D1C54832F4AC47C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; FCE4EC729B0D9F1E38B94F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; FD346DC35FA3268FF7304168 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + FD59A62CA004E0F308897119 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; FD796A075B8DA4EAB5C3D4B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; FDB06E14CF1FCB034663395B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../../../modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; FDCB3E4E7614A659785FE0CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; FDD9E523BA9313C8F0234145 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; + FE7BD7141A2DB21FA7B57E36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; FE967F394CAA522759ABA2AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; FEA03311B1C8F40C86887D26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; FEB48C07204CFD8949E8B669 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; FECDEC0CF69A38A446783AA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/endswap.h"; sourceTree = "SOURCE_ROOT"; }; + FEF64E9C7BC62BDC186C828C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; FF459A86F895958A65E5CA34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; FF5A926355A65BE4932368F6 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "LittleFoot Language README.txt"; path = "../../../../../modules/juce_blocks_basics/littlefoot/LittleFoot Language README.txt"; sourceTree = "SOURCE_ROOT"; }; FF624BF63C3BBD494478D2A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; FFA048FF349F1B798B6471FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdhuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h"; sourceTree = "SOURCE_ROOT"; }; + FFE3C362ED4F23A1377A5668 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; AA00B6CDF58EE5901BBEF67C = {isa = PBXGroup; children = ( - 3A534A7474110674C69C1FC9, + C4BD68C22BCD71B945684B0A, 38BEC0B6AFAFA022B355CC1B, 49F51637C89080A76F65E9F7, ); name = Source; sourceTree = ""; }; 9886851267A0D1BF2E10BA86 = {isa = PBXGroup; children = ( @@ -1467,6 +1558,111 @@ 7A1CBB013812C5077EF88455, 5C8D3EA6AD2DD7A4223CB76C, 7A1CBB013812C5077EF88455, ); name = "juce_audio_formats"; sourceTree = ""; }; + 56F778EEE37603DEABB89B4B = {isa = PBXGroup; children = ( + 8147D84AA5D7264D3B58F05C, + 99BCF4DE0EA33AE37F49020F, + BB4984282EBBC6E9F9C8FEF5, + 3CEC86343BDD4389D5A7DD10, ); name = format; sourceTree = ""; }; + E378D4DF6F0EE16852533275 = {isa = PBXGroup; children = ( + C2987136B8BDA24AA81ACB39, + F9755D24CFC3C8346861921E, + 2D0CF751B6458AA4118FA80D, + 6488257C2DDEC54495FB5B09, + 7375A19B214DBBC50A7BF8E0, + A697C5219F0A9F4CF6DCCBEF, + D6C6483E911F495C31BBB9F3, + 3577E13160F200904CD249F6, + 007103A1EA6F6DD30ABF9D4C, + AB3F888E0C4539F51C1EAF1B, + 7719697A2AAB8CF71EAD1283, + 2A48387726C402539AA7E04E, + 993A3BEE971C778CF8155E3A, + D520D4D905FC322079B794C6, ); name = "format_types"; sourceTree = ""; }; + 6694EB584DE6455DEF011D38 = {isa = PBXGroup; children = ( + ABCCD7D0910C95224D48B832, + 1623CBF04E3D67539B70610D, + B25712FEFEE9BFBA9B12C261, + BE575C0C6A626A61827729F6, + 3B27D41422A586E48DDFF7BF, + 10C3385241F325F0213F9F55, + 66C352909564E0006CCE4973, + 8D5B87979E2CA0D65A0513C4, + E0F3F39E80E633965C4ED3B6, + E7998A010E1004F59BC23385, + A5FB8CEF68BED90C34C95456, + B0DFC6378444A0A7FCCB195A, + 3F295D1367247F2D85A1C172, + DBC611580D5DE40216213D46, ); name = processors; sourceTree = ""; }; + 34682C5CBB2B57416A02B407 = {isa = PBXGroup; children = ( + A31EB6C6B0C9920AC9C695EC, + B5B8E749E67CC79C247A876E, + ED03974F9538EE7B3A1DCD81, + 6B9078F12282899131454A86, + 7E9C283336BCEB055825D495, + E038ED5E03CC02795BEBC91D, ); name = scanning; sourceTree = ""; }; + 2FC973C45952E30BA01B8D07 = {isa = PBXGroup; children = ( + 1D86B7A676AB774FE7BAFE2A, + DE9BD5C857DAB14FE50955CF, + 9BAEFCE7EF6E6DF5B741D93A, + 8DDDA6F7FACC77A15D569931, + DBE28D801A842A896DB70516, + BDD35C78D78BC07BB7E42C9C, + FC0C2F25DE3E8A38D3EDCA16, + A37E3B659E77CF966DDCE80C, ); name = utilities; sourceTree = ""; }; + F85AB86FEF99E7285BB1F102 = {isa = PBXGroup; children = ( + 56F778EEE37603DEABB89B4B, + E378D4DF6F0EE16852533275, + 6694EB584DE6455DEF011D38, + 34682C5CBB2B57416A02B407, + 2FC973C45952E30BA01B8D07, + FA9EB34524507C99A8E1C5A9, + DE620A8EB3A0C0089A08FBBA, + A65FE46744D96E66B719C85C, + DE620A8EB3A0C0089A08FBBA, ); name = "juce_audio_processors"; sourceTree = ""; }; + 60674B33757161EB0CF640C7 = {isa = PBXGroup; children = ( + 3E000A18C8EF629F102EE7E1, + 30D2D5A363AB7A6754D5AA19, + E5A9E24AF7A52B817DC5BA45, ); name = "audio_cd"; sourceTree = ""; }; + 98EFEA843911571C36FFA086 = {isa = PBXGroup; children = ( + 0DD776B8FC26133978E29E1D, + 298CC9E8C54D19B7742025F0, + 102A6E0A33E64D932229A131, + 441A6FB9478D1EE3A9E584EC, + EBE0DCE4673FCE299E0ACB6E, + ACDE162988D6C7E849B7DEBF, + 448B6E970DA168958D1AECAA, + 93BA21E4F030A9B5E0F9E2C2, + 778C16B40D2D8B9D57CEDDB1, + FEF64E9C7BC62BDC186C828C, + B166162E4DAF54904C3D74CF, + C80D9CA4AEF9534B290A031A, + 6A61666BB94BA3EF3BA5D3B4, + CFA350CFCFB84C1F13101D50, ); name = gui; sourceTree = ""; }; + 427301A4052E8E812A8E1B3B = {isa = PBXGroup; children = ( + 2F5570B2C6B5D3EE68860431, + F3F0988C86C064B2F0C4823D, + C308EE421ECFBBACD7A75CDB, + BA13C891528DB15821D243F7, + 754F4939BE1D485DCA282976, + 3E1C8E82ED645A4722601B8F, + FFE3C362ED4F23A1377A5668, + E13D107B6E10E6A507D5FD1C, + D81387E53F99829772233515, + 1446C82D08483F1ED8E7E377, ); name = native; sourceTree = ""; }; + 5E326F050F877FD746CC5D97 = {isa = PBXGroup; children = ( + 14942080E74577CCBBCA1199, + 029FBEC54DD4C8A657EF3BD1, + CB3827FF9CF3E1FEDE6544FC, + 534F94CFAF4EA8FD945111E5, ); name = players; sourceTree = ""; }; + 5F50743BF25EA650063BDE9F = {isa = PBXGroup; children = ( + 60674B33757161EB0CF640C7, + 98EFEA843911571C36FFA086, + 427301A4052E8E812A8E1B3B, + 5E326F050F877FD746CC5D97, + FD59A62CA004E0F308897119, + 16AE065E8018313BDF2DDA6A, + FE7BD7141A2DB21FA7B57E36, + 16AE065E8018313BDF2DDA6A, ); name = "juce_audio_utils"; sourceTree = ""; }; E7EAF8D1A991C98EA8528707 = {isa = PBXGroup; children = ( 519AD5862822EDEBAC0B90BC, 8CA9A46A8EEB6EAFF14F01CF, @@ -1520,6 +1716,7 @@ 4D99FF33B0B3A9DCB92F5398, D9CF06E1D818462B23A2985D, AE8A2F2B590228AA79922EFC, + 30DF327E6C9B3A8F16A96385, 30A6525A80C10CAB453C8649, 0715D437CBE3222794DDA264, 4090EEAB1ADDDE82E77B5DA3, @@ -1634,7 +1831,9 @@ 7AD76C1D103EB21BED1F37B5, DD2A9FD91FDD559EA8CBD65E, DA96E7939F94646A306F2CA5, - 3146322BAEB67344B4969CE5, ); name = network; sourceTree = ""; }; + 3146322BAEB67344B4969CE5, + 0B0185EBD24E4B48AD01D22B, + 0F2A7783A8F66902008EC156, ); name = network; sourceTree = ""; }; 389E649B225AF3FB56651E27 = {isa = PBXGroup; children = ( 71AD6F9EE810D5E64501A9EE, EF7A763B6ECD5D6D5C352EEE, @@ -2442,6 +2641,8 @@ 665E1B7D0F3287E61328962A, 9AC105FA2D78A2FF360E72CF, 3A7E92469DD583BC27D6A0C3, + F85AB86FEF99E7285BB1F102, + 5F50743BF25EA650063BDE9F, 6703540BB2129E337C6A36A2, 502E1E6A813AB55B9E50E94B, C26A50FC2442172A34F9428E, @@ -2455,6 +2656,8 @@ DA8A4007E66A5DAF6714958C, 95CF46398870352FCFC6060A, 6897FB6E71DC9317E49C7878, + 5E407472A12335C0FB5D1731, + 65CE7B4496F15E1572D77172, F6846615852B68E9AC653C15, 1ACBA85AD353C8C85A01F6A4, 78246E70C7F9C5C5FE05D6D3, @@ -2472,6 +2675,7 @@ 5BFC1DE795FB9081364BFC41, 2534868A44A9EAA66A584C16, 11AEC78B996D849B2EA9C96F, + C34F16925E640C3542B78B92, E427494183B988C7A7BD1017, A2D1D8C580DFDB5C8E011C80, 4D4A93B14DDB028B9592C841, @@ -2581,11 +2785,12 @@ B64F4B6419098A6C579D0EDB = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 2A5E87443C41335CD944ACB8, ); runOnlyForDeploymentPostprocessing = 0; }; 6F1EAB6EC19EDAB88EF14DE0 = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D354A0AD7CBDBDD1D8132ECC, F1C1D8F4BDE85067F5E61D08, 24C420997F20D0A7722D42F4, 049EFBDC407E74FEFD6B5BC4, 14F7090DA7E5514C84EDEAEC, + 8219D6828DCCAEDF01F5337C, + 36767EDDC8BFC684119EDFE8, 6A180703D5E1FF08436F86BD, 778865742AAC536B855F7811, 3605BE75533AB0654207D383, @@ -2599,6 +2804,7 @@ BBE14F0993C20E2D963EB167, 2A39C67F26307A5C8875160A, 23D2896D495239FEA26A3255, + EC92D4CA1DAD1B1AB983F355, EE68388C08422C998F9418CC, E759B32B9B193C5530B5728D, 6CC5F22634ACED43D520FDF1, diff --git a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/AppConfig.h b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/AppConfig.h index b7aa780415..bcaff4d3ce 100644 --- a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/AppConfig.h +++ b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/AppConfig.h @@ -17,22 +17,24 @@ //============================================================================== // [BEGIN_USER_CODE_SECTION] -// (You can add your own code in this section, and the Projucer will not overwrite it) +#define DUMP_TOPOLOGY 1 // [END_USER_CODE_SECTION] //============================================================================== -#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_blocks_basics 1 -#define JUCE_MODULE_AVAILABLE_juce_core 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_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_blocks_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_core 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 //============================================================================== #ifndef JUCE_STANDALONE_APPLICATION @@ -99,6 +101,32 @@ //#define JUCE_USE_WINDOWS_MEDIA_FORMAT #endif +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + //#define JUCE_PLUGINHOST_VST +#endif + +#ifndef JUCE_PLUGINHOST_VST3 + //#define JUCE_PLUGINHOST_VST3 +#endif + +#ifndef JUCE_PLUGINHOST_AU + //#define JUCE_PLUGINHOST_AU +#endif + +//============================================================================== +// juce_audio_utils flags: + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER +#endif + //============================================================================== // juce_core flags: diff --git a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/JuceHeader.h b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/JuceHeader.h index 45445e1eb5..c6b3b5fe7d 100644 --- a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/JuceHeader.h +++ b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/JuceHeader.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_processors.cpp b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_processors.cpp new file mode 100644 index 0000000000..bfe172edd0 --- /dev/null +++ b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_processors.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_processors.mm b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_processors.mm new file mode 100644 index 0000000000..b80ae9017f --- /dev/null +++ b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_processors.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_utils.cpp b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_utils.cpp new file mode 100644 index 0000000000..97bd2c568c --- /dev/null +++ b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_utils.mm b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_utils.mm new file mode 100644 index 0000000000..8eae7c6e2f --- /dev/null +++ b/examples/BLOCKS/BlocksDrawing/JuceLibraryCode/juce_audio_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksDrawing/Source/LightpadComponent.h b/examples/BLOCKS/BlocksDrawing/Source/LightpadComponent.h new file mode 100644 index 0000000000..dfce547230 --- /dev/null +++ b/examples/BLOCKS/BlocksDrawing/Source/LightpadComponent.h @@ -0,0 +1,137 @@ +#ifndef LIGHTPADCOMPONENT_H_INCLUDED +#define LIGHTPADCOMPONENT_H_INCLUDED + +//============================================================================== +/** + Represents a single LED on a Lightpad +*/ +struct LEDComponent : public Component +{ + LEDComponent() : ledColour (Colours::black) { setInterceptsMouseClicks (false, false); } + + void setColour (Colour newColour) + { + ledColour = newColour; + repaint(); + } + + void paint (Graphics& g) override + { + g.setColour (ledColour); + g.fillEllipse (getLocalBounds().toFloat()); + } + + Colour ledColour; +}; + +//============================================================================== +/** + A component that is used to represent a Lightpad on-screen +*/ +class LightpadComponent : public Component +{ +public: + LightpadComponent () + { + for (int x = 0; x < 15; ++x) + for (int y = 0; y < 15; ++y) + addAndMakeVisible (leds.add (new LEDComponent())); + } + + void paint (Graphics& g) override + { + auto r = getLocalBounds().toFloat(); + + // Clip the drawing area to only draw in the block area + { + Path clipArea; + clipArea.addRoundedRectangle (r, r.getWidth() / 20.0f); + + g.reduceClipRegion (clipArea); + } + + // Fill a black square for the Lightpad + g.fillAll (Colours::black); + } + + void resized() override + { + Rectangle r = getLocalBounds().reduced (10); + + int circleWidth = r.getWidth() / 15; + int circleHeight = r.getHeight() / 15; + + for (int x = 0; x < 15; ++x) + for (int y = 0; y < 15; ++y) + leds.getUnchecked ((x * 15) + y)->setBounds (r.getX() + (x * circleWidth), + r.getY() + (y * circleHeight), + circleWidth, circleHeight); + } + + void mouseDown (const MouseEvent& e) override + { + for (int x = 0; x < 15; ++x) + { + for (int y = 0; y < 15; ++y) + { + if (leds.getUnchecked ((x * 15) + y)->getBounds().contains (e.position.toInt())) + { + listeners.call (&Listener::ledClicked, x, y, e.pressure); + } + } + } + } + + void mouseDrag (const MouseEvent& e) override + { + for (int x = 0; x < 15; ++x) + { + for (int y = 0; y < 15; ++y) + { + if (leds.getUnchecked ((x * 15) + y)->getBounds().contains (e.position.toInt())) + { + const Time t = e.eventTime; + + if (lastLED == Point (x, y) && t.toMilliseconds() - lastMouseEventTime.toMilliseconds() < 50) + return; + + listeners.call (&Listener::ledClicked, x, y, e.pressure); + + lastLED = Point (x, y); + lastMouseEventTime = t; + } + } + } + } + + //============================================================================== + /** Sets the colour of one of the LEDComponents */ + void setLEDColour (int x, int y, Colour c) + { + jassert (isPositiveAndBelow (x, 15) && isPositiveAndBelow (y, 15)); + + leds.getUnchecked ((x * 15) + y)->setColour (c); + } + + //============================================================================== + struct Listener + { + virtual ~Listener() {} + + /** Called when an LEDComponent has been clicked */ + virtual void ledClicked (int x, int y, float z) = 0; + }; + + void addListener (Listener* l) { listeners.add (l); } + void removeListener (Listener* l) { listeners.remove (l); } + +private: + OwnedArray leds; + ListenerList listeners; + + Time lastMouseEventTime; + Point lastLED; +}; + + +#endif // LIGHTPADCOMPONENT_H_INCLUDED diff --git a/examples/BLOCKS/BlocksDrawing/Source/Main.cpp b/examples/BLOCKS/BlocksDrawing/Source/Main.cpp index 15c495ad47..f2444eee78 100644 --- a/examples/BLOCKS/BlocksDrawing/Source/Main.cpp +++ b/examples/BLOCKS/BlocksDrawing/Source/Main.cpp @@ -1,13 +1,3 @@ -/* - ============================================================================== - - This file was auto-generated! - - It contains the basic startup code for a Juce application. - - ============================================================================== -*/ - #include "../JuceLibraryCode/JuceHeader.h" #include "MainComponent.h" @@ -40,6 +30,10 @@ public: centreWithSize (getWidth(), getHeight()); setResizable (true, true); setVisible (true); + + #if JUCE_IOS + setFullScreen (true); + #endif } void closeButtonPressed() override diff --git a/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h b/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h index 06df6e317d..ae6c0dcb63 100644 --- a/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h +++ b/examples/BLOCKS/BlocksDrawing/Source/MainComponent.h @@ -1,9 +1,10 @@ - #ifndef MAINCOMPONENT_H_INCLUDED #define MAINCOMPONENT_H_INCLUDED #include "../JuceLibraryCode/JuceHeader.h" +#include "LightpadComponent.h" +//============================================================================== /** A struct that handles the setup and layout of the DrumPadGridProgram */ @@ -32,7 +33,7 @@ struct ColourGrid DrumPadGridProgram::GridFill fill; Colour colourToUse = colourArray.getUnchecked (counter); - fill.colour = colourToUse.withBrightness (colourToUse == currentColour ? 1.0 : 0.1); + fill.colour = colourToUse.withBrightness (colourToUse == currentColour ? 1.0f : 0.1f); if (colourToUse == Colours::black) fill.fillType = DrumPadGridProgram::GridFill::FillType::hollow; @@ -70,54 +71,139 @@ struct ColourGrid //============================================================================== int numColumns, numRows; - float width, height; Array gridFillArray; - Array colourArray = { Colours::white, Colours::red, Colours::green, Colours::blue, Colours::hotpink, - Colours::orange, Colours::magenta, Colours::cyan, Colours::black }; + + Array colourArray = { Colours::white, Colours::red, Colours::green, + Colours::blue, Colours::hotpink, Colours::orange, + Colours::magenta, Colours::cyan, Colours::black }; + Colour currentColour = Colours::hotpink; //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ColourGrid) }; +//============================================================================== /** The main component */ class MainComponent : public Component, - public TopologySource::Listener, - private TouchSurface::Listener, - private ControlButton::Listener, - private Timer + public TopologySource::Listener, + private TouchSurface::Listener, + private ControlButton::Listener, + private LightpadComponent::Listener, + private Button::Listener, + private Slider::Listener, + private Timer { public: - MainComponent() : layout (3, 3) + MainComponent() { - setSize (600, 400); - activeLeds.clear(); // Register MainContentComponent as a listener to the PhysicalTopologySource object topologySource.addListener (this); + + infoLabel.setText ("Connect a Lightpad Block to draw.", dontSendNotification); + infoLabel.setJustificationType (Justification::centred); + addAndMakeVisible (infoLabel); + + addAndMakeVisible (lightpadComponent); + lightpadComponent.setVisible (false); + lightpadComponent.addListener (this); + + clearButton.setButtonText ("Clear"); + clearButton.addListener (this); + clearButton.setAlwaysOnTop (true); + addAndMakeVisible (clearButton); + + brightnessSlider.setRange (0.0, 1.0); + brightnessSlider.setValue (1.0); + brightnessSlider.setAlwaysOnTop (true); + brightnessSlider.setTextBoxStyle (Slider::TextEntryBoxPosition::NoTextBox, false, 0, 0); + brightnessSlider.addListener (this); + addAndMakeVisible (brightnessSlider); + + brightnessLED.setAlwaysOnTop (true); + brightnessLED.setColour (layout.currentColour.withBrightness (static_cast (brightnessSlider.getValue()))); + addAndMakeVisible (brightnessLED); + + #if JUCE_IOS + connectButton.setButtonText ("Connect"); + connectButton.addListener (this); + connectButton.setAlwaysOnTop (true); + addAndMakeVisible (connectButton); + #endif + + setSize (600, 600); } ~MainComponent() { if (activeBlock != nullptr) detachActiveBlock(); + + lightpadComponent.removeListener (this); } void paint (Graphics& g) override { g.fillAll (Colours::lightgrey); - g.drawText ("Connect a Lightpad Block to draw.", getLocalBounds(), Justification::centred, false); } - void resized() override {} + void resized() override + { + infoLabel.centreWithSize (getWidth(), 100); + + Rectangle bounds = getLocalBounds().reduced (20); + + // top buttons + Rectangle topButtonArea = bounds.removeFromTop (getHeight() / 20); + + topButtonArea.removeFromLeft (20); + clearButton.setBounds (topButtonArea.removeFromLeft (80)); + + #if JUCE_IOS + topButtonArea.removeFromRight (20); + connectButton.setBounds (topButtonArea.removeFromRight (80)); + #endif + + bounds.removeFromTop (20); + + // brightness controls + Rectangle brightnessControlBounds; + + Desktop::DisplayOrientation orientation = Desktop::getInstance().getCurrentOrientation(); + + if (orientation == Desktop::DisplayOrientation::upright || orientation == Desktop::DisplayOrientation::upsideDown) + { + brightnessControlBounds = bounds.removeFromBottom (getHeight() / 10); + + brightnessSlider.setSliderStyle (Slider::SliderStyle::LinearHorizontal); + brightnessLED.setBounds (brightnessControlBounds.removeFromLeft (getHeight() / 10)); + brightnessSlider.setBounds (brightnessControlBounds); + } + else + { + brightnessControlBounds = bounds.removeFromRight (getWidth() / 10); + + brightnessSlider.setSliderStyle (Slider::SliderStyle::LinearVertical); + brightnessLED.setBounds (brightnessControlBounds.removeFromTop (getWidth() / 10)); + brightnessSlider.setBounds (brightnessControlBounds); + } + + // lightpad component + int sideLength = jmin (bounds.getWidth() - 40, bounds.getHeight() - 40); + lightpadComponent.centreWithSize (sideLength, sideLength); + } /** Overridden from TopologySource::Listener. Called when the topology changes */ void topologyChanged() override { + lightpadComponent.setVisible (false); + infoLabel.setVisible (true); + // Reset the activeBlock object if (activeBlock != nullptr) detachActiveBlock(); @@ -145,12 +231,16 @@ public: if (auto grid = activeBlock->getLEDGrid()) { // Work out scale factors to translate X and Y touches to LED indexes - scaleX = (float) (grid->getNumColumns() - 1) / activeBlock->getWidth(); - scaleY = (float) (grid->getNumRows() - 1) / activeBlock->getHeight(); + scaleX = (float) (grid->getNumColumns()) / activeBlock->getWidth(); + scaleY = (float) (grid->getNumRows()) / activeBlock->getHeight(); setLEDProgram (grid); } + // Make the on screen Lighpad component visible + lightpadComponent.setVisible (true); + infoLabel.setVisible (false); + break; } } @@ -167,16 +257,20 @@ private: if (currentMode == colourPalette) { if (layout.setActiveColourForTouch (xLed, yLed)) + { colourPaletteProgram->setGridFills (layout.numColumns, layout.numRows, layout.gridFillArray); + brightnessLED.setColour (layout.currentColour.withBrightness (layout.currentColour == Colours::black ? 0.0f + : static_cast (brightnessSlider.getValue()))); + } } else if (currentMode == canvas) { - drawLEDs ((uint32) xLed, (uint32) yLed, touch.z, layout.currentColour); + drawLED ((uint32) xLed, (uint32) yLed, touch.z, layout.currentColour); } } /** Overridden from ControlButton::Listener. Called when a button on the Lightpad is pressed */ - void buttonPressed (ControlButton&, Block::Timestamp) override {}; + void buttonPressed (ControlButton&, Block::Timestamp) override { } /** Overridden from ControlButton::Listener. Called when a button on the Lightpad is released */ void buttonReleased (ControlButton&, Block::Timestamp) override @@ -197,17 +291,33 @@ private: } } + void buttonClicked (Button* b) override + { + #if JUCE_IOS + if (b == &connectButton) + { + BluetoothMidiDevicePairingDialogue::open(); + return; + } + #else + ignoreUnused (b); + #endif + + clearLEDs(); + } + + void sliderValueChanged (Slider* s) override + { + if (s == &brightnessSlider) + brightnessLED.setColour (layout.currentColour.withBrightness (layout.currentColour == Colours::black ? 0.0f + : static_cast (brightnessSlider.getValue()))); + } + void timerCallback() override { if (doublePress) { - // Clear the LED grid - for (uint32 x = 0; x < 15; ++x) - for (uint32 y = 0; y < 15; ++ y) - canvasProgram->setLED (x, y, Colours::black); - - // Clear the ActiveLED array - activeLeds.clear(); + clearLEDs(); // Reset the doublePress flag doublePress = false; @@ -222,6 +332,12 @@ private: stopTimer(); } + void ledClicked (int x, int y, float z) override + { + drawLED ((uint32) x, (uint32) y, z == 0.0f ? static_cast (brightnessSlider.getValue()) + : z * static_cast (brightnessSlider.getValue()), layout.currentColour); + } + /** Removes TouchSurface and ControlButton listeners and sets activeBlock to nullptr */ void detachActiveBlock() { @@ -237,6 +353,9 @@ private: /** Sets the LEDGrid Program for the selected mode */ void setLEDProgram (LEDGrid* grid) { + canvasProgram = nullptr; + colourPaletteProgram = nullptr; + if (currentMode == canvas) { // Create a new BitmapLEDProgram for the LEDGrid @@ -257,30 +376,46 @@ private: grid->setProgram (colourPaletteProgram); // Setup the grid layout - colourPaletteProgram->setGridFills (layout.numColumns, layout.numRows, layout.gridFillArray); + colourPaletteProgram->setGridFills (layout.numColumns, + layout.numRows, + layout.gridFillArray); } } - /** Sets an LED on the Lightpad for a given touch co-ordinate and pressure */ - void drawLEDs (uint32 x0, uint32 y0, float z, Colour drawColour) + void clearLEDs() { - // Check if the activeLeds array already contains an ActiveLED object for this LED - int index = -1; - for (int i = 0; i < activeLeds.size(); ++i) + // Clear the LED grid + for (uint32 x = 0; x < 15; ++x) { - if (activeLeds.getReference(i).occupies (x0, y0)) + for (uint32 y = 0; y < 15; ++ y) { - index = i; - break; + if (canvasProgram != nullptr) + canvasProgram->setLED (x, y, Colours::black); + + lightpadComponent.setLEDColour (x, y, Colours::black); } } + // Clear the ActiveLED array + activeLeds.clear(); + } + + /** Sets an LED on the Lightpad for a given touch co-ordinate and pressure */ + void drawLED (uint32 x0, uint32 y0, float z, Colour drawColour) + { + // Check if the activeLeds array already contains an ActiveLED object for this LED + auto index = getLEDAt (x0, y0); + // If the colour is black then just set the LED to black and return if (drawColour == Colours::black) { - if (index != -1) + if (index >= 0) { - canvasProgram->setLED (x0, y0, Colours::black); + if (canvasProgram != nullptr) + canvasProgram->setLED (x0, y0, Colours::black); + + lightpadComponent.setLEDColour (x0, y0, Colours::black); + activeLeds.remove (index); } @@ -289,7 +424,7 @@ private: // If there is no ActiveLED obejct for this LED then create one, // add it to the array, set the LED on the Block and return - if (index == -1) + if (index < 0) { ActiveLED led; led.x = x0; @@ -298,7 +433,11 @@ private: led.brightness = z; activeLeds.add (led); - canvasProgram->setLED (led.x, led.y, led.colour.withBrightness (led.brightness)); + + if (canvasProgram != nullptr) + canvasProgram->setLED (led.x, led.y, led.colour.withBrightness (led.brightness)); + + lightpadComponent.setLEDColour (led.x, led.y, led.colour.withBrightness (led.brightness)); return; } @@ -315,7 +454,11 @@ private: // Set the LED on the Block and change the ActiveLED object in the activeLeds array - canvasProgram->setLED (currentLed.x, currentLed.y, currentLed.colour.withBrightness (currentLed.brightness)); + if (canvasProgram != nullptr) + canvasProgram->setLED (currentLed.x, currentLed.y, currentLed.colour.withBrightness (currentLed.brightness)); + + lightpadComponent.setLEDColour (currentLed.x, currentLed.y, currentLed.colour.withBrightness (currentLed.brightness)); + activeLeds.set (index, currentLed); } @@ -324,7 +467,10 @@ private: { // Iterate over the activeLeds array and set the LEDs on the Block for (auto led : activeLeds) + { canvasProgram->setLED (led.x, led.y, led.colour.withBrightness (led.brightness)); + lightpadComponent.setLEDColour (led.x, led.y, led.colour.withBrightness (led.brightness)); + } } /** @@ -333,25 +479,28 @@ private: */ struct ActiveLED { - uint32 x; - uint32 y; + uint32 x, y; Colour colour; float brightness; - /** Returns true if this LED occupies the given co-ordiantes */ + /** Returns true if this LED occupies the given co-ordinates */ bool occupies (uint32 xPos, uint32 yPos) const { - if (xPos == x && yPos == y) - return true; - - return false; + return xPos == x && yPos == y; } }; Array activeLeds; - /** - enum for the two modes - */ + int getLEDAt (uint32 x, uint32 y) const + { + for (int i = 0; i < activeLeds.size(); ++i) + if (activeLeds.getReference(i).occupies (x, y)) + return i; + + return -1; + } + + //============================================================================== enum DisplayMode { colourPalette = 0, @@ -360,10 +509,10 @@ private: DisplayMode currentMode = colourPalette; //============================================================================== - BitmapLEDProgram* canvasProgram; - DrumPadGridProgram* colourPaletteProgram; + BitmapLEDProgram* canvasProgram = nullptr; + DrumPadGridProgram* colourPaletteProgram = nullptr; - ColourGrid layout; + ColourGrid layout { 3, 3 }; PhysicalTopologySource topologySource; Block::Ptr activeBlock; @@ -372,6 +521,17 @@ private: bool doublePress = false; + //============================================================================== + Label infoLabel; + LightpadComponent lightpadComponent; + TextButton clearButton; + LEDComponent brightnessLED; + Slider brightnessSlider; + + #if JUCE_IOS + TextButton connectButton; + #endif + //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent) }; diff --git a/examples/BLOCKS/BlocksMonitor/BlocksMonitor.jucer b/examples/BLOCKS/BlocksMonitor/BlocksMonitor.jucer index f35bee8d24..abee6654d5 100644 --- a/examples/BLOCKS/BlocksMonitor/BlocksMonitor.jucer +++ b/examples/BLOCKS/BlocksMonitor/BlocksMonitor.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> @@ -29,8 +29,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -71,6 +96,8 @@ + + @@ -90,6 +117,8 @@ + + @@ -97,6 +126,8 @@ + + diff --git a/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile b/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile index bf8b4736d4..6f410a0f56 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile +++ b/examples/BLOCKS/BlocksMonitor/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := BlocksMonitor BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := BlocksMonitor BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -61,6 +68,8 @@ OBJECTS := \ $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o \ $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o \ $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o \ + $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o \ + $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o \ $(JUCE_OBJDIR)/juce_blocks_basics_d4b203f5.o \ $(JUCE_OBJDIR)/juce_core_75b14332.o \ $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o \ @@ -77,7 +86,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -85,7 +94,7 @@ check-pkg-config: clean: @echo Cleaning BlocksMonitor - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping BlocksMonitor @@ -94,61 +103,71 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp + -@mkdir -p $(JUCE_OBJDIR) + @echo "Compiling juce_audio_processors.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp + -@mkdir -p $(JUCE_OBJDIR) + @echo "Compiling juce_audio_utils.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_blocks_basics_d4b203f5.o: ../../JuceLibraryCode/juce_blocks_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_blocks_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/BlocksMonitor.xcodeproj/project.pbxproj b/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/BlocksMonitor.xcodeproj/project.pbxproj index ceeabfbe9f..49d7d820b3 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/BlocksMonitor.xcodeproj/project.pbxproj +++ b/examples/BLOCKS/BlocksMonitor/Builds/MacOSX/BlocksMonitor.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ F4FE7210ADC22CB4EE3B4E99 = {isa = PBXBuildFile; fileRef = B6BDA73EB716235B26A1A07D; }; 924BC7B8C552402D22C30959 = {isa = PBXBuildFile; fileRef = D4DA6EE18C4F580FC8A220B8; }; 1D0987A356ABA1C3B4A785BD = {isa = PBXBuildFile; fileRef = B5A57064DFB2BD47270A42E6; }; + B375DA5BCDF5F13BFA477EFE = {isa = PBXBuildFile; fileRef = 7DEF309FE42F78256B6FD34F; }; 78281823E26AAEC18651518D = {isa = PBXBuildFile; fileRef = 836168A271F7647CF27CEBC3; }; DEA8C47FDE11DD9F5C6BFB00 = {isa = PBXBuildFile; fileRef = 4566EC91B27507F913B9C78A; }; 3601C134F7B5A1AB67E814D7 = {isa = PBXBuildFile; fileRef = 6D2AA08C51674AC355C3C4B9; }; @@ -22,6 +23,8 @@ 1AED1945B3F869251C0AE961 = {isa = PBXBuildFile; fileRef = C0CE2DBD3E07E03623F29618; }; E17C689ADF6944C5DBFB87FC = {isa = PBXBuildFile; fileRef = 5D4BEFEC0E129949C58876DD; }; 09AD8FE14AB25476E5B895F0 = {isa = PBXBuildFile; fileRef = 1559C4DCC579423B1A05CF89; }; + 0D2A7C0067BE86F2CFDF180E = {isa = PBXBuildFile; fileRef = C8FBA54671860CB3636D7A76; }; + C3771B5653D9760164E40FBB = {isa = PBXBuildFile; fileRef = 460CE4619594A71E9BCE42A3; }; 8DCEF084990118E5E8781096 = {isa = PBXBuildFile; fileRef = 830F7516AA78496143854C16; }; 3A0447CE74DA2F6F547581E2 = {isa = PBXBuildFile; fileRef = 7BAF11556203D550CE5E1560; }; 7D8C07117F2E674F24031D72 = {isa = PBXBuildFile; fileRef = 9B6EFF388E31F7E480380796; }; @@ -80,6 +83,7 @@ 0A986A71F3920D38E7D88F58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; 0A9B3441E4C766603206171A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c"; sourceTree = "SOURCE_ROOT"; }; 0AA6BBC6867F7EEA5C10722A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 0B30452CA065C138233F99E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; 0B3FBA4C1CFF6D65E98AEFE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; 0BB1CC68B7BB505B480D6174 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; 0BB1F767785BA329DAE91DBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; @@ -87,8 +91,10 @@ 0C59026808740853C23AE185 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; 0CC5574662C83E89FB9A4F6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; 0D5C830BBE28DBA8795B10DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D6E37748850EAE66F9CA70B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; 0DA6CC35E4AFC202C7D5298F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; 0DA6F88B400D1BA27A9EF72B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DBCD27DE42DAF64EF974F1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; 0DE80059716B40D2D9BBEFC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; 0DEF8B7D54BF56ED8569D690 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0E18DB38D8B88859C5D16D11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; @@ -100,6 +106,7 @@ 0FBF55B74F1BFBAF8F670E2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h"; sourceTree = "SOURCE_ROOT"; }; 104CA8597373932F80F25354 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c"; sourceTree = "SOURCE_ROOT"; }; 104FFDFF6CC57A7630FB7EAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + 106C8F431770C832B77BFFD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; 1072ED1E4C961324C65D3305 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; 108582FEE483C0EAE1FF767D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; 10AAEECABC6BA65A3D2C4933 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; @@ -107,12 +114,14 @@ 11D3E71143E92D6D541C2E68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c"; sourceTree = "SOURCE_ROOT"; }; 122B74F324719CFD9425A135 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h"; sourceTree = "SOURCE_ROOT"; }; 12B073CF9C72D46B540CB899 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12DF2FA1DB7312F834B0721E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; 1311A028E6551920CCB23899 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 132DA30E80054A4CB1682F5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 134A859AAAD880C6CA78BA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; 135A4D01694084A7B641D217 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = "SOURCE_ROOT"; }; 137382482B888F9A1245CB52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; 13B537AE02190300E0DA5322 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../../../../modules/juce_core/zip/zlib/adler32.c"; sourceTree = "SOURCE_ROOT"; }; + 13C55E3F2AA2B95275CB050B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; 13ECF6CF71CA92E4E1F845C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; 13F0C5C5B5775E09051D19D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; 148AC48B82DFEC98FECBF5AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; @@ -123,13 +132,17 @@ 16118DB20238C2B904A3FDA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; 1655D2F156B917E893A29FEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; 1673C95BCCE19C8F4664703E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 16DD43E629D9E32F1FE86143 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; 16E132B11E1648815CEFF729 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + 170F6D425FF66C0388540225 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 1719057E5D9514D7DD88DEB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1737459117017D5BBEE069D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 1758DCBCE1766DA3968BEC1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_curl_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_curl_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; 177856ECCAE5F779DB31EBCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; 17B2AAE117564DA4933B70AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; 18319D005DF6998885AC677F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = "SOURCE_ROOT"; }; 184CE8BA435703F28975DC5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../../../modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; + 184F543273935A63366BCA51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 18828011791118DF6440C6A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; 1896F7A05A4372B4247C34A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; 190BFEB9E9811F1D73306F79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; @@ -146,6 +159,7 @@ 1B3FB995CF83C1B588F8F9BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; 1B6684D65B3AF31CAB4D7B8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c"; sourceTree = "SOURCE_ROOT"; }; 1BB1E8928FBEB3F72621F2F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; + 1BD83CC88D6EA454CE3CC746 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 1BE918CC1F7F26F93A4B8EC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; 1C024E345C38DCAB8D0BE6F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c"; sourceTree = "SOURCE_ROOT"; }; 1C14BD4230F9672D9AE44BFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -160,6 +174,7 @@ 1E5474F79E3971C77F173C21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; 1E614A63C2C2AA7B858DF4C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; }; 1E78B98A70BD5E14381302DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1EA1A059799CA880FA6E2ADB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; 1EAF33874D8D4F13676C412C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BitmapLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; 1ED66F4F7C1B6FA4369A8E95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = res0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c"; sourceTree = "SOURCE_ROOT"; }; 1F58F7262450884A7E6BEF4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; @@ -194,6 +209,8 @@ 23DAF49B90FB33BB97015CCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; 23E0BB729907E348A33E996F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Block.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.h"; sourceTree = "SOURCE_ROOT"; }; 23E572AAE21BB03B019F07EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; + 242A96C7860436DE347CD432 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 242F542B9738479E885167E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; 243F5C11D97748ED03B760C6 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = README.txt; path = "../../../../../modules/juce_blocks_basics/README.txt"; sourceTree = "SOURCE_ROOT"; }; 2440CDB6EEC69DDB25DABA04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; 2524470C265DC4C41D0F12FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c"; sourceTree = "SOURCE_ROOT"; }; @@ -204,6 +221,7 @@ 26083ECFA60A676C6365DA3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; 263C2C63172A2793CE67D3D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; 269A9F80899756D1F87AA82D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 26B9B07C8F5E7214A9D5EA8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; 26D37FF39DEC1AAD1AC03A53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; 26FC7D9E7E5BB2D4535FB0CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; 271866450733C15873B1E46D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c"; sourceTree = "SOURCE_ROOT"; }; @@ -213,6 +231,8 @@ 276FEE4DBCB6806D06E959BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; 27957B112247D501D6B6FB8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c"; sourceTree = "SOURCE_ROOT"; }; 2799B7075032596236A1A6C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 27DF9F9857FE41EC6A51B601 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; + 281F71278F1CE0C02ECB2EC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; 287298405BC363E9C2492200 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; 289FA55DC2B007BF300AA35E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; 28DC9D131B0DAEB78CEA016A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; @@ -223,17 +243,21 @@ 2973E5E96EE07B12B06E4901 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; 2A1D123CDD681C79A4830CD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexBox.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.h"; sourceTree = "SOURCE_ROOT"; }; 2A28AB08780C76D52CA8D732 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A8F3A1F1C343D6EB025FDD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; 2AAF0E53F74A1B4AD7B0684A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; 2AC4F829CD8C78F19827A695 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; 2ACDC9BC9FB57E955B8D2811 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; 2B64FDC069A6D6C03128F3C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; 2B6844B8253422926CF12456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 2B83CA343CAE71BE4F5A8F8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; 2BAB647B7DA103003A8A11AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; 2BC6A9CE84273433047F4C50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_linux.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_linux.h"; sourceTree = "SOURCE_ROOT"; }; + 2BF8C1C0452AA518578E2262 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; 2C126377CD039D5D20DF0090 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; 2C7B8BA92ACDE7200C096AD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; 2D0232CD6B55510B10D2D04D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Block.cpp"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.cpp"; sourceTree = "SOURCE_ROOT"; }; 2D2C6DAA3B50438E63266771 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + 2D40263014314146060C284D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; 2D583C31EE6E9A5D8ACD988F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; 2E3883BEB89636D207BB88B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; 2E667E8E327AB96B7E56BEE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; @@ -264,6 +288,7 @@ 3284EB2D81A682511A78D1AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; 332586DA099D853A0202054A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; 335219963DCBA3F85AC6C232 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 337DBCFC0A462376DAFA8C3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; 33FED0E86133FA3439FCA42B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; 340CD5C7C9744CCCBE3AC335 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; 340EA1B2263C37EC8A7B6014 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -271,11 +296,13 @@ 34A09EB72E861BC2E41CF66E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; 34A1D01D8C72A0B39C0CF6D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; 34A1DB27664840651D853100 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 34A745BB4A935998D25D1E86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; 34B3D0B92C86C84AB27BBE90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; 352E7E01ACE857617C20A3E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder_framing.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c"; sourceTree = "SOURCE_ROOT"; }; 35656731DCD6703896CEE2E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; 3568F7E50F7858A1B6279DDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c"; sourceTree = "SOURCE_ROOT"; }; 35A297789A17E01FBE82827F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TouchSurface.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_TouchSurface.h"; sourceTree = "SOURCE_ROOT"; }; + 3665F1F2237ABB55D7614221 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; 36AB1E409836F7CDCD24CE58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; 36CA5FBB8A3CE191E952D894 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; 36D79F468C67AF3D0B800E85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -283,6 +310,7 @@ 38034209A283D7F8D56B5E53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; 38448998E8030347F182B334 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; 3851E8BB5BD4F284C8489033 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 38791AEE23AA4968433982F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; 38A03045629DB69AE42D4206 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; 392CEE74B1D96166F05D02D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; 3986436BB1332AA00187E0BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -296,6 +324,7 @@ 3AB83A04D08F2F329AB81AE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; 3ABF91F41A610658F5B17523 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 3AE6DEF29143AA3E59CEB1DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 3B27E4A68284DA2C27655D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 3B2A1B51E2C33786098AAE49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; 3B4E0B86B77DC40F15FB3F94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c"; sourceTree = "SOURCE_ROOT"; }; 3B63BB4D108A10D0C5FECBEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -330,6 +359,7 @@ 4227DAE98212844575D0D944 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; 4231BEF0941784C4F2CDF362 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; 424E6E480FA0C70D02DF349A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisenc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c"; sourceTree = "SOURCE_ROOT"; }; + 425B547B9020991C73D4D65E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; 42D58F7C9468DB8F354B353F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; 4307B791E5DC631C9447D24C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; 434FD5F26F8F5052AA287287 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -345,6 +375,7 @@ 457AE3EFAEB98FE93CEB0ACF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 4581D33463D9A6F637E8CDD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; 45DD050BF036D8362025CC86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 460CE4619594A71E9BCE42A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; 46A6F1936584ED15D40366DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; 46AF0A703258AEE24688FE5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; 46EA57BC815C91944C720D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; @@ -364,8 +395,10 @@ 49D0C33F5968B4B16D73521F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 49E68BE55F02C76D1A39B8E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; 4A46906896AD28D34B0218F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; + 4A4FAB8C91193D662A4ACFEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; 4A65ADBD6816BF0C9FE56E0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; 4A78F089AF9BAFC1586AF196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A7C8B1D23E9B6B7CCC02741 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; 4A7D2BA623D3A1DE6B99DF1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../../../../modules/juce_core/zip/zlib/inffast.c"; sourceTree = "SOURCE_ROOT"; }; 4A7DB9A482CFE6B1FCCA6174 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; 4AC6C62FB545839E566D0FE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; @@ -373,11 +406,13 @@ 4BE7254995C059C494538C70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlockModels.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlockModels.h"; sourceTree = "SOURCE_ROOT"; }; 4C512E6E088C4B973E866756 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; 4C9BD4A188792CD1AA04D76E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CCFA4612BCBD5FCEB6E02E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 4D2D9C398522FA01A9FFFCBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; 4D4461D4DE302DC06DE22D68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; 4D69C440B571531C56B12E10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; 4D84F3F6235C49D0ABAF4885 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; 4DCF8D8075DD05492643A922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 4E55A9C84ABE776CCA556594 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; 4E8EA77D5F1F16096D60F3CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; 4E93F48CAB3C538054B0D9B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; 4EDEDEAB7029C5B5C2A63A15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c"; sourceTree = "SOURCE_ROOT"; }; @@ -388,6 +423,7 @@ 50FB808D07149E5872D146C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; 5122839D8D39723AA8BFBC70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; 515145EF420E45BB7E0402C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 516684CBCB8ACBA9E44E4BFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 518466F491B5DC8B80063C73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; 5236F7786FD9BFC43D9ABD94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTreeSynchroniser.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h"; sourceTree = "SOURCE_ROOT"; }; 5247BE9855469B053C368F24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -406,6 +442,7 @@ 54FF63024B2057CB82A3009C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; 55EFBD6183E831FBD8826325 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; 5634188A865D1AED86FC1030 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5660E3A821F2F566AAA0DCC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 5687068AA9A10610CCCAE92C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; 56A2B221F07582C3693CFABC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; 56E56C2AB629F7288EFFDF99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; @@ -431,14 +468,17 @@ 5C843AB1BC6467611517390A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; 5CD9180E4223F79C65313EF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; 5CF0F5458B69B697F084D1CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + 5D065FB649082368A82A4D7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; 5D456364DF7A1A1C1CBCA1F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../JuceLibraryCode/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; 5D4BEFEC0E129949C58876DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; 5D55891DEDD0EEFA6F294941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; 5D55C700506847B0C3E7992A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; 5E0AA1FA0367D0B8D32A5FDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; 5E11C3AEEEBFB5D3ACE79B2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; }; + 5E5B5455D01D68404DA760D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; 5ECB1585CB10B6336F35039E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; 5F2ABD15045B9C2D45BBB281 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5F849E06BD0AEC3F3CA3803E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; 5FB96EBC6B8E73E76F2C2D7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FDD76A98FDD6FAD2CB88606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_uncoupled.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h"; sourceTree = "SOURCE_ROOT"; }; 5FEDA06DD9D390733743ED0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -449,11 +489,14 @@ 604CC1744C3DFD07E43F6A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_android.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_android.h"; sourceTree = "SOURCE_ROOT"; }; 609A9DCD9B58779BFE402BBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 60D50FA5390DEADA129CBD25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 60DE112B177F465AF7ECD44C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; 60EEA5E3658D36513E1A25FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; 621C85154E8537D98DD550D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 6259E41DD05DF414BFAEFF1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; 62D3C5C70DDBEEE7E16DD1F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; 62D3CBF544E4AB48E11D77E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; + 63690D22628914EA9BE61A6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 639AEE67CBD131D3D160C094 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; 63A0B0B37AAB0387A610F6AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; 63B20B7D5AB4BA7C645F10AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; 63B8C5F0192F2C0767C38B59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; @@ -467,6 +510,7 @@ 650E5906E5CAAEABABFEEE1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; 656121CD59DA8E95455ABC28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; 65E03D29E9BA76F1CF344B75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6602C5EBB2ADC3158B37B907 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; 661EF1C85FF1D2B6070163EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = "SOURCE_ROOT"; }; 66AE29E32EB365E37B34FDD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 66AF1158C662CB915EE1F216 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; @@ -478,6 +522,7 @@ 67C85156717AC5DD60AD4279 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; 67EE78D1C669F6DDED31CB39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; 680095499A49102EF1B7F3C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6820E5E02FBE26EDA1E814E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; 684A7466DDEA4CA1F785AAAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; 687551D7CBDC73E3D249A30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; 6897A03FBCF6F3E3FE02DD69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; @@ -503,11 +548,13 @@ 6D105609475B730F812FE7BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; 6D2AA08C51674AC355C3C4B9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 6D665D953ABA975CDB21318F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; }; + 6D8CBDEA7BD024FC9E2875F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 6DE2EDC2238B94B55FA5167C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; 6E0317C6D582381E18F6FC28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 6E6A0A28D29F9CE5A97D9603 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; 6E77E7974D18C2A3889C94D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; 6EB3442488752F0077F61CFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c"; sourceTree = "SOURCE_ROOT"; }; + 6EBBA65276F7311BE0074812 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; 6F303FBDC38398256ADA7BA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; 6F4AE6971D02991BCC1B7F1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; 6F4E9231B5C05BC368C3450E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -520,6 +567,7 @@ 70A3109F4B0C80AA941F513C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; 70C687011AA5142190BB5634 = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; 70C841CF701E3FB91C81E547 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; + 70D730CB666E9D486B44A2AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; 70DB5546A7436EC8159F7825 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; 713A0BDC7ACC4F399C378A0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; 716E7225D1FAE92136DDE91A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -529,7 +577,9 @@ 72CC4E382F4DD97DE7D2265B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; 72D5B90B3F201DE61EFF5904 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; 72D97C35265816BF84B17A64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 72E0C00FE7CAB47242F2B815 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; 72F093BD43569F666B148B27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 72FEC6F5671BA939439E0CF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 731A4FE5C9250FE1D83D2008 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; 734EDE0CB353BEB637FB28DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = "../../../../../modules/juce_core/zip/zlib/crc32.c"; sourceTree = "SOURCE_ROOT"; }; 7352B3C338D6C18D80BA03B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h"; sourceTree = "SOURCE_ROOT"; }; @@ -537,11 +587,14 @@ 737EA145B8366E0A55A8D6A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; 73EF2B898A07179D14B9EE08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; 7433092862D26C58AF93AE62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + 7498ED1709143C20C79DB1E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + 74FB9B1CB018E5342E7AABFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; 752759743BA54E6A4E34EBC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 7533170247A4B5A10D70246B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 7597CCE58D1B95FB4342EA91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 759D310E427CAB584332F916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; 75AA9C6E3FC6AAE881B93CA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75D8AD14EB3D9985A3770C83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; 75F17FFBBC74680724103F2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; 76374244710CA4A53830D7E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h"; sourceTree = "SOURCE_ROOT"; }; 76597C68627FE0AF43DEC454 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -581,6 +634,7 @@ 7C955BABA03F3EF1E19E178E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; 7CA69469B3AFC9137FB98243 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; 7D272E58C41C4B21A689C487 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7DEF309FE42F78256B6FD34F = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; 7E4D2E09A56241058D485070 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 7E4D7F844737CE5D8C9BD1CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = "SOURCE_ROOT"; }; 7E5C701836EE0E311AE805B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -589,10 +643,12 @@ 7F5A0B43EA4CE0599C30637B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; 7F615DFC87CDB7F78660077C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = "SOURCE_ROOT"; }; 7F81AFE4D54AA74B17E81899 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 803335D3EDDD75FED2EA7864 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; 8033E71C6724106F16F7FC35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; 8056F5AAE245F445D1F5FA26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; 8079D10F25DE8A660DFD7F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 80A162921EA7B00DF95B9D1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + 80D2A754CA228BCA22EAFC8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; 80D52462F8B49C3D1FBB6349 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c"; sourceTree = "SOURCE_ROOT"; }; 80E4BC98EF30B463FCBF95C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; 810D7E7AC4E48A67AB84B75D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -608,6 +664,7 @@ 831C32DB068A571A3E99E55B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; 836168A271F7647CF27CEBC3 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; 83B3F4B22F3603CFF3199C33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = registry.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c"; sourceTree = "SOURCE_ROOT"; }; + 83BA095FCF4E84B0AB0CF903 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; 84568194A9D160AD5459F013 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; 847F33928C5A70863F673938 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; }; 84A04C8B8DE6E1C4FDC3F4A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -624,19 +681,25 @@ 8853EE56290506D1C5B1A324 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jutils.c"; sourceTree = "SOURCE_ROOT"; }; 88EE9BAF87CBE950013CD3AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 8941D9AFE6BE0F15F8391874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuleBasedTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 898A95E0423C95670F8E00D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A279F88C2047651F58628D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; 8A974C1E78DF69BEDF4760D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; 8A9F1BF21DEC92A64F468E9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 8ABBC420D650176FC816CA90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 8AF2D36988A56CB9C6068F5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; 8B1B3FA81F246E78CB5F2D99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; 8B4505D4C9EBC3014C27D6D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; }; 8C99020753B8736AEF7D04D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h"; sourceTree = "SOURCE_ROOT"; }; 8D5DB6220A070CA7C6EF649B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; 8D9598B7B36DB4A8DC7F257A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = "SOURCE_ROOT"; }; 8DAD27599B4D76AA741E2F94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h"; sourceTree = "SOURCE_ROOT"; }; + 8DD3CBC5EFBC79EE967D57B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; 8DE0F4ADDA1C7FD72763835F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; 8E25DB9F4F02D1EB553DD954 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; 8E607B1E70CF61A3B3F8B230 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; 8E841F589CA7AAD4294FD631 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c"; sourceTree = "SOURCE_ROOT"; }; 8EE36E6294B0521F7F8FA4AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F577D253454A9B7795B976D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 8F7A2483AB8A87ED367B8276 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; 90168C92385FFFE93633DD25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; 906854E5A523A5B01E5B5E63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c"; sourceTree = "SOURCE_ROOT"; }; @@ -729,6 +792,7 @@ A409C91727751590682E3237 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; A427924174225CB14EA8B615 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; A49C327EA3CD090C4768925D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4B659039C636AA90C05767F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; A4D2F92AAE55340EB431CF8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; A4D97A4003659632818C71FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c"; sourceTree = "SOURCE_ROOT"; }; A50045AA484A93660F5D0DEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -740,6 +804,7 @@ A6722561E959322FC2D3F8D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; A6C807BA364341686874B1BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_opengl.cpp"; path = "../../../../../modules/juce_opengl/juce_opengl.cpp"; sourceTree = "SOURCE_ROOT"; }; A6EA6620D7460A9405F56693 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A705E85372EBA8B0351E477E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; A79EA78DB02B7098DE470DC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; A7E2C39A7FF81AC0C2B0BB29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = "SOURCE_ROOT"; }; A7F8A897765E91543FF21D5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; @@ -756,6 +821,7 @@ AB86D69CE5472E765749D5E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; AB90BC12E5EAC2E1A7FDF691 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; ABA533A5D4493250568E3659 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ABD0576F2543A863F5DB40E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; AC8A8FB37E03EAD593C68BB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; ACB9D9A21F63B364C3E431DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; ACBA16D63E4470083B7CE29D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; @@ -794,14 +860,18 @@ B3A97D5DC77DB3FD2FC5FCEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; B3C5E4089AD8803D08F9067E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; B3CD18208A4368D7AE29D706 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BitmapLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3E818A7CFAFA880F238BCC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; B41BF21771B358856B2C44C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = "SOURCE_ROOT"; }; B435295F7A3969E6EBD4E9B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B4679BF8D1848CC2C7698764 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; B46FA7622255695A963FCEA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + B4B445D0B8FF9D563C2F7F46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; B4E737B45F3090ECA81D34CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; B50D99789F7F83360780022E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; B58ED38442F322226E81E930 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; B5A57064DFB2BD47270A42E6 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; B5FE94B9AE535C0F0FA1D88B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + B60BDAD15C5339F96D367450 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; B62F00B50AC42FC2DC1ADEEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; B6345846B766F695A8CAD09E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; B67DEB7456F7A7FE9E99F5AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; @@ -810,12 +880,14 @@ B6F1AD93847540736A7C3B96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; B70BB65A467220F7972C4FB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; B7EDEB203D0BB0EAE5EE555B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + B83449AB719AFDE057B9245B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; B86B55CF411F403FBE6EDD8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; B92C211B36B75E20B97D094E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; B945AE13CE5FA99C9B48D98B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; B979BF385FBD2717200311E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; B9C32654F4F4FBDD5B8D8371 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; B9C392935DD8F5D8D0ABCF2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h"; sourceTree = "SOURCE_ROOT"; }; + BA06C53C74A8510DD172D631 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; BA32D082BA0C0C95BDB6DFF2 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; BA5EBAC0C16D620D37B80143 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; BAE124F36EE934FEC863965A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; @@ -832,6 +904,7 @@ BD290FDCC12F4ADF00DAD43B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; BD2ACF51D2EDBB8D946C168B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = "../../../../../modules/juce_core/zip/zlib/inftrees.h"; sourceTree = "SOURCE_ROOT"; }; BD7737BC6B7B6EE4AE3DD687 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + BDC3A2443CA7C4A197AA7FD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; BE0489F4AA110E7A4BE6880E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; BE1493D37BFED1206A196B23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; BE27A021A21278415868C466 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; @@ -858,22 +931,28 @@ C29107288DAD3ABB3719015D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; C29CB9EBB689083DD7D99F54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; C2B755C206D3AE7B0B4463ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2C938AA02C97A425ECF7926 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2F642C860D5E78D3E750E90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; C3104BD68827E3B23FE7BF51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; C315E5EE86688FF6DEA57CE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FFT.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.cpp"; sourceTree = "SOURCE_ROOT"; }; C33F5E40671D8969529DC1F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c"; sourceTree = "SOURCE_ROOT"; }; + C35A0F1C5323F130D4A1108F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; C37E5834DB1CC5410BF93D8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; }; C3891745EE7DBD352727B9B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; C3CD93C748F880042436180B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; C3E4493CE69B1B931CB96EA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HostPacketDecoder.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h"; sourceTree = "SOURCE_ROOT"; }; + C3E64B47D41D5364FA0CFDC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; C42467520EB918DFA024D0AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; C438A00F7FAE0D151BC99D0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; C468BC4730E745AD31CA903D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = png.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/png.c"; sourceTree = "SOURCE_ROOT"; }; + C498F38B2EE41174DCA27032 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; C49F54FB785A0B5D4D41B6BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; C4DDAA034449093B3E5A60ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; C4E4C2AD07EA064EB32326F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HostPacketBuilder.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h"; sourceTree = "SOURCE_ROOT"; }; C4F45122F361CE23DDB32596 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; C50386097FEBEBECC9E84866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; C52BA5CFAC5D4DE4CEF2A51D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + C596B16782A9C4D0C6EB0BCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; C5AC27F3564EF36AAFFAD703 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; C5EDD0AB18A362054E8FE283 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; C6144891191A6E1C95E21A25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConnectedChildProcess.h"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; @@ -886,6 +965,7 @@ C79F1FCCE8950900DAE6BB50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; C7EE187163451061AE2A3153 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; C8F3A77AFEF173C097EB08CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + C8FBA54671860CB3636D7A76 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; C917343C99E5B7DD04F04FE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; C91C155CE2FBFB917E03E114 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c"; sourceTree = "SOURCE_ROOT"; }; C91DD17FBE7A7541E7787987 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; @@ -904,6 +984,7 @@ CC7A625D7B7F517BC85C5578 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_blocks_basics.cpp"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; CCA01BB46B276DA072718679 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; CCE2ADA7EF8B417B5D5EC92C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + CD4633C9F9DA366C76E4B92A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; CD768752C091A375ADC708A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; CD875963C6F9C05BA11A4AC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; CD9017D48D6C56C7D57426E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -921,6 +1002,7 @@ CF632EB4950A71EC56190E3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; CF6716C0AD7BC8E630CEA8DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; CFA6A67D8C7733249ED7FBC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h"; sourceTree = "SOURCE_ROOT"; }; + CFC449D448A0844857CA526D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; D02263425E49C20B4A8CD405 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; D051EB3531C22746F7AF08E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = "../../../../../modules/juce_core/zip/zlib/crc32.h"; sourceTree = "SOURCE_ROOT"; }; D07C119AB16FE4E41B441B71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; @@ -961,7 +1043,9 @@ D7C00C099F40E38AD415AD56 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c"; sourceTree = "SOURCE_ROOT"; }; D81B4D2BFB753FFD2D6F3AF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; D81D661338436E213B25F8BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + D848C25C312A0D62457C3730 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; D87D6545B471F09EF677902C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + D886F31628398C6418B6FBF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; D8A1D9C7F7B42C75598A385F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; D8A792DD4E2CD58BDAC9BBFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; D8D329C0D501906C8E581010 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; @@ -982,9 +1066,11 @@ DDA658B496D43C8BD1DF3410 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; DDB3B7DDB5B4F5D87CBA6C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44p51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h"; sourceTree = "SOURCE_ROOT"; }; DDE841F2D06B35620C95F7BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; + DDF5573CB40B2B3D2F1DB780 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; DE1AA6017CEF48540B7D5521 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; DE2F36F94C5AF00C806A885D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; DE56F99143A2BEF2EC4E15A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + DE703F44A06F45D75C122234 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; DE9704A65773501DE347230E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; }; DEB1AA246A3B2804C43992C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; DEBEFE952C92EE38B62CCBA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c"; sourceTree = "SOURCE_ROOT"; }; @@ -998,6 +1084,7 @@ E08C436C85606AA1432C5C24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; E0A6645BF35A873306104E19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; E0CD810D85D163FCA2E05D6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + E1604416242DA5613762B851 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; E1C8BA4CF79BCC3B0E758A9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; E20191F0BE305DA483AE955F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; E222435250E8A57C88E441F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1014,6 +1101,7 @@ E3455619FB6BC525C9407A6D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRemoteHeap.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h"; sourceTree = "SOURCE_ROOT"; }; E39BFCA09C446A2AD541D66C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; E40C81964A35DCBA5C07A708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; + E4223D79CA646F0E046E43B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; E48849E0B20A2D2B2391BD36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; E4A7590FF79E8EAE3286C76F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; E4E4B644F52739096EC9ED59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -1056,6 +1144,7 @@ EBF51AE520FC44EE056995D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDGrid.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDGrid.h"; sourceTree = "SOURCE_ROOT"; }; EC7D9B630F5FB46258974133 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; EC98B82ADF1187D4060FC49F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + EC9D1EEB0DCF8551C0E70916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; ECB315B1E096D167076B058A = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Flac Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt"; sourceTree = "SOURCE_ROOT"; }; ED351CFC37C81F20B6D6B01E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; EE0075DEF550FBC64F7D8B9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1096,6 +1185,7 @@ F72B09FDE33658D77B49C7A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; F75524422C20C513FC73502B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; F75CCB348B732B0AFEE4B4FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + F77E277347DD30D380C5A3C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; F78A0ACB1EADC8578B82664C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; F7E2CB260B70E401BF91E236 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRunner.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h"; sourceTree = "SOURCE_ROOT"; }; F80A4EA6BE0D985876B9D4F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1110,6 +1200,7 @@ F9D767E4012A0A1ADD83A533 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c"; sourceTree = "SOURCE_ROOT"; }; FA06D31009B123A360853CCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; FA1ADE34C41760B0FBCCDE64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA489194866ACCE37578D4E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; FA66CC9414AAEA72869BE969 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; FA67F7DC71898AC7AD4F0284 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; FAB83E6CF91D59901CD87D9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1139,6 +1230,7 @@ FF748D1941B41C1794A241EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; FFB390B0993D0BDD8DD46932 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "os_types.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h"; sourceTree = "SOURCE_ROOT"; }; FFC7EE5AC5B2F327351AE86C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; + FFE735418137221B6EABF1A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; 545FE4C9D51A36132F172336 = {isa = PBXGroup; children = ( DE1AA6017CEF48540B7D5521, 222A183111DEA8A63599510A, @@ -1464,6 +1556,111 @@ F2CFFDE197B95A56FD3D2794, 41B259559A84E4D37B411E9E, F2CFFDE197B95A56FD3D2794, ); name = "juce_audio_formats"; sourceTree = ""; }; + 78E92DC518143D98EB5F9ADA = {isa = PBXGroup; children = ( + 3B27E4A68284DA2C27655D59, + 8ABBC420D650176FC816CA90, + D886F31628398C6418B6FBF1, + B4B445D0B8FF9D563C2F7F46, ); name = format; sourceTree = ""; }; + 9EA2AF2B5A0CE721D5150106 = {isa = PBXGroup; children = ( + C2F642C860D5E78D3E750E90, + C498F38B2EE41174DCA27032, + BDC3A2443CA7C4A197AA7FD8, + 898A95E0423C95670F8E00D9, + E1604416242DA5613762B851, + 281F71278F1CE0C02ECB2EC4, + FA489194866ACCE37578D4E8, + 8F577D253454A9B7795B976D, + 242A96C7860436DE347CD432, + 2D40263014314146060C284D, + DDF5573CB40B2B3D2F1DB780, + 38791AEE23AA4968433982F6, + 516684CBCB8ACBA9E44E4BFD, + A705E85372EBA8B0351E477E, ); name = "format_types"; sourceTree = ""; }; + E63B8ABCE65C4254D9987CD9 = {isa = PBXGroup; children = ( + 2BF8C1C0452AA518578E2262, + 8AF2D36988A56CB9C6068F5B, + 4A7C8B1D23E9B6B7CCC02741, + CFC449D448A0844857CA526D, + 74FB9B1CB018E5342E7AABFA, + 5E5B5455D01D68404DA760D3, + 242F542B9738479E885167E6, + 72E0C00FE7CAB47242F2B815, + 13C55E3F2AA2B95275CB050B, + 6602C5EBB2ADC3158B37B907, + 6820E5E02FBE26EDA1E814E6, + FFE735418137221B6EABF1A0, + 60DE112B177F465AF7ECD44C, + 83BA095FCF4E84B0AB0CF903, ); name = processors; sourceTree = ""; }; + 7B92471FB5C0051679A2E95C = {isa = PBXGroup; children = ( + 63690D22628914EA9BE61A6B, + BA06C53C74A8510DD172D631, + 70D730CB666E9D486B44A2AF, + C596B16782A9C4D0C6EB0BCA, + 4CCFA4612BCBD5FCEB6E02E0, + B3E818A7CFAFA880F238BCC8, ); name = scanning; sourceTree = ""; }; + 4C967811E674D62EEA59D7E0 = {isa = PBXGroup; children = ( + 337DBCFC0A462376DAFA8C3F, + 1EA1A059799CA880FA6E2ADB, + 2B83CA343CAE71BE4F5A8F8E, + 0B30452CA065C138233F99E7, + 12DF2FA1DB7312F834B0721E, + C35A0F1C5323F130D4A1108F, + 803335D3EDDD75FED2EA7864, + 27DF9F9857FE41EC6A51B601, ); name = utilities; sourceTree = ""; }; + 15645B0CE83271714833C3A1 = {isa = PBXGroup; children = ( + 78E92DC518143D98EB5F9ADA, + 9EA2AF2B5A0CE721D5150106, + E63B8ABCE65C4254D9987CD9, + 7B92471FB5C0051679A2E95C, + 4C967811E674D62EEA59D7E0, + 16DD43E629D9E32F1FE86143, + 0DBCD27DE42DAF64EF974F1D, + 6EBBA65276F7311BE0074812, + 0DBCD27DE42DAF64EF974F1D, ); name = "juce_audio_processors"; sourceTree = ""; }; + F747D2293FF285B72185547E = {isa = PBXGroup; children = ( + F77E277347DD30D380C5A3C8, + ABD0576F2543A863F5DB40E7, + 34A745BB4A935998D25D1E86, ); name = "audio_cd"; sourceTree = ""; }; + 54CDB1F233E80FD4B106D216 = {isa = PBXGroup; children = ( + 1737459117017D5BBEE069D2, + 0D6E37748850EAE66F9CA70B, + 184F543273935A63366BCA51, + 2A8F3A1F1C343D6EB025FDD1, + EC9D1EEB0DCF8551C0E70916, + 8DD3CBC5EFBC79EE967D57B6, + 80D2A754CA228BCA22EAFC8E, + 106C8F431770C832B77BFFD9, + E4223D79CA646F0E046E43B1, + 72FEC6F5671BA939439E0CF0, + B4679BF8D1848CC2C7698764, + 26B9B07C8F5E7214A9D5EA8B, + C2C938AA02C97A425ECF7926, + 4E55A9C84ABE776CCA556594, ); name = gui; sourceTree = ""; }; + 8BA02E9DB3A1D973203FAE5A = {isa = PBXGroup; children = ( + A4B659039C636AA90C05767F, + 7498ED1709143C20C79DB1E2, + 8A279F88C2047651F58628D1, + 1BD83CC88D6EA454CE3CC746, + 639AEE67CBD131D3D160C094, + 5D065FB649082368A82A4D7E, + CD4633C9F9DA366C76E4B92A, + 6D8CBDEA7BD024FC9E2875F3, + 75D8AD14EB3D9985A3770C83, + D848C25C312A0D62457C3730, ); name = native; sourceTree = ""; }; + B52FBC4342C378AD64834F80 = {isa = PBXGroup; children = ( + B60BDAD15C5339F96D367450, + 4A4FAB8C91193D662A4ACFEF, + DE703F44A06F45D75C122234, + 425B547B9020991C73D4D65E, ); name = players; sourceTree = ""; }; + 1D9FE5BF60A6EF6602D24565 = {isa = PBXGroup; children = ( + F747D2293FF285B72185547E, + 54CDB1F233E80FD4B106D216, + 8BA02E9DB3A1D973203FAE5A, + B52FBC4342C378AD64834F80, + 3665F1F2237ABB55D7614221, + 5F849E06BD0AEC3F3CA3803E, + C3E64B47D41D5364FA0CFDC3, + 5F849E06BD0AEC3F3CA3803E, ); name = "juce_audio_utils"; sourceTree = ""; }; 0ECB8B30B286A7116B5A863A = {isa = PBXGroup; children = ( 2D0232CD6B55510B10D2D04D, 23E0BB729907E348A33E996F, @@ -1517,6 +1714,7 @@ F3E5F7DB01292CFF33EE3971, E799718167E8643572309303, F6F326524DED75455C217520, + 5660E3A821F2F566AAA0DCC3, EE0075DEF550FBC64F7D8B9E, FBB15A363BAC741113987D32, 1655D2F156B917E893A29FEA, @@ -1631,7 +1829,9 @@ 9EC497EFAB1C323884D011FA, E2778AA90308DEB0DDB6C0DB, 36D79F468C67AF3D0B800E85, - EFD32E4A4A81815891CF54FC, ); name = network; sourceTree = ""; }; + EFD32E4A4A81815891CF54FC, + B83449AB719AFDE057B9245B, + 170F6D425FF66C0388540225, ); name = network; sourceTree = ""; }; A465EBBDDD9E1BC6010869AD = {isa = PBXGroup; children = ( 601F5CB6345EC149C773CAEA, E9AB8309552BD30792B23FCC, @@ -2439,6 +2639,8 @@ D50B2337B08D012224137BB2, 6D10CDFC1618B6213AFBE599, 2789350038E8D9166DFD8868, + 15645B0CE83271714833C3A1, + 1D9FE5BF60A6EF6602D24565, 48B6293FB2A5EC097988691B, 5CC42EF0177D6F44F26F0570, EE7F58530DF1E8A70FBA260B, @@ -2452,6 +2654,8 @@ C0CE2DBD3E07E03623F29618, 5D4BEFEC0E129949C58876DD, 1559C4DCC579423B1A05CF89, + C8FBA54671860CB3636D7A76, + 460CE4619594A71E9BCE42A3, 830F7516AA78496143854C16, 7BAF11556203D550CE5E1560, 9B6EFF388E31F7E480380796, @@ -2471,6 +2675,7 @@ B6BDA73EB716235B26A1A07D, D4DA6EE18C4F580FC8A220B8, B5A57064DFB2BD47270A42E6, + 7DEF309FE42F78256B6FD34F, 836168A271F7647CF27CEBC3, 4566EC91B27507F913B9C78A, 6D2AA08C51674AC355C3C4B9, @@ -2575,6 +2780,8 @@ 1AED1945B3F869251C0AE961, E17C689ADF6944C5DBFB87FC, 09AD8FE14AB25476E5B895F0, + 0D2A7C0067BE86F2CFDF180E, + C3771B5653D9760164E40FBB, 8DCEF084990118E5E8781096, 3A0447CE74DA2F6F547581E2, 7D8C07117F2E674F24031D72, @@ -2590,6 +2797,7 @@ F4FE7210ADC22CB4EE3B4E99, 924BC7B8C552402D22C30959, 1D0987A356ABA1C3B4A785BD, + B375DA5BCDF5F13BFA477EFE, 78281823E26AAEC18651518D, DEA8C47FDE11DD9F5C6BFB00, 3601C134F7B5A1AB67E814D7, diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj index c62f6b75f9..cd2a2d5fe9 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 BlocksMonitor + .exe true BlocksMonitor + .exe true v120 @@ -457,6 +459,102 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -481,6 +579,9 @@ true + + true + true @@ -616,6 +717,9 @@ true + + true + true @@ -1576,6 +1680,8 @@ + + @@ -1738,6 +1844,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1825,6 +1977,7 @@ + diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj.filters b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj.filters index a73bf04d72..80ab44da8e 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj.filters +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2013/BlocksMonitor.vcxproj.filters @@ -98,6 +98,39 @@ {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} @@ -670,6 +703,123 @@ Juce Modules\juce_audio_formats + + 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\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\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -694,6 +844,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -844,6 +997,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1876,6 +2032,12 @@ Juce Library Code + + Juce Library Code + + + Juce Library Code + Juce Library Code @@ -2358,6 +2520,144 @@ Juce Modules\juce_audio_formats + + 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\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\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\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\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\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -2619,6 +2919,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj index d61cdee11e..12a5a281d1 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 BlocksMonitor + .exe true BlocksMonitor + .exe true v140 @@ -457,6 +459,102 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -481,6 +579,9 @@ true + + true + true @@ -616,6 +717,9 @@ true + + true + true @@ -1576,6 +1680,8 @@ + + @@ -1738,6 +1844,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1825,6 +1977,7 @@ + diff --git a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj.filters b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj.filters index 823161aa36..5f62422c30 100644 --- a/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj.filters +++ b/examples/BLOCKS/BlocksMonitor/Builds/VisualStudio2015/BlocksMonitor.vcxproj.filters @@ -98,6 +98,39 @@ {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} @@ -670,6 +703,123 @@ Juce Modules\juce_audio_formats + + 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\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\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -694,6 +844,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -844,6 +997,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1876,6 +2032,12 @@ Juce Library Code + + Juce Library Code + + + Juce Library Code + Juce Library Code @@ -2358,6 +2520,144 @@ Juce Modules\juce_audio_formats + + 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\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\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\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\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\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -2619,6 +2919,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor.xcodeproj/project.pbxproj b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..77aeb63140 --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor.xcodeproj/project.pbxproj @@ -0,0 +1,2822 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + EDB2A950FFE8C3AE8932A5BC = {isa = PBXBuildFile; fileRef = 00558AF4AA37DD00B15B21A8; }; + 732F2CFE7C7968D6638BC5D1 = {isa = PBXBuildFile; fileRef = 3ABF91F41A610658F5B17523; }; + 76FF951CD8921AFDC24648FB = {isa = PBXBuildFile; fileRef = 230ECC5997D02F79080DD55D; }; + F88FFF629E47F8CB257B7157 = {isa = PBXBuildFile; fileRef = 0726638325182847094ED297; }; + 924BC7B8C552402D22C30959 = {isa = PBXBuildFile; fileRef = D4DA6EE18C4F580FC8A220B8; }; + B92223437105FB45C1973FF5 = {isa = PBXBuildFile; fileRef = 88A4EE2311F2D063677B1822; }; + A458DA809D44DCCB921620D2 = {isa = PBXBuildFile; fileRef = 8F72A06310DEB2A6E6A0DA18; }; + 1D0987A356ABA1C3B4A785BD = {isa = PBXBuildFile; fileRef = B5A57064DFB2BD47270A42E6; }; + B4F2D8F80F24A3A8B90D2519 = {isa = PBXBuildFile; fileRef = C48524BD8330E2A4710D99FF; }; + 918E1AB94993954386975092 = {isa = PBXBuildFile; fileRef = 71386FCE19C79DC74F1623FF; }; + F0C1938D68C0994E2338379C = {isa = PBXBuildFile; fileRef = BF4AF0A830706A80B2D1ADC5; }; + 3601C134F7B5A1AB67E814D7 = {isa = PBXBuildFile; fileRef = 6D2AA08C51674AC355C3C4B9; }; + FBF94D0D4A73E69D79614536 = {isa = PBXBuildFile; fileRef = 849DD96FF7656F52F1972F38; }; + 8865BAB56BA7C344961B8C78 = {isa = PBXBuildFile; fileRef = 850772CD6A8E69EACB89CB02; }; + D2EAAF12976946EE8C45FB0B = {isa = PBXBuildFile; fileRef = DE1AA6017CEF48540B7D5521; }; + 1AED1945B3F869251C0AE961 = {isa = PBXBuildFile; fileRef = C0CE2DBD3E07E03623F29618; }; + E17C689ADF6944C5DBFB87FC = {isa = PBXBuildFile; fileRef = 5D4BEFEC0E129949C58876DD; }; + 09AD8FE14AB25476E5B895F0 = {isa = PBXBuildFile; fileRef = 1559C4DCC579423B1A05CF89; }; + 0D2A7C0067BE86F2CFDF180E = {isa = PBXBuildFile; fileRef = C8FBA54671860CB3636D7A76; }; + C3771B5653D9760164E40FBB = {isa = PBXBuildFile; fileRef = 460CE4619594A71E9BCE42A3; }; + 8DCEF084990118E5E8781096 = {isa = PBXBuildFile; fileRef = 830F7516AA78496143854C16; }; + 3A0447CE74DA2F6F547581E2 = {isa = PBXBuildFile; fileRef = 7BAF11556203D550CE5E1560; }; + 7D8C07117F2E674F24031D72 = {isa = PBXBuildFile; fileRef = 9B6EFF388E31F7E480380796; }; + C8DA641BA677BA04FD298869 = {isa = PBXBuildFile; fileRef = 993004BB53091A0FBEB0E418; }; + D650FA605147B0260A8A94C7 = {isa = PBXBuildFile; fileRef = 787FCE42F8EFF4F62B69363D; }; + C38A78F09BFE9B4378FF23C0 = {isa = PBXBuildFile; fileRef = E6D09BB9A4D7592AA53FA63C; }; + 86C00C6333D9F12FED7C221A = {isa = PBXBuildFile; fileRef = EF02685FDE72675F4B750650; }; + 3FB72C8D23D5F6CB77C88C63 = {isa = PBXBuildFile; fileRef = 5D456364DF7A1A1C1CBCA1F0; }; + 00558AF4AA37DD00B15B21A8 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BlocksMonitor.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 0063493D90122A5E9F9000A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; + 007566E450CC50CB63D1C11C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_win32.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_win32.h"; sourceTree = "SOURCE_ROOT"; }; + 00D6F7A03576F399711D5ABC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 012B74A5BAF1F975F4A0C648 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDRow.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDRow.h"; sourceTree = "SOURCE_ROOT"; }; + 012EF1197FF04E76BD620071 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + 0138E84BEADF91E11BF423E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 01B2BABD6C54666254257CF9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 01F94B27ADD4198E3CC15C0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + 02148EBC074DA2992CC96E88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02633833709D15831BB6A4B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02B1467586FBA8F5C471CDCE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02CE3CA00AB6A0E0C6EA7C45 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + 031D1BC4C76359BA17663E17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 034E4F3996519B2624117798 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PhysicalTopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h"; sourceTree = "SOURCE_ROOT"; }; + 036AB53DA1FCBDB74F591CC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + 0377FDB5BDD3EC08C3F83FBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 03AF279CB4C8AA1B917C9E6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 04185482CCC0316BF46B2DC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "window_flac.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/window_flac.c"; sourceTree = "SOURCE_ROOT"; }; + 044402CF33BF673FD4FE541E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0460787CA1702E4A267536CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + 04874C168F8DB8B3661AE099 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_all.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h"; sourceTree = "SOURCE_ROOT"; }; + 0496A10293C6532DB2889643 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h"; sourceTree = "SOURCE_ROOT"; }; + 04B6090AAC1B334B1F121BE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04C07E0DE8225D8E6F791D96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04D3FE9C1AC2AB770BFFE0EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 04E0627AC999CE642D9009F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0589A9A25D0130ABC2840F23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 05F4C8ED36A49DC106309AB3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h"; sourceTree = "SOURCE_ROOT"; }; + 060D039A8903F16757040051 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 06497F2BEB751B1840F27F62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_graphics.cpp"; path = "../../../../../modules/juce_graphics/juce_graphics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0697A131C2572A76CBC3A2D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06B84EC6276C82A50AA87A78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 06BB9F1EBA1172275FE5413D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 06EC101285EA08EEDDB65F87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_TopologySource.h"; sourceTree = "SOURCE_ROOT"; }; + 0717F6008681C056FF92AE41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + 0721D51684D1E4BEAF849793 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c"; sourceTree = "SOURCE_ROOT"; }; + 0726638325182847094ED297 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 078D0122C02815C45F14E220 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 0798ABC473768B7DA59020BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 07E12DE4ACDC0607DB48477A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatisticsAccumulator.h"; path = "../../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h"; sourceTree = "SOURCE_ROOT"; }; + 084F07B2269A72130EDC450D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = misc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h"; sourceTree = "SOURCE_ROOT"; }; + 08C26B85297999984DECB587 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 093309B3FE42407C9C80EB2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 096474E2642303EBBE13AD4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = block.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/block.c"; sourceTree = "SOURCE_ROOT"; }; + 09BB66CFEE9A832CFCF2CCD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 0A268ACBB1D36A862A755465 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 0A7A9EA59E25C13CB9C14A7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_CommonFile.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_CommonFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0A986A71F3920D38E7D88F58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0A9B3441E4C766603206171A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c"; sourceTree = "SOURCE_ROOT"; }; + 0AA6BBC6867F7EEA5C10722A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 0B30452CA065C138233F99E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; + 0B3FBA4C1CFF6D65E98AEFE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0BB1CC68B7BB505B480D6174 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 0BB1F767785BA329DAE91DBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + 0C338FC94EF538E20E3BD3CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 0C59026808740853C23AE185 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + 0CC5574662C83E89FB9A4F6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; + 0D5C830BBE28DBA8795B10DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D6E37748850EAE66F9CA70B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0DA6CC35E4AFC202C7D5298F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DA6F88B400D1BA27A9EF72B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DBCD27DE42DAF64EF974F1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + 0DE80059716B40D2D9BBEFC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DEF8B7D54BF56ED8569D690 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E18DB38D8B88859C5D16D11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 0E204D9C847CEC5AE4391ED5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + 0E4C2A01524E87834E2FB4B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 0EC222E14CC7DADB74BE6E80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0EE7D572D91B088532018993 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0F40FDDE37B6B63FEA333F05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + 0FBF55B74F1BFBAF8F670E2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h"; sourceTree = "SOURCE_ROOT"; }; + 104CA8597373932F80F25354 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c"; sourceTree = "SOURCE_ROOT"; }; + 104FFDFF6CC57A7630FB7EAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + 106C8F431770C832B77BFFD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1072ED1E4C961324C65D3305 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 108582FEE483C0EAE1FF767D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 10AAEECABC6BA65A3D2C4933 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 11A1987734275CA22120DD49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + 11D3E71143E92D6D541C2E68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c"; sourceTree = "SOURCE_ROOT"; }; + 122B74F324719CFD9425A135 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h"; sourceTree = "SOURCE_ROOT"; }; + 12B073CF9C72D46B540CB899 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12DF2FA1DB7312F834B0721E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1311A028E6551920CCB23899 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 132DA30E80054A4CB1682F5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 134A859AAAD880C6CA78BA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 135A4D01694084A7B641D217 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = "SOURCE_ROOT"; }; + 137382482B888F9A1245CB52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 13B537AE02190300E0DA5322 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../../../../modules/juce_core/zip/zlib/adler32.c"; sourceTree = "SOURCE_ROOT"; }; + 13C55E3F2AA2B95275CB050B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + 13ECF6CF71CA92E4E1F845C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 13F0C5C5B5775E09051D19D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 148AC48B82DFEC98FECBF5AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 1520C6D07978AEAC58F684F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "lpc_flac.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c"; sourceTree = "SOURCE_ROOT"; }; + 15494D9F18EC8265BBB4BA44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1559C4DCC579423B1A05CF89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../JuceLibraryCode/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + 15BEE6B9299B0E97F16C07D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 16118DB20238C2B904A3FDA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 1655D2F156B917E893A29FEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + 1673C95BCCE19C8F4664703E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 16DD43E629D9E32F1FE86143 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; + 16E132B11E1648815CEFF729 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + 170F6D425FF66C0388540225 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 1719057E5D9514D7DD88DEB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1737459117017D5BBEE069D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1758DCBCE1766DA3968BEC1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_curl_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_curl_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 177856ECCAE5F779DB31EBCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + 17B2AAE117564DA4933B70AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + 18319D005DF6998885AC677F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = "SOURCE_ROOT"; }; + 184CE8BA435703F28975DC5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../../../modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; + 184F543273935A63366BCA51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18828011791118DF6440C6A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; + 1896F7A05A4372B4247C34A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + 190BFEB9E9811F1D73306F79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + 193954F9CF9005014377F9FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_events.cpp"; path = "../../../../../modules/juce_events/juce_events.cpp"; sourceTree = "SOURCE_ROOT"; }; + 193EE3A9C056FB7BFD83667C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_blocks_basics.h"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 19482F63E164192F9C0CC655 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + 197D3D704A44AA39F3F92F1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 199FB84B17D7610C48A08C12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 19BF72ABEB3B9D8D776744EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; + 19CDD6C2AE371BE31174D5F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A54156E7F0715AA90652992 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + 1A58C7E03F2C3D22E356E817 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A9FEB70EB440AE3B3BE52D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = registry.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h"; sourceTree = "SOURCE_ROOT"; }; + 1B3FB995CF83C1B588F8F9BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 1B6684D65B3AF31CAB4D7B8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c"; sourceTree = "SOURCE_ROOT"; }; + 1BB1E8928FBEB3F72621F2F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; + 1BD83CC88D6EA454CE3CC746 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BE918CC1F7F26F93A4B8EC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + 1C024E345C38DCAB8D0BE6F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c"; sourceTree = "SOURCE_ROOT"; }; + 1C14BD4230F9672D9AE44BFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1CC0B58D7AEA47DADB041C96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CachedValue.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_CachedValue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1CDA4FD4B1B51222AEE6DCA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + 1CF24016C5884A75DE865988 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + 1D0E04EA23573F4C5199DFF3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + 1D9A7BEB060662FBA38DF385 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1DC75AA5AD6118F35371BDB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1DCD9527835FD4771E959818 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 1DFD35C6D473DCAEE12C18DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1E5474F79E3971C77F173C21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + 1E614A63C2C2AA7B858DF4C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1E78B98A70BD5E14381302DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1EA1A059799CA880FA6E2ADB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; + 1EAF33874D8D4F13676C412C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BitmapLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 1ED66F4F7C1B6FA4369A8E95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = res0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c"; sourceTree = "SOURCE_ROOT"; }; + 1F58F7262450884A7E6BEF4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + 1FEB7C2AD69F03FD21C04CD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 1FF09BE12A8EE7359DEB6A11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + 200E7992C80ECC1AE74C9468 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 20352597FF0FD0A4B487CCFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 20AFC08D3825F8F1EA4C4352 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngget.c"; sourceTree = "SOURCE_ROOT"; }; + 20E50B7CC91B87CFA1CC8C17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = alloc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/alloc.h"; sourceTree = "SOURCE_ROOT"; }; + 2116BBCD560828B835577E82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h"; sourceTree = "SOURCE_ROOT"; }; + 21479ABF74938D58A8859E57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + 215273F35854D93D4684F590 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 215A5B82922A9A95F68FE7BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + 21E9D0E35F84BCF5897B262C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 222A183111DEA8A63599510A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BlockComponents.h; path = ../../Source/BlockComponents.h; sourceTree = "SOURCE_ROOT"; }; + 226BD1CCCAD60DBD0167568E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2282324E575678E8837470EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c"; sourceTree = "SOURCE_ROOT"; }; + 22866A3227D44A6B5CF577F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c"; sourceTree = "SOURCE_ROOT"; }; + 228C128F3835E988917C908E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + 228CF6C968876BDA6ABC9242 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; }; + 22A1487B587036337AC48F11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + 22A423BB04E0A3F1C2C3CA63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngread.c"; sourceTree = "SOURCE_ROOT"; }; + 22B33EA86FAB7366A914C948 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = "SOURCE_ROOT"; }; + 22B991F37C9D185AD22048F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + 22ED7F3091B15731766D82C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; }; + 23063052109C21CA6277AA4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_books.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h"; sourceTree = "SOURCE_ROOT"; }; + 230ECC5997D02F79080DD55D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 2317A757B8847CE1AE30010F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23543D16B95632B1C14B943E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; }; + 23C4B5A7859ACA959F99FDE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 23C9352D9EEFA048506947EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23DAF49B90FB33BB97015CCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23E0BB729907E348A33E996F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Block.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.h"; sourceTree = "SOURCE_ROOT"; }; + 23E572AAE21BB03B019F07EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; + 242A96C7860436DE347CD432 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 242F542B9738479E885167E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + 243F5C11D97748ED03B760C6 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = README.txt; path = "../../../../../modules/juce_blocks_basics/README.txt"; sourceTree = "SOURCE_ROOT"; }; + 2440CDB6EEC69DDB25DABA04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2524470C265DC4C41D0F12FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c"; sourceTree = "SOURCE_ROOT"; }; + 255D982E8E88EC37AF5D58CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + 25616CCE492D37070C5FCBFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 259877493D9B71079446749E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 259D44F4C84C586F476BBA0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + 26083ECFA60A676C6365DA3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 263C2C63172A2793CE67D3D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 269A9F80899756D1F87AA82D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 26B9B07C8F5E7214A9D5EA8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; + 26D37FF39DEC1AAD1AC03A53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + 26FC7D9E7E5BB2D4535FB0CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; + 271866450733C15873B1E46D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c"; sourceTree = "SOURCE_ROOT"; }; + 272EA32D51A8C8AD73A45D9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + 2736B4003A6B1E2AFB5B0F60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27609A10FE09083D4C31AC75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 276FEE4DBCB6806D06E959BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27957B112247D501D6B6FB8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c"; sourceTree = "SOURCE_ROOT"; }; + 2799B7075032596236A1A6C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 27DF9F9857FE41EC6A51B601 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; + 281F71278F1CE0C02ECB2EC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; + 287298405BC363E9C2492200 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; + 289FA55DC2B007BF300AA35E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + 28DC9D131B0DAEB78CEA016A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 28EA90843E65FB432CDF2329 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_32.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = "SOURCE_ROOT"; }; + 2926E85AC4A3BDBC357DADA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 296E767F3EC21EEDF71AACD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 2972426DAB18DB5F584BC1E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2973E5E96EE07B12B06E4901 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + 2A1D123CDD681C79A4830CD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexBox.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.h"; sourceTree = "SOURCE_ROOT"; }; + 2A28AB08780C76D52CA8D732 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A8F3A1F1C343D6EB025FDD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2AAF0E53F74A1B4AD7B0684A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2AC4F829CD8C78F19827A695 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + 2ACDC9BC9FB57E955B8D2811 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 2B64FDC069A6D6C03128F3C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 2B6844B8253422926CF12456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 2B83CA343CAE71BE4F5A8F8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; + 2BAB647B7DA103003A8A11AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + 2BC6A9CE84273433047F4C50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_linux.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_linux.h"; sourceTree = "SOURCE_ROOT"; }; + 2BF8C1C0452AA518578E2262 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; + 2C126377CD039D5D20DF0090 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C7B8BA92ACDE7200C096AD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D0232CD6B55510B10D2D04D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Block.cpp"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D2C6DAA3B50438E63266771 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + 2D40263014314146060C284D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; + 2D583C31EE6E9A5D8ACD988F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; + 2E3883BEB89636D207BB88B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 2E667E8E327AB96B7E56BEE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; + 2E735512175F5ADD2853D83D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E7B68565DA034DDCF34573C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EA0BA49F0FEBB8B4BBEE3E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EA29D7871008E52A033BE16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "config_types.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/config_types.h"; sourceTree = "SOURCE_ROOT"; }; + 2ED4E37632885A949CCB9BE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2F03461E6CBD4354FE073460 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2F407D57D8476238C54F8112 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + 2F6F34739BCD0348BAC4D5BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 2F7EBCA1222D6D2E4B89FC2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2F85284E588516584213B5F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c"; sourceTree = "SOURCE_ROOT"; }; + 2FAF11C9F6C314A36C879445 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2FB1B8992C3497C5EFE0EB53 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + 2FB361FFB25BD8EFB6160374 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 303AA74F7D9B6F2E8804A2C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../../../../modules/juce_core/zip/zlib/infback.c"; sourceTree = "SOURCE_ROOT"; }; + 3067E2B75D1E66CAC8DD65C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c"; sourceTree = "SOURCE_ROOT"; }; + 30845B589D24B592C853C93E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 30B2BDB16DA4D564F64D5CC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 30E6F8EE669C2F151A9F2956 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 31531D45E19AEC8E3EC90C90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 31AA33CB3A5577B36EE0017D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 31F899D8732CEAF956AA7A72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 321F587832C3C6C024BDD0E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = trees.h; path = "../../../../../modules/juce_core/zip/zlib/trees.h"; sourceTree = "SOURCE_ROOT"; }; + 3228E413B22DEEBDBA7ABF83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 322BA1353F7CA1DDDE9CAA4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = envelope.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.c"; sourceTree = "SOURCE_ROOT"; }; + 3284EB2D81A682511A78D1AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 332586DA099D853A0202054A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 335219963DCBA3F85AC6C232 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 337DBCFC0A462376DAFA8C3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; + 33FED0E86133FA3439FCA42B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 340CD5C7C9744CCCBE3AC335 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; + 340EA1B2263C37EC8A7B6014 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 346470CBB2B9F42E9CB6E7C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = "SOURCE_ROOT"; }; + 34A09EB72E861BC2E41CF66E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 34A1D01D8C72A0B39C0CF6D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 34A1DB27664840651D853100 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 34A745BB4A935998D25D1E86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 34B3D0B92C86C84AB27BBE90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + 352E7E01ACE857617C20A3E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder_framing.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c"; sourceTree = "SOURCE_ROOT"; }; + 35656731DCD6703896CEE2E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3568F7E50F7858A1B6279DDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c"; sourceTree = "SOURCE_ROOT"; }; + 35A297789A17E01FBE82827F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TouchSurface.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_TouchSurface.h"; sourceTree = "SOURCE_ROOT"; }; + 3665F1F2237ABB55D7614221 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36AB1E409836F7CDCD24CE58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36CA5FBB8A3CE191E952D894 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36D79F468C67AF3D0B800E85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 378D773196595D931B25B784 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h"; sourceTree = "SOURCE_ROOT"; }; + 38034209A283D7F8D56B5E53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38448998E8030347F182B334 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3851E8BB5BD4F284C8489033 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 38791AEE23AA4968433982F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + 38A03045629DB69AE42D4206 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; + 392CEE74B1D96166F05D02D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3986436BB1332AA00187E0BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 398873B7F0980B7D27356464 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + 39B450967D7D7D4B1E1ECED3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + 39D9DEE8F862C43CF6F4DA7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A56A49F2C3025A4E7E74C35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A5708787015E10D959ED324 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + 3A648036804F8E2D52E5B60E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../../modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 3A795BC053BEA2428052FEBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3AB83A04D08F2F329AB81AE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + 3ABF91F41A610658F5B17523 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 3AE6DEF29143AA3E59CEB1DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 3B27E4A68284DA2C27655D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B2A1B51E2C33786098AAE49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B4E0B86B77DC40F15FB3F94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c"; sourceTree = "SOURCE_ROOT"; }; + 3B63BB4D108A10D0C5FECBEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + 3B9D6C4308A396C6953A2B19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BD3060E486C89B438B21F43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BEC5630096C646AACD87205 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3C03483C05460B67987EA712 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "codec_internal.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = "SOURCE_ROOT"; }; + 3C43BD70ACCE68D03688BBBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = envelope.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.h"; sourceTree = "SOURCE_ROOT"; }; + 3C5760CD990742E382358250 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c"; sourceTree = "SOURCE_ROOT"; }; + 3CCEB87B02CFD73B01FE5E3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c"; sourceTree = "SOURCE_ROOT"; }; + 3DA85B078D53F40F9AE66620 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3DE8B0B99FE443C92EE32CCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DFE53F6F99C7D51A8032CB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = png.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/png.h"; sourceTree = "SOURCE_ROOT"; }; + 3E176A88BA217ABC03C93CD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 3E17AE4B984D9E4083124600 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c"; sourceTree = "SOURCE_ROOT"; }; + 3E18E1893DB1F592952F6E8F = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "LittleFoot Language README.txt"; path = "../../../../../modules/juce_blocks_basics/littlefoot/LittleFoot Language README.txt"; sourceTree = "SOURCE_ROOT"; }; + 3E2249E2AB8DC6FDCC87F9BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3E7005B5E5C7E2B1EE1FEA55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + 3E85FF93FDA0C5C93F8EE3FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + 3E8E3CBF730E14A6EC9BEF89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 3FFE8EE77F46A343C6D7464E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 40096AE757FEA9F663BF88B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 40B2DF2617C73C0928FF7D93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 40BCCE9C782DBAF6459C3EDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; + 40C17131B384BEEB66A4FAB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 416061525348EB462B1603AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_extra.cpp"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.cpp"; sourceTree = "SOURCE_ROOT"; }; + 41641B5371BDC760981FDF9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 418464056E84CF38CAE498FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 41AB492EEF462863E50AF460 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 41B259559A84E4D37B411E9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + 41EA8B9F834209FF197ECE40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 4227DAE98212844575D0D944 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; + 4231BEF0941784C4F2CDF362 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 424E6E480FA0C70D02DF349A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisenc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c"; sourceTree = "SOURCE_ROOT"; }; + 425B547B9020991C73D4D65E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + 42D58F7C9468DB8F354B353F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + 4307B791E5DC631C9447D24C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + 434FD5F26F8F5052AA287287 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 43573D003FDD2FEA313A8B2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 43AF9A4E676708B5C9B936DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitrate.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c"; sourceTree = "SOURCE_ROOT"; }; + 43BB607E9D1BC08AAF03B711 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 441A0BB8FD08721B0768A41C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + 448196AC5604B89ED7BC2086 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4490CBDB4F5B394BC4C8E22E = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Ogg Vorbis Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt"; sourceTree = "SOURCE_ROOT"; }; + 44ECB2E8A37E35CED1BDEB44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = assert.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/assert.h"; sourceTree = "SOURCE_ROOT"; }; + 451702B185B088648F14A833 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 457AE3EFAEB98FE93CEB0ACF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4581D33463D9A6F637E8CDD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 45DD050BF036D8362025CC86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 460CE4619594A71E9BCE42A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 46A6F1936584ED15D40366DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 46AF0A703258AEE24688FE5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 46EA57BC815C91944C720D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 4765710DC062B04830654235 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 47787A636075A669F8FFA434 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 478C6A7FDD7B257654B67B59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + 48037047F1CC53BDB2CBF2E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4840F2FDA6C6A3E0CA41FA3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + 4846DC8E7DFB0B17B0FCFF60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4860027F79C430D081214B03 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 488FA6954BBFB6694C21AEB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 48FC93C2649A6B6B478AB4B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + 490E933166E75FBF2163CAE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 49294AB2D8C5CCBBE763EA04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 492DC3C535B73B14A707133A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4986E10C464822F15B91C7ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 49D0C33F5968B4B16D73521F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 49E68BE55F02C76D1A39B8E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A46906896AD28D34B0218F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; + 4A4FAB8C91193D662A4ACFEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + 4A65ADBD6816BF0C9FE56E0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4A78F089AF9BAFC1586AF196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A7C8B1D23E9B6B7CCC02741 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A7D2BA623D3A1DE6B99DF1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../../../../modules/juce_core/zip/zlib/inffast.c"; sourceTree = "SOURCE_ROOT"; }; + 4A7DB9A482CFE6B1FCCA6174 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 4AC6C62FB545839E566D0FE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 4B28F11FE91DFD5341610403 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c"; sourceTree = "SOURCE_ROOT"; }; + 4BE7254995C059C494538C70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlockModels.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlockModels.h"; sourceTree = "SOURCE_ROOT"; }; + 4C512E6E088C4B973E866756 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 4C9BD4A188792CD1AA04D76E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CCFA4612BCBD5FCEB6E02E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4D2D9C398522FA01A9FFFCBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4D4461D4DE302DC06DE22D68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4D69C440B571531C56B12E10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + 4D84F3F6235C49D0ABAF4885 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4DCF8D8075DD05492643A922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 4E55A9C84ABE776CCA556594 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4E8EA77D5F1F16096D60F3CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 4E93F48CAB3C538054B0D9B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + 4EDEDEAB7029C5B5C2A63A15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c"; sourceTree = "SOURCE_ROOT"; }; + 4EECFA337A245BA2F32FDE9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EFDE9EEDF6DA6E5A066F2DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 4F2671111CAD35AA9A14E50A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 505900B3A9C3E0EB350784F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; + 50FB808D07149E5872D146C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 5122839D8D39723AA8BFBC70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; + 515145EF420E45BB7E0402C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 516684CBCB8ACBA9E44E4BFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 518466F491B5DC8B80063C73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 5236F7786FD9BFC43D9ABD94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTreeSynchroniser.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h"; sourceTree = "SOURCE_ROOT"; }; + 5247BE9855469B053C368F24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5289927ABB985AA0C17AFF50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 529810AFE34B3B173DF7E89B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52C4BC3D28F8184BC2F6B022 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 531078615D14BDA90A50AA53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5321E4A1DB897A2B7CF23AC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexItem.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h"; sourceTree = "SOURCE_ROOT"; }; + 5329122490F95D7339752A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 53C70300D106400F1AF2C123 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 541BEA0E11518594C696094F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5467983B508645F3246CADF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 54C8D084F87C2B0A407CB3A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + 54EB9618ADF1901432C2345F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 54EDF505CD9D19D1FD59D612 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + 54FF63024B2057CB82A3009C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + 55EFBD6183E831FBD8826325 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 5634188A865D1AED86FC1030 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5660E3A821F2F566AAA0DCC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5687068AA9A10610CCCAE92C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56A2B221F07582C3693CFABC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56E56C2AB629F7288EFFDF99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + 57436F09E9FE1CB619681DE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5779480339AAA112A12315A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + 57BFD80A8E5673123D9004B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + 580B644027718870A081DC4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + 58880E117B1FCE6771ED958A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c"; sourceTree = "SOURCE_ROOT"; }; + 58C7100720C49C23EA841B13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5901AE44435BBEA1841F2028 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = "SOURCE_ROOT"; }; + 593FDB1011C838F5CB25E6A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngset.c"; sourceTree = "SOURCE_ROOT"; }; + 599F21A262B43F26B31A0137 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59DBC804E4110F9FCDDAB23F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 5AC1394BDDA0F1C11051F763 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 5AD9E3796F5E585A81810A09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + 5AEA510A742A1D7BAF22EC41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + 5B3703950FC13A76F07CC0B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5B9750AEC9BF60E5C75D6F27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextDiff.cpp"; path = "../../../../../modules/juce_core/text/juce_TextDiff.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5B9F3AC6C97B813BB96F9C07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdhuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h"; sourceTree = "SOURCE_ROOT"; }; + 5BC395EBD64E8CAD3F608735 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5BD41E05243398FB26BC8041 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = "SOURCE_ROOT"; }; + 5C67296AC2E94992F244B1A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 5C843AB1BC6467611517390A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; + 5CD9180E4223F79C65313EF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5CF0F5458B69B697F084D1CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + 5D065FB649082368A82A4D7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + 5D456364DF7A1A1C1CBCA1F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../JuceLibraryCode/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 5D4BEFEC0E129949C58876DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 5D55891DEDD0EEFA6F294941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5D55C700506847B0C3E7992A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5E0AA1FA0367D0B8D32A5FDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5E11C3AEEEBFB5D3ACE79B2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; }; + 5E5B5455D01D68404DA760D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 5ECB1585CB10B6336F35039E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F2ABD15045B9C2D45BBB281 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5F849E06BD0AEC3F3CA3803E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; + 5FB96EBC6B8E73E76F2C2D7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5FDD76A98FDD6FAD2CB88606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_uncoupled.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h"; sourceTree = "SOURCE_ROOT"; }; + 5FEDA06DD9D390733743ED0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5FFD4BC1A7EB346271391205 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60001B432129FD5855629F3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 601F5CB6345EC149C773CAEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60200D25748FFB8436112D85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 604CC1744C3DFD07E43F6A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_android.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_android.h"; sourceTree = "SOURCE_ROOT"; }; + 609A9DCD9B58779BFE402BBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; + 60D50FA5390DEADA129CBD25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 60DE112B177F465AF7ECD44C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60EEA5E3658D36513E1A25FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + 621C85154E8537D98DD550D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6259E41DD05DF414BFAEFF1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62D3C5C70DDBEEE7E16DD1F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; + 62D3CBF544E4AB48E11D77E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; + 63690D22628914EA9BE61A6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 639AEE67CBD131D3D160C094 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; + 63A0B0B37AAB0387A610F6AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 63B20B7D5AB4BA7C645F10AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; + 63B8C5F0192F2C0767C38B59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 64045131E5C2BA8A8DE951BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 641322D5C3949AED6682C101 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 64DFFD927FB3D86B97E36EF9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 64E3E6EDAFEA1CE0C515588A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 64E5B84F1FA947FA88171033 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + 64F35E547771BD3A4ABFDB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6509144104CFCCC2661C84AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + 650E5906E5CAAEABABFEEE1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; + 656121CD59DA8E95455ABC28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + 65E03D29E9BA76F1CF344B75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6602C5EBB2ADC3158B37B907 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; + 661EF1C85FF1D2B6070163EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = "SOURCE_ROOT"; }; + 66AE29E32EB365E37B34FDD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66AF1158C662CB915EE1F216 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + 66FEE3D850AB3A3D9FACAAE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + 671BC724698C6A4A159738A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 67606EF1CD1DDF9D69C93DFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + 676856EAC9E9FFB013E6B910 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 678100D85EB6578B7390BE6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67C85156717AC5DD60AD4279 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + 67EE78D1C669F6DDED31CB39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + 680095499A49102EF1B7F3C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6820E5E02FBE26EDA1E814E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 684A7466DDEA4CA1F785AAAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 687551D7CBDC73E3D249A30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6897A03FBCF6F3E3FE02DD69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 68C49A6E9109C5F448289C25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 68F432AE5DFBDF416D381D69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 69571EA44314BEC40565D70D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 699EFC7DCE06711BB6C07F36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.in.h"; sourceTree = "SOURCE_ROOT"; }; + 69AC4DA97DAF6291FB4831EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = "SOURCE_ROOT"; }; + 69B3DA0D93EFA18D005D4BBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdct.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdct.h"; sourceTree = "SOURCE_ROOT"; }; + 6A194777720E39F99CEBDE68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h"; sourceTree = "SOURCE_ROOT"; }; + 6A5C7073E616E3C027C7298C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 6A84B8A22E5DA1A769CCC18C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + 6A88B631279A877CBF1EE8FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A95798F17AF7D10D2677BD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6ABDB6B3BC707D5EA4E754E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + 6B130B8EFF75E1ECF0E20F21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C0699AE325D1A41FB8CC560 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C2B97454AB4AD2B7BFE0776 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c"; sourceTree = "SOURCE_ROOT"; }; + 6C3BD063682D8A97CE28ED2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisfile.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisfile.h"; sourceTree = "SOURCE_ROOT"; }; + 6C3D05CB8D915E9E8C1286EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; }; + 6C75E5D335754A26EDB64C0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = trees.c; path = "../../../../../modules/juce_core/zip/zlib/trees.c"; sourceTree = "SOURCE_ROOT"; }; + 6C783023901E82078E0F2435 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 6D105609475B730F812FE7BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 6D2AA08C51674AC355C3C4B9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 6D665D953ABA975CDB21318F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; }; + 6D8CBDEA7BD024FC9E2875F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DE2EDC2238B94B55FA5167C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + 6E0317C6D582381E18F6FC28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E6A0A28D29F9CE5A97D9603 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + 6E77E7974D18C2A3889C94D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + 6EB3442488752F0077F61CFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c"; sourceTree = "SOURCE_ROOT"; }; + 6EBBA65276F7311BE0074812 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 6F303FBDC38398256ADA7BA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F4AE6971D02991BCC1B7F1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; + 6F4E9231B5C05BC368C3450E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F6F12174D4A4E4D1266894F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; + 6FACB6671DF178C374D288C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + 6FC15D6A4868FBA38C374110 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + 6FC3B994387E6EDAF2BDEE75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 703BF13C50FBAA0690EB819D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 707DD628F538166D4733876E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + 70A3109F4B0C80AA941F513C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 70C841CF701E3FB91C81E547 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; + 70D730CB666E9D486B44A2AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 70DB5546A7436EC8159F7825 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 71386FCE19C79DC74F1623FF = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 713A0BDC7ACC4F399C378A0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + 716E7225D1FAE92136DDE91A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + 71E11286C74E10382B85CAF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 721BC1EF4670F969B327BCFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72300583DCD807FB8965116E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c"; sourceTree = "SOURCE_ROOT"; }; + 72CC4E382F4DD97DE7D2265B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + 72D5B90B3F201DE61EFF5904 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72D97C35265816BF84B17A64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 72E0C00FE7CAB47242F2B815 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + 72F093BD43569F666B148B27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 72FEC6F5671BA939439E0CF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 731A4FE5C9250FE1D83D2008 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 734EDE0CB353BEB637FB28DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = "../../../../../modules/juce_core/zip/zlib/crc32.c"; sourceTree = "SOURCE_ROOT"; }; + 7352B3C338D6C18D80BA03B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h"; sourceTree = "SOURCE_ROOT"; }; + 735B02968773FD74934EC9B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + 737EA145B8366E0A55A8D6A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 73EF2B898A07179D14B9EE08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 7433092862D26C58AF93AE62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + 7498ED1709143C20C79DB1E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + 74FB9B1CB018E5342E7AABFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 752759743BA54E6A4E34EBC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 7533170247A4B5A10D70246B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; + 7597CCE58D1B95FB4342EA91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 759D310E427CAB584332F916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 75AA9C6E3FC6AAE881B93CA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75D8AD14EB3D9985A3770C83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75F17FFBBC74680724103F2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 76374244710CA4A53830D7E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h"; sourceTree = "SOURCE_ROOT"; }; + 76597C68627FE0AF43DEC454 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 769FABFC14A17F7AC2BBC65D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.c"; sourceTree = "SOURCE_ROOT"; }; + 76DB19422D33EF95B030AF4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = "SOURCE_ROOT"; }; + 76F731D0553785FDCEC0CCC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitmath.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitmath.h"; sourceTree = "SOURCE_ROOT"; }; + 770D1A48C625E77273E34C64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jccolor.c"; sourceTree = "SOURCE_ROOT"; }; + 7736BA69BFD6B79E44DCF9D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LAMEEncoderAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77847C660F3D9562BD1469FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 779FC2189E09A0B4A15C45F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 77D91228977E55D6C4D6C97A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + 77E856C4EDFB5608F03EBC99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77F678CCA2C005969380CA48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; + 78329D02001CA45058DCF1AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + 785C1C92060466C4968202D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 78655006F91EC8E5C99A6991 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 787FCE42F8EFF4F62B69363D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../JuceLibraryCode/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 7890A2750EB787AEBCA75F19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + 78977B6BAB87C72BE8A6825A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78B2E56220F1F3D0E9C06FBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuleBasedTopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h"; sourceTree = "SOURCE_ROOT"; }; + 78D3A157D1DCAB72DC7D4FF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 7991C45FB3CCD45D46A7EBDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + 7A5FADFA9A6CF71D5D2B9FC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 7AB01CF3ABEAA9948DC8E0F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7ADB824594D23926754D9ABD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B121FD3C6971459B5EC4DE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + 7B844571D08EC929B21A5ACF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backends.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h"; sourceTree = "SOURCE_ROOT"; }; + 7BAF11556203D550CE5E1560 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../JuceLibraryCode/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 7BC44A73343EBF0012783283 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 7BD3D12701E20AD0509702C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 7BF8065AC65F92C392CDB058 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C137769611C5A269332467B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C145A4C116A743CB8D0624F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C164C4F47469F58BA6DCDD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c"; sourceTree = "SOURCE_ROOT"; }; + 7C22E5FD3C91AB34CB539E2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C3158B229AE5B18BAD208FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PhysicalTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C955BABA03F3EF1E19E178E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 7CA69469B3AFC9137FB98243 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 7D272E58C41C4B21A689C487 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E4D2E09A56241058D485070 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E4D7F844737CE5D8C9BD1CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = "SOURCE_ROOT"; }; + 7E5C701836EE0E311AE805B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7EC2BB0FBA7BEC433B901162 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 7F0EFEADDCDF0B8C3BD1278B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F5A0B43EA4CE0599C30637B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F615DFC87CDB7F78660077C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = "SOURCE_ROOT"; }; + 7F81AFE4D54AA74B17E81899 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 803335D3EDDD75FED2EA7864 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8033E71C6724106F16F7FC35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8056F5AAE245F445D1F5FA26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; + 8079D10F25DE8A660DFD7F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80A162921EA7B00DF95B9D1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + 80D2A754CA228BCA22EAFC8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; + 80D52462F8B49C3D1FBB6349 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c"; sourceTree = "SOURCE_ROOT"; }; + 80E4BC98EF30B463FCBF95C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + 810D7E7AC4E48A67AB84B75D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 813AE492EA6457096991918B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = "SOURCE_ROOT"; }; + 814F764F531DA3B45B982764 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 816E973AAA295DE63DEBC95D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 818FAF2D047AE69BA11091D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 8195E5CA20B1E6DE88148B41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 81F5049B4903492A6902FAE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; + 8221F414FAE8FBF996CBF033 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 82CD7AB6C8788920318BFFF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 830F7516AA78496143854C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_blocks_basics.cpp"; path = "../../JuceLibraryCode/juce_blocks_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 831C32DB068A571A3E99E55B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 83B3F4B22F3603CFF3199C33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = registry.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c"; sourceTree = "SOURCE_ROOT"; }; + 83BA095FCF4E84B0AB0CF903 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + 84568194A9D160AD5459F013 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 847F33928C5A70863F673938 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 849DD96FF7656F52F1972F38 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 84A04C8B8DE6E1C4FDC3F4A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 850772CD6A8E69EACB89CB02 = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BlocksMonitor/Images.xcassets; sourceTree = "SOURCE_ROOT"; }; + 8559A01D9B969E13A40980C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 857C1BA3AF5C0210A8711464 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../../../../modules/juce_core/zip/zlib/compress.c"; sourceTree = "SOURCE_ROOT"; }; + 85A0ABA6D4313DEAF9C7FBEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 85D8D664D73759C455C4E8DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + 8646E594783C3E937A259EEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 865CC068EAD0A9E54C77BBB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; + 86A4BD370ED34FF4CC252A18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 86C050562945072E55B2304F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + 86C53DA3976331FD98DF115F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8818BE9F1A26A6F0393DF753 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h"; sourceTree = "SOURCE_ROOT"; }; + 8853EE56290506D1C5B1A324 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jutils.c"; sourceTree = "SOURCE_ROOT"; }; + 88A4EE2311F2D063677B1822 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + 88EE9BAF87CBE950013CD3AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8941D9AFE6BE0F15F8391874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuleBasedTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 898A95E0423C95670F8E00D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A279F88C2047651F58628D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A974C1E78DF69BEDF4760D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + 8A9F1BF21DEC92A64F468E9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 8ABBC420D650176FC816CA90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 8AF2D36988A56CB9C6068F5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + 8B1B3FA81F246E78CB5F2D99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 8B4505D4C9EBC3014C27D6D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; }; + 8C99020753B8736AEF7D04D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h"; sourceTree = "SOURCE_ROOT"; }; + 8D5DB6220A070CA7C6EF649B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; + 8D9598B7B36DB4A8DC7F257A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = "SOURCE_ROOT"; }; + 8DAD27599B4D76AA741E2F94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h"; sourceTree = "SOURCE_ROOT"; }; + 8DD3CBC5EFBC79EE967D57B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; + 8DE0F4ADDA1C7FD72763835F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; + 8E25DB9F4F02D1EB553DD954 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8E607B1E70CF61A3B3F8B230 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8E841F589CA7AAD4294FD631 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c"; sourceTree = "SOURCE_ROOT"; }; + 8EE36E6294B0521F7F8FA4AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F577D253454A9B7795B976D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F72A06310DEB2A6E6A0DA18 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 8F7A2483AB8A87ED367B8276 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + 90168C92385FFFE93633DD25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 906854E5A523A5B01E5B5E63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c"; sourceTree = "SOURCE_ROOT"; }; + 909C06CF037053D160E1D911 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 90EB80CDB45A0909C2ABDCCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngpriv.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h"; sourceTree = "SOURCE_ROOT"; }; + 911142143AB852FE25C27BEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 9118ECA920DB03C9623ACABB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BitPackingUtilities.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h"; sourceTree = "SOURCE_ROOT"; }; + 914600CCFA720261FC69CCD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + 919C366862EB3C10E5850D70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; + 9209F549B676E740E0B83FF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + 920EC1092F93EC048706028A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 925360F7E3AA48D3AC8FC71B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 930DC0F3CD592DE7B6A6945E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 93286547177CBA88A45187FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + 932D69952B622B2BCFB904AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9415AEBC23728926E143CA87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = format.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/format.c"; sourceTree = "SOURCE_ROOT"; }; + 948A5AC343109E364FF586C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44p51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h"; sourceTree = "SOURCE_ROOT"; }; + 948ACEC6E5E7FB3963593D14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 95521385B606A5AF9DC25621 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95DAFF093BC64C4E8AFFAD39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootCompiler.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h"; sourceTree = "SOURCE_ROOT"; }; + 961B5BA203F6A096FC1D5221 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + 9621212C05067BDBB1EDC4B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.h"; sourceTree = "SOURCE_ROOT"; }; + 96B0988BE177AFFCCB353FC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + 96F7798575656A87A58107DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "win_utf8_io.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h"; sourceTree = "SOURCE_ROOT"; }; + 976DD9AF4615787148AD3141 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + 97AD1E50A2BA5069A53B385F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 97C4CF34A7B666E1076D8643 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9851670A2A94D090ABDCD8EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98536B7D7BF6DCCC121EF75F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 986D508D78EA59268FADE965 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdatasrc.c"; sourceTree = "SOURCE_ROOT"; }; + 98BD14DB6D84583B0A2138AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + 9915EA36F2BC695AD5DA1FB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.h"; sourceTree = "SOURCE_ROOT"; }; + 993004BB53091A0FBEB0E418 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../JuceLibraryCode/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 9966516477648BBFCF5B0B94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99670416B9C5B1427EFDC235 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99ACE9D856A4E22A5BACF1F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99D1B54C81E3B11E5A515449 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inflate.h; path = "../../../../../modules/juce_core/zip/zlib/inflate.h"; sourceTree = "SOURCE_ROOT"; }; + 9A61D74797BF0F66E4942D15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; + 9A798AA0771301D879ACA0E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9AAD723B4A3EF1165901402F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 9AB6CB5AF2F228CAC1AE63D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 9AB80400C174A565798B4DC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + 9B6A0011D68BE05B0848FD8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 9B6EFF388E31F7E480380796 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../JuceLibraryCode/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 9B83893AFBF95FF07B65E433 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 9B8C599BB498481CB64141B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 9BAE8416CA03B3EE29D0DB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 9BD70EEF4FCF2A636DAA3C48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BEA281CBD5878DF1330C6E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTreeSynchroniser.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BEF8EED62BFF46A514824A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h"; sourceTree = "SOURCE_ROOT"; }; + 9C2237E651B7A187DCBB75B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C75C797BAEC7A8B9693A06B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9CD5DB53DE796873DC2EE4E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9D08A5F790FC71D1BE770D20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V1.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D45A965F9A8184B64460680 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + 9D86489534874805E5005BEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + 9DB368AB3A1712F5E741DF8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9DCF20D6DD5D63567ED73A68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 9E742F2C0DCF21E717C69EC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E8FB4DD69AA02041D70B749 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "changes to libjpeg for JUCE.txt"; path = "../../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt"; sourceTree = "SOURCE_ROOT"; }; + 9EA3A564C2056CABF6F64F19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedValue.h"; path = "../../../../../modules/juce_data_structures/values/juce_CachedValue.h"; sourceTree = "SOURCE_ROOT"; }; + 9EB8EAADA992AB7525B04C57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngconf.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngconf.h"; sourceTree = "SOURCE_ROOT"; }; + 9EBFDCA556AB40E02BC2D3D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9EC497EFAB1C323884D011FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9ED1E59E0EDEB57492B8B339 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 9F0CD34B5E00755ED32C633A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h"; sourceTree = "SOURCE_ROOT"; }; + 9F8621A060D21CD4F8E52082 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F8A9B400F29F93177C13068 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = "../../../../../modules/juce_core/zip/zlib/inflate.c"; sourceTree = "SOURCE_ROOT"; }; + 9FBEC2F41AEF630320F831AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codec.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h"; sourceTree = "SOURCE_ROOT"; }; + 9FF3D6166AF80343ACC2DF7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9FF679F47F9901DBEE96E2F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + A02B644EE002D5CDFDBEB472 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A02D981AD55D9C837497D9DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A06FEA5708DBBF89F31BC095 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + A07531AA213977EA9B7ABFC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + A0A4D1CCCA84F1D6EC92D442 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A0B76982E47F6552E076C115 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c"; sourceTree = "SOURCE_ROOT"; }; + A0DDE4018BE50F9FF0F6D4DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44.h"; sourceTree = "SOURCE_ROOT"; }; + A1596463A5167EF7B3B9E3F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + A212A98178DA800BC7104EED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + A285CB0E88EA469C72C4C086 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ControlButton.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_ControlButton.h"; sourceTree = "SOURCE_ROOT"; }; + A288992FC193721FE3DB4BD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + A31630141AF03CAE86F4228C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + A34E3CFE305D1CC76C0046C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A36BCC5ED3A26F2E5592EE32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + A378497FA09036F13FA411C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + A3913125232A72EF480476F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + A3B3FBDBB67F69256BA6A290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + A409C91727751590682E3237 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; + A427924174225CB14EA8B615 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + A49C327EA3CD090C4768925D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4B659039C636AA90C05767F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4D2F92AAE55340EB431CF8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + A4D97A4003659632818C71FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c"; sourceTree = "SOURCE_ROOT"; }; + A50045AA484A93660F5D0DEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + A572695065599E9D922B476A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + A5824D06228D6B5120269F73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h"; sourceTree = "SOURCE_ROOT"; }; + A59CDBDDAAB25C0621DE2C22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A61B0324CAD4DE2A04ECAF2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdtrans.c"; sourceTree = "SOURCE_ROOT"; }; + A66CEA1922F1866BA9A10592 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + A6722561E959322FC2D3F8D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + A6C807BA364341686874B1BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_opengl.cpp"; path = "../../../../../modules/juce_opengl/juce_opengl.cpp"; sourceTree = "SOURCE_ROOT"; }; + A6EA6620D7460A9405F56693 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A705E85372EBA8B0351E477E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + A79EA78DB02B7098DE470DC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7E2C39A7FF81AC0C2B0BB29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = "SOURCE_ROOT"; }; + A7F8A897765E91543FF21D5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + A8ABBA51A3DEB23F46A5EAE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngstruct.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngstruct.h"; sourceTree = "SOURCE_ROOT"; }; + A92093FCCEED7408744E3706 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LagrangeInterpolator.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + A9711C6C2B654B0B95C93ACB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + A9717066C7343E734BBA14A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + A9819750A6C5E908DBE3A309 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitreader.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h"; sourceTree = "SOURCE_ROOT"; }; + AA1F66345AFB2EFA32855F27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA6CA28DA51A2BAAD979771B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + AAABD4AE1DD0BB0519C4863F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + AAC7E9D875D6B6AA83E571AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB7710558CEE0A3C649AD2AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB86D69CE5472E765749D5E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + AB90BC12E5EAC2E1A7FDF691 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + ABA533A5D4493250568E3659 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ABD0576F2543A863F5DB40E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + AC8A8FB37E03EAD593C68BB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACB9D9A21F63B364C3E431DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + ACBA16D63E4470083B7CE29D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + AD2E097A960F2A4A946CF177 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AD7225D561558BAFDF65BBC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrumPadLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; + AD7FCDD3AC5EF4057B4E669B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + ADD75823E8C98A3F7F299385 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + ADD9F9EB5E0EFC63E2992ED7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; + AE19C39D6B958349413E5F76 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + AE4AAFB284B168518E366EBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FFT.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.h"; sourceTree = "SOURCE_ROOT"; }; + AED53153DA5BEE178C227DDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + AEE9960FEFED454FB6DB18A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatusLight.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_StatusLight.h"; sourceTree = "SOURCE_ROOT"; }; + AEFAF28C900A0DFFC5F6FD40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF000B66A6C3683AA30FFA85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + AF11A0E66EA77FF9F426CBDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF4D1F728B7B429CBDEDC468 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + AFDDCF42011A661D8A965550 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + AFE49D942B97B2FE5BF6345F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + B000E9B383585F14D4106B33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0276417E1FCAC6415FEC24C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + B087CFCD5381A67E8ABE789D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0A159D25E2692435B03ACC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + B107BF03016269AF7369630B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B1657D09D3DF467A04A87E6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + B19D61C3D2D7BF60030FD1E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + B2015E328522144C463397DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + B213182B13BE510B8B96939D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; + B22A37C8077912A763F8FAEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + B29BA78743A8C82A8575D41C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; + B2D8F96F3F4463D678951CD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c"; sourceTree = "SOURCE_ROOT"; }; + B2EA904753A758EA2A653D82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + B327326ADE69CAEA4410249D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + B35985BF65A5735648F332DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; + B37091252E2FC04C254016C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + B3A5905404A72FDE0888DF46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3A97D5DC77DB3FD2FC5FCEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3C5E4089AD8803D08F9067E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3CD18208A4368D7AE29D706 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BitmapLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + B3E818A7CFAFA880F238BCC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B41BF21771B358856B2C44C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = "SOURCE_ROOT"; }; + B435295F7A3969E6EBD4E9B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B4679BF8D1848CC2C7698764 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B46FA7622255695A963FCEA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + B4B445D0B8FF9D563C2F7F46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + B4E737B45F3090ECA81D34CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + B50D99789F7F83360780022E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + B58ED38442F322226E81E930 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5A57064DFB2BD47270A42E6 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + B5FE94B9AE535C0F0FA1D88B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + B60BDAD15C5339F96D367450 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + B62F00B50AC42FC2DC1ADEEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6345846B766F695A8CAD09E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + B67DEB7456F7A7FE9E99F5AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + B6C06A491AB738501ACC77AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B6F1AD93847540736A7C3B96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; + B70BB65A467220F7972C4FB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + B7EDEB203D0BB0EAE5EE555B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + B83449AB719AFDE057B9245B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + B86B55CF411F403FBE6EDD8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B92C211B36B75E20B97D094E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + B945AE13CE5FA99C9B48D98B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + B979BF385FBD2717200311E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + B9C32654F4F4FBDD5B8D8371 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + B9C392935DD8F5D8D0ABCF2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h"; sourceTree = "SOURCE_ROOT"; }; + BA06C53C74A8510DD172D631 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + BA5EBAC0C16D620D37B80143 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + BAE124F36EE934FEC863965A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + BAE69D4E9ABF50B36C2844C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; + BAF64118ACD931F4A899D18E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + BAFE0AA564EEF3F790410FDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB6321248114A79859B8468B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB8D9E34C22532DC6AFDA9DD = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Protocol Format.txt"; path = "../../../../../modules/juce_blocks_basics/protocol/Protocol Format.txt"; sourceTree = "SOURCE_ROOT"; }; + BC2B18695DB1F8287E5CD7A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + BC6DCFE13B8042F59C065CC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + BCBB30471154DD69D59BEBE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + BCD101DB744482011FB7EA98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_formats.cpp"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.cpp"; sourceTree = "SOURCE_ROOT"; }; + BCF2751331F61000AA2E6D8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h"; sourceTree = "SOURCE_ROOT"; }; + BD290FDCC12F4ADF00DAD43B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + BD2ACF51D2EDBB8D946C168B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = "../../../../../modules/juce_core/zip/zlib/inftrees.h"; sourceTree = "SOURCE_ROOT"; }; + BD7737BC6B7B6EE4AE3DD687 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + BDC3A2443CA7C4A197AA7FD8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + BE0489F4AA110E7A4BE6880E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE1493D37BFED1206A196B23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; + BE27A021A21278415868C466 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + BE472B6711E509DE55C83D38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + BE531AFED218010571C90AAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEA1459932A75A2D6AAD4B43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + BEB701ADA012A1394ACCDD18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLAppComponent.cpp"; path = "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEE43FF11F7D88506B3B6E90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = "../../../../../modules/juce_core/zip/zlib/zutil.c"; sourceTree = "SOURCE_ROOT"; }; + BF1E8D386E1C71322F7B6321 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/all.h"; sourceTree = "SOURCE_ROOT"; }; + BF4AF0A830706A80B2D1ADC5 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + BFB75579514FA95EADD75AC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + BFE7003BFA12C79A7E70E2F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C08E2831019572E220A71669 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + C09EE24431A651C996153ACA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; + C0CE2DBD3E07E03623F29618 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../JuceLibraryCode/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + C0DD1473C48AEF7B3AB0087D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + C0DE626D028AA9B00127F9BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + C1474E839569EDA193F71BBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = "../../../../../modules/juce_core/zip/zlib/zutil.h"; sourceTree = "SOURCE_ROOT"; }; + C1884E8D2D10F0AFEB1D87F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + C19A71E5C01BB38E1EEA2110 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + C19D89C56696F5747C298985 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + C1EA59968F46E68D75AABDCE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + C237671BF283E95CF9F93936 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TouchList.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_TouchList.h"; sourceTree = "SOURCE_ROOT"; }; + C2585C4A959C4CBA76BCEE6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + C29107288DAD3ABB3719015D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + C29CB9EBB689083DD7D99F54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + C2B755C206D3AE7B0B4463ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2C938AA02C97A425ECF7926 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2F642C860D5E78D3E750E90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; + C3104BD68827E3B23FE7BF51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + C315E5EE86688FF6DEA57CE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FFT.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.cpp"; sourceTree = "SOURCE_ROOT"; }; + C33F5E40671D8969529DC1F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c"; sourceTree = "SOURCE_ROOT"; }; + C35A0F1C5323F130D4A1108F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; + C37E5834DB1CC5410BF93D8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; }; + C3891745EE7DBD352727B9B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3CD93C748F880042436180B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3E4493CE69B1B931CB96EA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HostPacketDecoder.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h"; sourceTree = "SOURCE_ROOT"; }; + C3E64B47D41D5364FA0CFDC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + C42467520EB918DFA024D0AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; + C438A00F7FAE0D151BC99D0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C468BC4730E745AD31CA903D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = png.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/png.c"; sourceTree = "SOURCE_ROOT"; }; + C48524BD8330E2A4710D99FF = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + C498F38B2EE41174DCA27032 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + C49F54FB785A0B5D4D41B6BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; + C4DDAA034449093B3E5A60ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + C4E4C2AD07EA064EB32326F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HostPacketBuilder.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + C4F45122F361CE23DDB32596 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + C50386097FEBEBECC9E84866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + C52BA5CFAC5D4DE4CEF2A51D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + C596B16782A9C4D0C6EB0BCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + C5AC27F3564EF36AAFFAD703 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + C5EDD0AB18A362054E8FE283 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + C6144891191A6E1C95E21A25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConnectedChildProcess.h"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + C62BDB035997E471AE3096E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + C6438C01636AC02F3ACEF42D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + C6A122F6B606753C30C30BD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrumPadLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + C6FFBF028815A3D4D197C1ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C720BCE4770D82EE19B5E304 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + C75E0D3ABA4599B591806B6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c"; sourceTree = "SOURCE_ROOT"; }; + C79F1FCCE8950900DAE6BB50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7EE187163451061AE2A3153 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + C8F3A77AFEF173C097EB08CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + C8FBA54671860CB3636D7A76 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + C917343C99E5B7DD04F04FE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + C91C155CE2FBFB917E03E114 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c"; sourceTree = "SOURCE_ROOT"; }; + C91DD17FBE7A7541E7787987 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; + C9D366816AA16012A9FD56D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9EEE195FD4C2C90915219FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + C9F2ECCBC4868DE614C90303 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + CA7EE521D0323E69E581633A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + CAC8EEB08140F6C3189606EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_devices.cpp"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.cpp"; sourceTree = "SOURCE_ROOT"; }; + CAF5049EC08F7E410AEDD901 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + CAF65D1EFDDC93B47321327C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c"; sourceTree = "SOURCE_ROOT"; }; + CB01B5AD5F8CC26814C1FAE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdapistd.c"; sourceTree = "SOURCE_ROOT"; }; + CB6596103EE0B3579B8D2C3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + CBAB521E6B494AABD42A4B90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; }; + CBDAC7F54358B29D622C7659 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC485BE41CFF25257214B6EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + CC7A625D7B7F517BC85C5578 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_blocks_basics.cpp"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + CCA01BB46B276DA072718679 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + CCE2ADA7EF8B417B5D5EC92C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + CD4633C9F9DA366C76E4B92A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + CD768752C091A375ADC708A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD875963C6F9C05BA11A4AC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD9017D48D6C56C7D57426E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + CDA6D006DEE688324E2540AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + CDCF7C7420D481D45CDDBE85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = highlevel.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h"; sourceTree = "SOURCE_ROOT"; }; + CE2F5008560ED985C0B8B5EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE38F82B1484802D0AD0E8BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = transupp.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.h"; sourceTree = "SOURCE_ROOT"; }; + CE9B22F2034E803714CB8433 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = info.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/info.c"; sourceTree = "SOURCE_ROOT"; }; + CEB10C78DD0C1F9970029F25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CEB18F1BEA68F075D50BD6CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + CED32466B0978556B4914463 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEF6725F5E19BCCBFFE5EB68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF095321F298B5EBCC94F41C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c"; sourceTree = "SOURCE_ROOT"; }; + CF0A728B82AEB2D5931DB6A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../../../modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; + CF632EB4950A71EC56190E3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF6716C0AD7BC8E630CEA8DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFA6A67D8C7733249ED7FBC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h"; sourceTree = "SOURCE_ROOT"; }; + CFC449D448A0844857CA526D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + D02263425E49C20B4A8CD405 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + D051EB3531C22746F7AF08E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = "../../../../../modules/juce_core/zip/zlib/crc32.h"; sourceTree = "SOURCE_ROOT"; }; + D07C119AB16FE4E41B441B71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + D0F5CD629E1D7C466E87A7E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + D1508B7542B04397ACF773B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + D1831592A88B72CE43CB9130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D18C4FDF34147BDD22C16EE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlocksProtocolDefinitions.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + D1C39914B1CDF9FDCF40F03C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D1E81EF119824692C769695E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h"; sourceTree = "SOURCE_ROOT"; }; + D202B1DF5EEDD627489E729D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + D2232FD5C2B1A361C7240C8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + D2785AE695E6FDF8147EEA2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../../../../modules/juce_core/zip/zlib/zlib.h"; sourceTree = "SOURCE_ROOT"; }; + D2A1AACEFAB1D922788314A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + D2B02C379123F7D621B82B6D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/window.h"; sourceTree = "SOURCE_ROOT"; }; + D2CEF899F0C7DBD82CF4E7C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; + D2F9B4B64C205F3461541930 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; + D3B2CF92BBBABE4AEEC691A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + D3BB46A0AFF947844690B42F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D403908B6B803FA4EF5BDBBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + D49A5F16D99EF86770359BBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D4C6A262AAC6CD01030A56FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + D4DA6EE18C4F580FC8A220B8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + D4F1502ACF6109D1AA059455 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h"; sourceTree = "SOURCE_ROOT"; }; + D58546D794E5BEBD2F10412A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + D5EAF5AB7E64FA98BFCCA1A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + D62EA842B44315CFBCB24BCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D67495EC058C6FDEB8C0FA6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + D67E60A34C5191583B542922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D69A8DC089FEB04DDEE6E9AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = md5.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h"; sourceTree = "SOURCE_ROOT"; }; + D6A0E899C3D79A7DF75035C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + D71710BA7E52689EBFD91588 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7303A04A2ED6BD0AB0D997D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ClangBugWorkaround.h"; path = "../../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h"; sourceTree = "SOURCE_ROOT"; }; + D73F9D1ECAA60F87E31F531C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7689628C83E6E2DB2341628 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; }; + D76F72244214BDDDB9C1D42A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7AB3E868A90774E1FAFD51B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + D7BEC4451FBA09761F065B12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7C00C099F40E38AD415AD56 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c"; sourceTree = "SOURCE_ROOT"; }; + D81B4D2BFB753FFD2D6F3AF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D81D661338436E213B25F8BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + D848C25C312A0D62457C3730 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + D87D6545B471F09EF677902C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + D886F31628398C6418B6FBF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8A1D9C7F7B42C75598A385F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + D8A792DD4E2CD58BDAC9BBFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; + D8D329C0D501906C8E581010 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + D9158BF72A9410721CF32E92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; + D93AEDCD9AA6F35A008C6B10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_22.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h"; sourceTree = "SOURCE_ROOT"; }; + D96E2FC22E02FEC19FAC3F75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lookup.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.c"; sourceTree = "SOURCE_ROOT"; }; + D9BB56CF58E7421832148DEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + D9C96A95268D1705E5EFD77F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h"; sourceTree = "SOURCE_ROOT"; }; + D9F59FD82ECF3FDA305537AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c"; sourceTree = "SOURCE_ROOT"; }; + DA5417FE6CC33732AF61D3BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA6680F2E017C1451B8B3E09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; + DAFEB9CD6997FA5768A7DBA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + DB116314BC85AB60708C199F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + DB9E8BE921489285C4B9ED99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = "SOURCE_ROOT"; }; + DC20E4741780F1519099EA3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC7062591F0E20788EDC379E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + DD1DAA35FC2A68363DBCDE50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + DDA658B496D43C8BD1DF3410 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + DDB3B7DDB5B4F5D87CBA6C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44p51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h"; sourceTree = "SOURCE_ROOT"; }; + DDE841F2D06B35620C95F7BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; + DDF5573CB40B2B3D2F1DB780 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; + DE1AA6017CEF48540B7D5521 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + DE2F36F94C5AF00C806A885D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; + DE56F99143A2BEF2EC4E15A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + DE703F44A06F45D75C122234 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE9704A65773501DE347230E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; }; + DEB1AA246A3B2804C43992C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEBEFE952C92EE38B62CCBA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c"; sourceTree = "SOURCE_ROOT"; }; + DED4D4557567F40DCDA8340A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + DEE463950B10373AB5BF1415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + DEE913D46DAAD878430264D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; + DF5C47F2732316263F27F35B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + DFA0BD689C1C350DD66B8F10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + DFD83A7CDABE2CC9D9D29FEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + E00E9055E0D461FBA65415F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmemsys.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h"; sourceTree = "SOURCE_ROOT"; }; + E08C436C85606AA1432C5C24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + E0A6645BF35A873306104E19 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + E0CD810D85D163FCA2E05D6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + E1604416242DA5613762B851 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + E1C8BA4CF79BCC3B0E758A9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + E20191F0BE305DA483AE955F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + E222435250E8A57C88E441F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + E23D59AE5843A019D0B20D61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; }; + E24521953703852377A32D70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E25FE62CDBD305515BE0E974 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2760CFD55AAE533FAD166FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + E2778AA90308DEB0DDB6C0DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + E280D05067385BEC1E3B4766 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + E2CD239EB674A987631C1F95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; + E2D85F080ACAE32DED909D5C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E30A6EED52F978044DBCB34C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E30FA02A405F056C289608F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + E3455619FB6BC525C9407A6D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRemoteHeap.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h"; sourceTree = "SOURCE_ROOT"; }; + E39BFCA09C446A2AD541D66C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + E40C81964A35DCBA5C07A708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; + E4223D79CA646F0E046E43B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; + E48849E0B20A2D2B2391BD36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + E4A7590FF79E8EAE3286C76F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + E4E4B644F52739096EC9ED59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + E4FE73FA8F2ADD14B7E7812E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + E51819C6E2E6881C993A9C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "lookup_data.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h"; sourceTree = "SOURCE_ROOT"; }; + E5578FB0E512495116B71F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + E55BD37DA91B20BB60D8BC5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + E5B77FA0E883FC22ED9A07E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = os.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/os.h"; sourceTree = "SOURCE_ROOT"; }; + E5F14F3C17FA5BC721CF06CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + E5F243A42AFB91068026ADA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + E61A0BF68D610DA6AB86F94D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c"; sourceTree = "SOURCE_ROOT"; }; + E61D74DA18777D3ED9B604B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + E6335D36399077078BC78ECC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + E6D09BB9A4D7592AA53FA63C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../JuceLibraryCode/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + E758FAA869708918584DA19D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + E77ED2BF4E691CDA0BDF67E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpegint.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h"; sourceTree = "SOURCE_ROOT"; }; + E799718167E8643572309303 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + E7AAC5B8A3584327D2A77AE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c"; sourceTree = "SOURCE_ROOT"; }; + E8345B1296211CB1845D88C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcphuff.c"; sourceTree = "SOURCE_ROOT"; }; + E844B59EADE8FBB9804FCC9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + E87BA58A31E5AF84D1819E1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = compat.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/compat.h"; sourceTree = "SOURCE_ROOT"; }; + E8A878C2CE1A7EB1EEF6B92E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; }; + E912FFD60443431073F49E05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + E92CA7282B750596908F685C = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "libpng_readme.txt"; path = "../../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt"; sourceTree = "SOURCE_ROOT"; }; + E93C91661F22E59660A807AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + E94CBCD3B3C4F726DDC7145E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h"; sourceTree = "SOURCE_ROOT"; }; + E9AB8309552BD30792B23FCC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + E9DEFB9A762600C429F59B02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + EA01768CDAAD4D13D769C371 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + EA1AA20402977B302BF5D363 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA21A9139BBAE2238DBB6920 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcoefct.c"; sourceTree = "SOURCE_ROOT"; }; + EA2B74AE3EBD1A8CE6BBE889 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; + EA5D4A0F009B78BF824D7226 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA7F1EB1FFEFB4937039BFDB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/endswap.h"; sourceTree = "SOURCE_ROOT"; }; + EAB8F9E9C69FDA9046914C57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + EACA2C832850D2A048AF852C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + EAEA770719580DF72D030505 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + EB6CAC1FED2456D7379245AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/format.h"; sourceTree = "SOURCE_ROOT"; }; + EBB04C1A8397DA42E15EFB00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + EBF51AE520FC44EE056995D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDGrid.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDGrid.h"; sourceTree = "SOURCE_ROOT"; }; + EC7D9B630F5FB46258974133 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + EC98B82ADF1187D4060FC49F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + EC9D1EEB0DCF8551C0E70916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; + ECB315B1E096D167076B058A = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Flac Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt"; sourceTree = "SOURCE_ROOT"; }; + ED351CFC37C81F20B6D6B01E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE0075DEF550FBC64F7D8B9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + EE16A3FB712E9DFB3EE0A875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + EEC74F1DE224D270462503B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + EECE5BDB038D0EBEAF36303E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + EEE8C92FC3679E29251522E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; }; + EEF550D385BC7AEA1172FE5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + EF02685FDE72675F4B750650 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../JuceLibraryCode/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + EF66F9A77305AAF55D3A8C7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + EFD32E4A4A81815891CF54FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + F053B1F18F39980BB1E8F98A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F075BDDDD4F7DBB900BB457B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + F0BA9CA48CC49E14CB65B10A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitmath.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c"; sourceTree = "SOURCE_ROOT"; }; + F1444750AF2DEB43BE2E1658 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Topology.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_Topology.h"; sourceTree = "SOURCE_ROOT"; }; + F18CEC0613E333793CE487D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + F1CB294C66C69F817C9CDC1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; + F2070BC848C05F66E134D7E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + F21AB2745631CDDDEEA35B1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + F295C837D985F94DE7AB4A7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + F2CFFDE197B95A56FD3D2794 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + F312C15C8FF357815A5D852D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + F392A87E5AE1D4D390FCF488 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + F3E5F7DB01292CFF33EE3971 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + F40688B881E38D0CEC413A0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = float.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/float.c"; sourceTree = "SOURCE_ROOT"; }; + F4259584E00B36526D5CFB0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_decoder.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_decoder.c"; sourceTree = "SOURCE_ROOT"; }; + F49D80F0D4131FFEA98F85BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F4E74A5B357BA4EA4CEC0F13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + F5668D6CDFED46BDB46C2E75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + F581127924048FE75A58A428 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F597712CD0CFE5D1F1145B83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + F59BA79A83B6BAD01FDA01DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CatmullRomInterpolator.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + F5AA13686E3E014FA127B57E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmorecfg.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h"; sourceTree = "SOURCE_ROOT"; }; + F5B9A3BC6E33C98DFD9C9246 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5CCD78E2928A6021051AEE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcdctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + F6EB5AF7554635EB441568FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + F6F326524DED75455C217520 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + F72B09FDE33658D77B49C7A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F75524422C20C513FC73502B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F75CCB348B732B0AFEE4B4FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + F77E277347DD30D380C5A3C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + F78A0ACB1EADC8578B82664C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + F7E2CB260B70E401BF91E236 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRunner.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h"; sourceTree = "SOURCE_ROOT"; }; + F80A4EA6BE0D985876B9D4F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + F83D0DB57AB2C58AA5FFCE39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + F8612CE49A62B80AD1612B78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + F86729C1E690C3B06646ECAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F879359E8211BD2E1CFE5FE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; + F8B25FD2FE72F0862EDA70AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h"; sourceTree = "SOURCE_ROOT"; }; + F8B3AB36958E31EB6BDD2ED3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + F9AB49CA88C89C26093CB1B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder_framing.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h"; sourceTree = "SOURCE_ROOT"; }; + F9AF151A90E61714965D67D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9D767E4012A0A1ADD83A533 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c"; sourceTree = "SOURCE_ROOT"; }; + FA06D31009B123A360853CCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + FA1ADE34C41760B0FBCCDE64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA489194866ACCE37578D4E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; + FA66CC9414AAEA72869BE969 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + FA67F7DC71898AC7AD4F0284 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + FAB83E6CF91D59901CD87D9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAF382A2237B019DC61920B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAF5B61706BC2CD2EB68B550 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + FB6917E81414FA81F7442188 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlexBox.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB87C64D7D673B76E4B5209D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBA7E37B32790A96A06D3D71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBB15A363BAC741113987D32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBEB137F69B8A261A4B64760 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + FBEF609D497831012E3D8829 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC25CF1063C88216E3462839 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + FC70FA0EABE4EDF87260618B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + FC7AD77D53883AA7C906A6A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + FCC43FCAF92C64F580AA70C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + FCEA59DF5F16B5921093D94E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + FD227C7F5CE97D9F54705672 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h"; sourceTree = "SOURCE_ROOT"; }; + FD2C8067AE30B6CEE4CE988F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD456DC8A0AA86BA70897D1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + FDB3638BA6DA63B26AB72151 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + FE6B0496C0CC7E25BCB6A277 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pnginfo.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pnginfo.h"; sourceTree = "SOURCE_ROOT"; }; + FE9F36798B9C61600626D1F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + FEB6A996354866F8AE7221C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + FEF8D1DEC14F53F54985AB63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/metadata.h"; sourceTree = "SOURCE_ROOT"; }; + FF00E084ABFC561A9CDFF2CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + FF4021F0CFBE14A6FD29CCC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + FF748D1941B41C1794A241EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + FFB390B0993D0BDD8DD46932 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "os_types.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h"; sourceTree = "SOURCE_ROOT"; }; + FFC7EE5AC5B2F327351AE86C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; + FFE735418137221B6EABF1A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 545FE4C9D51A36132F172336 = {isa = PBXGroup; children = ( + DE1AA6017CEF48540B7D5521, + 222A183111DEA8A63599510A, + ADD9F9EB5E0EFC63E2992ED7, ); name = Source; sourceTree = ""; }; + C09481DD2BAC5454AB6D8772 = {isa = PBXGroup; children = ( + 545FE4C9D51A36132F172336, ); name = BlocksMonitor; sourceTree = ""; }; + 6A7EBAAF199594E266A2AABC = {isa = PBXGroup; children = ( + 1719057E5D9514D7DD88DEB9, + D7689628C83E6E2DB2341628, + BD290FDCC12F4ADF00DAD43B, + FDB3638BA6DA63B26AB72151, + 0E18DB38D8B88859C5D16D11, + 9C75C797BAEC7A8B9693A06B, + 340CD5C7C9744CCCBE3AC335, ); name = buffers; sourceTree = ""; }; + 6174AAEB049EF89001A54845 = {isa = PBXGroup; children = ( + BAFE0AA564EEF3F790410FDB, + F59BA79A83B6BAD01FDA01DE, + EECE5BDB038D0EBEAF36303E, + C315E5EE86688FF6DEA57CE7, + AE4AAFB284B168518E366EBD, + 4986E10C464822F15B91C7ED, + B1657D09D3DF467A04A87E6A, + C79F1FCCE8950900DAE6BB50, + A92093FCCEED7408744E3706, + EEE8C92FC3679E29251522E3, + 2ACDC9BC9FB57E955B8D2811, ); name = effects; sourceTree = ""; }; + 517D48DA3D86D147A2174768 = {isa = PBXGroup; children = ( + 4D2D9C398522FA01A9FFFCBB, + 4231BEF0941784C4F2CDF362, + 48037047F1CC53BDB2CBF2E9, + FF00E084ABFC561A9CDFF2CB, + 5FB96EBC6B8E73E76F2C2D7A, + B7EDEB203D0BB0EAE5EE555B, + EBB04C1A8397DA42E15EFB00, + C50386097FEBEBECC9E84866, + AA6CA28DA51A2BAAD979771B, + F295C837D985F94DE7AB4A7E, + FFC7EE5AC5B2F327351AE86C, + 5E11C3AEEEBFB5D3ACE79B2E, ); name = midi; sourceTree = ""; }; + DC93E1DF7BCD2B46DCC1F158 = {isa = PBXGroup; children = ( + A50045AA484A93660F5D0DEC, + 22ED7F3091B15731766D82C9, + 1E614A63C2C2AA7B858DF4C1, + 8B4505D4C9EBC3014C27D6D9, + 26FC7D9E7E5BB2D4535FB0CE, + 228CF6C968876BDA6ABC9242, + BE0489F4AA110E7A4BE6880E, + 3E8E3CBF730E14A6EC9BEF89, + 847F33928C5A70863F673938, + E23D59AE5843A019D0B20D61, + 99ACE9D856A4E22A5BACF1F9, + C37E5834DB1CC5410BF93D8F, + BB6321248114A79859B8468B, + CBAB521E6B494AABD42A4B90, + D73F9D1ECAA60F87E31F531C, + A409C91727751590682E3237, + FA1ADE34C41760B0FBCCDE64, + 0589A9A25D0130ABC2840F23, ); name = mpe; sourceTree = ""; }; + C47AFB64084B93622220C070 = {isa = PBXGroup; children = ( + AED53153DA5BEE178C227DDF, + 488FA6954BBFB6694C21AEB4, + E5F243A42AFB91068026ADA4, + F5B9A3BC6E33C98DFD9C9246, + F597712CD0CFE5D1F1145B83, + FBEF609D497831012E3D8829, + 72F093BD43569F666B148B27, + F75524422C20C513FC73502B, + 9B83893AFBF95FF07B65E433, + 6C783023901E82078E0F2435, + DC20E4741780F1519099EA3C, + 21E9D0E35F84BCF5897B262C, + 88EE9BAF87CBE950013CD3AB, + 68F432AE5DFBDF416D381D69, + B0A159D25E2692435B03ACC0, + DDA658B496D43C8BD1DF3410, ); name = sources; sourceTree = ""; }; + 2C7D50068311979A293C7896 = {isa = PBXGroup; children = ( + 5D55891DEDD0EEFA6F294941, + FA66CC9414AAEA72869BE969, ); name = synthesisers; sourceTree = ""; }; + D50B2337B08D012224137BB2 = {isa = PBXGroup; children = ( + 6A7EBAAF199594E266A2AABC, + 6174AAEB049EF89001A54845, + 517D48DA3D86D147A2174768, + DC93E1DF7BCD2B46DCC1F158, + C47AFB64084B93622220C070, + 2C7D50068311979A293C7896, + 70DB5546A7436EC8159F7825, + 8B1B3FA81F246E78CB5F2D99, + 7BC44A73343EBF0012783283, + 8B1B3FA81F246E78CB5F2D99, ); name = "juce_audio_basics"; sourceTree = ""; }; + D65E79E69A55F01F0AC7917D = {isa = PBXGroup; children = ( + 1D9A7BEB060662FBA38DF385, + 3E85FF93FDA0C5C93F8EE3FA, + 1E78B98A70BD5E14381302DC, + F78A0ACB1EADC8578B82664C, + 9966516477648BBFCF5B0B94, + 67C85156717AC5DD60AD4279, + F879359E8211BD2E1CFE5FE4, ); name = "audio_io"; sourceTree = ""; }; + C80A9F785F2081A97227C18E = {isa = PBXGroup; children = ( + 54EDF505CD9D19D1FD59D612, + 70A3109F4B0C80AA941F513C, + B67DEB7456F7A7FE9E99F5AC, + 86C050562945072E55B2304F, + 22A1487B587036337AC48F11, ); name = "midi_io"; sourceTree = ""; }; + F6BD837B724D3DDF240ABC40 = {isa = PBXGroup; children = ( + 831C32DB068A571A3E99E55B, + A1596463A5167EF7B3B9E3F3, + AAC7E9D875D6B6AA83E571AB, + C1EA59968F46E68D75AABDCE, + CA7EE521D0323E69E581633A, + C9D366816AA16012A9FD56D0, + F75CCB348B732B0AFEE4B4FC, + 9BD70EEF4FCF2A636DAA3C48, + 5B3703950FC13A76F07CC0B0, + C917343C99E5B7DD04F04FE3, + FEB6A996354866F8AE7221C3, + 39D9DEE8F862C43CF6F4DA7F, + 9FF3D6166AF80343ACC2DF7A, + CF6716C0AD7BC8E630CEA8DD, ); name = native; sourceTree = ""; }; + 0226D256277F3CB1491B9CFB = {isa = PBXGroup; children = ( + C29107288DAD3ABB3719015D, + B6345846B766F695A8CAD09E, + F86729C1E690C3B06646ECAE, + 0460787CA1702E4A267536CD, ); name = sources; sourceTree = ""; }; + 6D10CDFC1618B6213AFBE599 = {isa = PBXGroup; children = ( + D65E79E69A55F01F0AC7917D, + C80A9F785F2081A97227C18E, + F6BD837B724D3DDF240ABC40, + 0226D256277F3CB1491B9CFB, + CAC8EEB08140F6C3189606EC, + D02263425E49C20B4A8CD405, + 3FFE8EE77F46A343C6D7464E, + D02263425E49C20B4A8CD405, ); name = "juce_audio_devices"; sourceTree = ""; }; + 9757775CBE25913D73CC0497 = {isa = PBXGroup; children = ( + 05F4C8ED36A49DC106309AB3, + 76F731D0553785FDCEC0CCC4, + A9819750A6C5E908DBE3A309, + 865CC068EAD0A9E54C77BBB1, + B9C392935DD8F5D8D0ABCF2D, + 4A46906896AD28D34B0218F3, + D4F1502ACF6109D1AA059455, + D1E81EF119824692C769695E, + 8DAD27599B4D76AA741E2F94, + B2015E328522144C463397DC, + D69A8DC089FEB04DDEE6E9AC, + 9F0CD34B5E00755ED32C633A, + 7352B3C338D6C18D80BA03B6, + 8A974C1E78DF69BEDF4760D0, + F9AB49CA88C89C26093CB1B6, + D2B02C379123F7D621B82B6D, ); name = private; sourceTree = ""; }; + F5D5BB6522B49CA562F51654 = {isa = PBXGroup; children = ( + CFA6A67D8C7733249ED7FBC5, + 7533170247A4B5A10D70246B, + DFD83A7CDABE2CC9D9D29FEE, ); name = protected; sourceTree = ""; }; + E9CFBBD9D25BB5B176CDF2C1 = {isa = PBXGroup; children = ( + 9757775CBE25913D73CC0497, + F5D5BB6522B49CA562F51654, ); name = include; sourceTree = ""; }; + EB3E75FE4B4092D4E0F0DAEE = {isa = PBXGroup; children = ( + E9CFBBD9D25BB5B176CDF2C1, + F0BA9CA48CC49E14CB65B10A, + DEE913D46DAAD878430264D6, + 3067E2B75D1E66CAC8DD65C0, + DA6680F2E017C1451B8B3E09, + 8E841F589CA7AAD4294FD631, + 1C024E345C38DCAB8D0BE6F9, + F40688B881E38D0CEC413A0A, + 9415AEBC23728926E143CA87, + 1520C6D07978AEAC58F684F8, + A4D97A4003659632818C71FF, + C09EE24431A651C996153ACA, + F4259584E00B36526D5CFB0A, + 7C164C4F47469F58BA6DCDD5, + 352E7E01ACE857617C20A3E1, + 04185482CCC0316BF46B2DC7, ); name = libFLAC; sourceTree = ""; }; + 0805213889487A2742210837 = {isa = PBXGroup; children = ( + EB3E75FE4B4092D4E0F0DAEE, + BF1E8D386E1C71322F7B6321, + 20E50B7CC91B87CFA1CC8C17, + 44ECB2E8A37E35CED1BDEB44, + 505900B3A9C3E0EB350784F1, + E87BA58A31E5AF84D1819E1C, + EA7F1EB1FFEFB4937039BFDB, + 5C843AB1BC6467611517390A, + ECB315B1E096D167076B058A, + EB6CAC1FED2456D7379245AE, + FEF8D1DEC14F53F54985AB63, + D9C96A95268D1705E5EFD77F, + 609A9DCD9B58779BFE402BBF, + 580B644027718870A081DC4E, + 96F7798575656A87A58107DB, ); name = flac; sourceTree = ""; }; + 03B2AB59731F1D4B023E947F = {isa = PBXGroup; children = ( + A5824D06228D6B5120269F73, + 287298405BC363E9C2492200, ); name = coupled; sourceTree = ""; }; + 248818D57818EC2B730C97C6 = {isa = PBXGroup; children = ( + 23063052109C21CA6277AA4F, ); name = floor; sourceTree = ""; }; + 3F92E50B3ECB054A3591BBFD = {isa = PBXGroup; children = ( + 5FDD76A98FDD6FAD2CB88606, ); name = uncoupled; sourceTree = ""; }; + 432F46B575D3DCDC58365CD0 = {isa = PBXGroup; children = ( + 03B2AB59731F1D4B023E947F, + 248818D57818EC2B730C97C6, + 3F92E50B3ECB054A3591BBFD, ); name = books; sourceTree = ""; }; + 124299323D71100AA977C9D1 = {isa = PBXGroup; children = ( + 04874C168F8DB8B3661AE099, + 8818BE9F1A26A6F0393DF753, + 2E667E8E327AB96B7E56BEE3, + 7F615DFC87CDB7F78660077C, + DB9E8BE921489285C4B9ED99, + E94CBCD3B3C4F726DDC7145E, + 9BEF8EED62BFF46A514824A2, + A0DDE4018BE50F9FF0F6D4DB, + DDB3B7DDB5B4F5D87CBA6C65, + C91DD17FBE7A7541E7787987, + 8C99020753B8736AEF7D04D0, + 661EF1C85FF1D2B6070163EE, + 18319D005DF6998885AC677F, + D93AEDCD9AA6F35A008C6B10, + 28EA90843E65FB432CDF2329, + 346470CBB2B9F42E9CB6E7C0, + 948A5AC343109E364FF586C0, + 378D773196595D931B25B784, + DE2F36F94C5AF00C806A885D, ); name = modes; sourceTree = ""; }; + 59143ADBA1E2AF2EF808FD85 = {isa = PBXGroup; children = ( + 432F46B575D3DCDC58365CD0, + 124299323D71100AA977C9D1, + 8056F5AAE245F445D1F5FA26, + 7B844571D08EC929B21A5ACF, + 43AF9A4E676708B5C9B936DE, + 22B33EA86FAB7366A914C948, + 096474E2642303EBBE13AD4B, + 69AC4DA97DAF6291FB4831EE, + 7E4D7F844737CE5D8C9BD1CD, + 3C03483C05460B67987EA712, + 322BA1353F7CA1DDDE9CAA4D, + 3C43BD70ACCE68D03688BBBF, + 6F4AE6971D02991BCC1B7F1A, + 70C841CF701E3FB91C81E547, + CDCF7C7420D481D45CDDBE85, + CE9B22F2034E803714CB8433, + D96E2FC22E02FEC19FAC3F75, + FD227C7F5CE97D9F54705672, + E51819C6E2E6881C993A9C16, + 3C5760CD990742E382358250, + 5CF0F5458B69B697F084D1CB, + B41BF21771B358856B2C44C8, + 5901AE44435BBEA1841F2028, + 8D9598B7B36DB4A8DC7F257A, + A7E2C39A7FF81AC0C2B0BB29, + D7C00C099F40E38AD415AD56, + BAE69D4E9ABF50B36C2844C9, + 084F07B2269A72130EDC450D, + E5B77FA0E883FC22ED9A07E0, + 813AE492EA6457096991918B, + C42467520EB918DFA024D0AF, + 83B3F4B22F3603CFF3199C33, + 1A9FEB70EB440AE3B3BE52D2, + 1ED66F4F7C1B6FA4369A8E95, + 5BD41E05243398FB26BC8041, + 62D3CBF544E4AB48E11D77E3, + 76DB19422D33EF95B030AF4F, + 76374244710CA4A53830D7E6, + BE1493D37BFED1206A196B23, + 424E6E480FA0C70D02DF349A, + 6C2B97454AB4AD2B7BFE0776, + 135A4D01694084A7B641D217, + BCF2751331F61000AA2E6D8C, ); name = lib; sourceTree = ""; }; + 2F4C445DF466E73DAA904172 = {isa = PBXGroup; children = ( + 59143ADBA1E2AF2EF808FD85, ); name = "libvorbis-1.3.2"; sourceTree = ""; }; + 1D007C9159A56613F908E67B = {isa = PBXGroup; children = ( + 2F4C445DF466E73DAA904172, + D8A792DD4E2CD58BDAC9BBFF, + 9FBEC2F41AEF630320F831AB, + 2EA29D7871008E52A033BE16, + CAF65D1EFDDC93B47321327C, + 4490CBDB4F5B394BC4C8E22E, + 0496A10293C6532DB2889643, + FFB390B0993D0BDD8DD46932, + 122B74F324719CFD9425A135, + 6C3BD063682D8A97CE28ED2C, ); name = oggvorbis; sourceTree = ""; }; + 76167C852117860212C07E43 = {isa = PBXGroup; children = ( + 0805213889487A2742210837, + 1D007C9159A56613F908E67B, + 1311A028E6551920CCB23899, + 2799B7075032596236A1A6C4, + 457AE3EFAEB98FE93CEB0ACF, + 0798ABC473768B7DA59020BB, + 434FD5F26F8F5052AA287287, + 64045131E5C2BA8A8DE951BB, + 7736BA69BFD6B79E44DCF9D6, + 41EA8B9F834209FF197ECE40, + D49A5F16D99EF86770359BBD, + 23C4B5A7859ACA959F99FDE9, + 8079D10F25DE8A660DFD7F97, + 6D105609475B730F812FE7BB, + 49D0C33F5968B4B16D73521F, + 46EA57BC815C91944C720D59, + 04B6090AAC1B334B1F121BE0, + 98536B7D7BF6DCCC121EF75F, + 0697A131C2572A76CBC3A2D4, + C0DD1473C48AEF7B3AB0087D, ); name = codecs; sourceTree = ""; }; + 4955606C713F09999B822ED4 = {isa = PBXGroup; children = ( + 84A04C8B8DE6E1C4FDC3F4A1, + E20191F0BE305DA483AE955F, + 810D7E7AC4E48A67AB84B75D, + 5AC1394BDDA0F1C11051F763, + E25FE62CDBD305515BE0E974, + ACB9D9A21F63B364C3E431DD, + 621C85154E8537D98DD550D3, + BAE124F36EE934FEC863965A, + ADD75823E8C98A3F7F299385, + DD1DAA35FC2A68363DBCDE50, + 6A88B631279A877CBF1EE8FC, + 914600CCFA720261FC69CCD9, + 64DFFD927FB3D86B97E36EF9, + 5289927ABB985AA0C17AFF50, + 200E7992C80ECC1AE74C9468, ); name = format; sourceTree = ""; }; + 75D68641653904AEADEE04DB = {isa = PBXGroup; children = ( + 441A0BB8FD08721B0768A41C, + 2B6844B8253422926CF12456, ); name = sampler; sourceTree = ""; }; + 2789350038E8D9166DFD8868 = {isa = PBXGroup; children = ( + 76167C852117860212C07E43, + 4955606C713F09999B822ED4, + 75D68641653904AEADEE04DB, + BCD101DB744482011FB7EA98, + F2CFFDE197B95A56FD3D2794, + 41B259559A84E4D37B411E9E, + F2CFFDE197B95A56FD3D2794, ); name = "juce_audio_formats"; sourceTree = ""; }; + 78E92DC518143D98EB5F9ADA = {isa = PBXGroup; children = ( + 3B27E4A68284DA2C27655D59, + 8ABBC420D650176FC816CA90, + D886F31628398C6418B6FBF1, + B4B445D0B8FF9D563C2F7F46, ); name = format; sourceTree = ""; }; + 9EA2AF2B5A0CE721D5150106 = {isa = PBXGroup; children = ( + C2F642C860D5E78D3E750E90, + C498F38B2EE41174DCA27032, + BDC3A2443CA7C4A197AA7FD8, + 898A95E0423C95670F8E00D9, + E1604416242DA5613762B851, + 281F71278F1CE0C02ECB2EC4, + FA489194866ACCE37578D4E8, + 8F577D253454A9B7795B976D, + 242A96C7860436DE347CD432, + 2D40263014314146060C284D, + DDF5573CB40B2B3D2F1DB780, + 38791AEE23AA4968433982F6, + 516684CBCB8ACBA9E44E4BFD, + A705E85372EBA8B0351E477E, ); name = "format_types"; sourceTree = ""; }; + E63B8ABCE65C4254D9987CD9 = {isa = PBXGroup; children = ( + 2BF8C1C0452AA518578E2262, + 8AF2D36988A56CB9C6068F5B, + 4A7C8B1D23E9B6B7CCC02741, + CFC449D448A0844857CA526D, + 74FB9B1CB018E5342E7AABFA, + 5E5B5455D01D68404DA760D3, + 242F542B9738479E885167E6, + 72E0C00FE7CAB47242F2B815, + 13C55E3F2AA2B95275CB050B, + 6602C5EBB2ADC3158B37B907, + 6820E5E02FBE26EDA1E814E6, + FFE735418137221B6EABF1A0, + 60DE112B177F465AF7ECD44C, + 83BA095FCF4E84B0AB0CF903, ); name = processors; sourceTree = ""; }; + 7B92471FB5C0051679A2E95C = {isa = PBXGroup; children = ( + 63690D22628914EA9BE61A6B, + BA06C53C74A8510DD172D631, + 70D730CB666E9D486B44A2AF, + C596B16782A9C4D0C6EB0BCA, + 4CCFA4612BCBD5FCEB6E02E0, + B3E818A7CFAFA880F238BCC8, ); name = scanning; sourceTree = ""; }; + 4C967811E674D62EEA59D7E0 = {isa = PBXGroup; children = ( + 337DBCFC0A462376DAFA8C3F, + 1EA1A059799CA880FA6E2ADB, + 2B83CA343CAE71BE4F5A8F8E, + 0B30452CA065C138233F99E7, + 12DF2FA1DB7312F834B0721E, + C35A0F1C5323F130D4A1108F, + 803335D3EDDD75FED2EA7864, + 27DF9F9857FE41EC6A51B601, ); name = utilities; sourceTree = ""; }; + 15645B0CE83271714833C3A1 = {isa = PBXGroup; children = ( + 78E92DC518143D98EB5F9ADA, + 9EA2AF2B5A0CE721D5150106, + E63B8ABCE65C4254D9987CD9, + 7B92471FB5C0051679A2E95C, + 4C967811E674D62EEA59D7E0, + 16DD43E629D9E32F1FE86143, + 0DBCD27DE42DAF64EF974F1D, + 6EBBA65276F7311BE0074812, + 0DBCD27DE42DAF64EF974F1D, ); name = "juce_audio_processors"; sourceTree = ""; }; + F747D2293FF285B72185547E = {isa = PBXGroup; children = ( + F77E277347DD30D380C5A3C8, + ABD0576F2543A863F5DB40E7, + 34A745BB4A935998D25D1E86, ); name = "audio_cd"; sourceTree = ""; }; + 54CDB1F233E80FD4B106D216 = {isa = PBXGroup; children = ( + 1737459117017D5BBEE069D2, + 0D6E37748850EAE66F9CA70B, + 184F543273935A63366BCA51, + 2A8F3A1F1C343D6EB025FDD1, + EC9D1EEB0DCF8551C0E70916, + 8DD3CBC5EFBC79EE967D57B6, + 80D2A754CA228BCA22EAFC8E, + 106C8F431770C832B77BFFD9, + E4223D79CA646F0E046E43B1, + 72FEC6F5671BA939439E0CF0, + B4679BF8D1848CC2C7698764, + 26B9B07C8F5E7214A9D5EA8B, + C2C938AA02C97A425ECF7926, + 4E55A9C84ABE776CCA556594, ); name = gui; sourceTree = ""; }; + 8BA02E9DB3A1D973203FAE5A = {isa = PBXGroup; children = ( + A4B659039C636AA90C05767F, + 7498ED1709143C20C79DB1E2, + 8A279F88C2047651F58628D1, + 1BD83CC88D6EA454CE3CC746, + 639AEE67CBD131D3D160C094, + 5D065FB649082368A82A4D7E, + CD4633C9F9DA366C76E4B92A, + 6D8CBDEA7BD024FC9E2875F3, + 75D8AD14EB3D9985A3770C83, + D848C25C312A0D62457C3730, ); name = native; sourceTree = ""; }; + B52FBC4342C378AD64834F80 = {isa = PBXGroup; children = ( + B60BDAD15C5339F96D367450, + 4A4FAB8C91193D662A4ACFEF, + DE703F44A06F45D75C122234, + 425B547B9020991C73D4D65E, ); name = players; sourceTree = ""; }; + 1D9FE5BF60A6EF6602D24565 = {isa = PBXGroup; children = ( + F747D2293FF285B72185547E, + 54CDB1F233E80FD4B106D216, + 8BA02E9DB3A1D973203FAE5A, + B52FBC4342C378AD64834F80, + 3665F1F2237ABB55D7614221, + 5F849E06BD0AEC3F3CA3803E, + C3E64B47D41D5364FA0CFDC3, + 5F849E06BD0AEC3F3CA3803E, ); name = "juce_audio_utils"; sourceTree = ""; }; + 0ECB8B30B286A7116B5A863A = {isa = PBXGroup; children = ( + 2D0232CD6B55510B10D2D04D, + 23E0BB729907E348A33E996F, + A285CB0E88EA469C72C4C086, + EBF51AE520FC44EE056995D9, + 012B74A5BAF1F975F4A0C648, + AEE9960FEFED454FB6DB18A7, + C237671BF283E95CF9F93936, + 35A297789A17E01FBE82827F, ); name = blocks; sourceTree = ""; }; + CE23EF4195D4D47D4D94B87F = {isa = PBXGroup; children = ( + 95DAFF093BC64C4E8AFFAD39, + E3455619FB6BC525C9407A6D, + F7E2CB260B70E401BF91E236, + 3E18E1893DB1F592952F6E8F, ); name = littlefoot; sourceTree = ""; }; + 0DCCA6B5EEEAFC1D78D43812 = {isa = PBXGroup; children = ( + 9118ECA920DB03C9623ACABB, + 4BE7254995C059C494538C70, + D18C4FDF34147BDD22C16EE2, + C4E4C2AD07EA064EB32326F5, + C3E4493CE69B1B931CB96EA9, + BB8D9E34C22532DC6AFDA9DD, ); name = protocol; sourceTree = ""; }; + 500D3DB07F6230755D8939A5 = {isa = PBXGroup; children = ( + 7C3158B229AE5B18BAD208FC, + 034E4F3996519B2624117798, + 8941D9AFE6BE0F15F8391874, + 78B2E56220F1F3D0E9C06FBD, + F1444750AF2DEB43BE2E1658, + 06EC101285EA08EEDDB65F87, ); name = topology; sourceTree = ""; }; + 84EC8ECF8486B94F4750630F = {isa = PBXGroup; children = ( + B3CD18208A4368D7AE29D706, + 1EAF33874D8D4F13676C412C, + C6A122F6B606753C30C30BD2, + AD7225D561558BAFDF65BBC7, ); name = visualisers; sourceTree = ""; }; + 48B6293FB2A5EC097988691B = {isa = PBXGroup; children = ( + 0ECB8B30B286A7116B5A863A, + CE23EF4195D4D47D4D94B87F, + 0DCCA6B5EEEAFC1D78D43812, + 500D3DB07F6230755D8939A5, + 84EC8ECF8486B94F4750630F, + CC7A625D7B7F517BC85C5578, + 193EE3A9C056FB7BFD83667C, + 243F5C11D97748ED03B760C6, + 193EE3A9C056FB7BFD83667C, ); name = "juce_blocks_basics"; sourceTree = ""; }; + AAD6D4686EC957A745989577 = {isa = PBXGroup; children = ( + 3B9D6C4308A396C6953A2B19, + CCA01BB46B276DA072718679, + E0A6645BF35A873306104E19, + 2E3883BEB89636D207BB88B5, + 02CE3CA00AB6A0E0C6EA7C45, + 3851E8BB5BD4F284C8489033, + F3E5F7DB01292CFF33EE3971, + E799718167E8643572309303, + F6F326524DED75455C217520, + 5660E3A821F2F566AAA0DCC3, + EE0075DEF550FBC64F7D8B9E, + FBB15A363BAC741113987D32, + 1655D2F156B917E893A29FEA, + 09BB66CFEE9A832CFCF2CCD2, + 53C70300D106400F1AF2C123, + 9ED1E59E0EDEB57492B8B339, + 47787A636075A669F8FFA434, + 0A268ACBB1D36A862A755465, + 255D982E8E88EC37AF5D58CB, + C7EE187163451061AE2A3153, + 2AAF0E53F74A1B4AD7B0684A, + 259D44F4C84C586F476BBA0C, ); name = containers; sourceTree = ""; }; + CEBC87FED7860FF4F8EAFBBC = {isa = PBXGroup; children = ( + 1A58C7E03F2C3D22E356E817, + 50FB808D07149E5872D146C8, + 08C26B85297999984DECB587, + 1896F7A05A4372B4247C34A4, + 4A78F089AF9BAFC1586AF196, + E4A7590FF79E8EAE3286C76F, + B945AE13CE5FA99C9B48D98B, + 9BAE8416CA03B3EE29D0DB0D, + 2E735512175F5ADD2853D83D, + EA01768CDAAD4D13D769C371, + 1DFD35C6D473DCAEE12C18DF, + 34B3D0B92C86C84AB27BBE90, + BE472B6711E509DE55C83D38, + 932D69952B622B2BCFB904AC, + 012EF1197FF04E76BD620071, + 97AD1E50A2BA5069A53B385F, + 3A648036804F8E2D52E5B60E, ); name = files; sourceTree = ""; }; + 0FD30CF6F6B0DC38E6CBED82 = {isa = PBXGroup; children = ( + B3C5E4089AD8803D08F9067E, + 6C3D05CB8D915E9E8C1286EF, + 78329D02001CA45058DCF1AB, + 54C8D084F87C2B0A407CB3A0, ); name = javascript; sourceTree = ""; }; + CDDFF74DF54842375F1A11B1 = {isa = PBXGroup; children = ( + 95521385B606A5AF9DC25621, + DC7062591F0E20788EDC379E, + 99670416B9C5B1427EFDC235, + 4D69C440B571531C56B12E10, ); name = logging; sourceTree = ""; }; + 395D3401AF8861AE32D6B053 = {isa = PBXGroup; children = ( + 3284EB2D81A682511A78D1AC, + A3913125232A72EF480476F2, + 6C0699AE325D1A41FB8CC560, + 6DE2EDC2238B94B55FA5167C, + 63B8C5F0192F2C0767C38B59, + 6D665D953ABA975CDB21318F, + D6A0E899C3D79A7DF75035C2, + CAF5049EC08F7E410AEDD901, + 8F7A2483AB8A87ED367B8276, + 07E12DE4ACDC0607DB48477A, ); name = maths; sourceTree = ""; }; + 0BEC7E45CA53EEC113EC85D5 = {isa = PBXGroup; children = ( + 56E56C2AB629F7288EFFDF99, + EF66F9A77305AAF55D3A8C7C, + B35985BF65A5735648F332DB, + A06FEA5708DBBF89F31BC095, + 296E767F3EC21EEDF71AACD9, + 3A5708787015E10D959ED324, + F8612CE49A62B80AD1612B78, + 6E77E7974D18C2A3889C94D7, + 818FAF2D047AE69BA11091D7, + C3104BD68827E3B23FE7BF51, + 4765710DC062B04830654235, + 18828011791118DF6440C6A4, + 72CC4E382F4DD97DE7D2265B, + C720BCE4770D82EE19B5E304, ); name = memory; sourceTree = ""; }; + AAC33A3115E54835F98F0BF5 = {isa = PBXGroup; children = ( + 9E742F2C0DCF21E717C69EC2, + EEF550D385BC7AEA1172FE5A, + D58546D794E5BEBD2F10412A, + 9A61D74797BF0F66E4942D15, + 448196AC5604B89ED7BC2086, + 518466F491B5DC8B80063C73, + 1B3FB995CF83C1B588F8F9BF, ); name = misc; sourceTree = ""; }; + 162AA8750F236D0A456810BB = {isa = PBXGroup; children = ( + 259877493D9B71079446749E, + E55BD37DA91B20BB60D8BC5B, + B50D99789F7F83360780022E, + 1DC75AA5AD6118F35371BDB0, + B5FE94B9AE535C0F0FA1D88B, + AE19C39D6B958349413E5F76, + 7ADB824594D23926754D9ABD, + D7AB3E868A90774E1FAFD51B, + 1758DCBCE1766DA3968BEC1F, + 0A7A9EA59E25C13CB9C14A7D, + FCC43FCAF92C64F580AA70C7, + 40096AE757FEA9F663BF88B9, + 2972426DAB18DB5F584BC1E9, + E48849E0B20A2D2B2391BD36, + D7303A04A2ED6BD0AB0D997D, + AD7FCDD3AC5EF4057B4E669B, + B37091252E2FC04C254016C9, + 177856ECCAE5F779DB31EBCF, + A4D2F92AAE55340EB431CF8B, + 3B63BB4D108A10D0C5FECBEF, + 6FC3B994387E6EDAF2BDEE75, + C1884E8D2D10F0AFEB1D87F3, + 228C128F3835E988917C908E, + A572695065599E9D922B476A, + 34A1D01D8C72A0B39C0CF6D5, + 0DA6CC35E4AFC202C7D5298F, + F21AB2745631CDDDEEA35B1F, + 02148EBC074DA2992CC96E88, + 85A0ABA6D4313DEAF9C7FBEB, ); name = native; sourceTree = ""; }; + CCAEF77ED7D83EF2AC36927E = {isa = PBXGroup; children = ( + B3A97D5DC77DB3FD2FC5FCEB, + 31F899D8732CEAF956AA7A72, + AF11A0E66EA77FF9F426CBDD, + 671BC724698C6A4A159738A6, + C5AC27F3564EF36AAFFAD703, + 190BFEB9E9811F1D73306F79, + 9EC497EFAB1C323884D011FA, + E2778AA90308DEB0DDB6C0DB, + 36D79F468C67AF3D0B800E85, + EFD32E4A4A81815891CF54FC, + B83449AB719AFDE057B9245B, + 170F6D425FF66C0388540225, ); name = network; sourceTree = ""; }; + A465EBBDDD9E1BC6010869AD = {isa = PBXGroup; children = ( + 601F5CB6345EC149C773CAEA, + E9AB8309552BD30792B23FCC, + D5EAF5AB7E64FA98BFCCA1A7, + 911142143AB852FE25C27BEA, + 785C1C92060466C4968202D0, + CEB18F1BEA68F075D50BD6CD, + 920EC1092F93EC048706028A, + 5247BE9855469B053C368F24, + 60200D25748FFB8436112D85, + 66AE29E32EB365E37B34FDD2, + BE27A021A21278415868C466, + C0DE626D028AA9B00127F9BD, + E08C436C85606AA1432C5C24, + 5329122490F95D7339752A4E, + 6509144104CFCCC2661C84AD, ); name = streams; sourceTree = ""; }; + 0B417D1083D3F2FE398636BA = {isa = PBXGroup; children = ( + 63B20B7D5AB4BA7C645F10AE, + 96B0988BE177AFFCCB353FC1, + 7C955BABA03F3EF1E19E178E, + 197D3D704A44AA39F3F92F1F, + 1E5474F79E3971C77F173C21, + 5AEA510A742A1D7BAF22EC41, ); name = system; sourceTree = ""; }; + 38AEAA833C644AE23B5C335E = {isa = PBXGroup; children = ( + 5122839D8D39723AA8BFBC70, + DE9704A65773501DE347230E, + 2440CDB6EEC69DDB25DABA04, + CCE2ADA7EF8B417B5D5EC92C, + 0138E84BEADF91E11BF423E8, + E280D05067385BEC1E3B4766, + AAABD4AE1DD0BB0519C4863F, + BC6DCFE13B8042F59C065CC6, + 4860027F79C430D081214B03, + 19482F63E164192F9C0CC655, + A427924174225CB14EA8B615, + 1BE918CC1F7F26F93A4B8EC1, + 4AC6C62FB545839E566D0FE9, + 1673C95BCCE19C8F4664703E, + 22B991F37C9D185AD22048F9, + AC8A8FB37E03EAD593C68BB2, + B92C211B36B75E20B97D094E, + C3891745EE7DBD352727B9B2, + 707DD628F538166D4733876E, + 78977B6BAB87C72BE8A6825A, + A9711C6C2B654B0B95C93ACB, + 6F6F12174D4A4E4D1266894F, + 5B9750AEC9BF60E5C75D6F27, + 8DE0F4ADDA1C7FD72763835F, ); name = text; sourceTree = ""; }; + 5A7DCF104E61A11077F7F8B0 = {isa = PBXGroup; children = ( + F9AF151A90E61714965D67D6, + C62BDB035997E471AE3096E7, + E61D74DA18777D3ED9B604B6, + 80A162921EA7B00DF95B9D1C, + D87D6545B471F09EF677902C, + 909C06CF037053D160E1D911, + BFB75579514FA95EADD75AC5, + 01F94B27ADD4198E3CC15C0B, + 2ED4E37632885A949CCB9BE9, + 63A0B0B37AAB0387A610F6AE, + 11A1987734275CA22120DD49, + B70BB65A467220F7972C4FB0, + 06BB9F1EBA1172275FE5413D, + 036AB53DA1FCBDB74F591CC3, + 5FFD4BC1A7EB346271391205, + 2F407D57D8476238C54F8112, + EACA2C832850D2A048AF852C, + 56A2B221F07582C3693CFABC, + 478C6A7FDD7B257654B67B59, + 044402CF33BF673FD4FE541E, + 418464056E84CF38CAE498FE, + FE9F36798B9C61600626D1F4, ); name = threads; sourceTree = ""; }; + D3512F785BA120E54E63C04A = {isa = PBXGroup; children = ( + 925360F7E3AA48D3AC8FC71B, + D8D329C0D501906C8E581010, + 7C22E5FD3C91AB34CB539E2E, + E30FA02A405F056C289608F5, + EA5D4A0F009B78BF824D7226, + E5578FB0E512495116B71F3A, ); name = time; sourceTree = ""; }; + EC1FFFA5993CDB034E258369 = {isa = PBXGroup; children = ( + C3CD93C748F880042436180B, + FBEB137F69B8A261A4B64760, ); name = "unit_tests"; sourceTree = ""; }; + 53217A64F101B06C4D0167DD = {isa = PBXGroup; children = ( + 684A7466DDEA4CA1F785AAAF, + 9AAD723B4A3EF1165901402F, + 8EE36E6294B0521F7F8FA4AB, + A36BCC5ED3A26F2E5592EE32, ); name = xml; sourceTree = ""; }; + B5FF8EBFDC0215A766098119 = {isa = PBXGroup; children = ( + 13B537AE02190300E0DA5322, + 857C1BA3AF5C0210A8711464, + 734EDE0CB353BEB637FB28DF, + D051EB3531C22746F7AF08E8, + CF0A728B82AEB2D5931DB6A3, + B213182B13BE510B8B96939D, + 303AA74F7D9B6F2E8804A2C1, + 4A7D2BA623D3A1DE6B99DF1B, + 0063493D90122A5E9F9000A5, + 0CC5574662C83E89FB9A4F6A, + 9F8A9B400F29F93177C13068, + 99D1B54C81E3B11E5A515449, + 81F5049B4903492A6902FAE3, + BD2ACF51D2EDBB8D946C168B, + 6C75E5D335754A26EDB64C0E, + 321F587832C3C6C024BDD0E0, + 62D3C5C70DDBEEE7E16DD1F3, + 9621212C05067BDBB1EDC4B0, + 699EFC7DCE06711BB6C07F36, + D2785AE695E6FDF8147EEA2B, + BEE43FF11F7D88506B3B6E90, + C1474E839569EDA193F71BBC, ); name = zlib; sourceTree = ""; }; + 95659821E46C968DB6384EB1 = {isa = PBXGroup; children = ( + B5FF8EBFDC0215A766098119, + 132DA30E80054A4CB1682F5C, + A66CEA1922F1866BA9A10592, + 3228E413B22DEEBDBA7ABF83, + EAB8F9E9C69FDA9046914C57, + ED351CFC37C81F20B6D6B01E, + 7433092862D26C58AF93AE62, ); name = zip; sourceTree = ""; }; + 5CC42EF0177D6F44F26F0570 = {isa = PBXGroup; children = ( + AAD6D4686EC957A745989577, + CEBC87FED7860FF4F8EAFBBC, + 0FD30CF6F6B0DC38E6CBED82, + CDDFF74DF54842375F1A11B1, + 395D3401AF8861AE32D6B053, + 0BEC7E45CA53EEC113EC85D5, + AAC33A3115E54835F98F0BF5, + 162AA8750F236D0A456810BB, + CCAEF77ED7D83EF2AC36927E, + A465EBBDDD9E1BC6010869AD, + 0B417D1083D3F2FE398636BA, + 38AEAA833C644AE23B5C335E, + 5A7DCF104E61A11077F7F8B0, + D3512F785BA120E54E63C04A, + EC1FFFA5993CDB034E258369, + 53217A64F101B06C4D0167DD, + 95659821E46C968DB6384EB1, + 15494D9F18EC8265BBB4BA44, + 078D0122C02815C45F14E220, + 4EFDE9EEDF6DA6E5A066F2DF, + 078D0122C02815C45F14E220, ); name = "juce_core"; sourceTree = ""; }; + 9D7B25358BD5C5AA07B5EC21 = {isa = PBXGroup; children = ( + 5D55C700506847B0C3E7992A, + AB86D69CE5472E765749D5E2, + 8195E5CA20B1E6DE88148B41, + 82CD7AB6C8788920318BFFF7, ); name = "app_properties"; sourceTree = ""; }; + 93858860095307EE90AF2FCD = {isa = PBXGroup; children = ( + E0CD810D85D163FCA2E05D6B, + 69571EA44314BEC40565D70D, + 0C59026808740853C23AE185, ); name = undomanager; sourceTree = ""; }; + C91FF17401D512FD0BC96A03 = {isa = PBXGroup; children = ( + 1CC0B58D7AEA47DADB041C96, + 9EA3A564C2056CABF6F64F19, + A3B3FBDBB67F69256BA6A290, + 3E7005B5E5C7E2B1EE1FEA55, + A31630141AF03CAE86F4228C, + 735B02968773FD74934EC9B9, + 9BEA281CBD5878DF1330C6E8, + 5236F7786FD9BFC43D9ABD94, ); name = values; sourceTree = ""; }; + EE7F58530DF1E8A70FBA260B = {isa = PBXGroup; children = ( + 9D7B25358BD5C5AA07B5EC21, + 93858860095307EE90AF2FCD, + C91FF17401D512FD0BC96A03, + 36AB1E409836F7CDCD24CE58, + 60D50FA5390DEADA129CBD25, + BA5EBAC0C16D620D37B80143, + 60D50FA5390DEADA129CBD25, ); name = "juce_data_structures"; sourceTree = ""; }; + 6C45D7ACBD9C3F8D5B5527AD = {isa = PBXGroup; children = ( + 1FF09BE12A8EE7359DEB6A11, + 72D97C35265816BF84B17A64, + D07C119AB16FE4E41B441B71, + D2A1AACEFAB1D922788314A6, + 4E93F48CAB3C538054B0D9B6, + 67EE78D1C669F6DDED31CB39, + 8646E594783C3E937A259EEE, + 10AAEECABC6BA65A3D2C4933, ); name = broadcasters; sourceTree = ""; }; + D70DFE1F0FB32A198928B375 = {isa = PBXGroup; children = ( + 77E856C4EDFB5608F03EBC99, + C6144891191A6E1C95E21A25, + DFA0BD689C1C350DD66B8F10, + AB90BC12E5EAC2E1A7FDF691, + D67495EC058C6FDEB8C0FA6A, + 148AC48B82DFEC98FECBF5AC, ); name = interprocess; sourceTree = ""; }; + 80EEFAF487889674F6EF1583 = {isa = PBXGroup; children = ( + 2317A757B8847CE1AE30010F, + 8221F414FAE8FBF996CBF033, + 676856EAC9E9FFB013E6B910, + FAF382A2237B019DC61920B4, + 66FEE3D850AB3A3D9FACAAE5, + 42D58F7C9468DB8F354B353F, + 85D8D664D73759C455C4E8DC, + 0A986A71F3920D38E7D88F58, + 2AC4F829CD8C78F19827A695, + 41AB492EEF462863E50AF460, + 8559A01D9B969E13A40980C6, + 9AB6CB5AF2F228CAC1AE63D6, + 184CE8BA435703F28975DC5D, ); name = messages; sourceTree = ""; }; + DB244ED32E405D91AA96D9C7 = {isa = PBXGroup; children = ( + 5BC395EBD64E8CAD3F608735, + 41641B5371BDC760981FDF9C, + D1508B7542B04397ACF773B4, + 9B6A0011D68BE05B0848FD8A, + A212A98178DA800BC7104EED, + 104FFDFF6CC57A7630FB7EAC, + FA67F7DC71898AC7AD4F0284, + 86C53DA3976331FD98DF115F, ); name = native; sourceTree = ""; }; + D2EB26DAED839AE88CAB724A = {isa = PBXGroup; children = ( + B46FA7622255695A963FCEA5, + 3E176A88BA217ABC03C93CD0, + 4F2671111CAD35AA9A14E50A, + AFE49D942B97B2FE5BF6345F, ); name = timers; sourceTree = ""; }; + 8B7CDF2D950588E762525811 = {isa = PBXGroup; children = ( + 6C45D7ACBD9C3F8D5B5527AD, + D70DFE1F0FB32A198928B375, + 80EEFAF487889674F6EF1583, + DB244ED32E405D91AA96D9C7, + D2EB26DAED839AE88CAB724A, + 193954F9CF9005014377F9FF, + BEA1459932A75A2D6AAD4B43, + 55EFBD6183E831FBD8826325, + BEA1459932A75A2D6AAD4B43, ); name = "juce_events"; sourceTree = ""; }; + C6780B6FBC8E601F934FC158 = {isa = PBXGroup; children = ( + B2EA904753A758EA2A653D82, + 39B450967D7D7D4B1E1ECED3, + 7C137769611C5A269332467B, + 4DCF8D8075DD05492643A922, + 3B2A1B51E2C33786098AAE49, + 9209F549B676E740E0B83FF7, + 6A95798F17AF7D10D2677BD7, + F6EB5AF7554635EB441568FE, + C9EEE195FD4C2C90915219FE, ); name = colour; sourceTree = ""; }; + BC17C7FEA1883ECACA434368 = {isa = PBXGroup; children = ( + CE2F5008560ED985C0B8B5EA, + 43573D003FDD2FEA313A8B2F, + E1C8BA4CF79BCC3B0E758A9F, + 0EE7D572D91B088532018993, + 9FF679F47F9901DBEE96E2F4, + 703BF13C50FBAA0690EB819D, + 752759743BA54E6A4E34EBC4, ); name = contexts; sourceTree = ""; }; + 1A35F54335F030EB7CED69E1 = {isa = PBXGroup; children = ( + B087CFCD5381A67E8ABE789D, + BD7737BC6B7B6EE4AE3DD687, + 30845B589D24B592C853C93E, + 779FC2189E09A0B4A15C45F7, + A378497FA09036F13FA411C1, ); name = effects; sourceTree = ""; }; + E3D96D5BBF636EF28DE616A4 = {isa = PBXGroup; children = ( + 3BD3060E486C89B438B21F43, + 68C49A6E9109C5F448289C25, + 335219963DCBA3F85AC6C232, + EE16A3FB712E9DFB3EE0A875, + FC7AD77D53883AA7C906A6A3, + 80E4BC98EF30B463FCBF95C0, + 04C07E0DE8225D8E6F791D96, + 6E6A0A28D29F9CE5A97D9603, + 38034209A283D7F8D56B5E53, + D3B2CF92BBBABE4AEEC691A3, + C2585C4A959C4CBA76BCEE6C, + 9D45A965F9A8184B64460680, ); name = fonts; sourceTree = ""; }; + CC3BF308E1C5E427BE3CF882 = {isa = PBXGroup; children = ( + 21479ABF74938D58A8859E57, + B0276417E1FCAC6415FEC24C, + 16118DB20238C2B904A3FDA7, + FBA7E37B32790A96A06D3D71, + C4F45122F361CE23DDB32596, + DAFEB9CD6997FA5768A7DBA5, + D9BB56CF58E7421832148DEC, + C52BA5CFAC5D4DE4CEF2A51D, + E844B59EADE8FBB9804FCC9F, + FF4021F0CFBE14A6FD29CCC1, + 64E3E6EDAFEA1CE0C515588A, + 17B2AAE117564DA4933B70AA, + 2D2C6DAA3B50438E63266771, + 9B8C599BB498481CB64141B0, + E93C91661F22E59660A807AE, ); name = geometry; sourceTree = ""; }; + E0D35A029E21EB7BA9064153 = {isa = PBXGroup; children = ( + 40BCCE9C782DBAF6459C3EDB, + 9E8FB4DD69AA02041D70B749, + 38A03045629DB69AE42D4206, + 72300583DCD807FB8965116E, + 2282324E575678E8837470EF, + 770D1A48C625E77273E34C64, + F5CCD78E2928A6021051AEE3, + 11D3E71143E92D6D541C2E68, + F8B25FD2FE72F0862EDA70AC, + 0721D51684D1E4BEAF849793, + 271866450733C15873B1E46D, + C33F5E40671D8969529DC1F3, + 0A9B3441E4C766603206171A, + CF095321F298B5EBCC94F41C, + 2116BBCD560828B835577E82, + C91C155CE2FBFB917E03E114, + E8345B1296211CB1845D88C6, + 1BB1E8928FBEB3F72621F2F6, + 104CA8597373932F80F25354, + E61A0BF68D610DA6AB86F94D, + 906854E5A523A5B01E5B5E63, + CB01B5AD5F8CC26814C1FAE8, + 986D508D78EA59268FADE965, + EA21A9139BBAE2238DBB6920, + E40C81964A35DCBA5C07A708, + 69B3DA0D93EFA18D005D4BBA, + F4E74A5B357BA4EA4CEC0F13, + 4B28F11FE91DFD5341610403, + 5B9F3AC6C97B813BB96F9C07, + B2D8F96F3F4463D678951CD6, + 1B6684D65B3AF31CAB4D7B8E, + 3568F7E50F7858A1B6279DDE, + D9F59FD82ECF3FDA305537AA, + 4EDEDEAB7029C5B5C2A63A15, + 919C366862EB3C10E5850D70, + 8D5DB6220A070CA7C6EF649B, + 27957B112247D501D6B6FB8C, + A61B0324CAD4DE2A04ECAF2D, + 769FABFC14A17F7AC2BBC65D, + 9915EA36F2BC695AD5DA1FB0, + 22866A3227D44A6B5CF577F6, + DDE841F2D06B35620C95F7BD, + 3E17AE4B984D9E4083124600, + 3B4E0B86B77DC40F15FB3F94, + B6F1AD93847540736A7C3B96, + E7AAC5B8A3584327D2A77AE3, + EA2B74AE3EBD1A8CE6BBE889, + 0FBF55B74F1BFBAF8F670E2C, + 30E6F8EE669C2F151A9F2956, + 58880E117B1FCE6771ED958A, + E00E9055E0D461FBA65415F4, + F5AA13686E3E014FA127B57E, + E77ED2BF4E691CDA0BDF67E5, + 6A194777720E39F99CEBDE68, + 23E572AAE21BB03B019F07EA, + D9158BF72A9410721CF32E92, + 8853EE56290506D1C5B1A324, + 2D583C31EE6E9A5D8ACD988F, + C49F54FB785A0B5D4D41B6BF, + CE38F82B1484802D0AD0E8BB, ); name = jpglib; sourceTree = ""; }; + E252C4CC79CD0D4A50359EF8 = {isa = PBXGroup; children = ( + E92CA7282B750596908F685C, + C468BC4730E745AD31CA903D, + 3DFE53F6F99C7D51A8032CB1, + 9EB8EAADA992AB7525B04C57, + 6EB3442488752F0077F61CFA, + 20AFC08D3825F8F1EA4C4352, + FE6B0496C0CC7E25BCB6A277, + 80D52462F8B49C3D1FBB6349, + F9D767E4012A0A1ADD83A533, + 90EB80CDB45A0909C2ABDCCF, + 22A423BB04E0A3F1C2C3CA63, + A0B76982E47F6552E076C115, + 2F85284E588516584213B5F1, + C75E0D3ABA4599B591806B6F, + 593FDB1011C838F5CB25E6A9, + A8ABBA51A3DEB23F46A5EAE6, + 650E5906E5CAAEABABFEEE1C, + 3CCEB87B02CFD73B01FE5E3C, + F1CB294C66C69F817C9CDC1B, + DEBEFE952C92EE38B62CCBA0, + 2524470C265DC4C41D0F12FD, ); name = pnglib; sourceTree = ""; }; + 16B6DDD69A3C6342C3ED929F = {isa = PBXGroup; children = ( + E0D35A029E21EB7BA9064153, + E252C4CC79CD0D4A50359EF8, + E758FAA869708918584DA19D, + CEF6725F5E19BCCBFFE5EB68, + 0DA6F88B400D1BA27A9EF72B, ); name = "image_formats"; sourceTree = ""; }; + 540901B179BD14810F98D941 = {isa = PBXGroup; children = ( + AEFAF28C900A0DFFC5F6FD40, + 2FB361FFB25BD8EFB6160374, + 4D4461D4DE302DC06DE22D68, + 73EF2B898A07179D14B9EE08, + 215273F35854D93D4684F590, + 3AE6DEF29143AA3E59CEB1DA, + D67E60A34C5191583B542922, + 269A9F80899756D1F87AA82D, ); name = images; sourceTree = ""; }; + 3C7EE0C47E42BE0F161EFB77 = {isa = PBXGroup; children = ( + 2F03461E6CBD4354FE073460, + 45DD050BF036D8362025CC86, + 7AB01CF3ABEAA9948DC8E0F8, + 72D5B90B3F201DE61EFF5904, + 5C67296AC2E94992F244B1A8, + 5779480339AAA112A12315A1, + 59DBC804E4110F9FCDDAB23F, + 759D310E427CAB584332F916, + A7F8A897765E91543FF21D5F, + 6F4E9231B5C05BC368C3450E, + 490E933166E75FBF2163CAE0, + 84568194A9D160AD5459F013, + C19A71E5C01BB38E1EEA2110, ); name = native; sourceTree = ""; }; + 8E26D163EE3DCAE501FEC883 = {isa = PBXGroup; children = ( + F075BDDDD4F7DBB900BB457B, + 13F0C5C5B5775E09051D19D0, + 2B64FDC069A6D6C03128F3C3, ); name = placement; sourceTree = ""; }; + FB0B308B3B55C9CE28D2A00A = {isa = PBXGroup; children = ( + C6780B6FBC8E601F934FC158, + BC17C7FEA1883ECACA434368, + 1A35F54335F030EB7CED69E1, + E3D96D5BBF636EF28DE616A4, + CC3BF308E1C5E427BE3CF882, + 16B6DDD69A3C6342C3ED929F, + 540901B179BD14810F98D941, + 3C7EE0C47E42BE0F161EFB77, + 8E26D163EE3DCAE501FEC883, + 06497F2BEB751B1840F27F62, + 1F58F7262450884A7E6BEF4F, + D8A1D9C7F7B42C75598A385F, + 1F58F7262450884A7E6BEF4F, ); name = "juce_graphics"; sourceTree = ""; }; + 1D45C78337A8A45497AF24D2 = {isa = PBXGroup; children = ( + 93286547177CBA88A45187FB, + 0377FDB5BDD3EC08C3F83FBD, ); name = application; sourceTree = ""; }; + CAD01FA6B80395085918D809 = {isa = PBXGroup; children = ( + CBDAC7F54358B29D622C7659, + 398873B7F0980B7D27356464, + 3BEC5630096C646AACD87205, + C4DDAA034449093B3E5A60ED, + 02B1467586FBA8F5C471CDCE, + 215A5B82922A9A95F68FE7BA, + 7597CCE58D1B95FB4342EA91, + B327326ADE69CAEA4410249D, + 2736B4003A6B1E2AFB5B0F60, + 9AB80400C174A565798B4DC7, + C2B755C206D3AE7B0B4463ED, + FC70FA0EABE4EDF87260618B, + 7D272E58C41C4B21A689C487, + 54FF63024B2057CB82A3009C, + 0EC222E14CC7DADB74BE6E80, + 0C338FC94EF538E20E3BD3CB, + 7E4D2E09A56241058D485070, + 737EA145B8366E0A55A8D6A0, ); name = buttons; sourceTree = ""; }; + DCF8B732A58C87567166A89F = {isa = PBXGroup; children = ( + 26D37FF39DEC1AAD1AC03A53, + 2A28AB08780C76D52CA8D732, + 34A09EB72E861BC2E41CF66E, + 2C7B8BA92ACDE7200C096AD9, + DED4D4557567F40DCDA8340A, + FB87C64D7D673B76E4B5209D, + 4E8EA77D5F1F16096D60F3CF, + F5668D6CDFED46BDB46C2E75, + 6A84B8A22E5DA1A769CCC18C, ); name = commands; sourceTree = ""; }; + FEA821AB5BDC38FC45CCFB0E = {isa = PBXGroup; children = ( + 4840F2FDA6C6A3E0CA41FA3D, + FAB83E6CF91D59901CD87D9F, + 0E204D9C847CEC5AE4391ED5, + E39BFCA09C446A2AD541D66C, + 3AB83A04D08F2F329AB81AE1, + C5EDD0AB18A362054E8FE283, + 5AD9E3796F5E585A81810A09, + 3A795BC053BEA2428052FEBE, + CC485BE41CFF25257214B6EA, ); name = components; sourceTree = ""; }; + BCCE53D07CFE5BBCF58B00F5 = {isa = PBXGroup; children = ( + 31AA33CB3A5577B36EE0017D, + FAF5B61706BC2CD2EB68B550, + FF748D1941B41C1794A241EA, + C08E2831019572E220A71669, + 23C9352D9EEFA048506947EE, + 272EA32D51A8C8AD73A45D9D, + 76597C68627FE0AF43DEC454, + 1CF24016C5884A75DE865988, + 02633833709D15831BB6A4B8, + E4FE73FA8F2ADD14B7E7812E, + FD2C8067AE30B6CEE4CE988F, + 57BFD80A8E5673123D9004B8, + 5687068AA9A10610CCCAE92C, + A6722561E959322FC2D3F8D7, + DEB1AA246A3B2804C43992C8, ); name = drawables; sourceTree = ""; }; + 306F1A4F0336750F6B01B5DE = {isa = PBXGroup; children = ( + BFE7003BFA12C79A7E70E2F8, + A34E3CFE305D1CC76C0046C1, + A288992FC193721FE3DB4BD9, + 961B5BA203F6A096FC1D5221, + A02B644EE002D5CDFDBEB472, + A59CDBDDAAB25C0621DE2C22, + 5F2ABD15045B9C2D45BBB281, + 49294AB2D8C5CCBBE763EA04, + 98BD14DB6D84583B0A2138AD, + 599F21A262B43F26B31A0137, + 1A54156E7F0715AA90652992, + 75AA9C6E3FC6AAE881B93CA3, + 38448998E8030347F182B334, + 7BF8065AC65F92C392CDB058, + DF5C47F2732316263F27F35B, + 340EA1B2263C37EC8A7B6014, + 43BB607E9D1BC08AAF03B711, + 71E11286C74E10382B85CAF6, + 6E0317C6D582381E18F6FC28, + 5467983B508645F3246CADF1, + F49D80F0D4131FFEA98F85BC, + 3986436BB1332AA00187E0BC, ); name = filebrowser; sourceTree = ""; }; + C4EB51DE075E129C945DD29E = {isa = PBXGroup; children = ( + 3DE8B0B99FE443C92EE32CCF, + AD2E097A960F2A4A946CF177, + 687551D7CBDC73E3D249A30E, + 60001B432129FD5855629F3E, + 19CDD6C2AE371BE31174D5F1, + 78D3A157D1DCAB72DC7D4FF2, + 332586DA099D853A0202054A, + C8F3A77AFEF173C097EB08CD, + AB7710558CEE0A3C649AD2AA, + 0AA6BBC6867F7EEA5C10722A, + 1DCD9527835FD4771E959818, + 948ACEC6E5E7FB3963593D14, + 7EC2BB0FBA7BEC433B901162, ); name = keyboard; sourceTree = ""; }; + 33C4DEF9DFBC1B0AC46194DB = {isa = PBXGroup; children = ( + E2CD239EB674A987631C1F95, + D2F9B4B64C205F3461541930, + 8E607B1E70CF61A3B3F8B230, + D202B1DF5EEDD627489E729D, + 65E03D29E9BA76F1CF344B75, + 7B121FD3C6971459B5EC4DE0, + F83D0DB57AB2C58AA5FFCE39, + A9717066C7343E734BBA14A7, + 6259E41DD05DF414BFAEFF1F, + FA06D31009B123A360853CCB, + DA5417FE6CC33732AF61D3BA, + B29BA78743A8C82A8575D41C, + FB6917E81414FA81F7442188, + 2A1D123CDD681C79A4830CD9, + 5321E4A1DB897A2B7CF23AC0, + A02D981AD55D9C837497D9DF, + ABA533A5D4493250568E3659, + 1C14BD4230F9672D9AE44BFF, + E912FFD60443431073F49E05, + 97C4CF34A7B666E1076D8643, + D3BB46A0AFF947844690B42F, + E2D85F080ACAE32DED909D5C, + 2926E85AC4A3BDBC357DADA8, + 0DEF8B7D54BF56ED8569D690, + 3DA85B078D53F40F9AE66620, + 4581D33463D9A6F637E8CDD8, + 46AF0A703258AEE24688FE5B, + 5CD9180E4223F79C65313EF8, + B9C32654F4F4FBDD5B8D8371, + 134A859AAAD880C6CA78BA16, + 7890A2750EB787AEBCA75F19, + 7F5A0B43EA4CE0599C30637B, + 03AF279CB4C8AA1B917C9E6E, + F581127924048FE75A58A428, + 0BB1F767785BA329DAE91DBD, + 680095499A49102EF1B7F3C0, + 930DC0F3CD592DE7B6A6945E, + 5634188A865D1AED86FC1030, + DE56F99143A2BEF2EC4E15A0, ); name = layout; sourceTree = ""; }; + C7F69DEF5735EE1DE8040CFE = {isa = PBXGroup; children = ( + 49E68BE55F02C76D1A39B8E9, + 1072ED1E4C961324C65D3305, + 9D08A5F790FC71D1BE770D20, + 23543D16B95632B1C14B943E, + 0DE80059716B40D2D9BBEFC9, + 77F678CCA2C005969380CA48, + E8A878C2CE1A7EB1EEF6B92E, + 19BF72ABEB3B9D8D776744EE, ); name = lookandfeel; sourceTree = ""; }; + 56D11FD66F31AAC989E14651 = {isa = PBXGroup; children = ( + B435295F7A3969E6EBD4E9B1, + 1FEB7C2AD69F03FD21C04CD8, + 226BD1CCCAD60DBD0167568E, + 16E132B11E1648815CEFF729, + 716E7225D1FAE92136DDE91A, + 6ABDB6B3BC707D5EA4E754E5, ); name = menus; sourceTree = ""; }; + 321D3D0E76FDD485F0E19A91 = {isa = PBXGroup; children = ( + F053B1F18F39980BB1E8F98A, + 492DC3C535B73B14A707133A, + 276FEE4DBCB6806D06E959BB, + 1D0E04EA23573F4C5199DFF3, ); name = misc; sourceTree = ""; }; + C746B6625833C2CEA0E19D07 = {isa = PBXGroup; children = ( + 77847C660F3D9562BD1469FB, + E222435250E8A57C88E441F8, + 721BC1EF4670F969B327BCFE, + E6335D36399077078BC78ECC, + 060D039A8903F16757040051, + FD456DC8A0AA86BA70897D1A, + 4A65ADBD6816BF0C9FE56E0F, + 57436F09E9FE1CB619681DE1, + D0F5CD629E1D7C466E87A7E6, + 15BEE6B9299B0E97F16C07D8, + 7BD3D12701E20AD0509702C5, + 31531D45E19AEC8E3EC90C90, + 13ECF6CF71CA92E4E1F845C6, + EA1AA20402977B302BF5D363, + C9F2ECCBC4868DE614C90303, + B3A5905404A72FDE0888DF46, + EAEA770719580DF72D030505, + 66AF1158C662CB915EE1F216, + 0E4C2A01524E87834E2FB4B2, + EEC74F1DE224D270462503B0, ); name = mouse; sourceTree = ""; }; + 34C8BBB7ADCBF087368A0BBD = {isa = PBXGroup; children = ( + EC7D9B630F5FB46258974133, + AA1F66345AFB2EFA32855F27, + 46A6F1936584ED15D40366DE, + E5F14F3C17FA5BC721CF06CE, + 5ECB1585CB10B6336F35039E, + 06B84EC6276C82A50AA87A78, + 137382482B888F9A1245CB52, + E4E4B644F52739096EC9ED59, + FC25CF1063C88216E3462839, + 2973E5E96EE07B12B06E4901, + F2070BC848C05F66E134D7E4, + D4C6A262AAC6CD01030A56FC, + D81D661338436E213B25F8BF, + 0D5C830BBE28DBA8795B10DE, + A07531AA213977EA9B7ABFC3, + 12B073CF9C72D46B540CB899, ); name = native; sourceTree = ""; }; + 699393ECB7C57E463E608EEE = {isa = PBXGroup; children = ( + 7E5C701836EE0E311AE805B7, + 1CDA4FD4B1B51222AEE6DCA2, + 04E0627AC999CE642D9009F5, + 01B2BABD6C54666254257CF9, + BE531AFED218010571C90AAD, + 2F6F34739BCD0348BAC4D5BE, + 35656731DCD6703896CEE2E8, + BC2B18695DB1F8287E5CD7A4, + 2C126377CD039D5D20DF0090, + F18CEC0613E333793CE487D1, + 6B130B8EFF75E1ECF0E20F21, + 731A4FE5C9250FE1D83D2008, + A79EA78DB02B7098DE470DC2, + ACBA16D63E4470083B7CE29D, ); name = positioning; sourceTree = ""; }; + E0ED8FECDD5ECEB822B913E5 = {isa = PBXGroup; children = ( + 7F0EFEADDCDF0B8C3BD1278B, + 263C2C63172A2793CE67D3D4, + 9F8621A060D21CD4F8E52082, + 04D3FE9C1AC2AB770BFFE0EF, + 5FEDA06DD9D390733743ED0F, + A0A4D1CCCA84F1D6EC92D442, + D62EA842B44315CFBCB24BCF, + CEB10C78DD0C1F9970029F25, + 40C17131B384BEEB66A4FAB1, + 28DC9D131B0DAEB78CEA016A, + CD768752C091A375ADC708A7, + D81B4D2BFB753FFD2D6F3AF0, + B62F00B50AC42FC2DC1ADEEE, + 2FAF11C9F6C314A36C879445, ); name = properties; sourceTree = ""; }; + EFB162A49E91B2A648212C14 = {isa = PBXGroup; children = ( + D403908B6B803FA4EF5BDBBF, + 67606EF1CD1DDF9D69C93DFB, + F72B09FDE33658D77B49C7A6, + 392CEE74B1D96166F05D02D9, + B22A37C8077912A763F8FAEE, + 34A1DB27664840651D853100, + 093309B3FE42407C9C80EB2F, + B979BF385FBD2717200311E7, + 9851670A2A94D090ABDCD8EC, + F392A87E5AE1D4D390FCF488, + 4C9BD4A188792CD1AA04D76E, + 976DD9AF4615787148AD3141, + 86A4BD370ED34FF4CC252A18, + 2F7EBCA1222D6D2E4B89FC2E, + B000E9B383585F14D4106B33, + 199FB84B17D7610C48A08C12, + 451702B185B088648F14A833, + 25616CCE492D37070C5FCBFF, + 2EA0BA49F0FEBB8B4BBEE3E0, + 0F40FDDE37B6B63FEA333F05, + E24521953703852377A32D70, + 4846DC8E7DFB0B17B0FCFF60, + 4307B791E5DC631C9447D24C, + 641322D5C3949AED6682C101, + 814F764F531DA3B45B982764, + 9EBFDCA556AB40E02BC2D3D9, + 6FC15D6A4868FBA38C374110, ); name = widgets; sourceTree = ""; }; + EFFEDEC35E4A38750F7CB582 = {isa = PBXGroup; children = ( + 4EECFA337A245BA2F32FDE9C, + 90168C92385FFFE93633DD25, + 2E7B68565DA034DDCF34573C, + 6FACB6671DF178C374D288C3, + 531078615D14BDA90A50AA53, + B4E737B45F3090ECA81D34CE, + 9A798AA0771301D879ACA0E6, + 6A5C7073E616E3C027C7298C, + B58ED38442F322226E81E930, + 8E25DB9F4F02D1EB553DD954, + 9D86489534874805E5005BEF, + 7C145A4C116A743CB8D0624F, + 031D1BC4C76359BA17663E17, + A49C327EA3CD090C4768925D, + AF000B66A6C3683AA30FFA85, + CB6596103EE0B3579B8D2C3C, + 8033E71C6724106F16F7FC35, + 678100D85EB6578B7390BE6F, + 33FED0E86133FA3439FCA42B, ); name = windows; sourceTree = ""; }; + 54AC93CB6D9A615C39CB06B5 = {isa = PBXGroup; children = ( + 1D45C78337A8A45497AF24D2, + CAD01FA6B80395085918D809, + DCF8B732A58C87567166A89F, + FEA821AB5BDC38FC45CCFB0E, + BCCE53D07CFE5BBCF58B00F5, + 306F1A4F0336750F6B01B5DE, + C4EB51DE075E129C945DD29E, + 33C4DEF9DFBC1B0AC46194DB, + C7F69DEF5735EE1DE8040CFE, + 56D11FD66F31AAC989E14651, + 321D3D0E76FDD485F0E19A91, + C746B6625833C2CEA0E19D07, + 34C8BBB7ADCBF087368A0BBD, + 699393ECB7C57E463E608EEE, + E0ED8FECDD5ECEB822B913E5, + EFB162A49E91B2A648212C14, + EFFEDEC35E4A38750F7CB582, + 20352597FF0FD0A4B487CCFC, + 7CA69469B3AFC9137FB98243, + CD9017D48D6C56C7D57426E8, + 7CA69469B3AFC9137FB98243, ); name = "juce_gui_basics"; sourceTree = ""; }; + C30D3AF040D73E55B642D612 = {isa = PBXGroup; children = ( + 7F81AFE4D54AA74B17E81899, + C6438C01636AC02F3ACEF42D, + 00D6F7A03576F399711D5ABC, + B86B55CF411F403FBE6EDD8B, + 26083ECFA60A676C6365DA3D, + 4D84F3F6235C49D0ABAF4885, + 8A9F1BF21DEC92A64F468E9C, + 9DCF20D6DD5D63567ED73A68, + 5E0AA1FA0367D0B8D32A5FDB, + 52C4BC3D28F8184BC2F6B022, + 6F303FBDC38398256ADA7BA7, + 4A7DB9A482CFE6B1FCCA6174, ); name = "code_editor"; sourceTree = ""; }; + 6C8E42821ED5F48D5E1162DF = {isa = PBXGroup; children = ( + F312C15C8FF357815A5D852D, + 6897A03FBCF6F3E3FE02DD69, ); name = documents; sourceTree = ""; }; + 175807F9D449A924A35D7995 = {isa = PBXGroup; children = ( + C438A00F7FAE0D151BC99D0B, + D1831592A88B72CE43CB9130, + B6C06A491AB738501ACC77AE, ); name = embedding; sourceTree = ""; }; + D77358461927DD290D45860D = {isa = PBXGroup; children = ( + C6FFBF028815A3D4D197C1ED, + D1C39914B1CDF9FDCF40F03C, + 7991C45FB3CCD45D46A7EBDE, + E30A6EED52F978044DBCB34C, + 9CD5DB53DE796873DC2EE4E0, + 9DB368AB3A1712F5E741DF8E, + AF4D1F728B7B429CBDEDC468, + 541BEA0E11518594C696094F, + 27609A10FE09083D4C31AC75, + D7BEC4451FBA09761F065B12, + 515145EF420E45BB7E0402C5, + 9C2237E651B7A187DCBB75B9, + 78655006F91EC8E5C99A6991, + CD875963C6F9C05BA11A4AC9, + B19D61C3D2D7BF60030FD1E2, + 48FC93C2649A6B6B478AB4B8, + 77D91228977E55D6C4D6C97A, + A6EA6620D7460A9405F56693, + 54EB9618ADF1901432C2345F, + 40B2DF2617C73C0928FF7D93, ); name = misc; sourceTree = ""; }; + 181AFE89615BD447AC837B49 = {isa = PBXGroup; children = ( + D71710BA7E52689EBFD91588, + 7A5FADFA9A6CF71D5D2B9FC6, + 36CA5FBB8A3CE191E952D894, + D76F72244214BDDDB9C1D42A, + C19D89C56696F5747C298985, + 816E973AAA295DE63DEBC95D, + 4C512E6E088C4B973E866756, + 529810AFE34B3B173DF7E89B, + E2760CFD55AAE533FAD166FD, + 58C7100720C49C23EA841B13, + F80A4EA6BE0D985876B9D4F4, + B107BF03016269AF7369630B, ); name = native; sourceTree = ""; }; + 62BBDE7395E0E3796E989B57 = {isa = PBXGroup; children = ( + C30D3AF040D73E55B642D612, + 6C8E42821ED5F48D5E1162DF, + 175807F9D449A924A35D7995, + D77358461927DD290D45860D, + 181AFE89615BD447AC837B49, + 416061525348EB462B1603AB, + FCEA59DF5F16B5921093D94E, + BAF64118ACD931F4A899D18E, + FCEA59DF5F16B5921093D94E, ); name = "juce_gui_extra"; sourceTree = ""; }; + 564E35379D5589270D4653A0 = {isa = PBXGroup; children = ( + C29CB9EBB689083DD7D99F54, + 64E5B84F1FA947FA88171033, + 2BAB647B7DA103003A8A11AE, + 656121CD59DA8E95455ABC28, ); name = geometry; sourceTree = ""; }; + CDC14C396BA572BB165A74EE = {isa = PBXGroup; children = ( + AFDDCF42011A661D8A965550, + 604CC1744C3DFD07E43F6A82, + 4227DAE98212844575D0D944, + 2BC6A9CE84273433047F4C50, + D2CEF899F0C7DBD82CF4E7C7, + 007566E450CC50CB63D1C11C, + DB116314BC85AB60708C199F, ); name = native; sourceTree = ""; }; + 3A941A5B0BD465C28238ECA9 = {isa = PBXGroup; children = ( + 3E2249E2AB8DC6FDCC87F9BF, + BCBB30471154DD69D59BEBE8, + 23DAF49B90FB33BB97015CCA, + CDA6D006DEE688324E2540AE, + 0B3FBA4C1CFF6D65E98AEFE1, + D2232FD5C2B1A361C7240C8D, + CED32466B0978556B4914463, + DEE463950B10373AB5BF1415, + CF632EB4950A71EC56190E3A, + 0717F6008681C056FF92AE41, + 3A56A49F2C3025A4E7E74C35, + 75F17FFBBC74680724103F2C, + E9DEFB9A762600C429F59B02, + 108582FEE483C0EAE1FF767D, + 30B2BDB16DA4D564F64D5CC7, + 289FA55DC2B007BF300AA35E, + 713A0BDC7ACC4F399C378A0D, ); name = opengl; sourceTree = ""; }; + 8FF38470A066ACA3CCA5DDE8 = {isa = PBXGroup; children = ( + BEB701ADA012A1394ACCDD18, + 64F35E547771BD3A4ABFDB0D, ); name = utils; sourceTree = ""; }; + 202A764FF05218C5841E9086 = {isa = PBXGroup; children = ( + 564E35379D5589270D4653A0, + CDC14C396BA572BB165A74EE, + 3A941A5B0BD465C28238ECA9, + 8FF38470A066ACA3CCA5DDE8, + A6C807BA364341686874B1BB, + 60EEA5E3658D36513E1A25FD, + EC98B82ADF1187D4060FC49F, + 60EEA5E3658D36513E1A25FD, ); name = "juce_opengl"; sourceTree = ""; }; + C46BAD19056C6AFCB61C8747 = {isa = PBXGroup; children = ( + D50B2337B08D012224137BB2, + 6D10CDFC1618B6213AFBE599, + 2789350038E8D9166DFD8868, + 15645B0CE83271714833C3A1, + 1D9FE5BF60A6EF6602D24565, + 48B6293FB2A5EC097988691B, + 5CC42EF0177D6F44F26F0570, + EE7F58530DF1E8A70FBA260B, + 8B7CDF2D950588E762525811, + FB0B308B3B55C9CE28D2A00A, + 54AC93CB6D9A615C39CB06B5, + 62BBDE7395E0E3796E989B57, + 202A764FF05218C5841E9086, ); name = "Juce Modules"; sourceTree = ""; }; + 570059654CA1868864255660 = {isa = PBXGroup; children = ( + F8B3AB36958E31EB6BDD2ED3, + C0CE2DBD3E07E03623F29618, + 5D4BEFEC0E129949C58876DD, + 1559C4DCC579423B1A05CF89, + C8FBA54671860CB3636D7A76, + 460CE4619594A71E9BCE42A3, + 830F7516AA78496143854C16, + 7BAF11556203D550CE5E1560, + 9B6EFF388E31F7E480380796, + 993004BB53091A0FBEB0E418, + 787FCE42F8EFF4F62B69363D, + E6D09BB9A4D7592AA53FA63C, + EF02685FDE72675F4B750650, + 5D456364DF7A1A1C1CBCA1F0, + 0BB1CC68B7BB505B480D6174, ); name = "Juce Library Code"; sourceTree = ""; }; + 1E12EFB6B9C7E4C3C84DDD09 = {isa = PBXGroup; children = ( + 2FB1B8992C3497C5EFE0EB53, + 850772CD6A8E69EACB89CB02, ); name = Resources; sourceTree = ""; }; + D42221B44DA511070878FD61 = {isa = PBXGroup; children = ( + 3ABF91F41A610658F5B17523, + 230ECC5997D02F79080DD55D, + 0726638325182847094ED297, + D4DA6EE18C4F580FC8A220B8, + 88A4EE2311F2D063677B1822, + 8F72A06310DEB2A6E6A0DA18, + B5A57064DFB2BD47270A42E6, + C48524BD8330E2A4710D99FF, + 71386FCE19C79DC74F1623FF, + BF4AF0A830706A80B2D1ADC5, + 6D2AA08C51674AC355C3C4B9, + 849DD96FF7656F52F1972F38, ); name = Frameworks; sourceTree = ""; }; + 601DB48110F08969733B9EF6 = {isa = PBXGroup; children = ( + 00558AF4AA37DD00B15B21A8, ); name = Products; sourceTree = ""; }; + 5D6DAC6A0A862ED325F1DB34 = {isa = PBXGroup; children = ( + C09481DD2BAC5454AB6D8772, + C46BAD19056C6AFCB61C8747, + 570059654CA1868864255660, + 1E12EFB6B9C7E4C3C84DDD09, + D42221B44DA511070878FD61, + 601DB48110F08969733B9EF6, ); name = Source; sourceTree = ""; }; + 393AB3EA96DA8E7AEC86AD00 = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.BlocksInfo; }; name = Debug; }; + 0B575022E52611F3CF802F93 = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.BlocksInfo; }; name = Release; }; + A88A0CA8AD66B56AA8A51727 = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "BlocksMonitor"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + 2BBD53B147BD1DADF7CD0BFA = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + PRODUCT_NAME = "BlocksMonitor"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + E8EE955C952218247BF6E77A = {isa = PBXTargetDependency; target = 9C6BA11D1261B15A2F52EB60; }; + 61CDB68D74329CF066EA57D6 = {isa = XCConfigurationList; buildConfigurations = ( + A88A0CA8AD66B56AA8A51727, + 2BBD53B147BD1DADF7CD0BFA, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + F2ABB4C4775A3BD1B6DEBD6A = {isa = XCConfigurationList; buildConfigurations = ( + 393AB3EA96DA8E7AEC86AD00, + 0B575022E52611F3CF802F93, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + D08BB290D5F778E1450AD3F3 = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 8865BAB56BA7C344961B8C78, ); runOnlyForDeploymentPostprocessing = 0; }; + 9C2AF708958E95C688544D95 = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D2EAAF12976946EE8C45FB0B, + 1AED1945B3F869251C0AE961, + E17C689ADF6944C5DBFB87FC, + 09AD8FE14AB25476E5B895F0, + 0D2A7C0067BE86F2CFDF180E, + C3771B5653D9760164E40FBB, + 8DCEF084990118E5E8781096, + 3A0447CE74DA2F6F547581E2, + 7D8C07117F2E674F24031D72, + C8DA641BA677BA04FD298869, + D650FA605147B0260A8A94C7, + C38A78F09BFE9B4378FF23C0, + 86C00C6333D9F12FED7C221A, + 3FB72C8D23D5F6CB77C88C63, ); runOnlyForDeploymentPostprocessing = 0; }; + 2410311707C8C7B9E6CFE23D = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 732F2CFE7C7968D6638BC5D1, + 76FF951CD8921AFDC24648FB, + F88FFF629E47F8CB257B7157, + 924BC7B8C552402D22C30959, + B92223437105FB45C1973FF5, + A458DA809D44DCCB921620D2, + 1D0987A356ABA1C3B4A785BD, + B4F2D8F80F24A3A8B90D2519, + 918E1AB94993954386975092, + F0C1938D68C0994E2338379C, + 3601C134F7B5A1AB67E814D7, + FBF94D0D4A73E69D79614536, ); runOnlyForDeploymentPostprocessing = 0; }; + 9C6BA11D1261B15A2F52EB60 = {isa = PBXNativeTarget; buildConfigurationList = F2ABB4C4775A3BD1B6DEBD6A; buildPhases = ( + D08BB290D5F778E1450AD3F3, + 9C2AF708958E95C688544D95, + 2410311707C8C7B9E6CFE23D, ); buildRules = ( ); dependencies = ( ); name = "BlocksMonitor (App)"; productName = BlocksMonitor; productReference = 00558AF4AA37DD00B15B21A8; productType = "com.apple.product-type.application"; }; + B42B7651E1352BD7921E5754 = {isa = PBXProject; buildConfigurationList = 61CDB68D74329CF066EA57D6; attributes = { LastUpgradeCheck = 0440; TargetAttributes = { 9C6BA11D1261B15A2F52EB60 = { SystemCapabilities = {com.apple.InAppPurchase = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 5D6DAC6A0A862ED325F1DB34; projectDirPath = ""; projectRoot = ""; targets = (9C6BA11D1261B15A2F52EB60); }; + }; + rootObject = B42B7651E1352BD7921E5754; +} diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..c0af172f62 --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,128 @@ +{ + "images": [ + { + "idiom": "iphone", + "size": "29x29", + "filename": "Icon-29.png", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "29x29", + "filename": "Icon-29@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "29x29", + "filename": "Icon-29@3x.png", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "40x40", + "filename": "Icon-Spotlight-40@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "40x40", + "filename": "Icon-Spotlight-40@3x.png", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "57x57", + "filename": "Icon.png", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "57x57", + "filename": "Icon@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "filename": "Icon-60@2x.png", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "filename": "Icon-@3x.png", + "scale": "3x" + }, + { + "idiom": "ipad", + "size": "29x29", + "filename": "Icon-Small-1.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "29x29", + "filename": "Icon-Small@2x-1.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "40x40", + "filename": "Icon-Spotlight-40.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "40x40", + "filename": "Icon-Spotlight-40@2x-1.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "50x50", + "filename": "Icon-Small-50.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "50x50", + "filename": "Icon-Small-50@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "72x72", + "filename": "Icon-72.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "72x72", + "filename": "Icon-72@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "76x76", + "filename": "Icon-76.png", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "76x76", + "filename": "Icon-76@2x.png", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "83.5x83.5", + "filename": "Icon-83.5@2x.png", + "scale": "2x" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/Contents.json b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000000..235448f31e --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,57 @@ +{ + "images": [ + { + "orientation": "portrait", + "idiom": "iphone", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-iphone-2x.png" + }, + { + "orientation": "portrait", + "idiom": "iphone", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-iphone-retina4.png", + "subtype": "retina4" + }, + { + "orientation": "portrait", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "1x", + "filename": "LaunchImage-ipad-portrait-1x.png" + }, + { + "orientation": "landscape", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "1x", + "filename": "LaunchImage-ipad-landscape-1x.png" + }, + { + "orientation": "portrait", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-ipad-portrait-2x.png" + }, + { + "orientation": "landscape", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x", + "filename": "LaunchImage-ipad-landscape-2x.png" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png new file mode 100644 index 0000000000..b8a0025f63 Binary files /dev/null and b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png differ diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png new file mode 100644 index 0000000000..817cdf8057 Binary files /dev/null and b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png differ diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png new file mode 100644 index 0000000000..f3685597a1 Binary files /dev/null and b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png differ diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png new file mode 100644 index 0000000000..5447ddfc5b Binary files /dev/null and b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png differ diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png new file mode 100644 index 0000000000..efe9e82a32 Binary files /dev/null and b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png differ diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png new file mode 100644 index 0000000000..d0e3261440 Binary files /dev/null and b/examples/BLOCKS/BlocksMonitor/Builds/iOS/BlocksMonitor/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png differ diff --git a/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist b/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist new file mode 100644 index 0000000000..b124692a8e --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/Builds/iOS/Info-App.plist @@ -0,0 +1,43 @@ + + + + + + LSRequiresIPhoneOS + + UIViewControllerBasedStatusBarAppearance + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + BlocksMonitor + CFBundleDisplayName + BlocksMonitor + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + + NSHighResolutionCapable + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIBackgroundModes + + + diff --git a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/AppConfig.h b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/AppConfig.h index 07401f2fb0..c06660a97b 100644 --- a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/AppConfig.h +++ b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/AppConfig.h @@ -17,22 +17,24 @@ //============================================================================== // [BEGIN_USER_CODE_SECTION] -// (You can add your own code in this section, and the Projucer will not overwrite it) +#define DUMP_TOPOLOGY 1 // [END_USER_CODE_SECTION] //============================================================================== -#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_blocks_basics 1 -#define JUCE_MODULE_AVAILABLE_juce_core 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_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_blocks_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_core 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 //============================================================================== #ifndef JUCE_STANDALONE_APPLICATION @@ -99,6 +101,32 @@ //#define JUCE_USE_WINDOWS_MEDIA_FORMAT #endif +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + //#define JUCE_PLUGINHOST_VST +#endif + +#ifndef JUCE_PLUGINHOST_VST3 + //#define JUCE_PLUGINHOST_VST3 +#endif + +#ifndef JUCE_PLUGINHOST_AU + //#define JUCE_PLUGINHOST_AU +#endif + +//============================================================================== +// juce_audio_utils flags: + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER +#endif + //============================================================================== // juce_core flags: diff --git a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/JuceHeader.h b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/JuceHeader.h index 8b8970223f..57c4f59e3a 100644 --- a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/JuceHeader.h +++ b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/JuceHeader.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_processors.cpp b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_processors.cpp new file mode 100644 index 0000000000..bfe172edd0 --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_processors.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_processors.mm b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_processors.mm new file mode 100644 index 0000000000..b80ae9017f --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_processors.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_utils.cpp b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_utils.cpp new file mode 100644 index 0000000000..97bd2c568c --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_utils.mm b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_utils.mm new file mode 100644 index 0000000000..8eae7c6e2f --- /dev/null +++ b/examples/BLOCKS/BlocksMonitor/JuceLibraryCode/juce_audio_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksMonitor/Source/BlockComponents.h b/examples/BLOCKS/BlocksMonitor/Source/BlockComponents.h index 960eb6944a..f23f93af92 100644 --- a/examples/BLOCKS/BlocksMonitor/Source/BlockComponents.h +++ b/examples/BLOCKS/BlocksMonitor/Source/BlockComponents.h @@ -1,4 +1,3 @@ - #ifndef BLOCKCOMPONENTS_H_INCLUDED #define BLOCKCOMPONENTS_H_INCLUDED @@ -15,7 +14,6 @@ class BlockComponent : public Component, private Timer { public: - /** Constructor */ BlockComponent (Block::Ptr blockToUse) : block (blockToUse) { @@ -36,9 +34,11 @@ public: // If this is a Lightpad then redraw it at 25Hz if (block->getType() == Block::lightPadBlock) startTimerHz (25); + + // Make sure the component can't go offscreen if it is draggable + constrainer.setMinimumOnscreenAmounts (50, 50, 50, 50); } - /** Destructor */ ~BlockComponent() { // Remove any listeners @@ -53,19 +53,16 @@ public: void updateStatsAndTooltip() { // Get the battery level of this Block and inform any subclasses - const float batteryLevel = block->getBatteryLevel(); + auto batteryLevel = block->getBatteryLevel(); handleBatteryLevelUpdate (batteryLevel); - // Format the tooltip string - const String ttString = "Name = " + block->getDeviceDescription() + "\n" - + "UID = " + String (block->uid) + "\n" - + "Serial number = " + block->serialNumber + "\n" - + "Battery level = " + String ((int) (batteryLevel * 100)) + "%" - + (block->isBatteryCharging() ? "++" : "--"); - - // Update the tooltip string if it has changed - if (ttString != getTooltip()) - setTooltip (ttString); + // Update the tooltip + setTooltip ("Name = " + block->getDeviceDescription() + "\n" + + "UID = " + String (block->uid) + "\n" + + "Serial number = " + block->serialNumber + "\n" + + "Battery level = " + String ((int) (batteryLevel * 100)) + "%" + + (block->isBatteryCharging() ? "++" + : "--")); } /** Subclasses should override this to paint the Block object on the screen */ @@ -88,31 +85,105 @@ public: //============================================================================== /** Returns an integer index corresponding to a physical position on the hardware - for each type of Control Block. */ + for each type of Control Block. */ static int controlButtonFunctionToIndex (ControlButton::ButtonFunction f) { - static std::initializer_list map[] = - {{ControlButton::mode, ControlButton::button0}, - {ControlButton::volume, ControlButton::button1}, - {ControlButton::scale, ControlButton::button2, ControlButton::click}, - {ControlButton::chord, ControlButton::button3, ControlButton::snap}, - {ControlButton::arp,ControlButton:: button4, ControlButton::back}, - {ControlButton::sustain, ControlButton::button5, ControlButton::playOrPause}, - {ControlButton::octave, ControlButton::button6, ControlButton::record}, - {ControlButton::love, ControlButton::button7, ControlButton::learn}, - {ControlButton::up}, - {ControlButton::down}}; + using CB = ControlButton; - for (size_t i = 0; i < (sizeof (map) / sizeof (map[0])); ++i) - if (std::find (map[i].begin(), map[i].end(), f) != map[i].end()) - return static_cast (i); + static Array map[] = + { + { CB::mode, CB::button0 }, + { CB::volume, CB::button1 }, + { CB::scale, CB::button2, CB::click }, + { CB::chord, CB::button3, CB::snap }, + { CB::arp, CB::button4, CB::back }, + { CB::sustain, CB::button5, CB::playOrPause }, + { CB::octave, CB::button6, CB::record }, + { CB::love, CB::button7, CB::learn }, + { CB::up }, + { CB::down } + }; + + for (int i = 0; i < numElementsInArray (map); ++i) + if (map[i].contains (f)) + return i; return -1; } + Point getOffsetForPort (Block::ConnectionPort port) + { + using e = Block::ConnectionPort::DeviceEdge; + + switch (rotation) + { + case 0: + { + switch (port.edge) + { + case e::north: + return { static_cast (port.index), 0.0f }; + case e::east: + return { static_cast (block->getWidth()), static_cast (port.index) }; + case e::south: + return { static_cast (port.index), static_cast (block->getHeight()) }; + case e::west: + return { 0.0f, static_cast (port.index) }; + } + } + case 90: + { + switch (port.edge) + { + case e::north: + return { 0.0f, static_cast (port.index) }; + case e::east: + return { static_cast (-1.0f - port.index), static_cast (block->getWidth()) }; + case e::south: + return { static_cast (0.0f - block->getHeight()), static_cast (port.index) }; + case e::west: + return { static_cast (-1.0f - port.index), 0.0f }; + } + } + case 180: + { + switch (port.edge) + { + case e::north: + return { static_cast (-1.0f - port.index), 0.0f }; + case e::east: + return { static_cast (0.0f - block->getWidth()), static_cast (-1.0f - port.index) }; + case e::south: + return { static_cast (-1.0f - port.index), static_cast (0.0f - block->getHeight()) }; + case e::west: + return { 0.0f, static_cast (-1.0f - port.index) }; + } + } + case 270: + { + switch (port.edge) + { + case e::north: + return { 0.0f, static_cast (-1.0f - port.index) }; + case e::east: + return { static_cast (port.index), static_cast (0 - block->getWidth()) }; + case e::south: + return { static_cast (block->getHeight()), static_cast (-1.0f - port.index) }; + case e::west: + return { static_cast (port.index), 0.0f }; + } + } + } + + return Point(); + } + + int rotation = 0; + Point topLeft = { 0.0f, 0.0f }; + private: /** Used to call repaint() periodically */ - void timerCallback() override { repaint(); } + void timerCallback() override { repaint(); } /** Overridden from TouchSurface::Listener */ void touchChanged (TouchSurface&, const TouchSurface::Touch& t) override { handleTouchChange (t); } @@ -123,14 +194,34 @@ private: /** Overridden from ControlButton::Listener */ void buttonReleased (ControlButton& b, Block::Timestamp t) override { handleButtonReleased (b.getType(), t); } - //============================================================================== + /** Overridden from MouseListener. Prepares the master Block component for dragging. */ + void mouseDown (const MouseEvent& e) override + { + if (block->isMasterBlock()) + componentDragger.startDraggingComponent (this, e); + } + + /** Overridden from MouseListener. Drags the master Block component */ + void mouseDrag (const MouseEvent& e) override + { + if (block->isMasterBlock()) + { + componentDragger.dragComponent (this, e, &constrainer); + getParentComponent()->resized(); + } + } + + ComponentDragger componentDragger; + ComponentBoundsConstrainer constrainer; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BlockComponent) }; +//============================================================================== /** Class that renders a Lightpad on the screen */ -class LightpadComponent : public BlockComponent +class LightpadComponent : public BlockComponent { public: LightpadComponent (Block::Ptr blockToUse) @@ -154,23 +245,25 @@ public: g.fillAll (Colours::black); // size ration between physical and on-screen blocks - const Point ratio (r.getWidth() / block->getWidth(), - r.getHeight() / block->getHeight()); - const float maxCircleSize = block->getWidth() / 3.0f; + Point ratio (r.getWidth() / block->getWidth(), + r.getHeight() / block->getHeight()); + + float maxCircleSize = block->getWidth() / 3.0f; // iterate over the list of current touches and draw them on the onscreen Block for (auto touch : touches) { - const float circleSize = touch.touch.z * maxCircleSize; - const Point touchPosition = Point (touch.touch.x, touch.touch.y); + float circleSize = touch.touch.z * maxCircleSize; - const Colour c = colourArray[touch.touch.index]; - const Rectangle blob = - (Rectangle (circleSize, circleSize).withCentre (touchPosition)) * ratio; + Point touchPosition (touch.touch.x, + touch.touch.y); - const ColourGradient cg = ColourGradient (colourArray[touch.touch.index], blob.getCentreX(), blob.getCentreY(), - Colours::transparentBlack, blob.getRight(), blob.getBottom(), - true); + auto blob = Rectangle (circleSize, circleSize) + .withCentre (touchPosition) * ratio; + + ColourGradient cg (colourArray[touch.touch.index], blob.getCentreX(), blob.getCentreY(), + Colours::transparentBlack, blob.getRight(), blob.getBottom(), + true); g.setGradientFill (cg); g.fillEllipse (blob); @@ -181,21 +274,26 @@ public: private: /** An Array of colours to use for touches */ - Array colourArray = { Colours::red, Colours::blue, Colours::green, - Colours::yellow, Colours::white, Colours::hotpink, + Array colourArray = { Colours::red, + Colours::blue, + Colours::green, + Colours::yellow, + Colours::white, + Colours::hotpink, Colours::mediumpurple }; /** A list of current Touch events */ TouchList touches; - //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LightpadComponent) }; + +//============================================================================== /** Class that renders a Control Block on the screen */ -class ControlBlockComponent : public BlockComponent +class ControlBlockComponent : public BlockComponent { public: ControlBlockComponent (Block::Ptr blockToUse) @@ -205,13 +303,12 @@ public: addAndMakeVisible (roundedRectangleButton); // Display the battery level on the LEDRow - int numLedsToTurnOn = static_cast (static_cast (numLeds) * block->getBatteryLevel()); + auto numLedsToTurnOn = static_cast (numLeds * block->getBatteryLevel()); // add LEDs - LEDComponent* ledComponent; for (int i = 0; i < numLeds; ++i) { - ledComponent = new LEDComponent(); + auto ledComponent = new LEDComponent(); ledComponent->setOnState (i < numLedsToTurnOn); addAndMakeVisible (leds.add (ledComponent)); @@ -238,9 +335,9 @@ public: auto buttonRow1 = row.removeFromTop (rowHeight * 2).withSizeKeepingCentre (r.getWidth(), buttonWidth); auto buttonRow2 = row.removeFromTop (rowHeight * 2).withSizeKeepingCentre (r.getWidth(), buttonWidth); - for (int i = 0; i < numLeds; ++i) + for (auto* led : leds) { - leds.getUnchecked (i)->setBounds (ledRow.removeFromLeft (ledWidth).reduced (2)); + led->setBounds (ledRow.removeFromLeft (ledWidth).reduced (2)); ledRow.removeFromLeft (5); } @@ -261,7 +358,7 @@ public: void paint (Graphics& g) override { - const auto r = getLocalBounds().toFloat(); + auto r = getLocalBounds().toFloat(); // Fill a black rectangle for the Control Block g.setColour (Colours::black); @@ -281,7 +378,7 @@ public: void handleBatteryLevelUpdate (float batteryLevel) override { // Update the number of LEDs that are on to represent the battery level - int numLedsOn = static_cast (static_cast (numLeds) * batteryLevel); + int numLedsOn = static_cast (numLeds * batteryLevel); if (numLedsOn != previousNumLedsOn) for (int i = 0; i < numLeds; ++i) @@ -292,22 +389,22 @@ public: } private: + //============================================================================== /** Base class that renders a Control Block button */ - struct ControlBlockSubComponent : public Component, - public TooltipClient + struct ControlBlockSubComponent : public Component, + public TooltipClient { ControlBlockSubComponent (Colour componentColourToUse) - : componentColour (componentColourToUse), - onState (false) + : componentColour (componentColourToUse) {} /** Subclasses should override this to paint the button on the screen */ virtual void paint (Graphics&) override = 0; /** Sets the colour of the button */ - void setColour (Colour c) { componentColour = c; } + void setColour (Colour c) { componentColour = c; } /** Sets the on state of the button */ void setOnState (bool isOn) @@ -320,15 +417,15 @@ private: String getTooltip() override { for (Component* comp = this; comp != nullptr; comp = comp->getParentComponent()) - if (SettableTooltipClient* sttc = dynamic_cast (comp)) + if (auto* sttc = dynamic_cast (comp)) return sttc->getTooltip(); - return String(); + return {}; } //============================================================================== Colour componentColour; - bool onState; + bool onState = false; //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ControlBlockSubComponent) @@ -372,8 +469,7 @@ private: void paint (Graphics& g) override { - const auto r = getLocalBounds().toFloat(); - + auto r = getLocalBounds().toFloat(); g.setColour (componentColour.withAlpha (0.2f)); g.fillRoundedRectangle (r.toFloat(), 20.0f); @@ -382,11 +478,11 @@ private: // is a button pressed? if (doubleButtonOnState[0] || doubleButtonOnState[1]) { - const float semiButtonWidth = r.getWidth() / 2.0f; - const auto semiButtonBounds = r.withWidth (semiButtonWidth) - .withX (doubleButtonOnState[1] ? semiButtonWidth : 0) - .reduced (5.0f, 2.0f); + auto semiButtonWidth = r.getWidth() / 2.0f; + auto semiButtonBounds = r.withWidth (semiButtonWidth) + .withX (doubleButtonOnState[1] ? semiButtonWidth : 0) + .reduced (5.0f, 2.0f); g.fillEllipse (semiButtonBounds); } @@ -399,7 +495,7 @@ private: } private: - bool doubleButtonOnState[2] = {false, false}; + bool doubleButtonOnState[2] = { false, false }; }; /** Displays a button press or release interaction for a button at a given index */ diff --git a/examples/BLOCKS/BlocksMonitor/Source/Main.cpp b/examples/BLOCKS/BlocksMonitor/Source/Main.cpp index c6362a9d51..6163196518 100644 --- a/examples/BLOCKS/BlocksMonitor/Source/Main.cpp +++ b/examples/BLOCKS/BlocksMonitor/Source/Main.cpp @@ -1,4 +1,3 @@ - #include "../JuceLibraryCode/JuceHeader.h" #include "MainComponent.h" @@ -31,6 +30,10 @@ public: centreWithSize (getWidth(), getHeight()); setResizable (true, true); setVisible (true); + + #if JUCE_IOS + setFullScreen (true); + #endif } void closeButtonPressed() override diff --git a/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h b/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h index 1ea567d9af..9fcf93adee 100644 --- a/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h +++ b/examples/BLOCKS/BlocksMonitor/Source/MainComponent.h @@ -1,4 +1,3 @@ - #ifndef MAINCOMPONENT_H_INCLUDED #define MAINCOMPONENT_H_INCLUDED @@ -10,7 +9,8 @@ */ class MainComponent : public Component, public TopologySource::Listener, - private Timer + private Timer, + private Button::Listener { public: MainComponent() @@ -19,12 +19,30 @@ public: noBlocksLabel.setText ("No BLOCKS connected...", dontSendNotification); noBlocksLabel.setJustificationType (Justification::centred); - addAndMakeVisible (noBlocksLabel); + + zoomOutButton.setButtonText ("+"); + zoomOutButton.addListener (this); + zoomOutButton.setAlwaysOnTop (true); + + zoomInButton.setButtonText ("-"); + zoomInButton.addListener (this); + zoomInButton.setAlwaysOnTop (true); // Register MainComponent as a listener to the PhysicalTopologySource object topologySource.addListener (this); startTimer (10000); + + addAndMakeVisible (noBlocksLabel); + addAndMakeVisible (zoomOutButton); + addAndMakeVisible (zoomInButton); + + #if JUCE_IOS + connectButton.setButtonText ("Connect"); + connectButton.addListener (this); + connectButton.setAlwaysOnTop (true); + addAndMakeVisible (connectButton); + #endif } void paint (Graphics& g) override @@ -34,6 +52,10 @@ public: void resized() override { + #if JUCE_IOS + connectButton.setBounds (getRight() - 100, 20, 80, 30); + #endif + noBlocksLabel.setVisible (false); const int numBlockComponents = blockComponents.size(); @@ -45,56 +67,84 @@ public: return; } - // Work out the maximum diplay area for each Block - const Rectangle bounds = getLocalBounds().reduced (20); + zoomOutButton.setBounds (10, getHeight() - 40, 40, 30); + zoomInButton.setBounds (zoomOutButton.getRight(), zoomOutButton.getY(), 40, 30); - auto squareRoot = sqrt (numBlockComponents); - int gridSize = (int)squareRoot; - - if (squareRoot - gridSize > 0) - gridSize++; - - int sideLength = bounds.getWidth() / gridSize; - - int xCounter = 0; - int yCounter = 0; - bool hasSpaceForControlBlock = false; - Rectangle lastControlBlockBounds; - - for (auto block : blockComponents) + if (isInitialResized) { - Rectangle blockBounds; - const Block::Type type = block->block->getType(); + // Work out the area needed in terms of Block units + Rectangle maxArea; + for (auto blockComponent : blockComponents) + { + auto topLeft = blockComponent->topLeft; + int rotation = blockComponent->rotation; + int blockSize = 0; - // Can fit 2 ControlBlockComponents in the space of one LightpadBlockComponent - if (type == Block::liveBlock || type == Block::loopBlock) - { - if (hasSpaceForControlBlock) - { - blockBounds = lastControlBlockBounds.withY (lastControlBlockBounds.getY() + (int)(sideLength * 0.5)); - hasSpaceForControlBlock = false; - } - else - { - blockBounds = Rectangle (bounds.getX() + (xCounter * sideLength), bounds.getY() + (yCounter * sideLength), - sideLength, (int)(sideLength * 0.5)); - hasSpaceForControlBlock = true; - lastControlBlockBounds = blockBounds; - } - } - else - { - blockBounds = Rectangle (bounds.getX() + (xCounter * sideLength), bounds.getY() + (yCounter * sideLength), - sideLength, sideLength); + if (rotation == 180) + blockSize = blockComponent->block->getWidth(); + else if (rotation == 90) + blockSize = blockComponent->block->getHeight(); + + if (topLeft.x - blockSize < maxArea.getX()) + maxArea.setX (topLeft.x - blockSize); + + blockSize = 0; + if (rotation == 0) + blockSize = blockComponent->block->getWidth(); + else if (rotation == 270) + blockSize = blockComponent->block->getHeight(); + + if (topLeft.x + blockSize > maxArea.getRight()) + maxArea.setWidth (topLeft.x + blockSize); + + blockSize = 0; + if (rotation == 180) + blockSize = blockComponent->block->getHeight(); + else if (rotation == 270) + blockSize = blockComponent->block->getWidth(); + + if (topLeft.y - blockSize < maxArea.getY()) + maxArea.setY (topLeft.y - blockSize); + + blockSize = 0; + if (rotation == 0) + blockSize = blockComponent->block->getHeight(); + else if (rotation == 90) + blockSize = blockComponent->block->getWidth(); + + if (topLeft.y + blockSize > maxArea.getBottom()) + maxArea.setHeight (topLeft.y + blockSize); } - block->setBounds (blockBounds.reduced (5)); + float totalWidth = std::abs (maxArea.getX()) + maxArea.getWidth(); + float totalHeight = std::abs (maxArea.getY()) + maxArea.getHeight(); - if (++xCounter >= gridSize) - { - yCounter++; - xCounter = 0; - } + blockUnitInPixels = static_cast (jmin ((getHeight() / totalHeight) - 50, (getWidth() / totalWidth) - 50)); + + masterBlockComponent->centreWithSize (masterBlockComponent->block->getWidth() * blockUnitInPixels, + masterBlockComponent->block->getHeight() * blockUnitInPixels); + + isInitialResized = false; + } + else + { + masterBlockComponent->setSize (masterBlockComponent->block->getWidth() * blockUnitInPixels, masterBlockComponent->block->getHeight() * blockUnitInPixels); + } + + for (auto blockComponent : blockComponents) + { + if (blockComponent == masterBlockComponent) + continue; + + blockComponent->setBounds (masterBlockComponent->getX() + static_cast (blockComponent->topLeft.x * blockUnitInPixels), + masterBlockComponent->getY() + static_cast (blockComponent->topLeft.y * blockUnitInPixels), + blockComponent->block->getWidth() * blockUnitInPixels, + blockComponent->block->getHeight() * blockUnitInPixels); + + if (blockComponent->rotation != 0) + blockComponent->setTransform (AffineTransform::rotation (blockComponent->rotation * (static_cast (double_Pi) / 180.0f), + static_cast (blockComponent->getX()), + static_cast (blockComponent->getY()))); } } @@ -103,16 +153,32 @@ public: { // Clear the array of Block components blockComponents.clear(); + masterBlockComponent = nullptr; - // Get the array of currently connected Block objects from the PhysicalTopologySource - Block::Array blocksArray = topologySource.getCurrentTopology().blocks; + // Get the current topology + auto topology = topologySource.getCurrentTopology(); - // Create a BlockComponent object for each Block object - for (auto& block : blocksArray) - if (BlockComponent* blockComponent = createBlockComponent (block)) + // Create a BlockComponent object for each Block object and store a pointer to the master + for (auto& block : topology.blocks) + { + if (auto* blockComponent = createBlockComponent (block)) + { addAndMakeVisible (blockComponents.add (blockComponent)); + if (blockComponent->block->isMasterBlock()) + masterBlockComponent = blockComponent; + } + } + + // Must have a master Block! + if (topology.blocks.size() > 0) + jassert (masterBlockComponent != nullptr); + + // Calculate the relative position and rotation for each Block + positionBlocks (topology); + // Update the display + isInitialResized = true; resized(); } @@ -120,16 +186,16 @@ private: /** Creates a BlockComponent object for a new Block and adds it to the content component */ BlockComponent* createBlockComponent (Block::Ptr newBlock) { - const Block::Type type = newBlock->getType(); + auto type = newBlock->getType(); if (type == Block::lightPadBlock) return new LightpadComponent (newBlock); + if (type == Block::loopBlock || type == Block::liveBlock) return new ControlBlockComponent (newBlock); - // should only be connecting a Lightpad or Control Block! + // Should only be connecting a Lightpad or Control Block! jassertfalse; - return nullptr; } @@ -140,12 +206,239 @@ private: c->updateStatsAndTooltip(); } + /** Zooms the display in or out */ + void buttonClicked (Button* button) override + { + #if JUCE_IOS + if (button == &connectButton) + { + BluetoothMidiDevicePairingDialogue::open(); + return; + } + #endif + + if (button == &zoomOutButton || button == &zoomInButton) + { + blockUnitInPixels *= (button == &zoomOutButton ? 1.05f : 0.95f); + resized(); + } + } + + /** Calculates the position and rotation of each connected Block relative to the master Block */ + void positionBlocks (BlockTopology topology) + { + Array blocksConnectedToMaster; + + float maxDelta = std::numeric_limits::max(); + int maxLoops = 50; + + // Store all the connections to the master Block + Array masterBlockConnections; + for (auto connection : topology.connections) + if (connection.device1 == masterBlockComponent->block->uid || connection.device2 == masterBlockComponent->block->uid) + masterBlockConnections.add (connection); + + // Position all the Blocks that are connected to the master Block + while (maxDelta > 0.001f && --maxLoops) + { + maxDelta = 0.0f; + + // Loop through each connection on the master Block + for (auto connection : masterBlockConnections) + { + // Work out whether the master Block is device 1 or device 2 in the BlockDeviceConnection struct + bool isDevice1 = true; + if (masterBlockComponent->block->uid == connection.device2) + isDevice1 = false; + + // Get the connected ports + auto masterPort = isDevice1 ? connection.connectionPortOnDevice1 : connection.connectionPortOnDevice2; + auto otherPort = isDevice1 ? connection.connectionPortOnDevice2 : connection.connectionPortOnDevice1; + + for (auto otherBlockComponent : blockComponents) + { + // Get the other block + if (otherBlockComponent->block->uid == (isDevice1 ? connection.device2 : connection.device1)) + { + blocksConnectedToMaster.addIfNotAlreadyThere (otherBlockComponent); + + // Get the rotation of the other Block relative to the master Block + otherBlockComponent->rotation = getRotation (masterPort.edge, otherPort.edge); + + // Get the offsets for the connected ports + auto masterBlockOffset = masterBlockComponent->getOffsetForPort (masterPort); + auto otherBlockOffset = otherBlockComponent->topLeft + otherBlockComponent->getOffsetForPort (otherPort); + + // Work out the distance between the two connected ports + auto delta = masterBlockOffset - otherBlockOffset; + + // Move the other block half the distance to the connection + otherBlockComponent->topLeft += delta / 2.0f; + + // Work out whether we are close enough for the loop to end + maxDelta = jmax (maxDelta, std::abs (delta.x), std::abs (delta.y)); + } + } + } + } + + // Check if there are any Blocks that have not been positioned yet + Array unpositionedBlocks; + + for (auto blockComponent : blockComponents) + if (blockComponent != masterBlockComponent && ! blocksConnectedToMaster.contains (blockComponent)) + unpositionedBlocks.add (blockComponent); + + if (unpositionedBlocks.size() > 0) + { + // Reset the loop conditions + maxDelta = std::numeric_limits::max(); + maxLoops = 50; + + // Position all the remaining Blocks + while (maxDelta > 0.001f && --maxLoops) + { + maxDelta = 0.0f; + + // Loop through each unpositioned Block + for (auto blockComponent : unpositionedBlocks) + { + // Store all the connections to this Block + Array blockConnections; + for (auto connection : topology.connections) + if (connection.device1 == blockComponent->block->uid || connection.device2 == blockComponent->block->uid) + blockConnections.add (connection); + + // Loop through each connection on this Block + for (auto connection : blockConnections) + { + // Work out whether this Block is device 1 or device 2 in the BlockDeviceConnection struct + bool isDevice1 = true; + if (blockComponent->block->uid == connection.device2) + isDevice1 = false; + + // Get the connected ports + auto thisPort = isDevice1 ? connection.connectionPortOnDevice1 : connection.connectionPortOnDevice2; + auto otherPort = isDevice1 ? connection.connectionPortOnDevice2 : connection.connectionPortOnDevice1; + + // Get the other Block + for (auto otherBlockComponent : blockComponents) + { + if (otherBlockComponent->block->uid == (isDevice1 ? connection.device2 : connection.device1)) + { + // Get the rotation + int rotation = getRotation (otherPort.edge, thisPort.edge) + otherBlockComponent->rotation; + if (rotation > 360) + rotation -= 360; + + blockComponent->rotation = rotation; + + // Get the offsets for the connected ports + auto otherBlockOffset = (otherBlockComponent->topLeft + otherBlockComponent->getOffsetForPort (otherPort)); + auto thisBlockOffset = (blockComponent->topLeft + blockComponent->getOffsetForPort (thisPort)); + + // Work out the distance between the two connected ports + auto delta = otherBlockOffset - thisBlockOffset; + + // Move this block half the distance to the connection + blockComponent->topLeft += delta / 2.0f; + + // Work out whether we are close enough for the loop to end + maxDelta = jmax (maxDelta, std::abs (delta.x), std::abs (delta.y)); + } + } + } + } + } + } + } + + /** Returns a rotation in degrees based on the connected edges of two blocks */ + int getRotation (Block::ConnectionPort::DeviceEdge staticEdge, Block::ConnectionPort::DeviceEdge rotatedEdge) + { + using edge = Block::ConnectionPort::DeviceEdge; + + switch (staticEdge) + { + case edge::north: + { + switch (rotatedEdge) + { + case edge::north: + return 180; + case edge::south: + return 0; + case edge::east: + return 90; + case edge::west: + return 270; + } + } + case edge::south: + { + switch (rotatedEdge) + { + case edge::north: + return 0; + case edge::south: + return 180; + case edge::east: + return 270; + case edge::west: + return 90; + } + } + case edge::east: + { + switch (rotatedEdge) + { + case edge::north: + return 270; + case edge::south: + return 90; + case edge::east: + return 180; + case edge::west: + return 0; + } + } + + case edge::west: + { + switch (rotatedEdge) + { + case edge::north: + return 90; + case edge::south: + return 270; + case edge::east: + return 0; + case edge::west: + return 180; + } + } + } + + return 0; + } + //============================================================================== PhysicalTopologySource topologySource; OwnedArray blockComponents; + BlockComponent* masterBlockComponent = nullptr; Label noBlocksLabel; + TextButton zoomOutButton; + TextButton zoomInButton; + + int blockUnitInPixels; + bool isInitialResized; + + #if JUCE_IOS + TextButton connectButton; + #endif + //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent) }; diff --git a/examples/BLOCKS/BlocksSynth/BlocksSynth.jucer b/examples/BLOCKS/BlocksSynth/BlocksSynth.jucer index 816521b1f0..abf0ba9ad8 100644 --- a/examples/BLOCKS/BlocksSynth/BlocksSynth.jucer +++ b/examples/BLOCKS/BlocksSynth/BlocksSynth.jucer @@ -2,15 +2,17 @@ + jucerVersion="4.3.1"> - + + @@ -31,8 +33,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,6 +100,8 @@ + + @@ -92,6 +121,8 @@ + + @@ -99,6 +130,8 @@ + + diff --git a/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile b/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile index a3907bb59b..d164909f29 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile +++ b/examples/BLOCKS/BlocksSynth/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := BlocksSynth BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := BlocksSynth BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -61,6 +68,8 @@ OBJECTS := \ $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o \ $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o \ $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o \ + $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o \ + $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o \ $(JUCE_OBJDIR)/juce_blocks_basics_d4b203f5.o \ $(JUCE_OBJDIR)/juce_core_75b14332.o \ $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o \ @@ -77,7 +86,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -85,7 +94,7 @@ check-pkg-config: clean: @echo Cleaning BlocksSynth - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping BlocksSynth @@ -94,61 +103,71 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp + -@mkdir -p $(JUCE_OBJDIR) + @echo "Compiling juce_audio_processors.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp + -@mkdir -p $(JUCE_OBJDIR) + @echo "Compiling juce_audio_utils.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_blocks_basics_d4b203f5.o: ../../JuceLibraryCode/juce_blocks_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_blocks_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/BLOCKS/BlocksSynth/Builds/MacOSX/BlocksSynth.xcodeproj/project.pbxproj b/examples/BLOCKS/BlocksSynth/Builds/MacOSX/BlocksSynth.xcodeproj/project.pbxproj index 480c335c2c..52bd82211c 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/MacOSX/BlocksSynth.xcodeproj/project.pbxproj +++ b/examples/BLOCKS/BlocksSynth/Builds/MacOSX/BlocksSynth.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ BAF807771E4AC4C725E9D058 = {isa = PBXBuildFile; fileRef = 503BEED13051A5D02CE34644; }; C04A639A8ABC44749B49ED36 = {isa = PBXBuildFile; fileRef = CBA6A8FCB0795C89183A8E71; }; 5CC0AE888A8B9CF85C8C1077 = {isa = PBXBuildFile; fileRef = 42747FC2DD3F362950112EFA; }; + 07BAB7A4E711F7D277A12A2A = {isa = PBXBuildFile; fileRef = 52E369CEF09DA65EB1C803D0; }; E0A65700714D2B1B3F21887F = {isa = PBXBuildFile; fileRef = 318FAEC913D5880AF074E666; }; F2321DBBDA9BEE2577B4B73B = {isa = PBXBuildFile; fileRef = 794233C62A59EA02725A7E9E; }; DEE7F200E0ABCA5F551B8BC8 = {isa = PBXBuildFile; fileRef = 67663D2E66C7F1C1B6BD6392; }; @@ -22,6 +23,8 @@ 8708D4FDEA2E44838FF56AF7 = {isa = PBXBuildFile; fileRef = DD58AB0C80AB9D0B6850983D; }; DD6F640B22B1E254A30D23A3 = {isa = PBXBuildFile; fileRef = AF5F2E4B8A7F1B9A507D043C; }; BFF81A843FE6013A9D16AA34 = {isa = PBXBuildFile; fileRef = E1CDDE683A9D3D00182334F0; }; + 82F8207EB62803F4657E2BA5 = {isa = PBXBuildFile; fileRef = E556673D5DAC2B12EA15F47D; }; + BDF46ADA08E24B4C1BB27481 = {isa = PBXBuildFile; fileRef = 1041E86890E9D2C1418A2D95; }; BF6FA2A2A66FBBB7C0C82551 = {isa = PBXBuildFile; fileRef = A40D3E3FFBEC78F04EE0DE5A; }; A6C2383A9E41C6C0492FBD71 = {isa = PBXBuildFile; fileRef = B0B1C0956FEDCBF2AF19CA6B; }; 36CA4CF2E34082660F108708 = {isa = PBXBuildFile; fileRef = 17544537ED6A83CB6C3F3201; }; @@ -41,6 +44,7 @@ 016076F4D43D15D063A73530 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 016588BDC792CF429E174F41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; 01A60EB1D681DDDB424C6C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = "../../../../../modules/juce_core/zip/zlib/inftrees.h"; sourceTree = "SOURCE_ROOT"; }; + 01B1D517AD162A5026608299 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 01D383BCF77D7704F896259D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; 01D74B926C822FA65B778B9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; 01E8CC333D1A9910A72DF28D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; @@ -56,7 +60,9 @@ 03D95B05B6B6219344A8A5D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; 03E5101ED7B3FD06AE564F67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CachedValue.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_CachedValue.cpp"; sourceTree = "SOURCE_ROOT"; }; 045387853469E755B6DD741C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 0464E2958DB999F27CE02A05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; 047EB8514054BDBED92A4D65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 04DB9A00796D0BCF472F4ED7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; 0501056AA00F05DCCC93B577 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; 05201B7662BC062EA0347E8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; 0522ECF89AFDFE087301B50B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexItem.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h"; sourceTree = "SOURCE_ROOT"; }; @@ -85,6 +91,7 @@ 0CC672620B96382CF715F134 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; 0D0667D008F7C834DC045F87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; 0D197638970189B7FC7EF613 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0D338CDA65D6421601AD96F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; 0D9243B5198B9D61504F7ED5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; 0D9ED7566FF0B245CCB60C50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; 0DF05CB01EC7CAE5299DCB5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -101,15 +108,19 @@ 0FE96D4C83E1846EE628D57F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; 100828DA91AC6887A22A621A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; 100E8BF90F31D1E045AF1755 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = "SOURCE_ROOT"; }; + 1030640E8440F02E9F19CD2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1041E86890E9D2C1418A2D95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; 110E2D4DFEF9D028905A9127 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 11535233EB65A31CB9A1C84C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; 116D8F769D93B11A66D4F7E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 1177C66130BC8F6B57308A18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrumPadLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; 119E392B5554CFFE8416EA5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; 11BB8490A209BD313ED39DAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; + 11DF8683332B9FD586EB5F31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; 125D60706A72F35D9D6CB3FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; 12748EFBC072636CB555FEED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; 12ACF9469751D8A6D9D90E53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12BA74B2CDC0FCB813E8325C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; 12EFD54DC8E9CC723BEBE172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; 130A891678CD13F5B8F813A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; 1358B9554210B5D0242C1BA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; @@ -142,6 +153,7 @@ 18F92B6A8369D0F1A9B6705F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; 197DFCCEA5C1199B9C4D463F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; 19EC8D47288168DED8C317DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 1A10133EE03E0BADFFDBDF3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; 1A544EA5E8AC999D7F681DDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Oscillators.h; path = ../../Source/Oscillators.h; sourceTree = "SOURCE_ROOT"; }; 1A8D2D0748598F01CEAAD4F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; 1A9A02020BE1CA5BBD29B437 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -149,11 +161,14 @@ 1ACC1653C65505E7AC29FB74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; 1AE75CB0FA61A03429A4E540 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; 1B07C855838E6EF1D058D000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; + 1B1343A9DC0E656198B69B82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; 1B70293A6CF7F13B06B6569A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; 1BCEE2EA9EFF8FD8078F15A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; 1BEF40062139BA123A55EB92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; 1BF2C3AD8A498D0D55F22623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1C89625695166D8B4FC54C90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; 1CFA52094CFDFB61E549EBD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + 1D68A8CBC08DA143889B10A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; 1DA19C5E99B3551ADE26E391 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; 1DA2607436F77B9E79C8D031 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; 1E3AD3FF27C698CD3EE18C93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -171,6 +186,7 @@ 2092AE5634DE6877D83C4CD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; 20C2BF35D7BA96D597557B46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 211D0DA102619F3D2048A741 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_blocks_basics.cpp"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 219D180F89964DDE7AC126F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; 21AFD9310BD1AA9619366C27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; 21CA089CEAAEFB67132DE3CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; 21D9B04B3BDC4F1A87DA2C9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; @@ -211,6 +227,7 @@ 27C1AA486727BE2A93B11251 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; 282CADA9E37A136FDBC83A2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 284D3D37AFE280A47CFE5732 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextDiff.cpp"; path = "../../../../../modules/juce_core/text/juce_TextDiff.cpp"; sourceTree = "SOURCE_ROOT"; }; + 287802E2B7AE2D2F962B7D07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; 29019D28852F4BA5CC9C303A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; 298DDF49756F536B50469375 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; 2A545C8625733F4D09626C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c"; sourceTree = "SOURCE_ROOT"; }; @@ -230,6 +247,8 @@ 2E85944AC4191910EE758B99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../JuceLibraryCode/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; 2E8F5CD0CF6A9F42FF864B9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; 2ED49D97994DA78A2920445B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c"; sourceTree = "SOURCE_ROOT"; }; + 2F59CDC2CDF48A14E047F62C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2F5AD1DB8E7F13A21CA462D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; 2F8470C7C024CC6EF9669961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; 2FAD51414C9D18ADA5B2CC16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; 2FAFF79F8E9250E599BEFDDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; @@ -255,6 +274,7 @@ 3521249F8414079020AF98B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; 35E2249D105A48B11BCF2DA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; 35EA9261CEA2AD1A800B702C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + 36071D4BA204F795714F93D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 361070599D3204D0C42F7A22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; 36C6D8EECCE8A8A9E21D3895 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuleBasedTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; 36FB8C0AD65A9A875C90C662 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; @@ -306,6 +326,7 @@ 3F57879007B1AD70426EB58B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; 40268160C3A821B16C2C0106 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; 40297764149FD52F1B1B8FF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; }; + 407FC6EC1D6396DEB581D217 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; 4083423AC8967EC85128335F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c"; sourceTree = "SOURCE_ROOT"; }; 408CD5BDE5207D96C2DC6F0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; 40AFF57E82F006FB59D0BB29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; }; @@ -346,6 +367,7 @@ 4ACC5E02BDD5C78A53E2522B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/format.h"; sourceTree = "SOURCE_ROOT"; }; 4B28AF2241AA37172D6069F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; 4B83FCEFA91AFCB06756FC71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C2F138D50A040E9CB6E901B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; 4C3567E01529EB4730FACB2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; }; 4CA1F3B93913EA346771DFAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; 4CCBED88413D14521B8B840E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -379,6 +401,7 @@ 5259900DBEADF9B1E596D6CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; 528DB2421C8140B90DA7B1C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; 52B7F9D0AC8BF316E96E480A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 52E369CEF09DA65EB1C803D0 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; 52E468B373041BD029A57DA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; 537FDE261B80BA27AB0F268F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; 5414D9D1E3345D557CEFE983 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; @@ -396,6 +419,7 @@ 5715EA1172976C34BF618365 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; 571FD86FB21925B70F4C2439 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; 5737072AA0D7763823260699 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 576F1C585F1F6A618B23BDD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 57702152570891F1CEF1F858 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; 577DD1C1B6BC82BE5E32C290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; 57A1B82612ACD48D50CDFB42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; @@ -415,9 +439,11 @@ 5B14C9DFF557CC6B9A05E34D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatusLight.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_StatusLight.h"; sourceTree = "SOURCE_ROOT"; }; 5B48244E76313E054EFEF426 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; 5B74F105B018F0D2497D818E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + 5B9B8D944DFA78FF1203EEC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 5C1AF59B9E0F831176669ED8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = "SOURCE_ROOT"; }; 5C8F1A64FF9B42D0D2BED7FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; 5C9A7CB614CE1DFA574772DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 5CE665392C6A2CB24B5AFEB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; 5D2D967B09263CB6D21E1FCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; 5D4BE633D03013E33B4B376D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; 5D5BA1131FE12F38BA17E290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; @@ -429,6 +455,7 @@ 5EA0ABB0B2C055D60AF351B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; 5EA120BDDD4CEB77D4440C20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; 5F622792DD550ED2F85D6BC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5FB26A689F97B61284059C55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; 6085D0F7B3DFD7C8A7564A9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; 609FED9DD1CE6987BC6B0407 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c"; sourceTree = "SOURCE_ROOT"; }; 60CB8017B900A02E7C7C1667 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; @@ -439,9 +466,12 @@ 61C2BDE6AF13FDD7F7CFB20F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; 61CAFC1A3803B6D6BA913E84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; 61F8335D20F500B2BC612A2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 61FABA233363E41B6172EEA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 62062D02BDD756A9F4CD9917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; 6208ED57BF34A1758751DC64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; 6229C851E122AA62DFE23981 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 627432C87D828B863D9496AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62DE47E4B2EC3BAEECC8D198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 630596B03B4198D9FD956D98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; 634A8B60191C15D6693B40BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 634DD22DD8F7DE4BA1BA2A8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -453,6 +483,7 @@ 64B11380D40B53153C293929 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; 65977552E1C7B054FE006EAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; 65D2779D3783A6B0DB9DD7C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = "SOURCE_ROOT"; }; + 65D7CA579D9704B795D9F6D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 660163B352BBE406FE15DDEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; 660DC5473197813B4E38CC4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = "SOURCE_ROOT"; }; 664C16822A70A0AC8DE7BB7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; @@ -472,6 +503,7 @@ 685892F6AF56A2B6442C0BA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "codec_internal.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = "SOURCE_ROOT"; }; 686B051DB68F5583A3DE1C31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_22.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h"; sourceTree = "SOURCE_ROOT"; }; 68C6E67D53E770D9165DFB36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/endswap.h"; sourceTree = "SOURCE_ROOT"; }; + 68E98AD88691547A6D7C674E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; 68F5730BEE88039A3E7E3195 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; 69A4D0C62C1F177C0C877A3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; 69DCAD4B37C6DFC393CAE941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; @@ -489,6 +521,7 @@ 6D31F014FC058BF4E76B8415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c"; sourceTree = "SOURCE_ROOT"; }; 6D9C6DABD7D5E768EF9DCEC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; 6DC63841ED21D2CC651147C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_events.cpp"; path = "../../../../../modules/juce_events/juce_events.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E3C4FF98005E3A56700D483 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 6E9222D7B192A7EF575F5003 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; 6F0D14BB0BF350DD7664CFE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; 6F60258048938FF67DFCDDE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -505,6 +538,7 @@ 7127835E262D977E179ABA27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; 71A349845B0AB4ECB6FB56AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; 720BE46FF929B0A8D37DBB05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 72330895D5682846F3A52223 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 72578DAAE178DD6EDC268A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; 729FBFD01DE3FC0BAFB0C65F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../../../../modules/juce_core/zip/zlib/compress.c"; sourceTree = "SOURCE_ROOT"; }; 72E27E0C9F64F1BACD6EF454 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitreader.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h"; sourceTree = "SOURCE_ROOT"; }; @@ -552,6 +586,7 @@ 7D3372B86F706B2EB958851D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; 7D5439A24397FB12F5B97C69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 7D7F423A3FB0AC8EDBE62944 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7E2295EBF292A71D44A8F638 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 7E391A85858C06D5F6286DE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 7E3C266A9195C927EDA3D45B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; 7E6FCB5568F74241A49A5B91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -562,6 +597,7 @@ 80235293554BB0956701E9ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; 80BBC5D053419503A600F7D5 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Protocol Format.txt"; path = "../../../../../modules/juce_blocks_basics/protocol/Protocol Format.txt"; sourceTree = "SOURCE_ROOT"; }; 80CB00749EEB05EB63E6AB02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80E4915CE095F2D92F311C02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; 80E878BF0672503772AB3C6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 8103743F82032789096ACEB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; 811EB7C741184EAE672D6581 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -577,8 +613,10 @@ 82C32D94FAED75BF1FBB3FCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h"; sourceTree = "SOURCE_ROOT"; }; 83123049240352B97AEC1FBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; 8319007F2F0B140F09E10D2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 831D05658D06983B575A395C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WaveshapeProgram.h; path = ../../Source/WaveshapeProgram.h; sourceTree = "SOURCE_ROOT"; }; 83A8F8A11B1659400C525E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PhysicalTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; 83AFB3E647BB6ED40AA571A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder_framing.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h"; sourceTree = "SOURCE_ROOT"; }; + 83FAEBCF478836A81887DBDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; 8406536DA0B794016B0CC15B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c"; sourceTree = "SOURCE_ROOT"; }; 84182A25498E78D5DEF6E925 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 84187C96133F7EAC39E46D9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -600,6 +638,7 @@ 87ECEEBFFBBFB5281E991537 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; 87F3AD7F998AC58254A5CB14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c"; sourceTree = "SOURCE_ROOT"; }; 881A4A50718FA7CE3F3E5375 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; + 884D100B3B1AFA24F697670B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; 884EE4AA71233E725BAC6B70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; 88587028FF53FA6CFA0D4887 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; 8899E26B15AA5CE8D18A2DB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -623,7 +662,9 @@ 8CCE915477416067D7B0F311 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; 8CDDF045B2A202FCA5DFD932 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; 8D267142A6682D9886D0CD9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D2CB3EBCA42093713991A64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; 8D69477B2E980591FF3F78EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 8DA77A4F70C03CE81EC8ACAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; 8DC679191499EAE03463DC3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; 8DC8471AAC1855AC5FCF5A49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; 8E5D35AF16D5BC97A9F05B26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -637,6 +678,7 @@ 8FACD18D8DF3D14D269091CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 8FBD6AD2AA7111D2BE5D52AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codec.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h"; sourceTree = "SOURCE_ROOT"; }; 8FC4E1BB74B356F0099608B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + 8FD66AA4A824CFB66BCB8660 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; 90040097B24860C360877342 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; 90092F1E5EBA0AA6057FBE6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; 905BDA536A972F6FC36B356F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -654,6 +696,7 @@ 936C85C333BE640A26BEA92B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h"; sourceTree = "SOURCE_ROOT"; }; 93704EAD7D73562297F10C7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; 939C507246EB383834A13299 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c"; sourceTree = "SOURCE_ROOT"; }; + 93A79C572AAFAA95F17A2548 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; 93B87F458F1F33BFD30539FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; 93FDFB1DD4E2378AE729BA02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; 94123CD59BFDC04A9DFCB71B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; @@ -663,8 +706,11 @@ 95636B26C770CFEADB3201BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; 959F6D02ECA6B976583C67FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; 95A6DD5234F109DB3ABC983C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9619CAAC1844127539A434C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; 96A355D0A7CCC55998862273 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96A92A30161434408958DBE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; 96B1C4A89CB5A5423A116F84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96B923167B37C9C228C9E4B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; 96C5E46FAC93C462A7EBF4DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; 96FC2E3988B10054B1A11323 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; 9707394FCE0F9ED5DDBB0524 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; @@ -675,6 +721,7 @@ 97C27DB9A68F6AACFF857A46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; 97DC76FC35177C25FECDD169 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c"; sourceTree = "SOURCE_ROOT"; }; 982342A0B98DB337C74DC50A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; + 98248643528AA2985CA7C657 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; 982EF3C57A98E26EAD69AE4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngset.c"; sourceTree = "SOURCE_ROOT"; }; 987209E1994B07DBD16DEC8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; 98A71ED25423EDA3D71C5A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -690,8 +737,11 @@ 9BA7FB3722B671A47037C909 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpegint.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h"; sourceTree = "SOURCE_ROOT"; }; 9BC007D5846F63F0F37CF97B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; 9BC9AD541C62AF0DD2BC11D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 9C16ACB286837989E5380B6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; + 9C236720F87AB53B983968B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; 9C331AACD288AAD9F7FDF881 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; 9C5ED73E2DF5FDCE5189E945 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + 9CABAAB05C27919CF1D26D0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; 9CD701758E71973D7BF7CC8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 9D16672FDB24B44DFF13E4B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; 9D36B0CD0D56048687E2A573 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../../../../modules/juce_core/zip/zlib/zlib.h"; sourceTree = "SOURCE_ROOT"; }; @@ -704,13 +754,17 @@ 9EA89360E878DE14172E34CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; 9F02393F695A4882E729627C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 9F13791A2E1028E08EFB5A32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F4D55451C7742F3B4828F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; 9F87B75B0923DE3CA7124827 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c"; sourceTree = "SOURCE_ROOT"; }; A00E9DF1CB3DB09C81B31D98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FFT.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.cpp"; sourceTree = "SOURCE_ROOT"; }; A0B8C5DC5B1C48EF0B25D9DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; A0C6E00A2F5204606A1B0196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + A0EE4B43B6C9D6E38527BCE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; A0FF0FE7A4BA41F808EBF3C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; A10A8513A3239AF1A4E59DD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + A13820B7BFD6AF837A2E6C57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; A16EB5BE88FD8E25BD4F4158 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + A18168B9063A9605B68FD197 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; A1842A3B2210EA4F3E78A614 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; A19C3A3A74428A4C8EF44EBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = highlevel.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h"; sourceTree = "SOURCE_ROOT"; }; A1C12AC77EFFF165AC6B053D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; @@ -741,6 +795,7 @@ A76BBF30944A9FC89679BE5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; A7A27C3E995A0A0CAF75F018 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlocksProtocolDefinitions.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; A7AB12DC3DB28027A4F73022 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7B9FCBCD699D5D69178412E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; A7DBC8925B48CFF83A1A785D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; A830EA78B992425DA01217BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; A844CEB6720112AAAE4BDABD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder_framing.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c"; sourceTree = "SOURCE_ROOT"; }; @@ -752,6 +807,7 @@ A928068058AABD08099E1792 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; A93D235AED6D56DA08F82062 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; A94DAD22B9F27389EB042378 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + A95B8CA1945CF9A8565C423F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; A9833EF4FF3863198A01845F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; A9A287E8488E914B1EDDA564 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; A9D2C3EEB94596DD2B772434 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; @@ -783,6 +839,7 @@ AF42734F63315C85E08587B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c"; sourceTree = "SOURCE_ROOT"; }; AF5F2E4B8A7F1B9A507D043C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; AF6E053345A73531F9DE19FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRemoteHeap.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h"; sourceTree = "SOURCE_ROOT"; }; + AFE07A4C5A0309E9D1933320 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; B019A04354A3A377813C4F10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h"; sourceTree = "SOURCE_ROOT"; }; B04C24316C7F5D7E5C79E0CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; B0792237EC36D9F9D8D94380 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; @@ -792,6 +849,7 @@ B0B4567F125815CE3D5F97B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; B0D2EB2CCE9410392733E088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; B16D0231583843F5782F2FF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = "SOURCE_ROOT"; }; + B16ED2FDF63691EBF724BE7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; B185D4ED3D7011747FA30D2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; B194372F45854DE5FC54671F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; B19D56F3E441EB2B1A84C41A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; @@ -812,6 +870,7 @@ B387644139E3E36918C4D03A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; B38DA581048FDA139F641FB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; B3D4730C96893578BF727D5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h"; sourceTree = "SOURCE_ROOT"; }; + B3E74096844FB5B1145A4F26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; B43C86E279C36B83F25A88D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; B50ED6B4AE791917727F5E7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; B56ACDB21BF63DD70C738C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c"; sourceTree = "SOURCE_ROOT"; }; @@ -823,13 +882,17 @@ B6291F8983C362DED92336BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; B65C1614B4755DD56161B155 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; B6847B2CCF1B2E71712827E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6C2723C17CAA6F11A7037BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; B70A7208BDC84707A08B49E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; + B7109FBBA9AA356AFCE8ABDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; B714D3995796B3E1783B2B92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + B76B019C8E9641E830C654E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; B7E100E53E55FBBB995D1015 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; B7EF3871AADEF4B0B05827E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitmath.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c"; sourceTree = "SOURCE_ROOT"; }; B82AF1752045C4157C0ADF1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; B8793874DA3E3A50A76F9572 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.in.h"; sourceTree = "SOURCE_ROOT"; }; B90793CC817A7C319A3AE20C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + B94A66FB1E20E17BFC6D587D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; B978E5CC1180425AD149A152 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; B98F37A336955FF58F90FB4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; B9DF6AB40767C91B45834CED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -839,6 +902,7 @@ BAB1E713B8FD5FF764E93C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; BAB246A896258C6FE2132717 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FFT.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.h"; sourceTree = "SOURCE_ROOT"; }; BABBA06E9B4F5AC45082E718 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + BAE32FDF61A6886B8DA227AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; BAFE2641BD8618F8F7F65579 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; BB206032A144BA440AF410E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; BC2708C1A30230F8FFED0BAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; @@ -871,28 +935,37 @@ C02A07C4E5AB7D6C98CEAEFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; C050A75A3FD1ED843430646B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; C0794CF65E83FA413249342B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0927E071B6368B5B9BF27DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; C096E8792E18214FCE25A25C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + C11AD5554D1AADA105974F41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; C12E3B26BAD438E71B125623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; C1564464E7D3E100E68F78F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; C1CB3B69DCF541CF84F0A5C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = alloc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/alloc.h"; sourceTree = "SOURCE_ROOT"; }; + C208C99D56432713772B7091 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; C225444502EBA04B63E16CE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; C22DDE0CA3FD2565AC1A9641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; C23D3AE443F3DA9E05DCF670 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; C278FC33051757FD973E4BB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h"; sourceTree = "SOURCE_ROOT"; }; C2925B912CB7478725EC09C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2BCB8E70BEC2F88B286FDA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; C2BFF63FD5C214D4E5B993AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; C2EA3FCC07E1674AFDEA71B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; C3131423ADE321A9FFD64C46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + C3441E2009F936E87450A2AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; C3729E6D46FC9FE8B8EA99E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c"; sourceTree = "SOURCE_ROOT"; }; C44815DFC69575308E2E7DF5 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "libpng_readme.txt"; path = "../../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt"; sourceTree = "SOURCE_ROOT"; }; + C460008E91CD8C53C42CF6AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; C4703A5DB149F64AE6A30668 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; C4716E0C3BCBC857984C58A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + C4F34A9C5006FC35A551E229 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; C50067A84435B50FAE2991A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; C53219A41027ED103B202C42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; C54776C328896DD9C63D5F14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + C55994273946370823474628 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; C57C541975044B538A4204B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; C5A18309C2DC13A1156282F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Block.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.h"; sourceTree = "SOURCE_ROOT"; }; C5FB97556F8007E0E5849857 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; + C6D5D50888467509322BC8EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; C6F13DC7541D0F00B8C8ED6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; C719A471C0AF1ACF4915590B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; C76C141618B3750168ADC0D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; @@ -940,12 +1013,14 @@ CFFCDE3DE85309817AA5314F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; D0029C076D0AFD4531B8C952 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; D00E7D50024BC55EE60D8A1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; + D017DFE5509F2D4F9416210F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; D01B3D44D354E1DD105A6851 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; D01FEE0DC6C2CED2D3217198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; D06661831BB0908DEBF996FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; D0C5462B25A1EF7C0BAC2C66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; D0F8908BB4BF8D2904759E9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; D111247356C62C3698C5259A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngget.c"; sourceTree = "SOURCE_ROOT"; }; + D160D0F138D9BD23642B94E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; D16614D13C7C9AB7565DE60F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmorecfg.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h"; sourceTree = "SOURCE_ROOT"; }; D184EF49BA7A3F3F5545B1D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; D19C04CE3F848A3EB30BD306 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "os_types.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h"; sourceTree = "SOURCE_ROOT"; }; @@ -955,6 +1030,7 @@ D23E61F11E9CD3EE88C300C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; D24A6466F1C7D63741B729BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; D270EFE61FCF33ABA7DD7A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + D29CE9F9A0A9ECDA97BD6672 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; D2A305BF46124317B26844C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = "SOURCE_ROOT"; }; D3F2B4B868A0F886E10FD901 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; D3F75448D5E30FEF546165DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1003,9 +1079,11 @@ DC4C0156E331164E93BF2F1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; DC92C4ED5AC4F39FA201F932 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; DC9D312245AA5BFA4B21AC85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + DCB43F332E243AF02D93B430 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; DCCC9B894C6F3FF9643B3D85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; DCE85E789DF463EF99F73FE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "win_utf8_io.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h"; sourceTree = "SOURCE_ROOT"; }; DCFCECAE8ED2C934AB68E4EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD3550A359F96E6B06AF3618 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; DD3970FDCA69D2DEFBBA3E72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ControlButton.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_ControlButton.h"; sourceTree = "SOURCE_ROOT"; }; DD58AB0C80AB9D0B6850983D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../JuceLibraryCode/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; DDA7B0C44BB6500A8264AB08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1013,13 +1091,16 @@ DDD1AD3004D036AF9AFD5043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; DE005946F4FF5EB9F2B5E94F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; DEB5BC8C4CF7600478965F15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = md5.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h"; sourceTree = "SOURCE_ROOT"; }; + DF7567641FDF30813E7F1274 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; DFA7F722F61CC00E65789E52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; DFBC7ECB67E1FD3C6340663B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; DFD7F405B35ECE2DC44D6939 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.h"; sourceTree = "SOURCE_ROOT"; }; E068081DF4D036954360B4CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; E0FC64420488B39FFC9C25AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + E16D87CCE8D58772774CB203 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; E1714E22DFB33D06F62468F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; E1CDDE683A9D3D00182334F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../JuceLibraryCode/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + E2136DE3F0428D2C85A0D086 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; E270518951867873C374D756 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; E276994927D3E8743E85FEF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_uncoupled.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h"; sourceTree = "SOURCE_ROOT"; }; E283C55B43C31CD66C6C387F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "lookup_data.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1042,6 +1123,7 @@ E4E68F979116A9B3B7D663C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; E51D1884CE4F31EA17661097 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; E53E7B65080C5BBEF4A9D7C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + E556673D5DAC2B12EA15F47D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; E56A4F249B3DC548F3392621 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; E56F858D8C2F9C11CBD6308D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h"; sourceTree = "SOURCE_ROOT"; }; E5A413D6F34F783C7A708B49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1055,6 +1137,7 @@ E76E93F5737FE60F46B3837E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; }; E76FD2235925C85F2D7A8550 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; E7F6687DE8509FCC698399FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; + E834D534CCBDCD730FCECF71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; E8598E243314304BD8163FD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; E8B53464FF63B6F3C0E8E723 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; E8BBBB6CB566863296CC406B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1086,18 +1169,26 @@ F0E4E317DBB8EDC346F79C94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = trees.c; path = "../../../../../modules/juce_core/zip/zlib/trees.c"; sourceTree = "SOURCE_ROOT"; }; F0F5158BE492B43B8FAAD1D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; F1071892476C8E78090C1B04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; + F10C844F2E574F1781D9DB99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; F17172414E68A67E86770D16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + F1955881273B81A622DAD709 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; F1A811BDF1FBDB3460847383 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F237FC5D87575444CC7FD318 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; F2544DB9D399C1102E95A867 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootCompiler.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h"; sourceTree = "SOURCE_ROOT"; }; F2634446266E383816E9341A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_32.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = "SOURCE_ROOT"; }; F2720937BE3C1F10272A7C06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + F29CA0F119CF7DC65FCA4FFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; F2D31A607BEC69FA6AD0D12E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; F2D9015FC6DBA12DE9609EAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2DA6D598D3890961AAC73EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; F2F3C7E6FA8608C80DF5EF34 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; F306B08E4CCAD1A06EC0DB0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F335FA2C942CF9486223CFA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; F3AD07BBECD1E70E5F3F40BD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; F42D141B9A70BB0273407B0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; F464C4862C4DFD5774559248 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F4F73FB2DAAB17430685537F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F53468A982DEED777591816F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; F56396DCA982B63F2DA78471 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; F572E47156DAA8EEBE746390 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; F5A099B54BDAB42FF8D77144 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1110,6 +1201,7 @@ F70DB3B3FBB0AB2575A13FD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; F77076F73232546CC0DA097C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; F7D345B0E22C7AB91FFF9CD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.c"; sourceTree = "SOURCE_ROOT"; }; + F825D1E04D1E079A6B4BA3F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; F837F14CCAD905678B2EB5A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; F86455FC80F2DF1C12D28BFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; F9450711CCBD8FCDEA9E95F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1129,6 +1221,7 @@ FD2F08645DF014C0F3110942 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; FD6A23DA53BC48A5D01DCAAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; FD6A2554500AE9E8F340812C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; + FD78DF16D8490E3FF7EF761F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; FDAC3E164BA3FCB909B9F2BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = "../../../../../modules/juce_core/zip/zlib/crc32.h"; sourceTree = "SOURCE_ROOT"; }; FDB547DFBE187A379D96760B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_extra.cpp"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.cpp"; sourceTree = "SOURCE_ROOT"; }; FDF345AF086264E4040A79CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1145,8 +1238,9 @@ 14CD2D0EE13A7D3289EBBC86, ); name = Audio; sourceTree = ""; }; 6FBEB977137848BF3903034E = {isa = PBXGroup; children = ( 23FE51CE68990B49B3B4AABD, + D98771DCE827466B36D51AF8, 1AE75CB0FA61A03429A4E540, - D98771DCE827466B36D51AF8, ); name = Source; sourceTree = ""; }; + 831D05658D06983B575A395C, ); name = Source; sourceTree = ""; }; 38998921858495104F35872D = {isa = PBXGroup; children = ( 6FBEB977137848BF3903034E, ); name = BlocksSynth; sourceTree = ""; }; 093A7AEDD681B83D66FC731D = {isa = PBXGroup; children = ( @@ -1468,6 +1562,111 @@ 96C5E46FAC93C462A7EBF4DF, BED0AA415C62CB7F797E51C4, 96C5E46FAC93C462A7EBF4DF, ); name = "juce_audio_formats"; sourceTree = ""; }; + 39D3CF2F7938EC4BE064E104 = {isa = PBXGroup; children = ( + DCB43F332E243AF02D93B430, + 72330895D5682846F3A52223, + 1030640E8440F02E9F19CD2B, + 1C89625695166D8B4FC54C90, ); name = format; sourceTree = ""; }; + 607E8F3D7296D541A4CE3FF9 = {isa = PBXGroup; children = ( + 8DA77A4F70C03CE81EC8ACAD, + A13820B7BFD6AF837A2E6C57, + 2F5AD1DB8E7F13A21CA462D1, + C0927E071B6368B5B9BF27DC, + 62DE47E4B2EC3BAEECC8D198, + F53468A982DEED777591816F, + 80E4915CE095F2D92F311C02, + B3E74096844FB5B1145A4F26, + 65D7CA579D9704B795D9F6D5, + 9C236720F87AB53B983968B9, + B76B019C8E9641E830C654E9, + 5FB26A689F97B61284059C55, + 7E2295EBF292A71D44A8F638, + 6E3C4FF98005E3A56700D483, ); name = "format_types"; sourceTree = ""; }; + 6B3AC756F17ECF02FB8D36B0 = {isa = PBXGroup; children = ( + 1B1343A9DC0E656198B69B82, + 04DB9A00796D0BCF472F4ED7, + 4C2F138D50A040E9CB6E901B, + 884D100B3B1AFA24F697670B, + E834D534CCBDCD730FCECF71, + D017DFE5509F2D4F9416210F, + A95B8CA1945CF9A8565C423F, + B6C2723C17CAA6F11A7037BA, + C55994273946370823474628, + F2DA6D598D3890961AAC73EA, + 2F59CDC2CDF48A14E047F62C, + 93A79C572AAFAA95F17A2548, + 627432C87D828B863D9496AD, + 287802E2B7AE2D2F962B7D07, ); name = processors; sourceTree = ""; }; + F99F22B64CECD11018E33744 = {isa = PBXGroup; children = ( + 9CABAAB05C27919CF1D26D0E, + 0464E2958DB999F27CE02A05, + 9619CAAC1844127539A434C5, + D29CE9F9A0A9ECDA97BD6672, + F825D1E04D1E079A6B4BA3F6, + E2136DE3F0428D2C85A0D086, ); name = scanning; sourceTree = ""; }; + D7D2D588DCF335D6D78BE7AB = {isa = PBXGroup; children = ( + DF7567641FDF30813E7F1274, + C3441E2009F936E87450A2AD, + D160D0F138D9BD23642B94E8, + B16ED2FDF63691EBF724BE7C, + F1955881273B81A622DAD709, + 96B923167B37C9C228C9E4B8, + 98248643528AA2985CA7C657, + C4F34A9C5006FC35A551E229, ); name = utilities; sourceTree = ""; }; + 63D380A7E6D7B2AE12F73D59 = {isa = PBXGroup; children = ( + 39D3CF2F7938EC4BE064E104, + 607E8F3D7296D541A4CE3FF9, + 6B3AC756F17ECF02FB8D36B0, + F99F22B64CECD11018E33744, + D7D2D588DCF335D6D78BE7AB, + BAE32FDF61A6886B8DA227AF, + 1D68A8CBC08DA143889B10A8, + 1A10133EE03E0BADFFDBDF3E, + 1D68A8CBC08DA143889B10A8, ); name = "juce_audio_processors"; sourceTree = ""; }; + 3317BD38FB78B0B3127153EF = {isa = PBXGroup; children = ( + B7109FBBA9AA356AFCE8ABDE, + A7B9FCBCD699D5D69178412E, + 68E98AD88691547A6D7C674E, ); name = "audio_cd"; sourceTree = ""; }; + 13433EB2F3F2A057708F16C7 = {isa = PBXGroup; children = ( + 576F1C585F1F6A618B23BDD2, + A0EE4B43B6C9D6E38527BCE6, + F4F73FB2DAAB17430685537F, + C6D5D50888467509322BC8EE, + C11AD5554D1AADA105974F41, + 9C16ACB286837989E5380B6A, + 83FAEBCF478836A81887DBDD, + 9F4D55451C7742F3B4828F97, + 219D180F89964DDE7AC126F1, + 36071D4BA204F795714F93D5, + F29CA0F119CF7DC65FCA4FFD, + A18168B9063A9605B68FD197, + 5B9B8D944DFA78FF1203EEC7, + 12BA74B2CDC0FCB813E8325C, ); name = gui; sourceTree = ""; }; + 5309CEB94AD5DDBDAFAEF39C = {isa = PBXGroup; children = ( + 0D338CDA65D6421601AD96F7, + 96A92A30161434408958DBE4, + C460008E91CD8C53C42CF6AB, + F335FA2C942CF9486223CFA0, + 11DF8683332B9FD586EB5F31, + 8D2CB3EBCA42093713991A64, + B94A66FB1E20E17BFC6D587D, + AFE07A4C5A0309E9D1933320, + F10C844F2E574F1781D9DB99, + F237FC5D87575444CC7FD318, ); name = native; sourceTree = ""; }; + C409C67AACD70868E956F339 = {isa = PBXGroup; children = ( + 8FD66AA4A824CFB66BCB8660, + C2BCB8E70BEC2F88B286FDA8, + DD3550A359F96E6B06AF3618, + E16D87CCE8D58772774CB203, ); name = players; sourceTree = ""; }; + 2D543E37FF6A804E98D45CC0 = {isa = PBXGroup; children = ( + 3317BD38FB78B0B3127153EF, + 13433EB2F3F2A057708F16C7, + 5309CEB94AD5DDBDAFAEF39C, + C409C67AACD70868E956F339, + C208C99D56432713772B7091, + 407FC6EC1D6396DEB581D217, + 5CE665392C6A2CB24B5AFEB9, + 407FC6EC1D6396DEB581D217, ); name = "juce_audio_utils"; sourceTree = ""; }; 94FF97995070201943DECACA = {isa = PBXGroup; children = ( 780ED77A4BF65BA1F5E61F95, C5A18309C2DC13A1156282F6, @@ -1521,6 +1720,7 @@ 5B48244E76313E054EFEF426, 8CCE915477416067D7B0F311, 08E918530A1D5F37DC05B5DD, + FD78DF16D8490E3FF7EF761F, 83123049240352B97AEC1FBE, D06661831BB0908DEBF996FD, 22B870C829CEA56B78D8EDFA, @@ -1635,7 +1835,9 @@ A546C8B742A8DC8F5E60C606, 2E6C4EDE0CDE7BCC288D464B, 3A43AB7B49441ABD392D105D, - 224EC8865F2F99C2F1E4361D, ); name = network; sourceTree = ""; }; + 224EC8865F2F99C2F1E4361D, + 01B1D517AD162A5026608299, + 61FABA233363E41B6172EEA2, ); name = network; sourceTree = ""; }; E91966262A1070E1B59F692C = {isa = PBXGroup; children = ( 1EB32F020771FAC988EA1E64, 7E391A85858C06D5F6286DE1, @@ -2443,6 +2645,8 @@ 404BFEA464246C3581AFCF47, 90D9DDA0B7937A5B2ED77F30, 594F462315832D34803DA5F6, + 63D380A7E6D7B2AE12F73D59, + 2D543E37FF6A804E98D45CC0, 4EA50957218B9A0F396DB28D, 247AF08855C438929F46C640, D8F226718DC7C6F677813853, @@ -2456,6 +2660,8 @@ DD58AB0C80AB9D0B6850983D, AF5F2E4B8A7F1B9A507D043C, E1CDDE683A9D3D00182334F0, + E556673D5DAC2B12EA15F47D, + 1041E86890E9D2C1418A2D95, A40D3E3FFBEC78F04EE0DE5A, B0B1C0956FEDCBF2AF19CA6B, 17544537ED6A83CB6C3F3201, @@ -2475,6 +2681,7 @@ 503BEED13051A5D02CE34644, CBA6A8FCB0795C89183A8E71, 42747FC2DD3F362950112EFA, + 52E369CEF09DA65EB1C803D0, 318FAEC913D5880AF074E666, 794233C62A59EA02725A7E9E, 67663D2E66C7F1C1B6BD6392, @@ -2579,6 +2786,8 @@ 8708D4FDEA2E44838FF56AF7, DD6F640B22B1E254A30D23A3, BFF81A843FE6013A9D16AA34, + 82F8207EB62803F4657E2BA5, + BDF46ADA08E24B4C1BB27481, BF6FA2A2A66FBBB7C0C82551, A6C2383A9E41C6C0492FBD71, 36CA4CF2E34082660F108708, @@ -2594,6 +2803,7 @@ BAF807771E4AC4C725E9D058, C04A639A8ABC44749B49ED36, 5CC0AE888A8B9CF85C8C1077, + 07BAB7A4E711F7D277A12A2A, E0A65700714D2B1B3F21887F, F2321DBBDA9BEE2577B4B73B, DEE7F200E0ABCA5F551B8BC8, diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj index 01a528b633..638305809a 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 BlocksSynth + .exe true BlocksSynth + .exe true v120 @@ -457,6 +459,102 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -481,6 +579,9 @@ true + + true + true @@ -616,6 +717,9 @@ true + + true + true @@ -1576,6 +1680,8 @@ + + @@ -1589,6 +1695,7 @@ + @@ -1739,6 +1846,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1826,6 +1979,7 @@ + diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj.filters b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj.filters index 277f726322..27f55af2a3 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj.filters +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2013/BlocksSynth.vcxproj.filters @@ -101,6 +101,39 @@ {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} @@ -673,6 +706,123 @@ Juce Modules\juce_audio_formats + + 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\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\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -697,6 +847,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -847,6 +1000,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1879,6 +2035,12 @@ Juce Library Code + + Juce Library Code + + + Juce Library Code + Juce Library Code @@ -1914,6 +2076,9 @@ BlocksSynth\Source + + BlocksSynth\Source + Juce Modules\juce_audio_basics\buffers @@ -2364,6 +2529,144 @@ Juce Modules\juce_audio_formats + + 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\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\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\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\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\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -2625,6 +2928,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj index 05f25f8e31..84835c4d48 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 BlocksSynth + .exe true BlocksSynth + .exe true v140 @@ -457,6 +459,102 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -481,6 +579,9 @@ true + + true + true @@ -616,6 +717,9 @@ true + + true + true @@ -1576,6 +1680,8 @@ + + @@ -1589,6 +1695,7 @@ + @@ -1739,6 +1846,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1826,6 +1979,7 @@ + diff --git a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj.filters b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj.filters index 333f103ba3..9bcdd35cf2 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj.filters +++ b/examples/BLOCKS/BlocksSynth/Builds/VisualStudio2015/BlocksSynth.vcxproj.filters @@ -101,6 +101,39 @@ {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} @@ -673,6 +706,123 @@ Juce Modules\juce_audio_formats + + 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\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\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -697,6 +847,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -847,6 +1000,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1879,6 +2035,12 @@ Juce Library Code + + Juce Library Code + + + Juce Library Code + Juce Library Code @@ -1914,6 +2076,9 @@ BlocksSynth\Source + + BlocksSynth\Source + Juce Modules\juce_audio_basics\buffers @@ -2364,6 +2529,144 @@ Juce Modules\juce_audio_formats + + 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\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\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\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + 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\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\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + Juce Modules\juce_blocks_basics\blocks @@ -2625,6 +2928,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/BLOCKS/BlocksSynth/Builds/iOS/BlocksSynth.xcodeproj/project.pbxproj b/examples/BLOCKS/BlocksSynth/Builds/iOS/BlocksSynth.xcodeproj/project.pbxproj index a349dc5c04..e0699238ab 100644 --- a/examples/BLOCKS/BlocksSynth/Builds/iOS/BlocksSynth.xcodeproj/project.pbxproj +++ b/examples/BLOCKS/BlocksSynth/Builds/iOS/BlocksSynth.xcodeproj/project.pbxproj @@ -6,3293 +6,2720 @@ objectVersion = 46; objects = { -/* Begin PBXBuildFile section */ - 0112FC2B7A664C27E8F9941D /* juce_opengl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 231FA43EA6BDD60E2E5D682E /* juce_opengl.mm */; }; - 03889D80A76102BB72F53888 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB8E624C28BB20096959B5C9 /* Foundation.framework */; }; - 0579DDF4B03255527CD92BF9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC52ED2250DAF9085E67628 /* CoreGraphics.framework */; }; - 221901C4077F389C16EE6FE1 /* juce_graphics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7038FD73A5F7527FB76E987E /* juce_graphics.mm */; }; - 268110CDBB2C5560CE1935AB /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FD9AE627E98FA0C1EC3C163 /* OpenGLES.framework */; }; - 35E0967364383B7202CB3A01 /* juce_gui_extra.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E85944AC4191910EE758B99 /* juce_gui_extra.mm */; }; - 36CA4CF2E34082660F108708 /* juce_data_structures.mm in Sources */ = {isa = PBXBuildFile; fileRef = 17544537ED6A83CB6C3F3201 /* juce_data_structures.mm */; }; - 3B23FB9BAAEB77AA64AD037B /* Audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 110B6CE01796C1C6DF0DECAE /* Audio.cpp */; }; - 535851B45E7D80B53ABB689D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3AD07BBECD1E70E5F3F40BD /* AudioToolbox.framework */; }; - 5CC0AE888A8B9CF85C8C1077 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42747FC2DD3F362950112EFA /* CoreMIDI.framework */; }; - 646AAFCDA0A0620699614BB7 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0B3C73D7F3BC93AC8164C1B /* AVFoundation.framework */; }; - 657E06CA14EC10A4744D5DEB /* MainComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 77EAC0B282DEA3227F3F03B1 /* MainComponent.cpp */; }; - 8492CFCDEC3C8BC7E679D597 /* Main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D98771DCE827466B36D51AF8 /* Main.cpp */; }; - 8708D4FDEA2E44838FF56AF7 /* juce_audio_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD58AB0C80AB9D0B6850983D /* juce_audio_basics.mm */; }; - 8A93A3EB39E14A2887A12CF9 /* juce_gui_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABFE23A312B6421D3E21ADC8 /* juce_gui_basics.mm */; }; - 9097F21A6491C4C4ABA3185F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 70426BCCD5E978424B32AC8B /* Images.xcassets */; }; - 90AB9198E92ADD84AFB8EFD6 /* juce_events.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8EF4F0D964C0ECA2E058F7DC /* juce_events.mm */; }; - 96CFB8DAD7FFF76D2E317495 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB91C5FFE88DF5CFF947669D /* Accelerate.framework */; }; - A6C2383A9E41C6C0492FBD71 /* juce_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = B0B1C0956FEDCBF2AF19CA6B /* juce_core.mm */; }; - AE46B38D70B347166EEA3112 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ACC89760CF09AB1EB06AD52B /* UIKit.framework */; }; - BDD9B6E13096A4F929CDF0C7 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A72A10DC2BCD29B4A801D40 /* CoreText.framework */; }; - BF6FA2A2A66FBBB7C0C82551 /* juce_blocks_basics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A40D3E3FFBEC78F04EE0DE5A /* juce_blocks_basics.cpp */; }; - BFF81A843FE6013A9D16AA34 /* juce_audio_formats.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1CDDE683A9D3D00182334F0 /* juce_audio_formats.mm */; }; - C04A639A8ABC44749B49ED36 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBA6A8FCB0795C89183A8E71 /* CoreAudio.framework */; }; - DD6F640B22B1E254A30D23A3 /* juce_audio_devices.mm in Sources */ = {isa = PBXBuildFile; fileRef = AF5F2E4B8A7F1B9A507D043C /* juce_audio_devices.mm */; }; - DEE7F200E0ABCA5F551B8BC8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67663D2E66C7F1C1B6BD6392 /* QuartzCore.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 001CEF1BC67328BA0A561A06 /* juce_AudioFormatReaderSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFormatReaderSource.h; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h; sourceTree = SOURCE_ROOT; }; - 003F5B441682BA631DDF3AC3 /* juce_ValueTreeSynchroniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ValueTreeSynchroniser.h; path = ../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h; sourceTree = SOURCE_ROOT; }; - 0072E9EDE9A531ABF573D6A1 /* juce_AppleRemote.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AppleRemote.h; path = ../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h; sourceTree = SOURCE_ROOT; }; - 007B1F3B503C7D7F4744BA43 /* juce_ArrowButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ArrowButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h; sourceTree = SOURCE_ROOT; }; - 00AFB2ECABC5FF5015B0DF6C /* juce_ToggleButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToggleButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h; sourceTree = SOURCE_ROOT; }; - 0112674271470DAC194D36F7 /* juce_KeyListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KeyListener.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h; sourceTree = SOURCE_ROOT; }; - 014DEEB53672D7474B219518 /* README.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = README.txt; path = ../../../../../modules/juce_blocks_basics/README.txt; sourceTree = SOURCE_ROOT; }; - 015F1290D2CFD4A244E60AC0 /* juce_TextLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextLayout.h; path = ../../../../../modules/juce_graphics/fonts/juce_TextLayout.h; sourceTree = SOURCE_ROOT; }; - 016076F4D43D15D063A73530 /* juce_MemoryInputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryInputStream.h; path = ../../../../../modules/juce_core/streams/juce_MemoryInputStream.h; sourceTree = SOURCE_ROOT; }; - 016588BDC792CF429E174F41 /* juce_ApplicationCommandTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandTarget.h; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h; sourceTree = SOURCE_ROOT; }; - 01A60EB1D681DDDB424C6C65 /* inftrees.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = ../../../../../modules/juce_core/zip/zlib/inftrees.h; sourceTree = SOURCE_ROOT; }; - 01D383BCF77D7704F896259D /* juce_MemoryBlock.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; - 01D74B926C822FA65B778B9A /* juce_android_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Network.cpp; path = ../../../../../modules/juce_core/native/juce_android_Network.cpp; sourceTree = SOURCE_ROOT; }; - 01E8CC333D1A9910A72DF28D /* juce_MP3AudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MP3AudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h; sourceTree = SOURCE_ROOT; }; - 029B264C757780A8CD505C1E /* juce_RuntimePermissions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RuntimePermissions.h; path = ../../../../../modules/juce_core/misc/juce_RuntimePermissions.h; sourceTree = SOURCE_ROOT; }; - 02A336F8CDC439485DC73DD0 /* juce_MixerAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MixerAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h; sourceTree = SOURCE_ROOT; }; - 03130BDC25B905B277B0B227 /* lpc_flac.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpc_flac.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c; sourceTree = SOURCE_ROOT; }; - 0353708CD8C613C0F5D9081D /* juce_CallOutBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CallOutBox.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp; sourceTree = SOURCE_ROOT; }; - 036FADA1493FCEA443F6BD31 /* juce_OpenGLFrameBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLFrameBuffer.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h; sourceTree = SOURCE_ROOT; }; - 037C9C0E1723E94B95CD1913 /* juce_TimeSliceThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TimeSliceThread.h; path = ../../../../../modules/juce_core/threads/juce_TimeSliceThread.h; sourceTree = SOURCE_ROOT; }; - 0394E57BC8D292BA4F34C748 /* jdct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdct.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdct.h; sourceTree = SOURCE_ROOT; }; - 03B238D422D95970A3A834EC /* juce_PropertiesFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertiesFile.cpp; path = ../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp; sourceTree = SOURCE_ROOT; }; - 03BD89526E26A670AE63B364 /* juce_PathIterator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PathIterator.cpp; path = ../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp; sourceTree = SOURCE_ROOT; }; - 03D95B05B6B6219344A8A5D7 /* juce_MultiDocumentPanel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MultiDocumentPanel.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp; sourceTree = SOURCE_ROOT; }; - 03E5101ED7B3FD06AE564F67 /* juce_CachedValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CachedValue.cpp; path = ../../../../../modules/juce_data_structures/values/juce_CachedValue.cpp; sourceTree = SOURCE_ROOT; }; - 045387853469E755B6DD741C /* juce_LeakedObjectDetector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LeakedObjectDetector.h; path = ../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h; sourceTree = SOURCE_ROOT; }; - 047EB8514054BDBED92A4D65 /* juce_ModifierKeys.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ModifierKeys.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h; sourceTree = SOURCE_ROOT; }; - 0501056AA00F05DCCC93B577 /* jdcolor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c; sourceTree = SOURCE_ROOT; }; - 05201B7662BC062EA0347E8E /* juce_audio_basics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_audio_basics.h; path = ../../../../../modules/juce_audio_basics/juce_audio_basics.h; sourceTree = SOURCE_ROOT; }; - 0522ECF89AFDFE087301B50B /* juce_FlexItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FlexItem.h; path = ../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h; sourceTree = SOURCE_ROOT; }; - 05C5166291508D65E4DE1C7F /* juce_SharedResourcePointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SharedResourcePointer.h; path = ../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h; sourceTree = SOURCE_ROOT; }; - 05D530D67D2893ADAD43AA46 /* juce_Memory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../../../../modules/juce_core/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; - 05F31583615DF3401FCF6EDC /* juce_ImageEffectFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageEffectFilter.h; path = ../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h; sourceTree = SOURCE_ROOT; }; - 0608AD5F887B0DAB247A0169 /* juce_ImageConvolutionKernel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageConvolutionKernel.h; path = ../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h; sourceTree = SOURCE_ROOT; }; - 06345AE1675306ACD324B59F /* juce_ActionBroadcaster.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ActionBroadcaster.h; path = ../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h; sourceTree = SOURCE_ROOT; }; - 07176F08AA96CA742FABF32C /* juce_ComponentBoundsConstrainer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentBoundsConstrainer.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp; sourceTree = SOURCE_ROOT; }; - 073C36AC9C06770D84781B70 /* juce_mac_SystemStats.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_SystemStats.mm; path = ../../../../../modules/juce_core/native/juce_mac_SystemStats.mm; sourceTree = SOURCE_ROOT; }; - 07B3D9344EFFDC5DFE383519 /* juce_win32_DirectSound.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_DirectSound.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp; sourceTree = SOURCE_ROOT; }; - 07D9DF1A2D9CA38CB2F08E7E /* juce_Line.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Line.h; path = ../../../../../modules/juce_graphics/geometry/juce_Line.h; sourceTree = SOURCE_ROOT; }; - 083B9BAE399C7621EABFD0DC /* juce_BooleanPropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BooleanPropertyComponent.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; - 08E918530A1D5F37DC05B5DD /* juce_LinkedListPointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LinkedListPointer.h; path = ../../../../../modules/juce_core/containers/juce_LinkedListPointer.h; sourceTree = SOURCE_ROOT; }; - 093EAF4BA57F6552E2C377B8 /* assert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = assert.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/assert.h; sourceTree = SOURCE_ROOT; }; - 09901BD8E4BF85BA33E43AC4 /* juce_android_Windowing.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Windowing.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp; sourceTree = SOURCE_ROOT; }; - 099F6F87C4D05FF49A7E3C2C /* juce_OpenGLHelpers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLHelpers.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp; sourceTree = SOURCE_ROOT; }; - 09A20E48B6DDCF89C3BA52B5 /* lookup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h"; sourceTree = SOURCE_ROOT; }; - 0A2C851155CE6975BA22C5B9 /* jquant1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c; sourceTree = SOURCE_ROOT; }; - 0A72A10DC2BCD29B4A801D40 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; - 0A99DEEFD614DE832C7EF6BB /* juce_IPAddress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IPAddress.h; path = ../../../../../modules/juce_core/network/juce_IPAddress.h; sourceTree = SOURCE_ROOT; }; - 0AA288FCCF1342C4947F5FD6 /* format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h; sourceTree = SOURCE_ROOT; }; - 0ACB19FBE5DEAB16B5FE56B9 /* juce_GZIPCompressorOutputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GZIPCompressorOutputStream.cpp; path = ../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp; sourceTree = SOURCE_ROOT; }; - 0C368BF5435A155B2CEBF4DE /* inffast.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = ../../../../../modules/juce_core/zip/zlib/inffast.c; sourceTree = SOURCE_ROOT; }; - 0C39EABAF7EE4C2F8C7D6D71 /* juce_EdgeTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_EdgeTable.h; path = ../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h; sourceTree = SOURCE_ROOT; }; - 0CABBB44D28EDBD36D8E4B87 /* vorbisenc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisenc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c"; sourceTree = SOURCE_ROOT; }; - 0CC672620B96382CF715F134 /* juce_ChildProcess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChildProcess.h; path = ../../../../../modules/juce_core/threads/juce_ChildProcess.h; sourceTree = SOURCE_ROOT; }; - 0D0667D008F7C834DC045F87 /* juce_AnimatedPosition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AnimatedPosition.h; path = ../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h; sourceTree = SOURCE_ROOT; }; - 0D197638970189B7FC7EF613 /* juce_FilenameComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FilenameComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h; sourceTree = SOURCE_ROOT; }; - 0D9243B5198B9D61504F7ED5 /* juce_BufferingAudioFormatReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BufferingAudioFormatReader.h; path = ../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h; sourceTree = SOURCE_ROOT; }; - 0D9ED7566FF0B245CCB60C50 /* juce_StretchableLayoutManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StretchableLayoutManager.h; path = ../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h; sourceTree = SOURCE_ROOT; }; - 0DF05CB01EC7CAE5299DCB5E /* juce_AudioFormatManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFormatManager.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp; sourceTree = SOURCE_ROOT; }; - 0DF9EA0A64F07528C65C2623 /* juce_ResizableCornerComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableCornerComponent.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp; sourceTree = SOURCE_ROOT; }; - 0E2AB1720BB6F9EB7E91279B /* jdatasrc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdatasrc.c; sourceTree = SOURCE_ROOT; }; - 0E2BE57E047E0F1EC2BF9880 /* juce_Toolbar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Toolbar.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp; sourceTree = SOURCE_ROOT; }; - 0E36301F694447E2DE1A780C /* Info-App.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-App.plist"; sourceTree = SOURCE_ROOT; }; - 0E8C76CFF33AC2608DE25A16 /* setup_44p51.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_44p51.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h"; sourceTree = SOURCE_ROOT; }; - 0EC6923BA8DD0A685E54F725 /* jdtrans.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdtrans.c; sourceTree = SOURCE_ROOT; }; - 0EDF75F8D489F87A668EA9D5 /* res_books_51.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = res_books_51.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h"; sourceTree = SOURCE_ROOT; }; - 0EEC4F43BAD1FD5DD3503BAF /* juce_Atomic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Atomic.h; path = ../../../../../modules/juce_core/memory/juce_Atomic.h; sourceTree = SOURCE_ROOT; }; - 0EECE5A38949D03C48FA6727 /* juce_ios_Audio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ios_Audio.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp; sourceTree = SOURCE_ROOT; }; - 0F5134388D55D439AA3B66B8 /* juce_mac_Network.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Network.mm; path = ../../../../../modules/juce_core/native/juce_mac_Network.mm; sourceTree = SOURCE_ROOT; }; - 0FD9AE627E98FA0C1EC3C163 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; - 0FE96D4C83E1846EE628D57F /* juce_opengl.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_opengl.mm; path = ../../../../../modules/juce_opengl/juce_opengl.mm; sourceTree = SOURCE_ROOT; }; - 100828DA91AC6887A22A621A /* jidctred.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c; sourceTree = SOURCE_ROOT; }; - 100E8BF90F31D1E045AF1755 /* smallft.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = SOURCE_ROOT; }; - 110B6CE01796C1C6DF0DECAE /* Audio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Audio.cpp; path = ../../Source/Audio.cpp; sourceTree = SOURCE_ROOT; }; - 110E2D4DFEF9D028905A9127 /* juce_FileInputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileInputStream.cpp; path = ../../../../../modules/juce_core/files/juce_FileInputStream.cpp; sourceTree = SOURCE_ROOT; }; - 11535233EB65A31CB9A1C84C /* deflate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = ../../../../../modules/juce_core/zip/zlib/deflate.h; sourceTree = SOURCE_ROOT; }; - 116D8F769D93B11A66D4F7E4 /* juce_AudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 1177C66130BC8F6B57308A18 /* juce_DrumPadLEDProgram.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrumPadLEDProgram.h; path = ../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h; sourceTree = SOURCE_ROOT; }; - 119E392B5554CFFE8416EA5E /* juce_DrawableShape.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableShape.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h; sourceTree = SOURCE_ROOT; }; - 11BB8490A209BD313ED39DAE /* jfdctfst.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c; sourceTree = SOURCE_ROOT; }; - 125D60706A72F35D9D6CB3FE /* juce_CallbackMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CallbackMessage.h; path = ../../../../../modules/juce_events/messages/juce_CallbackMessage.h; sourceTree = SOURCE_ROOT; }; - 12748EFBC072636CB555FEED /* juce_RelativeCoordinatePositioner.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeCoordinatePositioner.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp; sourceTree = SOURCE_ROOT; }; - 12ACF9469751D8A6D9D90E53 /* juce_MidiBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiBuffer.cpp; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp; sourceTree = SOURCE_ROOT; }; - 12EFD54DC8E9CC723BEBE172 /* juce_Font.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Font.h; path = ../../../../../modules/juce_graphics/fonts/juce_Font.h; sourceTree = SOURCE_ROOT; }; - 130A891678CD13F5B8F813A4 /* juce_ResizableWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h; sourceTree = SOURCE_ROOT; }; - 1358B9554210B5D0242C1BA3 /* juce_LAMEEncoderAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LAMEEncoderAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h; sourceTree = SOURCE_ROOT; }; - 137EDFA7BC30E6EEFF2A2C04 /* juce_ToolbarItemPalette.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToolbarItemPalette.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h; sourceTree = SOURCE_ROOT; }; - 13B6344205397F546400A40B /* juce_MPENote.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPENote.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp; sourceTree = SOURCE_ROOT; }; - 13F2E257D9546C430FAD9DD5 /* juce_NamedPipe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NamedPipe.h; path = ../../../../../modules/juce_core/network/juce_NamedPipe.h; sourceTree = SOURCE_ROOT; }; - 1414F1FC8B43992F623E2FD2 /* juce_win32_ActiveXComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_ActiveXComponent.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp; sourceTree = SOURCE_ROOT; }; - 1418A6F2476A59D58CB4D5A6 /* juce_audio_devices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_audio_devices.h; path = ../../../../../modules/juce_audio_devices/juce_audio_devices.h; sourceTree = SOURCE_ROOT; }; - 1446DDFD289F734BFE1861BD /* juce_MouseInactivityDetector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MouseInactivityDetector.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h; sourceTree = SOURCE_ROOT; }; - 1469F0FEBE09579AE2256553 /* all.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h; sourceTree = SOURCE_ROOT; }; - 149DD0517AA814294C0A8C70 /* juce_OpenGLHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLHelpers.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h; sourceTree = SOURCE_ROOT; }; - 14B0A23846DEF4981EB6CD1A /* juce_GraphicsContext.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GraphicsContext.cpp; path = ../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp; sourceTree = SOURCE_ROOT; }; - 14C3BD49C3F262D8449A6D89 /* juce_ChildProcess.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ChildProcess.cpp; path = ../../../../../modules/juce_core/threads/juce_ChildProcess.cpp; sourceTree = SOURCE_ROOT; }; - 14CD2D0EE13A7D3289EBBC86 /* Audio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Audio.h; path = ../../Source/Audio.h; sourceTree = SOURCE_ROOT; }; - 156A9CB51E86FFCA164A77F2 /* cpu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c; sourceTree = SOURCE_ROOT; }; - 15945B1F63EE00FE6BCD61F0 /* juce_StretchableObjectResizer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableObjectResizer.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp; sourceTree = SOURCE_ROOT; }; - 160EA3FBA3A8D5CD53C381F5 /* juce_AudioIODevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioIODevice.h; path = ../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h; sourceTree = SOURCE_ROOT; }; - 16457C02C3262323921CA12E /* juce_AudioSubsectionReader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioSubsectionReader.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp; sourceTree = SOURCE_ROOT; }; - 170160056630E4035117107E /* juce_TimeSliceThread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TimeSliceThread.cpp; path = ../../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp; sourceTree = SOURCE_ROOT; }; - 173848000A992F19AC7AE30C /* juce_linux_ALSA.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_ALSA.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp; sourceTree = SOURCE_ROOT; }; - 174DCEEB1F0A9CC69F671E41 /* mdct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = SOURCE_ROOT; }; - 1751F5BA57A88D8A20248EAB /* juce_ToolbarButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToolbarButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h; sourceTree = SOURCE_ROOT; }; - 17544537ED6A83CB6C3F3201 /* juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_data_structures.mm; path = ../../JuceLibraryCode/juce_data_structures.mm; sourceTree = SOURCE_ROOT; }; - 17889DFA6CEB679211FF3389 /* pngstruct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngstruct.h; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngstruct.h; sourceTree = SOURCE_ROOT; }; - 17A9AAC14945D24CB26659AD /* masking.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = SOURCE_ROOT; }; - 182BED30B1F7A3E20AF7C41E /* juce_DrawableShape.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableShape.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp; sourceTree = SOURCE_ROOT; }; - 188EAA1BD57F1209B23F6903 /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/window.h; sourceTree = SOURCE_ROOT; }; - 189CE0561DF5910DAF13D22B /* juce_TooltipWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TooltipWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h; sourceTree = SOURCE_ROOT; }; - 18D12ABCC228BF8EB5D22ACC /* envelope.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = envelope.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.c"; sourceTree = SOURCE_ROOT; }; - 18F92B6A8369D0F1A9B6705F /* juce_SystemAudioVolume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SystemAudioVolume.h; path = ../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h; sourceTree = SOURCE_ROOT; }; - 197DFCCEA5C1199B9C4D463F /* juce_ios_UIViewComponentPeer.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_ios_UIViewComponentPeer.mm; path = ../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm; sourceTree = SOURCE_ROOT; }; - 19EC8D47288168DED8C317DF /* juce_ScrollBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScrollBar.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h; sourceTree = SOURCE_ROOT; }; - 1A544EA5E8AC999D7F681DDE /* Oscillators.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Oscillators.h; path = ../../Source/Oscillators.h; sourceTree = SOURCE_ROOT; }; - 1A8D2D0748598F01CEAAD4F7 /* juce_PopupMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PopupMenu.h; path = ../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h; sourceTree = SOURCE_ROOT; }; - 1A9A02020BE1CA5BBD29B437 /* juce_posix_NamedPipe.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_posix_NamedPipe.cpp; path = ../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp; sourceTree = SOURCE_ROOT; }; - 1ABB18E7361905092E209E5F /* juce_Time.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Time.cpp; path = ../../../../../modules/juce_core/time/juce_Time.cpp; sourceTree = SOURCE_ROOT; }; - 1ACC1653C65505E7AC29FB74 /* juce_mac_CoreMidi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_mac_CoreMidi.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp; sourceTree = SOURCE_ROOT; }; - 1AE75CB0FA61A03429A4E540 /* MainComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = SOURCE_ROOT; }; - 1B07C855838E6EF1D058D000 /* juce_LookAndFeel_V2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LookAndFeel_V2.h; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h; sourceTree = SOURCE_ROOT; }; - 1B70293A6CF7F13B06B6569A /* juce_LowLevelGraphicsSoftwareRenderer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LowLevelGraphicsSoftwareRenderer.cpp; path = ../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp; sourceTree = SOURCE_ROOT; }; - 1BCEE2EA9EFF8FD8078F15A5 /* juce_mac_Files.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Files.mm; path = ../../../../../modules/juce_core/native/juce_mac_Files.mm; sourceTree = SOURCE_ROOT; }; - 1BEF40062139BA123A55EB92 /* juce_OpenGLContext.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLContext.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp; sourceTree = SOURCE_ROOT; }; - 1BF2C3AD8A498D0D55F22623 /* juce_MPEMessages.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPEMessages.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp; sourceTree = SOURCE_ROOT; }; - 1CFA52094CFDFB61E549EBD4 /* juce_CriticalSection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CriticalSection.h; path = ../../../../../modules/juce_core/threads/juce_CriticalSection.h; sourceTree = SOURCE_ROOT; }; - 1DA19C5E99B3551ADE26E391 /* juce_MouseEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MouseEvent.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h; sourceTree = SOURCE_ROOT; }; - 1DA2607436F77B9E79C8D031 /* juce_mac_SystemTrayIcon.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_mac_SystemTrayIcon.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp; sourceTree = SOURCE_ROOT; }; - 1E3AD3FF27C698CD3EE18C93 /* juce_Button.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Button.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp; sourceTree = SOURCE_ROOT; }; - 1E732CABBE64BE6C4FD80795 /* psych_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psych_44.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = SOURCE_ROOT; }; - 1EB32F020771FAC988EA1E64 /* juce_BufferedInputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BufferedInputStream.cpp; path = ../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp; sourceTree = SOURCE_ROOT; }; - 1EB612BB5C88FD75360E182C /* juce_DragAndDropContainer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DragAndDropContainer.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp; sourceTree = SOURCE_ROOT; }; - 1F0A802DF7D1C7F69E32CF10 /* crc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c; sourceTree = SOURCE_ROOT; }; - 1F2D0A04F7D20953AAD00785 /* psych_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psych_16.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = SOURCE_ROOT; }; - 1F6AF62DCB06829E5D547080 /* juce_ValueTreeSynchroniser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ValueTreeSynchroniser.cpp; path = ../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp; sourceTree = SOURCE_ROOT; }; - 1F7097A7E2FD1CFD992160A3 /* juce_Sampler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Sampler.h; path = ../../../../../modules/juce_audio_formats/sampler/juce_Sampler.h; sourceTree = SOURCE_ROOT; }; - 1F7339EB6D3A6DAC5966AA91 /* jquant2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c; sourceTree = SOURCE_ROOT; }; - 1FA1A18FDF4E7266114D4B47 /* juce_TooltipWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TooltipWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp; sourceTree = SOURCE_ROOT; }; - 204D1CE3691490B81EB8C284 /* juce_MP3AudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MP3AudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 207D373F8699CA107E7E86F0 /* juce_Font.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Font.cpp; path = ../../../../../modules/juce_graphics/fonts/juce_Font.cpp; sourceTree = SOURCE_ROOT; }; - 2092AE5634DE6877D83C4CD4 /* juce_Timer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Timer.h; path = ../../../../../modules/juce_events/timers/juce_Timer.h; sourceTree = SOURCE_ROOT; }; - 20C2BF35D7BA96D597557B46 /* juce_ButtonPropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ButtonPropertyComponent.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; - 211D0DA102619F3D2048A741 /* juce_blocks_basics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_blocks_basics.cpp; path = ../../../../../modules/juce_blocks_basics/juce_blocks_basics.cpp; sourceTree = SOURCE_ROOT; }; - 21AFD9310BD1AA9619366C27 /* juce_OpenGLGraphicsContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLGraphicsContext.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h; sourceTree = SOURCE_ROOT; }; - 21CA089CEAAEFB67132DE3CD /* juce_LuaCodeTokeniser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LuaCodeTokeniser.cpp; path = ../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp; sourceTree = SOURCE_ROOT; }; - 21D9B04B3BDC4F1A87DA2C9E /* juce_AttributedString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AttributedString.h; path = ../../../../../modules/juce_graphics/fonts/juce_AttributedString.h; sourceTree = SOURCE_ROOT; }; - 21E4F85AFE03A986C667AC7F /* juce_File.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_File.cpp; path = ../../../../../modules/juce_core/files/juce_File.cpp; sourceTree = SOURCE_ROOT; }; - 223EDE843FE5CF77DCEEA76F /* juce_AudioFormatWriter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFormatWriter.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp; sourceTree = SOURCE_ROOT; }; - 224EC8865F2F99C2F1E4361D /* juce_URL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_URL.h; path = ../../../../../modules/juce_core/network/juce_URL.h; sourceTree = SOURCE_ROOT; }; - 225B313A9BC57AB15CC508F3 /* juce_BitmapLEDProgram.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BitmapLEDProgram.h; path = ../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h; sourceTree = SOURCE_ROOT; }; - 22B870C829CEA56B78D8EDFA /* juce_NamedValueSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NamedValueSet.h; path = ../../../../../modules/juce_core/containers/juce_NamedValueSet.h; sourceTree = SOURCE_ROOT; }; - 22C6FFBE9D2206A13A30D71F /* juce_android_Midi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Midi.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp; sourceTree = SOURCE_ROOT; }; - 23090584DEA1282747CE4769 /* juce_curl_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_curl_Network.cpp; path = ../../../../../modules/juce_core/native/juce_curl_Network.cpp; sourceTree = SOURCE_ROOT; }; - 231FA43EA6BDD60E2E5D682E /* juce_opengl.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_opengl.mm; path = ../../JuceLibraryCode/juce_opengl.mm; sourceTree = SOURCE_ROOT; }; - 234C53C2D7D7559F63E77597 /* juce_RuleBasedTopologySource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RuleBasedTopologySource.h; path = ../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h; sourceTree = SOURCE_ROOT; }; - 23DBE20DA60F90ACDEC5A24A /* juce_AudioDeviceManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioDeviceManager.cpp; path = ../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp; sourceTree = SOURCE_ROOT; }; - 23DC0CBBB4C6D6084EE19F93 /* juce_android_Misc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Misc.cpp; path = ../../../../../modules/juce_core/native/juce_android_Misc.cpp; sourceTree = SOURCE_ROOT; }; - 23E03F6187920AD14BFC8BCD /* juce_win32_Fonts.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Fonts.cpp; path = ../../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp; sourceTree = SOURCE_ROOT; }; - 241982E4455453EF71D03FFF /* juce_UnitTest.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_UnitTest.cpp; path = ../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp; sourceTree = SOURCE_ROOT; }; - 2479A476CE3A4C0AF2EDBA33 /* changes to libjpeg for JUCE.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "changes to libjpeg for JUCE.txt"; path = "../../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt"; sourceTree = SOURCE_ROOT; }; - 24B3BC3052E9DCD40B98304B /* juce_ModalComponentManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ModalComponentManager.h; path = ../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h; sourceTree = SOURCE_ROOT; }; - 24E745A97ACE83CB49C47941 /* juce_mac_MessageManager.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_MessageManager.mm; path = ../../../../../modules/juce_events/native/juce_mac_MessageManager.mm; sourceTree = SOURCE_ROOT; }; - 250D5D5989533ADFB25306EC /* juce_win32_Midi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Midi.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp; sourceTree = SOURCE_ROOT; }; - 256BCED752B70974C8DBB789 /* juce_FileInputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileInputSource.h; path = ../../../../../modules/juce_core/streams/juce_FileInputSource.h; sourceTree = SOURCE_ROOT; }; - 257F034BF0E09D78178ADCF5 /* juce_TargetPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TargetPlatform.h; path = ../../../../../modules/juce_core/system/juce_TargetPlatform.h; sourceTree = SOURCE_ROOT; }; - 25C8F3E08BE437DD7F436242 /* juce_linux_Messaging.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Messaging.cpp; path = ../../../../../modules/juce_events/native/juce_linux_Messaging.cpp; sourceTree = SOURCE_ROOT; }; - 25CE3EDC204ADB54724E65DC /* juce_StretchableObjectResizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StretchableObjectResizer.h; path = ../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h; sourceTree = SOURCE_ROOT; }; - 25F6B5BC25A7AFBA774E718C /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = compat.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/compat.h; sourceTree = SOURCE_ROOT; }; - 260406E9FB3C041C0B3A89E7 /* juce_TopLevelWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TopLevelWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp; sourceTree = SOURCE_ROOT; }; - 260E45CCB287E4CC5DCB27B8 /* juce_MultiDocumentPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MultiDocumentPanel.h; path = ../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h; sourceTree = SOURCE_ROOT; }; - 265C9E0CD85917026D804337 /* juce_OpenGLGraphicsContext.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLGraphicsContext.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp; sourceTree = SOURCE_ROOT; }; - 26688B743438F611F16AA65B /* juce_GIFLoader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GIFLoader.cpp; path = ../../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp; sourceTree = SOURCE_ROOT; }; - 268EE6C32655E4002E0F67E1 /* juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_graphics.mm; path = ../../../../../modules/juce_graphics/juce_graphics.mm; sourceTree = SOURCE_ROOT; }; - 26F41B7D9404B50D9FE40C5E /* juce_TemporaryFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TemporaryFile.h; path = ../../../../../modules/juce_core/files/juce_TemporaryFile.h; sourceTree = SOURCE_ROOT; }; - 26FE8AEE286297F8E8F148E8 /* juce_FileListComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileListComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h; sourceTree = SOURCE_ROOT; }; - 2724A39A33300FFBF89A4EAF /* vorbisfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisfile.h; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisfile.h; sourceTree = SOURCE_ROOT; }; - 276500E2DF4FBF36F4FA1B81 /* juce_freetype_Fonts.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_freetype_Fonts.cpp; path = ../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp; sourceTree = SOURCE_ROOT; }; - 277B0FD43AA3A74D0BC6A519 /* inflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = ../../../../../modules/juce_core/zip/zlib/inflate.c; sourceTree = SOURCE_ROOT; }; - 279386328A2D384E9C2AE928 /* juce_OpenGLPixelFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLPixelFormat.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp; sourceTree = SOURCE_ROOT; }; - 27A4321B4652868129075D63 /* jddctmgr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c; sourceTree = SOURCE_ROOT; }; - 27C1AA486727BE2A93B11251 /* juce_PreferencesPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PreferencesPanel.h; path = ../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h; sourceTree = SOURCE_ROOT; }; - 282CADA9E37A136FDBC83A2F /* juce_TextButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TextButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp; sourceTree = SOURCE_ROOT; }; - 284D3D37AFE280A47CFE5732 /* juce_TextDiff.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TextDiff.cpp; path = ../../../../../modules/juce_core/text/juce_TextDiff.cpp; sourceTree = SOURCE_ROOT; }; - 29019D28852F4BA5CC9C303A /* juce_DirectoryIterator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DirectoryIterator.cpp; path = ../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp; sourceTree = SOURCE_ROOT; }; - 298DDF49756F536B50469375 /* juce_IIRFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_IIRFilter.cpp; path = ../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp; sourceTree = SOURCE_ROOT; }; - 2A545C8625733F4D09626C16 /* jfdctflt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c; sourceTree = SOURCE_ROOT; }; - 2AFBEF39C606E0A3D698185B /* juce_Viewport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Viewport.h; path = ../../../../../modules/juce_gui_basics/layout/juce_Viewport.h; sourceTree = SOURCE_ROOT; }; - 2B2AB245E134CDF5515EB130 /* lpc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h"; sourceTree = SOURCE_ROOT; }; - 2C34101EF32AC5EA4030FDAD /* juce_linux_SystemStats.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_SystemStats.cpp; path = ../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp; sourceTree = SOURCE_ROOT; }; - 2C4A133B427E627877FF8CE9 /* juce_Uuid.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Uuid.cpp; path = ../../../../../modules/juce_core/misc/juce_Uuid.cpp; sourceTree = SOURCE_ROOT; }; - 2C651B376A3220A9D720B36B /* juce_android_Fonts.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Fonts.cpp; path = ../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp; sourceTree = SOURCE_ROOT; }; - 2CDD1AD17D9E9316BC26501D /* juce_Synthesiser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Synthesiser.h; path = ../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h; sourceTree = SOURCE_ROOT; }; - 2D0476BBF2E82030BC3095E2 /* juce_PropertiesFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertiesFile.h; path = ../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h; sourceTree = SOURCE_ROOT; }; - 2D3D590B3FA5486BDAD225B0 /* juce_ComponentDragger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentDragger.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp; sourceTree = SOURCE_ROOT; }; - 2D53FB29FFFEEB29036792DB /* juce_TextPropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextPropertyComponent.h; path = ../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h; sourceTree = SOURCE_ROOT; }; - 2DA8B0B8F42BA75AA6C09CF5 /* juce_OpenGL_ios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGL_ios.h; path = ../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h; sourceTree = SOURCE_ROOT; }; - 2DBADCD115CE48292C27E0FE /* juce_Value.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Value.cpp; path = ../../../../../modules/juce_data_structures/values/juce_Value.cpp; sourceTree = SOURCE_ROOT; }; - 2DF02AFF10879E3FE2BBF776 /* juce_MPESynthesiserVoice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPESynthesiserVoice.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp; sourceTree = SOURCE_ROOT; }; - 2E6C4EDE0CDE7BCC288D464B /* juce_Socket.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Socket.h; path = ../../../../../modules/juce_core/network/juce_Socket.h; sourceTree = SOURCE_ROOT; }; - 2E85944AC4191910EE758B99 /* juce_gui_extra.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_gui_extra.mm; path = ../../JuceLibraryCode/juce_gui_extra.mm; sourceTree = SOURCE_ROOT; }; - 2E8F5CD0CF6A9F42FF864B9D /* juce_PropertySet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertySet.cpp; path = ../../../../../modules/juce_core/containers/juce_PropertySet.cpp; sourceTree = SOURCE_ROOT; }; - 2ED49D97994DA78A2920445B /* jcsample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c; sourceTree = SOURCE_ROOT; }; - 2F8470C7C024CC6EF9669961 /* juce_Slider.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Slider.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp; sourceTree = SOURCE_ROOT; }; - 2FAD51414C9D18ADA5B2CC16 /* juce_mac_WebBrowserComponent.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_WebBrowserComponent.mm; path = ../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm; sourceTree = SOURCE_ROOT; }; - 2FAFF79F8E9250E599BEFDDE /* juce_ScopedLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedLock.h; path = ../../../../../modules/juce_core/threads/juce_ScopedLock.h; sourceTree = SOURCE_ROOT; }; - 30CC24B13FEBDDB188320191 /* juce_HostPacketBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HostPacketBuilder.h; path = ../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h; sourceTree = SOURCE_ROOT; }; - 317A1C3C47E0CFD28F629EE3 /* juce_linux_CommonFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_CommonFile.cpp; path = ../../../../../modules/juce_core/native/juce_linux_CommonFile.cpp; sourceTree = SOURCE_ROOT; }; - 31DBD439C2A41A1CC472D924 /* all.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h; sourceTree = SOURCE_ROOT; }; - 320BFED03A887CDA204EB748 /* juce_DialogWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DialogWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h; sourceTree = SOURCE_ROOT; }; - 327941468D62EFD046DFD31E /* uncompr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = ../../../../../modules/juce_core/zip/zlib/uncompr.c; sourceTree = SOURCE_ROOT; }; - 32882ADD511B3542BB245169 /* juce_DrawableComposite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableComposite.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp; sourceTree = SOURCE_ROOT; }; - 329DF7E968A8D1BC5242755D /* juce_MenuBarComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MenuBarComponent.h; path = ../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h; sourceTree = SOURCE_ROOT; }; - 331EE1B47BD07B07DFAAE89E /* juce_BitmapLEDProgram.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BitmapLEDProgram.cpp; path = ../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp; sourceTree = SOURCE_ROOT; }; - 332520A35477D044DB108E0B /* juce_ModifierKeys.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ModifierKeys.cpp; path = ../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp; sourceTree = SOURCE_ROOT; }; - 333C35C42EAAC5C9C654F12B /* juce_linux_SystemTrayIcon.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_SystemTrayIcon.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp; sourceTree = SOURCE_ROOT; }; - 334C26584909EC5509B8CF72 /* juce_linux_Clipboard.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Clipboard.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp; sourceTree = SOURCE_ROOT; }; - 334F7A39BD0DA475F23052A1 /* juce_RuntimePermissions.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RuntimePermissions.cpp; path = ../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp; sourceTree = SOURCE_ROOT; }; - 3392234464B3B3A97DA2B58C /* jdhuff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdhuff.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h; sourceTree = SOURCE_ROOT; }; - 339A19F5096F4F61F8255B88 /* juce_OpenGLPixelFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLPixelFormat.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h; sourceTree = SOURCE_ROOT; }; - 33B297800F96D1E644E085B6 /* juce_CatmullRomInterpolator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CatmullRomInterpolator.h; path = ../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h; sourceTree = SOURCE_ROOT; }; - 34232FF8256F5BA2E80D6C83 /* juce_ScopedPointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../../../../modules/juce_core/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; - 3454368245C5E8CFD1456FBC /* juce_FileTreeComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileTreeComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h; sourceTree = SOURCE_ROOT; }; - 34F5C04FBF3B13F93083A301 /* jdsample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c; sourceTree = SOURCE_ROOT; }; - 3521249F8414079020AF98B5 /* juce_MultiTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MultiTimer.h; path = ../../../../../modules/juce_events/timers/juce_MultiTimer.h; sourceTree = SOURCE_ROOT; }; - 35E2249D105A48B11BCF2DA3 /* juce_ToolbarItemComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToolbarItemComponent.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h; sourceTree = SOURCE_ROOT; }; - 35EA9261CEA2AD1A800B702C /* juce_AbstractFifo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AbstractFifo.h; path = ../../../../../modules/juce_core/containers/juce_AbstractFifo.h; sourceTree = SOURCE_ROOT; }; - 361070599D3204D0C42F7A22 /* juce_ScopedValueSetter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedValueSetter.h; path = ../../../../../modules/juce_core/containers/juce_ScopedValueSetter.h; sourceTree = SOURCE_ROOT; }; - 36C6D8EECCE8A8A9E21D3895 /* juce_RuleBasedTopologySource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RuleBasedTopologySource.cpp; path = ../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp; sourceTree = SOURCE_ROOT; }; - 36FB8C0AD65A9A875C90C662 /* juce_opengl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_opengl.h; path = ../../../../../modules/juce_opengl/juce_opengl.h; sourceTree = SOURCE_ROOT; }; - 377AF33A6FFEBFE62A05AD2D /* juce_ToggleButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToggleButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp; sourceTree = SOURCE_ROOT; }; - 379589FC32E87B31496C96B7 /* juce_WavAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WavAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h; sourceTree = SOURCE_ROOT; }; - 379BA1B50BAEE43F433A9E29 /* juce_NewLine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NewLine.h; path = ../../../../../modules/juce_core/text/juce_NewLine.h; sourceTree = SOURCE_ROOT; }; - 379FC2C12D06AFB0A0F07476 /* png.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = png.h; path = ../../../../../modules/juce_graphics/image_formats/pnglib/png.h; sourceTree = SOURCE_ROOT; }; - 37D3F9ADA06E46941FFC1532 /* framing.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = framing.c; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c; sourceTree = SOURCE_ROOT; }; - 3837D7332EB169F26F818BB9 /* juce_ConnectedChildProcess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ConnectedChildProcess.h; path = ../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h; sourceTree = SOURCE_ROOT; }; - 3863C9397ED9E2DC7C26E98F /* juce_StatisticsAccumulator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StatisticsAccumulator.h; path = ../../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h; sourceTree = SOURCE_ROOT; }; - 3898C8969F187EDE6C2FE1A1 /* juce_RelativeCoordinatePositioner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeCoordinatePositioner.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h; sourceTree = SOURCE_ROOT; }; - 38995FA8FD1425F65F87FC09 /* pngrutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c; sourceTree = SOURCE_ROOT; }; - 389F673D479BAA914D559C3C /* juce_FileBrowserListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileBrowserListener.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h; sourceTree = SOURCE_ROOT; }; - 38BF78CAB1ABA56E87C5F438 /* juce_MidiMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessage.h; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h; sourceTree = SOURCE_ROOT; }; - 38C951E0E35A4B513616931A /* juce_AlertWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AlertWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h; sourceTree = SOURCE_ROOT; }; - 3942B0BFD06ABC8B8AC0459D /* juce_mac_AppleRemote.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_AppleRemote.mm; path = ../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm; sourceTree = SOURCE_ROOT; }; - 396FCA5D9FAE5297B70B2655 /* juce_AudioTransportSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioTransportSource.h; path = ../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h; sourceTree = SOURCE_ROOT; }; - 397717356F43CD103B169AF1 /* juce_MemoryMappedAudioFormatReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryMappedAudioFormatReader.h; path = ../../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h; sourceTree = SOURCE_ROOT; }; - 39B343A6A7A4BD31ED5AA4EA /* juce_Button.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Button.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_Button.h; sourceTree = SOURCE_ROOT; }; - 39C0350A74FE0DD8E792ABC4 /* juce_NSViewComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NSViewComponent.h; path = ../../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h; sourceTree = SOURCE_ROOT; }; - 39C7BCC2C6A8A53D47605192 /* juce_LiveConstantEditor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LiveConstantEditor.h; path = ../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h; sourceTree = SOURCE_ROOT; }; - 39F2D7F60BCE45E9BEF6D2D5 /* window.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = SOURCE_ROOT; }; - 3A43AB7B49441ABD392D105D /* juce_URL.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_URL.cpp; path = ../../../../../modules/juce_core/network/juce_URL.cpp; sourceTree = SOURCE_ROOT; }; - 3A78A59E802951A187248BD6 /* setup_44u.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_44u.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h"; sourceTree = SOURCE_ROOT; }; - 3AB3B36BE9E7513E6A0785BC /* jmemsys.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmemsys.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h; sourceTree = SOURCE_ROOT; }; - 3AF24B9D59180F6C4168586C /* juce_win32_Messaging.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Messaging.cpp; path = ../../../../../modules/juce_events/native/juce_win32_Messaging.cpp; sourceTree = SOURCE_ROOT; }; - 3B4D669F61B7B70F9F60B2A0 /* jdcoefct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdcoefct.c; sourceTree = SOURCE_ROOT; }; - 3B603D361B33DF947B16EC5A /* juce_MissingGLDefinitions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MissingGLDefinitions.h; path = ../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h; sourceTree = SOURCE_ROOT; }; - 3B740130AAA2019AE049C85B /* mdct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c"; sourceTree = SOURCE_ROOT; }; - 3BCDBA897B07973BE96C7CD4 /* juce_Label.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Label.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_Label.h; sourceTree = SOURCE_ROOT; }; - 3BE2901B9A625B0A9A34FAEE /* juce_Component.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Component.cpp; path = ../../../../../modules/juce_gui_basics/components/juce_Component.cpp; sourceTree = SOURCE_ROOT; }; - 3BEAA229D9D403CBE51C6670 /* juce_MACAddress.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MACAddress.cpp; path = ../../../../../modules/juce_core/network/juce_MACAddress.cpp; sourceTree = SOURCE_ROOT; }; - 3C0FB54AB7F6499B039CA796 /* juce_ComponentListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentListener.h; path = ../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h; sourceTree = SOURCE_ROOT; }; - 3C3A319FB7E247A39036FB7A /* LittleFoot Language README.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "LittleFoot Language README.txt"; path = "../../../../../modules/juce_blocks_basics/littlefoot/LittleFoot Language README.txt"; sourceTree = SOURCE_ROOT; }; - 3C7A5BB34C606EBC8556E38A /* juce_ToolbarButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToolbarButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp; sourceTree = SOURCE_ROOT; }; - 3CB2C6DD82376B45112B0576 /* jcphuff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcphuff.c; sourceTree = SOURCE_ROOT; }; - 3D3D5858103B1047C1779AC5 /* juce_Path.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Path.cpp; path = ../../../../../modules/juce_graphics/geometry/juce_Path.cpp; sourceTree = SOURCE_ROOT; }; - 3D51F32E7FBF84DEE183F53A /* juce_Time.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Time.h; path = ../../../../../modules/juce_core/time/juce_Time.h; sourceTree = SOURCE_ROOT; }; - 3D8ED3F6C1407C572BBEC652 /* juce_AudioChannelSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioChannelSet.h; path = ../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h; sourceTree = SOURCE_ROOT; }; - 3DDC23784E7F36861AF31A75 /* juce_DropShadower.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DropShadower.h; path = ../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h; sourceTree = SOURCE_ROOT; }; - 3EB1E0AA5710B0452FF6BBE6 /* juce_OpenGLShaderProgram.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLShaderProgram.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp; sourceTree = SOURCE_ROOT; }; - 3EDA16959191726A83FAF8B3 /* juce_osx_ObjCHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_osx_ObjCHelpers.h; path = ../../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h; sourceTree = SOURCE_ROOT; }; - 3F01CB2947056402F526A4F4 /* juce_CharacterFunctions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharacterFunctions.h; path = ../../../../../modules/juce_core/text/juce_CharacterFunctions.h; sourceTree = SOURCE_ROOT; }; - 3F03CD51A0C38F53DEC35D06 /* juce_Colours.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Colours.h; path = ../../../../../modules/juce_graphics/colour/juce_Colours.h; sourceTree = SOURCE_ROOT; }; - 3F24711E8D4D2065EA8C372F /* juce_SparseSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SparseSet.h; path = ../../../../../modules/juce_core/containers/juce_SparseSet.h; sourceTree = SOURCE_ROOT; }; - 3F31EDAA9BB16DCAA86C6A6B /* juce_FileSearchPathListComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileSearchPathListComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h; sourceTree = SOURCE_ROOT; }; - 3F461FC27A8BEA812E4604BB /* juce_ThreadWithProgressWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ThreadWithProgressWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h; sourceTree = SOURCE_ROOT; }; - 3F4C08B027AA5847220503DF /* juce_AnimatedPositionBehaviours.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AnimatedPositionBehaviours.h; path = ../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h; sourceTree = SOURCE_ROOT; }; - 3F57879007B1AD70426EB58B /* juce_KeyboardFocusTraverser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KeyboardFocusTraverser.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h; sourceTree = SOURCE_ROOT; }; - 40268160C3A821B16C2C0106 /* juce_KeyMappingEditorComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KeyMappingEditorComponent.h; path = ../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h; sourceTree = SOURCE_ROOT; }; - 40297764149FD52F1B1B8FF0 /* juce_MPESynthesiserVoice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPESynthesiserVoice.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h; sourceTree = SOURCE_ROOT; }; - 4083423AC8967EC85128335F /* lpc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c"; sourceTree = SOURCE_ROOT; }; - 408CD5BDE5207D96C2DC6F0B /* juce_AudioDataConverters.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioDataConverters.cpp; path = ../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp; sourceTree = SOURCE_ROOT; }; - 40AFF57E82F006FB59D0BB29 /* juce_LinearSmoothedValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LinearSmoothedValue.h; path = ../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h; sourceTree = SOURCE_ROOT; }; - 40F2DCDCF3AE32D53839E7FC /* juce_SubregionStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SubregionStream.h; path = ../../../../../modules/juce_core/streams/juce_SubregionStream.h; sourceTree = SOURCE_ROOT; }; - 41AAF7E46A95C5137361C5D1 /* juce_OpenGL_linux.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGL_linux.h; path = ../../../../../modules/juce_opengl/native/juce_OpenGL_linux.h; sourceTree = SOURCE_ROOT; }; - 42747FC2DD3F362950112EFA /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; - 43CC58EE154F54E14E70A9A9 /* juce_CharPointer_UTF8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharPointer_UTF8.h; path = ../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h; sourceTree = SOURCE_ROOT; }; - 43D4608C71521337A1E62CBF /* codebook.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = SOURCE_ROOT; }; - 43FA1C85CEEE8976874CDE5D /* juce_Range.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Range.h; path = ../../../../../modules/juce_core/maths/juce_Range.h; sourceTree = SOURCE_ROOT; }; - 442B9293D4AECC2B9711CADD /* juce_MouseCursor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MouseCursor.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp; sourceTree = SOURCE_ROOT; }; - 44530960DE057A0334DFE77A /* juce_ScopedXLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedXLock.h; path = ../../../../../modules/juce_events/native/juce_ScopedXLock.h; sourceTree = SOURCE_ROOT; }; - 445E7C1EF124A4552532AE4F /* juce_ProgressBar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ProgressBar.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp; sourceTree = SOURCE_ROOT; }; - 44B2FE959DF300C8385863AF /* juce_TabbedComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TabbedComponent.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp; sourceTree = SOURCE_ROOT; }; - 44F79CEE556BD28E515BA71B /* setup_11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_11.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = SOURCE_ROOT; }; - 44FCA467ADE97D1E2B2A49A1 /* juce_AbstractFifo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AbstractFifo.cpp; path = ../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp; sourceTree = SOURCE_ROOT; }; - 4556D874FD9CF3D1DCE3DF36 /* juce_MemoryMappedFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryMappedFile.h; path = ../../../../../modules/juce_core/files/juce_MemoryMappedFile.h; sourceTree = SOURCE_ROOT; }; - 455B914D8EDEB31EDC2DC451 /* juce_linux_Windowing.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Windowing.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp; sourceTree = SOURCE_ROOT; }; - 45830B6210881854542DEE1C /* juce_ImageFileFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageFileFormat.cpp; path = ../../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp; sourceTree = SOURCE_ROOT; }; - 468845E6939E7671B082138A /* jchuff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h; sourceTree = SOURCE_ROOT; }; - 46A4ED1AED4B90701C9FA937 /* juce_FlacAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FlacAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 46CA6FE2FCF2B4493A1CB500 /* jpeglib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h; sourceTree = SOURCE_ROOT; }; - 46CD74CB0C207D371D0F22BF /* png.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/png.c; sourceTree = SOURCE_ROOT; }; - 47123B6CF53D538F0E90AC17 /* juce_DocumentWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DocumentWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h; sourceTree = SOURCE_ROOT; }; - 473950B43F215D4523AE801F /* juce_ComponentBoundsConstrainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentBoundsConstrainer.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h; sourceTree = SOURCE_ROOT; }; - 47604C0ABC53AE6ADB1BFF3D /* jmemnobs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c; sourceTree = SOURCE_ROOT; }; - 47607EE37E20577AC6770AD4 /* juce_StringPairArray.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StringPairArray.cpp; path = ../../../../../modules/juce_core/text/juce_StringPairArray.cpp; sourceTree = SOURCE_ROOT; }; - 47BED7BBD05CF1420DE94CFB /* juce_ApplicationProperties.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationProperties.cpp; path = ../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp; sourceTree = SOURCE_ROOT; }; - 47CC2D3C3EA5DBDD7A160619 /* juce_GroupComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GroupComponent.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp; sourceTree = SOURCE_ROOT; }; - 481A69F80148E9DCC2B4A067 /* juce_AiffAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AiffAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 493A7E8767FCA4250B6FBD94 /* juce_JPEGLoader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_JPEGLoader.cpp; path = ../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp; sourceTree = SOURCE_ROOT; }; - 49424899DC52549DE819C621 /* juce_BufferingAudioFormatReader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BufferingAudioFormatReader.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp; sourceTree = SOURCE_ROOT; }; - 494C319CCFF5BCCD0F36FD33 /* juce_ComponentListener.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentListener.cpp; path = ../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp; sourceTree = SOURCE_ROOT; }; - 4977DE7B0A8135EDB73EFD68 /* juce_GraphicsContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GraphicsContext.h; path = ../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h; sourceTree = SOURCE_ROOT; }; - 49CA1AF15E947DCBBE1AB305 /* juce_MouseInactivityDetector.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MouseInactivityDetector.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp; sourceTree = SOURCE_ROOT; }; - 4A174700334838A28231D4A0 /* juce_TabbedButtonBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TabbedButtonBar.h; path = ../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h; sourceTree = SOURCE_ROOT; }; - 4A6B7CEB97494FF6D388514E /* inflate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inflate.h; path = ../../../../../modules/juce_core/zip/zlib/inflate.h; sourceTree = SOURCE_ROOT; }; - 4AA531F8D8E250C0429E2CBB /* juce_PerformanceCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PerformanceCounter.h; path = ../../../../../modules/juce_core/time/juce_PerformanceCounter.h; sourceTree = SOURCE_ROOT; }; - 4ACC5E02BDD5C78A53E2522B /* format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/format.h; sourceTree = SOURCE_ROOT; }; - 4B28AF2241AA37172D6069F8 /* juce_LocalisedStrings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LocalisedStrings.h; path = ../../../../../modules/juce_core/text/juce_LocalisedStrings.h; sourceTree = SOURCE_ROOT; }; - 4B83FCEFA91AFCB06756FC71 /* juce_android_Files.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Files.cpp; path = ../../../../../modules/juce_core/native/juce_android_Files.cpp; sourceTree = SOURCE_ROOT; }; - 4C3567E01529EB4730FACB2C /* juce_MPESynthesiserBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPESynthesiserBase.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h; sourceTree = SOURCE_ROOT; }; - 4CA1F3B93913EA346771DFAA /* bitreader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c; sourceTree = SOURCE_ROOT; }; - 4CCBED88413D14521B8B840E /* juce_linux_Files.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Files.cpp; path = ../../../../../modules/juce_core/native/juce_linux_Files.cpp; sourceTree = SOURCE_ROOT; }; - 4CE9E46083DBAE3BA66CEF34 /* juce_DrawableImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableImage.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp; sourceTree = SOURCE_ROOT; }; - 4CF48857422D8B4462FDCAC8 /* juce_ThreadPool.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ThreadPool.cpp; path = ../../../../../modules/juce_core/threads/juce_ThreadPool.cpp; sourceTree = SOURCE_ROOT; }; - 4D372B2B68D66E83A4370DE3 /* juce_InterprocessConnectionServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InterprocessConnectionServer.h; path = ../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h; sourceTree = SOURCE_ROOT; }; - 4D3CB4D0542A042B8C210E31 /* format.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = format.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/format.c; sourceTree = SOURCE_ROOT; }; - 4D4FD67BD642DA535431F2B1 /* juce_MultiTouchMapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MultiTouchMapper.h; path = ../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h; sourceTree = SOURCE_ROOT; }; - 4D8C7E04C4FD97998300FDE6 /* juce_WavAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_WavAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 4E7C1B9669C78323F39F66BA /* info.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = info.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/info.c"; sourceTree = SOURCE_ROOT; }; - 4E93058BD941E58123C09290 /* juce_WebBrowserComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WebBrowserComponent.h; path = ../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h; sourceTree = SOURCE_ROOT; }; - 4EAAD4EB24BA19D7B7CC1EBB /* juce_Javascript.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Javascript.cpp; path = ../../../../../modules/juce_core/javascript/juce_Javascript.cpp; sourceTree = SOURCE_ROOT; }; - 4ED26BCBDCC64564B6BC33E5 /* juce_ApplicationProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationProperties.h; path = ../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h; sourceTree = SOURCE_ROOT; }; - 4EE92E0A9A6A3FED53DEF136 /* config_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = config_types.h; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/config_types.h; sourceTree = SOURCE_ROOT; }; - 4EFE2E4C990EE14732BACEC5 /* juce_ConcertinaPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ConcertinaPanel.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h; sourceTree = SOURCE_ROOT; }; - 4F37C953011C373B54598AD7 /* juce_mac_Windowing.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Windowing.mm; path = ../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm; sourceTree = SOURCE_ROOT; }; - 4F5EC73689E82CFA1B5E8B08 /* jctrans.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c; sourceTree = SOURCE_ROOT; }; - 4FD457CCBE50024B1A6377A7 /* jcmarker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c; sourceTree = SOURCE_ROOT; }; - 4FFAFAC9B332F9B993A6EBB6 /* juce_QuickTimeAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_QuickTimeAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h; sourceTree = SOURCE_ROOT; }; - 5013B2E5F2FAF7E880593B1E /* juce_MouseListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MouseListener.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h; sourceTree = SOURCE_ROOT; }; - 50A01BFE69012A08EAAA5EF1 /* bitrate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitrate.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c"; sourceTree = SOURCE_ROOT; }; - 50E9D72AF3E2F4CCDC6E7767 /* juce_TouchList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TouchList.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_TouchList.h; sourceTree = SOURCE_ROOT; }; - 50F08F6B006974130C590F4F /* juce_ReadWriteLock.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ReadWriteLock.cpp; path = ../../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp; sourceTree = SOURCE_ROOT; }; - 513984F548890D187E1A5683 /* juce_win32_Threads.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Threads.cpp; path = ../../../../../modules/juce_core/native/juce_win32_Threads.cpp; sourceTree = SOURCE_ROOT; }; - 514E168C6138BEC0DC0D31BB /* juce_MPESynthesiser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPESynthesiser.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h; sourceTree = SOURCE_ROOT; }; - 51DBB2E2806E132D175C2597 /* juce_linux_Midi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Midi.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp; sourceTree = SOURCE_ROOT; }; - 51F6B14D12856AA27906835D /* juce_RenderingHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RenderingHelpers.h; path = ../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h; sourceTree = SOURCE_ROOT; }; - 52162727C5145771E25131C9 /* juce_PopupMenu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PopupMenu.cpp; path = ../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp; sourceTree = SOURCE_ROOT; }; - 5259900DBEADF9B1E596D6CE /* juce_SortedSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SortedSet.h; path = ../../../../../modules/juce_core/containers/juce_SortedSet.h; sourceTree = SOURCE_ROOT; }; - 528DB2421C8140B90DA7B1C4 /* juce_ResizableWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp; sourceTree = SOURCE_ROOT; }; - 52B7F9D0AC8BF316E96E480A /* juce_MidiBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiBuffer.h; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h; sourceTree = SOURCE_ROOT; }; - 52E468B373041BD029A57DA9 /* juce_HeapBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HeapBlock.h; path = ../../../../../modules/juce_core/memory/juce_HeapBlock.h; sourceTree = SOURCE_ROOT; }; - 537FDE261B80BA27AB0F268F /* juce_mac_Fonts.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Fonts.mm; path = ../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm; sourceTree = SOURCE_ROOT; }; - 5414D9D1E3345D557CEFE983 /* juce_events.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_events.h; path = ../../../../../modules/juce_events/juce_events.h; sourceTree = SOURCE_ROOT; }; - 543DC3C0F6530C99ECA63A9A /* floor_books.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = floor_books.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h"; sourceTree = SOURCE_ROOT; }; - 54414222D76B0C6CD2D245C5 /* juce_ApplicationCommandInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandInfo.h; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h; sourceTree = SOURCE_ROOT; }; - 545F7B594166F08E2B2976C7 /* juce_AsyncUpdater.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AsyncUpdater.cpp; path = ../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp; sourceTree = SOURCE_ROOT; }; - 546AE298612DB93D5C336C70 /* juce_OwnedArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OwnedArray.h; path = ../../../../../modules/juce_core/containers/juce_OwnedArray.h; sourceTree = SOURCE_ROOT; }; - 549A73307E1C2D12EC3FA599 /* juce_DrawableButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h; sourceTree = SOURCE_ROOT; }; - 551BB1571903BD046B3947C4 /* juce_ChoicePropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChoicePropertyComponent.h; path = ../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h; sourceTree = SOURCE_ROOT; }; - 5558831C1B9AE2F59258290A /* juce_ByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../../../../modules/juce_core/memory/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; - 55902FE86849138F98309FD1 /* jcomapi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c; sourceTree = SOURCE_ROOT; }; - 55929F5F3E0FDBA0B5B5740A /* juce_DrawableText.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableText.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp; sourceTree = SOURCE_ROOT; }; - 55E36D80A91694865B7CE332 /* juce_AudioSubsectionReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioSubsectionReader.h; path = ../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h; sourceTree = SOURCE_ROOT; }; - 56C47E673A21A919A36BA737 /* lookup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lookup.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.c"; sourceTree = SOURCE_ROOT; }; - 5715EA1172976C34BF618365 /* juce_StringPool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StringPool.h; path = ../../../../../modules/juce_core/text/juce_StringPool.h; sourceTree = SOURCE_ROOT; }; - 571FD86FB21925B70F4C2439 /* juce_Thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Thread.h; path = ../../../../../modules/juce_core/threads/juce_Thread.h; sourceTree = SOURCE_ROOT; }; - 5737072AA0D7763823260699 /* juce_AudioIODevice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioIODevice.cpp; path = ../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp; sourceTree = SOURCE_ROOT; }; - 57702152570891F1CEF1F858 /* pngwrite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c; sourceTree = SOURCE_ROOT; }; - 577DD1C1B6BC82BE5E32C290 /* juce_ToolbarItemPalette.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToolbarItemPalette.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp; sourceTree = SOURCE_ROOT; }; - 57A1B82612ACD48D50CDFB42 /* juce_ResamplingAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResamplingAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h; sourceTree = SOURCE_ROOT; }; - 57F6D4DF279AF7D98FE44E16 /* juce_AsyncUpdater.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AsyncUpdater.h; path = ../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h; sourceTree = SOURCE_ROOT; }; - 584414FE3F035198BBE28413 /* bitmath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitmath.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitmath.h; sourceTree = SOURCE_ROOT; }; - 58AEC1D427BCFE3609BCD90A /* juce_FileInputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileInputStream.h; path = ../../../../../modules/juce_core/files/juce_FileInputStream.h; sourceTree = SOURCE_ROOT; }; - 58BF05D2E1EBA950D4C132D9 /* juce_ComponentAnimator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentAnimator.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h; sourceTree = SOURCE_ROOT; }; - 58DBADC28510520AE1E6E069 /* juce_android_Threads.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Threads.cpp; path = ../../../../../modules/juce_core/native/juce_android_Threads.cpp; sourceTree = SOURCE_ROOT; }; - 58E8DB6E05BEC37A2C386482 /* juce_CachedComponentImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CachedComponentImage.h; path = ../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h; sourceTree = SOURCE_ROOT; }; - 5917F2F2E450365FCD07C826 /* jutils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jutils.c; sourceTree = SOURCE_ROOT; }; - 595CFE4CA3DAE79C08D9C7C7 /* juce_BitPackingUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BitPackingUtilities.h; path = ../../../../../modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h; sourceTree = SOURCE_ROOT; }; - 596AE59CDCCBE4D8E7D27954 /* juce_PositionableAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PositionableAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h; sourceTree = SOURCE_ROOT; }; - 599428B835C56E48958680E4 /* juce_PathIterator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PathIterator.h; path = ../../../../../modules/juce_graphics/geometry/juce_PathIterator.h; sourceTree = SOURCE_ROOT; }; - 59EB48AD6143AB10F2D4830F /* juce_SpinLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SpinLock.h; path = ../../../../../modules/juce_core/threads/juce_SpinLock.h; sourceTree = SOURCE_ROOT; }; - 5A19BDE20FB81C83D0A03799 /* stream_decoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stream_decoder.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h; sourceTree = SOURCE_ROOT; }; - 5AF86438272890D0836A262D /* juce_Timer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Timer.cpp; path = ../../../../../modules/juce_events/timers/juce_Timer.cpp; sourceTree = SOURCE_ROOT; }; - 5B14C9DFF557CC6B9A05E34D /* juce_StatusLight.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StatusLight.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_StatusLight.h; sourceTree = SOURCE_ROOT; }; - 5B48244E76313E054EFEF426 /* juce_ElementComparator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ElementComparator.h; path = ../../../../../modules/juce_core/containers/juce_ElementComparator.h; sourceTree = SOURCE_ROOT; }; - 5B74F105B018F0D2497D818E /* juce_ColourSelector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ColourSelector.h; path = ../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h; sourceTree = SOURCE_ROOT; }; - 5C1AF59B9E0F831176669ED8 /* lsp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = SOURCE_ROOT; }; - 5C8F1A64FF9B42D0D2BED7FE /* juce_FileLogger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileLogger.cpp; path = ../../../../../modules/juce_core/logging/juce_FileLogger.cpp; sourceTree = SOURCE_ROOT; }; - 5C9A7CB614CE1DFA574772DD /* juce_mac_CoreGraphicsHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_mac_CoreGraphicsHelpers.h; path = ../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h; sourceTree = SOURCE_ROOT; }; - 5D2D967B09263CB6D21E1FCB /* jcapimin.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c; sourceTree = SOURCE_ROOT; }; - 5D4BE633D03013E33B4B376D /* juce_MidiKeyboardState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiKeyboardState.h; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h; sourceTree = SOURCE_ROOT; }; - 5D5BA1131FE12F38BA17E290 /* juce_InterProcessLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InterProcessLock.h; path = ../../../../../modules/juce_core/threads/juce_InterProcessLock.h; sourceTree = SOURCE_ROOT; }; - 5D77406B71C3A76439A5D9E4 /* pngpriv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngpriv.h; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h; sourceTree = SOURCE_ROOT; }; - 5DA4467E35DFFBF7AD8268A8 /* juce_InterprocessConnection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InterprocessConnection.h; path = ../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h; sourceTree = SOURCE_ROOT; }; - 5DDD8C97387E3792B53F6914 /* juce_ApplicationCommandTarget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationCommandTarget.cpp; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp; sourceTree = SOURCE_ROOT; }; - 5DEC0A780DB6B3C7E3FE1896 /* jinclude.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h; sourceTree = SOURCE_ROOT; }; - 5E977684B01B2AE8C9E6DAD6 /* juce_ActionListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ActionListener.h; path = ../../../../../modules/juce_events/broadcasters/juce_ActionListener.h; sourceTree = SOURCE_ROOT; }; - 5EA0ABB0B2C055D60AF351B7 /* juce_mac_CoreGraphicsContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_mac_CoreGraphicsContext.h; path = ../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h; sourceTree = SOURCE_ROOT; }; - 5EA120BDDD4CEB77D4440C20 /* juce_ButtonPropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ButtonPropertyComponent.h; path = ../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h; sourceTree = SOURCE_ROOT; }; - 5F622792DD550ED2F85D6BC6 /* juce_FileChooserDialogBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileChooserDialogBox.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp; sourceTree = SOURCE_ROOT; }; - 6085D0F7B3DFD7C8A7564A9B /* juce_TextEditorKeyMapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextEditorKeyMapper.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h; sourceTree = SOURCE_ROOT; }; - 609FED9DD1CE6987BC6B0407 /* jdmaster.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c; sourceTree = SOURCE_ROOT; }; - 60CB8017B900A02E7C7C1667 /* sharedbook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = SOURCE_ROOT; }; - 6107414E2EBFD835DB9235E3 /* memory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c; sourceTree = SOURCE_ROOT; }; - 61287CFC6D4262060F576DD7 /* juce_MarkerList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MarkerList.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h; sourceTree = SOURCE_ROOT; }; - 613FE7EF2A3A4359633BA85E /* vorbisenc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h; sourceTree = SOURCE_ROOT; }; - 614A8A8F8ED16753F8CFE07C /* juce_graphics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_graphics.cpp; path = ../../../../../modules/juce_graphics/juce_graphics.cpp; sourceTree = SOURCE_ROOT; }; - 61C2BDE6AF13FDD7F7CFB20F /* callback.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/callback.h; sourceTree = SOURCE_ROOT; }; - 61CAFC1A3803B6D6BA913E84 /* juce_ModalComponentManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ModalComponentManager.cpp; path = ../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp; sourceTree = SOURCE_ROOT; }; - 61F8335D20F500B2BC612A2D /* juce_ProgressBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ProgressBar.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h; sourceTree = SOURCE_ROOT; }; - 62062D02BDD756A9F4CD9917 /* juce_StringPool.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StringPool.cpp; path = ../../../../../modules/juce_core/text/juce_StringPool.cpp; sourceTree = SOURCE_ROOT; }; - 6208ED57BF34A1758751DC64 /* juce_GlowEffect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GlowEffect.h; path = ../../../../../modules/juce_graphics/effects/juce_GlowEffect.h; sourceTree = SOURCE_ROOT; }; - 6229C851E122AA62DFE23981 /* juce_PreferencesPanel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PreferencesPanel.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp; sourceTree = SOURCE_ROOT; }; - 630596B03B4198D9FD956D98 /* juce_ThreadLocalValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ThreadLocalValue.h; path = ../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h; sourceTree = SOURCE_ROOT; }; - 634A8B60191C15D6693B40BA /* juce_TableHeaderComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableHeaderComponent.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp; sourceTree = SOURCE_ROOT; }; - 634DD22DD8F7DE4BA1BA2A8E /* juce_linux_FileChooser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_FileChooser.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp; sourceTree = SOURCE_ROOT; }; - 634FC3F52B78B7FD78717F66 /* jidctflt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c; sourceTree = SOURCE_ROOT; }; - 63577C8216D3E4FA634001A3 /* jcapistd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c; sourceTree = SOURCE_ROOT; }; - 6362E2A941EAA49521526692 /* juce_CPlusPlusCodeTokeniser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CPlusPlusCodeTokeniser.cpp; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp; sourceTree = SOURCE_ROOT; }; - 63E061781918F57A073B894F /* juce_OpenGLAppComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLAppComponent.h; path = ../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h; sourceTree = SOURCE_ROOT; }; - 6401A4CD373276A624803E09 /* juce_MemoryOutputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryOutputStream.cpp; path = ../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp; sourceTree = SOURCE_ROOT; }; - 64B11380D40B53153C293929 /* juce_HighResolutionTimer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_HighResolutionTimer.cpp; path = ../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp; sourceTree = SOURCE_ROOT; }; - 65977552E1C7B054FE006EAB /* juce_MidiFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiFile.h; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiFile.h; sourceTree = SOURCE_ROOT; }; - 65D2779D3783A6B0DB9DD7C1 /* mapping0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = SOURCE_ROOT; }; - 660163B352BBE406FE15DDEB /* juce_RelativeTime.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeTime.cpp; path = ../../../../../modules/juce_core/time/juce_RelativeTime.cpp; sourceTree = SOURCE_ROOT; }; - 660DC5473197813B4E38CC4D /* scales.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = SOURCE_ROOT; }; - 664C16822A70A0AC8DE7BB7C /* juce_Application.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Application.h; path = ../../../../../modules/juce_gui_basics/application/juce_Application.h; sourceTree = SOURCE_ROOT; }; - 66838D5159BDC5AC0E777C0C /* juce_CodeTokeniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CodeTokeniser.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h; sourceTree = SOURCE_ROOT; }; - 6686824DF63B35A02B0FCDAB /* juce_MenuBarComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MenuBarComponent.cpp; path = ../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp; sourceTree = SOURCE_ROOT; }; - 66A50CF3EB078EE4D9F4456D /* juce_win32_WASAPI.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_WASAPI.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp; sourceTree = SOURCE_ROOT; }; - 66CBE1EEF8AA4C91EB7046AA /* juce_ThreadWithProgressWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ThreadWithProgressWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp; sourceTree = SOURCE_ROOT; }; - 66E065F9613ED585487E57B8 /* juce_BubbleMessageComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BubbleMessageComponent.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp; sourceTree = SOURCE_ROOT; }; - 674C83936EDD53D1D3C70AC1 /* residue_44p51.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = residue_44p51.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h"; sourceTree = SOURCE_ROOT; }; - 67663D2E66C7F1C1B6BD6392 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 67836F067567900AD54826E5 /* psych_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psych_8.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h"; sourceTree = SOURCE_ROOT; }; - 67933CC08A429EF3955DA476 /* pnginfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pnginfo.h; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pnginfo.h; sourceTree = SOURCE_ROOT; }; - 67A20BDAD84353BFF940850E /* juce_OutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OutputStream.h; path = ../../../../../modules/juce_core/streams/juce_OutputStream.h; sourceTree = SOURCE_ROOT; }; - 67BBC05B8A0FA71F2A325422 /* juce_InputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InputStream.h; path = ../../../../../modules/juce_core/streams/juce_InputStream.h; sourceTree = SOURCE_ROOT; }; - 681D758E911D2D050CD20F66 /* zutil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = ../../../../../modules/juce_core/zip/zlib/zutil.h; sourceTree = SOURCE_ROOT; }; - 68282AFC746AB0122FF571AD /* juce_TextLayout.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TextLayout.cpp; path = ../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp; sourceTree = SOURCE_ROOT; }; - 685892F6AF56A2B6442C0BA2 /* codec_internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codec_internal.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = SOURCE_ROOT; }; - 686B051DB68F5583A3DE1C31 /* setup_22.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_22.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h"; sourceTree = SOURCE_ROOT; }; - 68C6E67D53E770D9165DFB36 /* endswap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/endswap.h; sourceTree = SOURCE_ROOT; }; - 68F5730BEE88039A3E7E3195 /* juce_ApplicationBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationBase.cpp; path = ../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp; sourceTree = SOURCE_ROOT; }; - 69A4D0C62C1F177C0C877A3A /* juce_ImagePreviewComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImagePreviewComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h; sourceTree = SOURCE_ROOT; }; - 69DCAD4B37C6DFC393CAE941 /* analysis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = SOURCE_ROOT; }; - 6A3909C3FD602F355F2E5D74 /* juce_ColourGradient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ColourGradient.h; path = ../../../../../modules/juce_graphics/colour/juce_ColourGradient.h; sourceTree = SOURCE_ROOT; }; - 6A3B0B68AF1891D6708E5CF7 /* juce_OpenGLImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLImage.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp; sourceTree = SOURCE_ROOT; }; - 6BC2FE3123EC3468395FC8D8 /* juce_FileSearchPathListComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileSearchPathListComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp; sourceTree = SOURCE_ROOT; }; - 6C1E9287AA9C9FEFC393DDCB /* juce_MouseListener.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MouseListener.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp; sourceTree = SOURCE_ROOT; }; - 6C4EE337B0005F5CB6650264 /* juce_ReverbAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReverbAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h; sourceTree = SOURCE_ROOT; }; - 6C5369F8D2216549004C2A0E /* floor_all.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = floor_all.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h"; sourceTree = SOURCE_ROOT; }; - 6C6FCFF482B11A862BE7852F /* juce_ImageCache.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageCache.cpp; path = ../../../../../modules/juce_graphics/images/juce_ImageCache.cpp; sourceTree = SOURCE_ROOT; }; - 6C7EADF9387F020492C04442 /* juce_HighResolutionTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HighResolutionTimer.h; path = ../../../../../modules/juce_core/threads/juce_HighResolutionTimer.h; sourceTree = SOURCE_ROOT; }; - 6CD61526F604817E6912686D /* juce_ThreadPool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ThreadPool.h; path = ../../../../../modules/juce_core/threads/juce_ThreadPool.h; sourceTree = SOURCE_ROOT; }; - 6CFE9428C509216C6B6E691E /* bitrate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = SOURCE_ROOT; }; - 6D31C33C6C7BDB06D0BCCA99 /* juce_LAMEEncoderAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LAMEEncoderAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 6D31F014FC058BF4E76B8415 /* pngpread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c; sourceTree = SOURCE_ROOT; }; - 6D9C6DABD7D5E768EF9DCEC9 /* juce_mac_NSViewComponentPeer.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_NSViewComponentPeer.mm; path = ../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm; sourceTree = SOURCE_ROOT; }; - 6DC63841ED21D2CC651147C3 /* juce_events.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_events.cpp; path = ../../../../../modules/juce_events/juce_events.cpp; sourceTree = SOURCE_ROOT; }; - 6E9222D7B192A7EF575F5003 /* juce_PathStrokeType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PathStrokeType.h; path = ../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h; sourceTree = SOURCE_ROOT; }; - 6F0D14BB0BF350DD7664CFE7 /* juce_WeakReference.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../../../../modules/juce_core/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; - 6F60258048938FF67DFCDDE4 /* juce_RecentlyOpenedFilesList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RecentlyOpenedFilesList.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp; sourceTree = SOURCE_ROOT; }; - 6F96929ABEA4492374734DB9 /* jdpostct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c; sourceTree = SOURCE_ROOT; }; - 6FA8114276186677C37A02AB /* juce_core.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_core.cpp; path = ../../../../../modules/juce_core/juce_core.cpp; sourceTree = SOURCE_ROOT; }; - 6FB98EFC21231B01B9375164 /* juce_mac_FileChooser.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_FileChooser.mm; path = ../../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm; sourceTree = SOURCE_ROOT; }; - 6FC3D011A099091610A803A3 /* juce_audio_devices.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_audio_devices.cpp; path = ../../../../../modules/juce_audio_devices/juce_audio_devices.cpp; sourceTree = SOURCE_ROOT; }; - 6FE31511DFE124B4DBE13958 /* setup_X.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_X.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = SOURCE_ROOT; }; - 6FF35BA648B2B034130B0BF0 /* registry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = registry.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h"; sourceTree = SOURCE_ROOT; }; - 6FFFF87297AF8C459786210B /* pngwtran.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c; sourceTree = SOURCE_ROOT; }; - 7038FD73A5F7527FB76E987E /* juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_graphics.mm; path = ../../JuceLibraryCode/juce_graphics.mm; sourceTree = SOURCE_ROOT; }; - 70426BCCD5E978424B32AC8B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BlocksSynth/Images.xcassets; sourceTree = SOURCE_ROOT; }; - 711B895681BA427CC7DF8E7E /* juce_android_GraphicsContext.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_GraphicsContext.cpp; path = ../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp; sourceTree = SOURCE_ROOT; }; - 711C1E768B2C7DB6946D1703 /* juce_BufferingAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BufferingAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - 7127835E262D977E179ABA27 /* export.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/export.h; sourceTree = SOURCE_ROOT; }; - 71A349845B0AB4ECB6FB56AB /* juce_mac_Threads.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Threads.mm; path = ../../../../../modules/juce_core/native/juce_mac_Threads.mm; sourceTree = SOURCE_ROOT; }; - 720BE46FF929B0A8D37DBB05 /* juce_Reverb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Reverb.h; path = ../../../../../modules/juce_audio_basics/effects/juce_Reverb.h; sourceTree = SOURCE_ROOT; }; - 72578DAAE178DD6EDC268A4E /* juce_Image.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Image.h; path = ../../../../../modules/juce_graphics/images/juce_Image.h; sourceTree = SOURCE_ROOT; }; - 729FBFD01DE3FC0BAFB0C65F /* compress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = ../../../../../modules/juce_core/zip/zlib/compress.c; sourceTree = SOURCE_ROOT; }; - 72E27E0C9F64F1BACD6EF454 /* bitreader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitreader.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h; sourceTree = SOURCE_ROOT; }; - 730CE994579DDD2DE49B5D7A /* juce_ListBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ListBox.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp; sourceTree = SOURCE_ROOT; }; - 733D19DB0084F1592D2ACCB5 /* juce_FileChooser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileChooser.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp; sourceTree = SOURCE_ROOT; }; - 735D98A7029754C4EEC30638 /* juce_ReferenceCountedArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedArray.h; path = ../../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h; sourceTree = SOURCE_ROOT; }; - 738A2C478AADF47D641F9577 /* juce_OpenGLFrameBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLFrameBuffer.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp; sourceTree = SOURCE_ROOT; }; - 74040BA20DE2E305AE2D0480 /* juce_MPEValue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPEValue.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp; sourceTree = SOURCE_ROOT; }; - 747883C759DB70A4DAB5FF3C /* juce_Colour.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Colour.cpp; path = ../../../../../modules/juce_graphics/colour/juce_Colour.cpp; sourceTree = SOURCE_ROOT; }; - 74F32D6CE88116DDAD104001 /* juce_Sampler.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Sampler.cpp; path = ../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp; sourceTree = SOURCE_ROOT; }; - 75725425105CE1949C646ADA /* juce_InterprocessConnectionServer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_InterprocessConnectionServer.cpp; path = ../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp; sourceTree = SOURCE_ROOT; }; - 7578F0E1F643412976B603E9 /* juce_Synthesiser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Synthesiser.cpp; path = ../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp; sourceTree = SOURCE_ROOT; }; - 75A2F39B22AC60256D2115D4 /* juce_AudioSourcePlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioSourcePlayer.h; path = ../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h; sourceTree = SOURCE_ROOT; }; - 75D9711B81D5DBE678D64734 /* juce_ActiveXControlComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ActiveXControlComponent.h; path = ../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h; sourceTree = SOURCE_ROOT; }; - 75E083FA4A0BAB99229F23EB /* stream_encoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stream_encoder.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h; sourceTree = SOURCE_ROOT; }; - 7609EEEACF06B6ABC9B0AD6C /* juce_audio_formats.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_audio_formats.cpp; path = ../../../../../modules/juce_audio_formats/juce_audio_formats.cpp; sourceTree = SOURCE_ROOT; }; - 761F52DF0A7AEB7B43229D12 /* jdapistd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdapistd.c; sourceTree = SOURCE_ROOT; }; - 769D6EB9D30812CE68C829C8 /* juce_OggVorbisAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OggVorbisAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 769EC065E9455C2DFECD2CCA /* juce_AudioDeviceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioDeviceManager.h; path = ../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h; sourceTree = SOURCE_ROOT; }; - 77192DF1CEF8FA03F0E6EE79 /* deflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = ../../../../../modules/juce_core/zip/zlib/deflate.c; sourceTree = SOURCE_ROOT; }; - 771B35D7F44BB8C0DFDE2452 /* juce_AudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFormat.h; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h; sourceTree = SOURCE_ROOT; }; - 7773CF6756E7F17F8CCFBB0B /* juce_RelativePointPath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativePointPath.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h; sourceTree = SOURCE_ROOT; }; - 778E2234490F20FEC78AE06E /* juce_Topology.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Topology.h; path = ../../../../../modules/juce_blocks_basics/topology/juce_Topology.h; sourceTree = SOURCE_ROOT; }; - 77A1BF25012758C1D78583E4 /* juce_ResizableBorderComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableBorderComponent.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h; sourceTree = SOURCE_ROOT; }; - 77EAC0B282DEA3227F3F03B1 /* MainComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = SOURCE_ROOT; }; - 7806B0B64D514AC448AD6E0F /* juce_MidiOutput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiOutput.h; path = ../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h; sourceTree = SOURCE_ROOT; }; - 780ED77A4BF65BA1F5E61F95 /* juce_Block.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Block.cpp; path = ../../../../../modules/juce_blocks_basics/blocks/juce_Block.cpp; sourceTree = SOURCE_ROOT; }; - 78E5BFE91209EE3CA40BAC3C /* juce_SystemStats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SystemStats.h; path = ../../../../../modules/juce_core/system/juce_SystemStats.h; sourceTree = SOURCE_ROOT; }; - 78E8E4FD896C87A932976258 /* juce_StandardHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandardHeader.h; path = ../../../../../modules/juce_core/system/juce_StandardHeader.h; sourceTree = SOURCE_ROOT; }; - 79741977D90F18EC3D8BAE35 /* juce_audio_basics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_audio_basics.cpp; path = ../../../../../modules/juce_audio_basics/juce_audio_basics.cpp; sourceTree = SOURCE_ROOT; }; - 7986D1D717F09A2C5DB15445 /* jcmainct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c; sourceTree = SOURCE_ROOT; }; - 799F28AA91B1E73D5DD93EF8 /* juce_RelativePointPath.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativePointPath.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp; sourceTree = SOURCE_ROOT; }; - 79C0162E66B96342B5135E1F /* juce_win32_Registry.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Registry.cpp; path = ../../../../../modules/juce_core/native/juce_win32_Registry.cpp; sourceTree = SOURCE_ROOT; }; - 79DB1C896B9D762A9BF4D9EF /* juce_ChangeListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChangeListener.h; path = ../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h; sourceTree = SOURCE_ROOT; }; - 7A252E1B8C10CF47B083732B /* juce_FileInputSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileInputSource.cpp; path = ../../../../../modules/juce_core/streams/juce_FileInputSource.cpp; sourceTree = SOURCE_ROOT; }; - 7A31D46D227370A23021E676 /* res0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = res0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c"; sourceTree = SOURCE_ROOT; }; - 7A45794310114755CDD94AB1 /* juce_Label.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Label.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_Label.cpp; sourceTree = SOURCE_ROOT; }; - 7A5719ACD9A5B0D2663B2EB4 /* juce_PropertySet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertySet.h; path = ../../../../../modules/juce_core/containers/juce_PropertySet.h; sourceTree = SOURCE_ROOT; }; - 7B516EE490E9912305AEBFDC /* juce_CompilerSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CompilerSupport.h; path = ../../../../../modules/juce_core/system/juce_CompilerSupport.h; sourceTree = SOURCE_ROOT; }; - 7BBCCF2C183BCF08FA446ABB /* juce_FileOutputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileOutputStream.cpp; path = ../../../../../modules/juce_core/files/juce_FileOutputStream.cpp; sourceTree = SOURCE_ROOT; }; - 7C32EA6B5A32E29B31FE6FFA /* lsp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = SOURCE_ROOT; }; - 7C3509B7C5B03AEF2B13D26C /* juce_CustomTypeface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CustomTypeface.h; path = ../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h; sourceTree = SOURCE_ROOT; }; - 7C5529A757AAF95634BB7251 /* juce_LookAndFeel_V3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LookAndFeel_V3.h; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h; sourceTree = SOURCE_ROOT; }; - 7C5ACCC90B3367A29598171C /* juce_InputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InputSource.h; path = ../../../../../modules/juce_core/streams/juce_InputSource.h; sourceTree = SOURCE_ROOT; }; - 7D3372B86F706B2EB958851D /* juce_Drawable.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Drawable.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp; sourceTree = SOURCE_ROOT; }; - 7D5439A24397FB12F5B97C69 /* juce_SystemTrayIconComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SystemTrayIconComponent.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp; sourceTree = SOURCE_ROOT; }; - 7D7F423A3FB0AC8EDBE62944 /* juce_CaretComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CaretComponent.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h; sourceTree = SOURCE_ROOT; }; - 7E391A85858C06D5F6286DE1 /* juce_BufferedInputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BufferedInputStream.h; path = ../../../../../modules/juce_core/streams/juce_BufferedInputStream.h; sourceTree = SOURCE_ROOT; }; - 7E3C266A9195C927EDA3D45B /* stream_decoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stream_decoder.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h; sourceTree = SOURCE_ROOT; }; - 7E6FCB5568F74241A49A5B91 /* juce_String.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_String.cpp; path = ../../../../../modules/juce_core/text/juce_String.cpp; sourceTree = SOURCE_ROOT; }; - 7F13C06AE22B799467575AB5 /* smallft.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h"; sourceTree = SOURCE_ROOT; }; - 7F71A4F3F4814177EB0CFB75 /* jcinit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c; sourceTree = SOURCE_ROOT; }; - 7F9265BF55E77A3F1FE16D6A /* juce_MidiMessageCollector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageCollector.h; path = ../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h; sourceTree = SOURCE_ROOT; }; - 7FE57FC0CEE579C81819F26B /* juce_FilenameComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FilenameComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp; sourceTree = SOURCE_ROOT; }; - 80235293554BB0956701E9ED /* juce_CharPointer_ASCII.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharPointer_ASCII.h; path = ../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h; sourceTree = SOURCE_ROOT; }; - 80BBC5D053419503A600F7D5 /* Protocol Format.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Protocol Format.txt"; path = "../../../../../modules/juce_blocks_basics/protocol/Protocol Format.txt"; sourceTree = SOURCE_ROOT; }; - 80CB00749EEB05EB63E6AB02 /* juce_DrawableRectangle.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableRectangle.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp; sourceTree = SOURCE_ROOT; }; - 80E878BF0672503772AB3C6C /* juce_DrawableButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp; sourceTree = SOURCE_ROOT; }; - 8103743F82032789096ACEB5 /* juce_CodeEditorComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CodeEditorComponent.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h; sourceTree = SOURCE_ROOT; }; - 811EB7C741184EAE672D6581 /* juce_FileTreeComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileTreeComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp; sourceTree = SOURCE_ROOT; }; - 812F5FE9CE244FFDCFA5F7D7 /* envelope.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = envelope.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.h"; sourceTree = SOURCE_ROOT; }; - 813E65ADB3932DDD6C2FD747 /* juce_LowLevelGraphicsSoftwareRenderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LowLevelGraphicsSoftwareRenderer.h; path = ../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h; sourceTree = SOURCE_ROOT; }; - 818EFDD3442FFD396956B865 /* Ogg Vorbis Licence.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Ogg Vorbis Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt"; sourceTree = SOURCE_ROOT; }; - 819FAA8F15DD9C9789D26B77 /* juce_StretchableLayoutResizerBar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutResizerBar.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp; sourceTree = SOURCE_ROOT; }; - 81ADF2BEFA99AD3AB0FC9A82 /* juce_LEDGrid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LEDGrid.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_LEDGrid.h; sourceTree = SOURCE_ROOT; }; - 820AEA62B5F877385A1B482D /* juce_BigInteger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BigInteger.h; path = ../../../../../modules/juce_core/maths/juce_BigInteger.h; sourceTree = SOURCE_ROOT; }; - 8221B5162E280BE9AB2619CD /* juce_MPEZoneLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPEZoneLayout.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h; sourceTree = SOURCE_ROOT; }; - 8232BE31BA3CA0AE677EC11D /* juce_DynamicObject.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DynamicObject.cpp; path = ../../../../../modules/juce_core/containers/juce_DynamicObject.cpp; sourceTree = SOURCE_ROOT; }; - 82A5E18127980C5CF8AE919F /* juce_TooltipClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TooltipClient.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h; sourceTree = SOURCE_ROOT; }; - 82C32D94FAED75BF1FBB3FCB /* setup_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_8.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h"; sourceTree = SOURCE_ROOT; }; - 83123049240352B97AEC1FBE /* juce_ListenerList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ListenerList.h; path = ../../../../../modules/juce_core/containers/juce_ListenerList.h; sourceTree = SOURCE_ROOT; }; - 8319007F2F0B140F09E10D2E /* juce_ios_UIViewComponent.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_ios_UIViewComponent.mm; path = ../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm; sourceTree = SOURCE_ROOT; }; - 83A8F8A11B1659400C525E81 /* juce_PhysicalTopologySource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PhysicalTopologySource.cpp; path = ../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp; sourceTree = SOURCE_ROOT; }; - 83AFB3E647BB6ED40AA571A8 /* stream_encoder_framing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stream_encoder_framing.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h; sourceTree = SOURCE_ROOT; }; - 8406536DA0B794016B0CC15B /* jfdctint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c; sourceTree = SOURCE_ROOT; }; - 84182A25498E78D5DEF6E925 /* juce_ToneGeneratorAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToneGeneratorAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - 84187C96133F7EAC39E46D9B /* juce_ShapeButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ShapeButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp; sourceTree = SOURCE_ROOT; }; - 849CF8E8313D7205E0DAA6F8 /* juce_SystemStats.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SystemStats.cpp; path = ../../../../../modules/juce_core/system/juce_SystemStats.cpp; sourceTree = SOURCE_ROOT; }; - 84BE02BFDAF53B9697664253 /* juce_MidiFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiFile.cpp; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp; sourceTree = SOURCE_ROOT; }; - 84FD4873C8F91A307D95563B /* stream_encoder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = stream_encoder.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c; sourceTree = SOURCE_ROOT; }; - 84FE9718AAA47D64293881CB /* juce_ResizableEdgeComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableEdgeComponent.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h; sourceTree = SOURCE_ROOT; }; - 8503FD83B959A39D75548438 /* setup_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_44.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = SOURCE_ROOT; }; - 852CE105B166A48264750790 /* juce_MidiMessageCollector.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiMessageCollector.cpp; path = ../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp; sourceTree = SOURCE_ROOT; }; - 854C4EBBB0954052ACF55160 /* juce_MidiKeyboardState.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiKeyboardState.cpp; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp; sourceTree = SOURCE_ROOT; }; - 856D6984E668878C082F6CE8 /* juce_ToneGeneratorAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToneGeneratorAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h; sourceTree = SOURCE_ROOT; }; - 866A90A69A3EB77768DD8A23 /* juce_core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_core.h; path = ../../../../../modules/juce_core/juce_core.h; sourceTree = SOURCE_ROOT; }; - 868BF9273B56A0762F1CE5B8 /* juce_Desktop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Desktop.cpp; path = ../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp; sourceTree = SOURCE_ROOT; }; - 8694FBBB22ADD72875586C4C /* juce_TableListBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableListBox.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h; sourceTree = SOURCE_ROOT; }; - 86C5B51CA8FE58BBE6C48E5E /* juce_mac_NSViewComponent.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_NSViewComponent.mm; path = ../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm; sourceTree = SOURCE_ROOT; }; - 8706B5033AE6F9AD92FB4F70 /* juce_ResizableCornerComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableCornerComponent.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h; sourceTree = SOURCE_ROOT; }; - 875FEC3940D6185FD9190213 /* juce_ResizableBorderComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableBorderComponent.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp; sourceTree = SOURCE_ROOT; }; - 879DC7CDE41F11EF9A8F3FCE /* juce_DropShadower.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DropShadower.cpp; path = ../../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp; sourceTree = SOURCE_ROOT; }; - 87ECEEBFFBBFB5281E991537 /* JuceHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; - 87F3AD7F998AC58254A5CB14 /* pngerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c; sourceTree = SOURCE_ROOT; }; - 881A4A50718FA7CE3F3E5375 /* floor1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = SOURCE_ROOT; }; - 884EE4AA71233E725BAC6B70 /* juce_String.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_String.h; path = ../../../../../modules/juce_core/text/juce_String.h; sourceTree = SOURCE_ROOT; }; - 88587028FF53FA6CFA0D4887 /* juce_MidiMessage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiMessage.cpp; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp; sourceTree = SOURCE_ROOT; }; - 8899E26B15AA5CE8D18A2DB2 /* juce_ios_Windowing.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_ios_Windowing.mm; path = ../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm; sourceTree = SOURCE_ROOT; }; - 890AEBD8BEC0A1A2C418F79B /* juce_ColourGradient.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ColourGradient.cpp; path = ../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp; sourceTree = SOURCE_ROOT; }; - 892C11FB5B2192DC7FE0E617 /* juce_MenuBarModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MenuBarModel.cpp; path = ../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp; sourceTree = SOURCE_ROOT; }; - 89C83AC387C203CF1105C951 /* juce_MPEInstrument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPEInstrument.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h; sourceTree = SOURCE_ROOT; }; - 8A270D3B29FF0A115BDA7C00 /* juce_android_WebBrowserComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_WebBrowserComponent.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp; sourceTree = SOURCE_ROOT; }; - 8A3C4AF25492360327C080A7 /* zutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = ../../../../../modules/juce_core/zip/zlib/zutil.c; sourceTree = SOURCE_ROOT; }; - 8A3EF0C45AE28C847B7BB89E /* juce_Decibels.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Decibels.h; path = ../../../../../modules/juce_audio_basics/effects/juce_Decibels.h; sourceTree = SOURCE_ROOT; }; - 8A48EB23ED8F364CF167DF1D /* stream_encoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stream_encoder.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h; sourceTree = SOURCE_ROOT; }; - 8A92A94D8E00418673E58846 /* jmemmgr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c; sourceTree = SOURCE_ROOT; }; - 8AB24BF1D27B394712F32CBF /* juce_LEDRow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LEDRow.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_LEDRow.h; sourceTree = SOURCE_ROOT; }; - 8AC432E785BEC3DAD8663650 /* juce_TableListBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableListBox.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp; sourceTree = SOURCE_ROOT; }; - 8AFFB60B20E17B797777B2B8 /* cpu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h; sourceTree = SOURCE_ROOT; }; - 8BC3502A774FCDC44C015866 /* juce_FileFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileFilter.h; path = ../../../../../modules/juce_core/files/juce_FileFilter.h; sourceTree = SOURCE_ROOT; }; - 8BD079BB7D801C6E67873BA1 /* psy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = SOURCE_ROOT; }; - 8BE67E7D6CE3A17E2E120520 /* juce_DynamicObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DynamicObject.h; path = ../../../../../modules/juce_core/containers/juce_DynamicObject.h; sourceTree = SOURCE_ROOT; }; - 8CAF15744CF73CDE5C577AB3 /* juce_win32_Files.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Files.cpp; path = ../../../../../modules/juce_core/native/juce_win32_Files.cpp; sourceTree = SOURCE_ROOT; }; - 8CB049C67CA9CA3E76960B1D /* juce_CodeDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CodeDocument.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h; sourceTree = SOURCE_ROOT; }; - 8CB84F9ACB8B17117E5FE0C4 /* juce_AudioFormatReader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFormatReader.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp; sourceTree = SOURCE_ROOT; }; - 8CCE915477416067D7B0F311 /* juce_HashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HashMap.h; path = ../../../../../modules/juce_core/containers/juce_HashMap.h; sourceTree = SOURCE_ROOT; }; - 8CDDF045B2A202FCA5DFD932 /* synthesis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = SOURCE_ROOT; }; - 8D267142A6682D9886D0CD9A /* juce_LookAndFeel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LookAndFeel.cpp; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp; sourceTree = SOURCE_ROOT; }; - 8D69477B2E980591FF3F78EE /* juce_ApplicationBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationBase.h; path = ../../../../../modules/juce_events/messages/juce_ApplicationBase.h; sourceTree = SOURCE_ROOT; }; - 8DC679191499EAE03463DC3E /* juce_CharPointer_UTF32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharPointer_UTF32.h; path = ../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h; sourceTree = SOURCE_ROOT; }; - 8DC8471AAC1855AC5FCF5A49 /* juce_ComboBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComboBox.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h; sourceTree = SOURCE_ROOT; }; - 8E5D35AF16D5BC97A9F05B26 /* juce_XMLCodeTokeniser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_XMLCodeTokeniser.cpp; path = ../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp; sourceTree = SOURCE_ROOT; }; - 8E8618D73EBC59ABD8A424EB /* juce_BooleanPropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BooleanPropertyComponent.h; path = ../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h; sourceTree = SOURCE_ROOT; }; - 8E8EB4F5ADDC2D5B024F0F0F /* juce_android_OpenSL.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_OpenSL.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp; sourceTree = SOURCE_ROOT; }; - 8EBDC229B7D3D13C09C28CE6 /* juce_Identifier.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Identifier.cpp; path = ../../../../../modules/juce_core/text/juce_Identifier.cpp; sourceTree = SOURCE_ROOT; }; - 8EEEC7C23F3A4D5EBAD32660 /* juce_FillType.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FillType.cpp; path = ../../../../../modules/juce_graphics/colour/juce_FillType.cpp; sourceTree = SOURCE_ROOT; }; - 8EF4F0D964C0ECA2E058F7DC /* juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_events.mm; path = ../../JuceLibraryCode/juce_events.mm; sourceTree = SOURCE_ROOT; }; - 8EFAE8B2003284F5A905E08D /* juce_PerformanceCounter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PerformanceCounter.cpp; path = ../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp; sourceTree = SOURCE_ROOT; }; - 8F311C729219275902113CE6 /* juce_RectanglePlacement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RectanglePlacement.cpp; path = ../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp; sourceTree = SOURCE_ROOT; }; - 8FACD18D8DF3D14D269091CA /* juce_CaretComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CaretComponent.cpp; path = ../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp; sourceTree = SOURCE_ROOT; }; - 8FBD6AD2AA7111D2BE5D52AD /* codec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codec.h; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h; sourceTree = SOURCE_ROOT; }; - 8FC4E1BB74B356F0099608B9 /* juce_AudioIODeviceType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioIODeviceType.h; path = ../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h; sourceTree = SOURCE_ROOT; }; - 90040097B24860C360877342 /* juce_Value.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Value.h; path = ../../../../../modules/juce_data_structures/values/juce_Value.h; sourceTree = SOURCE_ROOT; }; - 90092F1E5EBA0AA6057FBE6A /* juce_linux_JackAudio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_JackAudio.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp; sourceTree = SOURCE_ROOT; }; - 905BDA536A972F6FC36B356F /* juce_audio_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_basics.mm; path = ../../../../../modules/juce_audio_basics/juce_audio_basics.mm; sourceTree = SOURCE_ROOT; }; - 9065B3CBA068CCEE9F5AFDFE /* juce_ScopedWriteLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedWriteLock.h; path = ../../../../../modules/juce_core/threads/juce_ScopedWriteLock.h; sourceTree = SOURCE_ROOT; }; - 90A6E39FA0169E7EE1E66FA7 /* juce_MidiRPN.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiRPN.h; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h; sourceTree = SOURCE_ROOT; }; - 9109705AE4C9C46B0CEBAD57 /* juce_DrawablePath.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawablePath.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp; sourceTree = SOURCE_ROOT; }; - 9159BC49F78C18D4ABBAA16A /* all.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/all.h; sourceTree = SOURCE_ROOT; }; - 919078E0ACA29DBAEFAEDB97 /* juce_audio_devices.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_devices.mm; path = ../../../../../modules/juce_audio_devices/juce_audio_devices.mm; sourceTree = SOURCE_ROOT; }; - 91EBFF0D72C95AA186003C8E /* juce_AudioFormatWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFormatWriter.h; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h; sourceTree = SOURCE_ROOT; }; - 92014E0EF85DDA08ACCFE803 /* juce_CachedValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CachedValue.h; path = ../../../../../modules/juce_data_structures/values/juce_CachedValue.h; sourceTree = SOURCE_ROOT; }; - 920D2C92A6D26ECC0914BE7A /* juce_ReadWriteLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReadWriteLock.h; path = ../../../../../modules/juce_core/threads/juce_ReadWriteLock.h; sourceTree = SOURCE_ROOT; }; - 92679B9C6D17B2B7CD7B4EFA /* juce_GlyphArrangement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GlyphArrangement.h; path = ../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h; sourceTree = SOURCE_ROOT; }; - 92CEF1181147D9E110D85278 /* juce_Matrix3D.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Matrix3D.h; path = ../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h; sourceTree = SOURCE_ROOT; }; - 930BD2067E0A3FC1B0812211 /* residue_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = residue_44.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44.h"; sourceTree = SOURCE_ROOT; }; - 936C85C333BE640A26BEA92B /* fixed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h; sourceTree = SOURCE_ROOT; }; - 93704EAD7D73562297F10C7B /* juce_CatmullRomInterpolator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CatmullRomInterpolator.cpp; path = ../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp; sourceTree = SOURCE_ROOT; }; - 939C507246EB383834A13299 /* jdmainct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c; sourceTree = SOURCE_ROOT; }; - 93B87F458F1F33BFD30539FD /* juce_BufferingAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BufferingAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h; sourceTree = SOURCE_ROOT; }; - 93FDFB1DD4E2378AE729BA02 /* juce_StringRef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StringRef.h; path = ../../../../../modules/juce_core/text/juce_StringRef.h; sourceTree = SOURCE_ROOT; }; - 94123CD59BFDC04A9DFCB71B /* juce_DirectoryIterator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectoryIterator.h; path = ../../../../../modules/juce_core/files/juce_DirectoryIterator.h; sourceTree = SOURCE_ROOT; }; - 942341A54DBA7FD0D9AD19DF /* window_flac.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window_flac.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/window_flac.c; sourceTree = SOURCE_ROOT; }; - 942B534CD5B5BA732092A55E /* juce_mac_CoreGraphicsContext.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_CoreGraphicsContext.mm; path = ../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm; sourceTree = SOURCE_ROOT; }; - 94E460DE1BB4B000A0EB883A /* juce_ComponentMovementWatcher.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentMovementWatcher.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp; sourceTree = SOURCE_ROOT; }; - 95636B26C770CFEADB3201BA /* juce_graphics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_graphics.h; path = ../../../../../modules/juce_graphics/juce_graphics.h; sourceTree = SOURCE_ROOT; }; - 959F6D02ECA6B976583C67FA /* juce_TreeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TreeView.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h; sourceTree = SOURCE_ROOT; }; - 95A6DD5234F109DB3ABC983C /* juce_CharacterFunctions.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CharacterFunctions.cpp; path = ../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp; sourceTree = SOURCE_ROOT; }; - 96A355D0A7CCC55998862273 /* juce_ChoicePropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ChoicePropertyComponent.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; - 96B1C4A89CB5A5423A116F84 /* juce_win32_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Network.cpp; path = ../../../../../modules/juce_core/native/juce_win32_Network.cpp; sourceTree = SOURCE_ROOT; }; - 96C5E46FAC93C462A7EBF4DF /* juce_audio_formats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_audio_formats.h; path = ../../../../../modules/juce_audio_formats/juce_audio_formats.h; sourceTree = SOURCE_ROOT; }; - 96FC2E3988B10054B1A11323 /* juce_GroupComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GroupComponent.h; path = ../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h; sourceTree = SOURCE_ROOT; }; - 9707394FCE0F9ED5DDBB0524 /* juce_UnitTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_UnitTest.h; path = ../../../../../modules/juce_core/unit_tests/juce_UnitTest.h; sourceTree = SOURCE_ROOT; }; - 9768B98C6D83F54C36FA719F /* crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = ../../../../../modules/juce_core/zip/zlib/crc32.c; sourceTree = SOURCE_ROOT; }; - 97A84C15178314A33151C129 /* juce_ToolbarItemFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToolbarItemFactory.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h; sourceTree = SOURCE_ROOT; }; - 97AE93FD5FB144697DBFE207 /* juce_CoreAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CoreAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 97BAAC4F048477A639E48B3F /* juce_Expression.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Expression.cpp; path = ../../../../../modules/juce_core/maths/juce_Expression.cpp; sourceTree = SOURCE_ROOT; }; - 97C27DB9A68F6AACFF857A46 /* juce_XmlElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_XmlElement.h; path = ../../../../../modules/juce_core/xml/juce_XmlElement.h; sourceTree = SOURCE_ROOT; }; - 97DC76FC35177C25FECDD169 /* jdmerge.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c; sourceTree = SOURCE_ROOT; }; - 982342A0B98DB337C74DC50A /* bitwriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h; sourceTree = SOURCE_ROOT; }; - 982EF3C57A98E26EAD69AE4B /* pngset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngset.c; sourceTree = SOURCE_ROOT; }; - 987209E1994B07DBD16DEC8B /* juce_Result.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Result.cpp; path = ../../../../../modules/juce_core/misc/juce_Result.cpp; sourceTree = SOURCE_ROOT; }; - 98A71ED25423EDA3D71C5A82 /* juce_ImageComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageComponent.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp; sourceTree = SOURCE_ROOT; }; - 993A042E02F2CE3ABC485FC1 /* juce_FileFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileFilter.cpp; path = ../../../../../modules/juce_core/files/juce_FileFilter.cpp; sourceTree = SOURCE_ROOT; }; - 99A9A70A22EC3C598F623111 /* block.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = block.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/block.c"; sourceTree = SOURCE_ROOT; }; - 99D62156E5F03AEEF0F367BE /* juce_ReferenceCountedObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; - 99D82B4AECBFE5BBEA8E435B /* juce_OpenGL_osx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGL_osx.h; path = ../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h; sourceTree = SOURCE_ROOT; }; - 9A157F41830D8E72D9B6DDE9 /* juce_DragAndDropContainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DragAndDropContainer.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h; sourceTree = SOURCE_ROOT; }; - 9AAD4E5C83FE06AA1C471DCB /* juce_MemoryBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../../../../modules/juce_core/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; - 9B04A8539B5ED08A7E26072A /* juce_UndoableAction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_UndoableAction.h; path = ../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h; sourceTree = SOURCE_ROOT; }; - 9B059A5FCABFC0743BAAEDB0 /* juce_BorderSize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BorderSize.h; path = ../../../../../modules/juce_graphics/geometry/juce_BorderSize.h; sourceTree = SOURCE_ROOT; }; - 9B927FB567BC0D29DE04DEC7 /* juce_Path.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Path.h; path = ../../../../../modules/juce_graphics/geometry/juce_Path.h; sourceTree = SOURCE_ROOT; }; - 9BA7FB3722B671A47037C909 /* jpegint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpegint.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h; sourceTree = SOURCE_ROOT; }; - 9BC007D5846F63F0F37CF97B /* juce_gui_basics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_gui_basics.cpp; path = ../../../../../modules/juce_gui_basics/juce_gui_basics.cpp; sourceTree = SOURCE_ROOT; }; - 9BC9AD541C62AF0DD2BC11D5 /* juce_MathsFunctions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MathsFunctions.h; path = ../../../../../modules/juce_core/maths/juce_MathsFunctions.h; sourceTree = SOURCE_ROOT; }; - 9C331AACD288AAD9F7FDF881 /* juce_mac_Strings.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Strings.mm; path = ../../../../../modules/juce_core/native/juce_mac_Strings.mm; sourceTree = SOURCE_ROOT; }; - 9C5ED73E2DF5FDCE5189E945 /* juce_SelectedItemSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SelectedItemSet.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h; sourceTree = SOURCE_ROOT; }; - 9CD701758E71973D7BF7CC8D /* juce_BubbleComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BubbleComponent.cpp; path = ../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp; sourceTree = SOURCE_ROOT; }; - 9D16672FDB24B44DFF13E4B1 /* juce_StretchableLayoutResizerBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StretchableLayoutResizerBar.h; path = ../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h; sourceTree = SOURCE_ROOT; }; - 9D36B0CD0D56048687E2A573 /* zlib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = ../../../../../modules/juce_core/zip/zlib/zlib.h; sourceTree = SOURCE_ROOT; }; - 9D53AA5877289D7EC8E9D708 /* juce_RelativeCoordinate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeCoordinate.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h; sourceTree = SOURCE_ROOT; }; - 9D68ED5474F6AA923599D783 /* juce_QuickTimeAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_QuickTimeAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - 9D95253B677F8E6E916D4C41 /* juce_Random.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Random.h; path = ../../../../../modules/juce_core/maths/juce_Random.h; sourceTree = SOURCE_ROOT; }; - 9E0DB0A243F94F8D90C1CB1B /* juce_Initialisation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Initialisation.h; path = ../../../../../modules/juce_events/messages/juce_Initialisation.h; sourceTree = SOURCE_ROOT; }; - 9E490E7A44CB793DDFBEE1EE /* juce_OpenGLAppComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLAppComponent.cpp; path = ../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp; sourceTree = SOURCE_ROOT; }; - 9E56353F5164018FE9407346 /* juce_MouseEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MouseEvent.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp; sourceTree = SOURCE_ROOT; }; - 9EA89360E878DE14172E34CF /* juce_SplashScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SplashScreen.h; path = ../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h; sourceTree = SOURCE_ROOT; }; - 9F02393F695A4882E729627C /* juce_MouseInputSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MouseInputSource.cpp; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp; sourceTree = SOURCE_ROOT; }; - 9F13791A2E1028E08EFB5A32 /* juce_Viewport.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Viewport.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp; sourceTree = SOURCE_ROOT; }; - 9F87B75B0923DE3CA7124827 /* jccoefct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c; sourceTree = SOURCE_ROOT; }; - A00E9DF1CB3DB09C81B31D98 /* juce_FFT.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FFT.cpp; path = ../../../../../modules/juce_audio_basics/effects/juce_FFT.cpp; sourceTree = SOURCE_ROOT; }; - A0B8C5DC5B1C48EF0B25D9DB /* juce_TextDragAndDropTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextDragAndDropTarget.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h; sourceTree = SOURCE_ROOT; }; - A0C6E00A2F5204606A1B0196 /* juce_OpenGLShaderProgram.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLShaderProgram.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h; sourceTree = SOURCE_ROOT; }; - A0FF0FE7A4BA41F808EBF3C1 /* cderror.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h; sourceTree = SOURCE_ROOT; }; - A10A8513A3239AF1A4E59DD6 /* juce_PNGLoader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PNGLoader.cpp; path = ../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp; sourceTree = SOURCE_ROOT; }; - A16EB5BE88FD8E25BD4F4158 /* juce_OpenGLTexture.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OpenGLTexture.cpp; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp; sourceTree = SOURCE_ROOT; }; - A1842A3B2210EA4F3E78A614 /* juce_HyperlinkButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_HyperlinkButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp; sourceTree = SOURCE_ROOT; }; - A19C3A3A74428A4C8EF44EBF /* highlevel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = highlevel.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h"; sourceTree = SOURCE_ROOT; }; - A1C12AC77EFFF165AC6B053D /* juce_TextButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h; sourceTree = SOURCE_ROOT; }; - A23399E22779624DCB1D025C /* juce_Image.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Image.cpp; path = ../../../../../modules/juce_graphics/images/juce_Image.cpp; sourceTree = SOURCE_ROOT; }; - A235D66B34BD50E939FF885D /* juce_mac_ClangBugWorkaround.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_mac_ClangBugWorkaround.h; path = ../../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h; sourceTree = SOURCE_ROOT; }; - A2DCF1D28A3EADC8DB365F97 /* juce_CodeEditorComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CodeEditorComponent.cpp; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp; sourceTree = SOURCE_ROOT; }; - A317B26EF3D30E3CFCC80F79 /* pngread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngread.c; sourceTree = SOURCE_ROOT; }; - A31876A1700D5032452F8AA8 /* juce_FileBasedDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileBasedDocument.h; path = ../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h; sourceTree = SOURCE_ROOT; }; - A32C77F35CC0A61153BDD2BD /* float.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h; sourceTree = SOURCE_ROOT; }; - A3C88D6C40459FD49F4BBBFC /* juce_ImageButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h; sourceTree = SOURCE_ROOT; }; - A406981AEDB8C64F3F1000ED /* juce_FileSearchPath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileSearchPath.h; path = ../../../../../modules/juce_core/files/juce_FileSearchPath.h; sourceTree = SOURCE_ROOT; }; - A40D3E3FFBEC78F04EE0DE5A /* juce_blocks_basics.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_blocks_basics.cpp; path = ../../JuceLibraryCode/juce_blocks_basics.cpp; sourceTree = SOURCE_ROOT; }; - A416B5CD799D7BDABF8FEE69 /* juce_TouchSurface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TouchSurface.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_TouchSurface.h; sourceTree = SOURCE_ROOT; }; - A41A3F1FD1EE4F50F9267231 /* juce_SplashScreen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SplashScreen.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp; sourceTree = SOURCE_ROOT; }; - A48C9F610C0BDA307CC287F7 /* juce_DeletedAtShutdown.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DeletedAtShutdown.cpp; path = ../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp; sourceTree = SOURCE_ROOT; }; - A4E1341FFEB2CDFED4B2750C /* juce_TextDiff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextDiff.h; path = ../../../../../modules/juce_core/text/juce_TextDiff.h; sourceTree = SOURCE_ROOT; }; - A546C8B742A8DC8F5E60C606 /* juce_Socket.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Socket.cpp; path = ../../../../../modules/juce_core/network/juce_Socket.cpp; sourceTree = SOURCE_ROOT; }; - A579D7C165F5D2A34D8B60DB /* juce_KeyboardFocusTraverser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyboardFocusTraverser.cpp; path = ../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp; sourceTree = SOURCE_ROOT; }; - A5C1C519AA6CE15BF9547B03 /* juce_mac_MainMenu.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_MainMenu.mm; path = ../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm; sourceTree = SOURCE_ROOT; }; - A647EFD684A71A7F1DFEF7E9 /* juce_DynamicLibrary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DynamicLibrary.h; path = ../../../../../modules/juce_core/threads/juce_DynamicLibrary.h; sourceTree = SOURCE_ROOT; }; - A65DFC4FCE8DD0EAA2901FF4 /* registry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = registry.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c"; sourceTree = SOURCE_ROOT; }; - A693A2B27BD70EAF2FDCDD91 /* juce_OggVorbisAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OggVorbisAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h; sourceTree = SOURCE_ROOT; }; - A6CA6F9862A31AA045082102 /* juce_ArrowButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ArrowButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp; sourceTree = SOURCE_ROOT; }; - A701A3A08035A45B9D1F7963 /* juce_Drawable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Drawable.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_Drawable.h; sourceTree = SOURCE_ROOT; }; - A7102BD74E049F7ED8513D1B /* juce_LittleFootRunner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LittleFootRunner.h; path = ../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h; sourceTree = SOURCE_ROOT; }; - A7513E63DF1FEE5FB89D5674 /* juce_FlexBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FlexBox.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp; sourceTree = SOURCE_ROOT; }; - A75D403B2009F5E41DB85E88 /* juce_FileChooser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileChooser.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h; sourceTree = SOURCE_ROOT; }; - A76BBF30944A9FC89679BE5E /* juce_Array.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Array.h; path = ../../../../../modules/juce_core/containers/juce_Array.h; sourceTree = SOURCE_ROOT; }; - A7A27C3E995A0A0CAF75F018 /* juce_BlocksProtocolDefinitions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BlocksProtocolDefinitions.h; path = ../../../../../modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h; sourceTree = SOURCE_ROOT; }; - A7AB12DC3DB28027A4F73022 /* juce_MidiMessageSequence.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiMessageSequence.cpp; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp; sourceTree = SOURCE_ROOT; }; - A7DBC8925B48CFF83A1A785D /* juce_Component.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Component.h; path = ../../../../../modules/juce_gui_basics/components/juce_Component.h; sourceTree = SOURCE_ROOT; }; - A830EA78B992425DA01217BB /* juce_ZipFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ZipFile.cpp; path = ../../../../../modules/juce_core/zip/juce_ZipFile.cpp; sourceTree = SOURCE_ROOT; }; - A844CEB6720112AAAE4BDABD /* stream_encoder_framing.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = stream_encoder_framing.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c; sourceTree = SOURCE_ROOT; }; - A868BFDFEFD84058783F8A1B /* juce_PropertyPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertyPanel.h; path = ../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h; sourceTree = SOURCE_ROOT; }; - A8A58CFF7A33378076372D7F /* juce_Typeface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Typeface.h; path = ../../../../../modules/juce_graphics/fonts/juce_Typeface.h; sourceTree = SOURCE_ROOT; }; - A8C4CA489A4BF1B340754797 /* juce_ApplicationCommandInfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationCommandInfo.cpp; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp; sourceTree = SOURCE_ROOT; }; - A8FBBFE98D5BD4AD7029040E /* juce_ScopedReadLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedReadLock.h; path = ../../../../../modules/juce_core/threads/juce_ScopedReadLock.h; sourceTree = SOURCE_ROOT; }; - A909FAC6633F0D17F297405A /* juce_android_Audio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Audio.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp; sourceTree = SOURCE_ROOT; }; - A928068058AABD08099E1792 /* juce_gui_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_gui_basics.mm; path = ../../../../../modules/juce_gui_basics/juce_gui_basics.mm; sourceTree = SOURCE_ROOT; }; - A93D235AED6D56DA08F82062 /* juce_LuaCodeTokeniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LuaCodeTokeniser.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h; sourceTree = SOURCE_ROOT; }; - A94DAD22B9F27389EB042378 /* juce_DrawablePath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawablePath.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h; sourceTree = SOURCE_ROOT; }; - A9833EF4FF3863198A01845F /* juce_OptionalScopedPointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OptionalScopedPointer.h; path = ../../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h; sourceTree = SOURCE_ROOT; }; - A9A287E8488E914B1EDDA564 /* juce_XmlElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_XmlElement.cpp; path = ../../../../../modules/juce_core/xml/juce_XmlElement.cpp; sourceTree = SOURCE_ROOT; }; - A9D2C3EEB94596DD2B772434 /* juce_File.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_File.h; path = ../../../../../modules/juce_core/files/juce_File.h; sourceTree = SOURCE_ROOT; }; - A9FB36572DDA1194317B9352 /* juce_MidiDataConcatenator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiDataConcatenator.h; path = ../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h; sourceTree = SOURCE_ROOT; }; - AA518B503E5A850094865B1A /* juce_LocalisedStrings.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LocalisedStrings.cpp; path = ../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp; sourceTree = SOURCE_ROOT; }; - AA89E7B373C7733F3F5646F1 /* vorbisfile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c"; sourceTree = SOURCE_ROOT; }; - AAF99DBF6ACB84A56C7996C5 /* juce_RelativePoint.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativePoint.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp; sourceTree = SOURCE_ROOT; }; - AB4B277C8F975F009F31753A /* juce_LagrangeInterpolator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LagrangeInterpolator.h; path = ../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h; sourceTree = SOURCE_ROOT; }; - AB4BAE5B3AAB57A4BC712F3F /* juce_Slider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Slider.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_Slider.h; sourceTree = SOURCE_ROOT; }; - AB50A06C6DADCC7678D37DF0 /* juce_SliderPropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SliderPropertyComponent.h; path = ../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h; sourceTree = SOURCE_ROOT; }; - AB8E624C28BB20096959B5C9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - AB995EFABB924F8175D8954F /* juce_win32_DragAndDrop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_DragAndDrop.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp; sourceTree = SOURCE_ROOT; }; - ABB93E3C3FB5C8C04FB65943 /* juce_GlyphArrangement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GlyphArrangement.cpp; path = ../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp; sourceTree = SOURCE_ROOT; }; - ABFE23A312B6421D3E21ADC8 /* juce_gui_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_gui_basics.mm; path = ../../JuceLibraryCode/juce_gui_basics.mm; sourceTree = SOURCE_ROOT; }; - AC4D225082C6EC2B2F74D280 /* inffast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = ../../../../../modules/juce_core/zip/zlib/inffast.h; sourceTree = SOURCE_ROOT; }; - AC9C674F22F5CCEDB27CA007 /* jccolor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jccolor.c; sourceTree = SOURCE_ROOT; }; - ACC89760CF09AB1EB06AD52B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - ACE53253C4EF7A3B45197F94 /* metadata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h; sourceTree = SOURCE_ROOT; }; - ACEA8F358B77577CBE526F1B /* juce_OutputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_OutputStream.cpp; path = ../../../../../modules/juce_core/streams/juce_OutputStream.cpp; sourceTree = SOURCE_ROOT; }; - AD272D93B639B0D95431D071 /* juce_data_structures.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_data_structures.cpp; path = ../../../../../modules/juce_data_structures/juce_data_structures.cpp; sourceTree = SOURCE_ROOT; }; - AD3294A10650175E7F446D7E /* juce_BubbleMessageComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BubbleMessageComponent.h; path = ../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h; sourceTree = SOURCE_ROOT; }; - AD95DCF6FDF31C1C53422FA4 /* juce_IIRFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IIRFilter.h; path = ../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h; sourceTree = SOURCE_ROOT; }; - ADBF05F90178C516209F0C6F /* juce_osx_MessageQueue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_osx_MessageQueue.h; path = ../../../../../modules/juce_events/native/juce_osx_MessageQueue.h; sourceTree = SOURCE_ROOT; }; - ADC432227AFFB91565728B20 /* backends.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backends.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h"; sourceTree = SOURCE_ROOT; }; - ADF718CBF6842DD6FC15CF71 /* juce_Random.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Random.cpp; path = ../../../../../modules/juce_core/maths/juce_Random.cpp; sourceTree = SOURCE_ROOT; }; - ADF9FFDBBDB7AE74869554B6 /* juce_SystemTrayIconComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SystemTrayIconComponent.h; path = ../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h; sourceTree = SOURCE_ROOT; }; - AE7CE5DD4695049CE940B119 /* juce_Variant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Variant.h; path = ../../../../../modules/juce_core/containers/juce_Variant.h; sourceTree = SOURCE_ROOT; }; - AE91EB61DAC980EC373284E1 /* juce_ChangeBroadcaster.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChangeBroadcaster.h; path = ../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h; sourceTree = SOURCE_ROOT; }; - AED3A93746DB1172E5A05BBC /* juce_Quaternion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Quaternion.h; path = ../../../../../modules/juce_opengl/geometry/juce_Quaternion.h; sourceTree = SOURCE_ROOT; }; - AF09AA6BF4864B8998E2676E /* juce_ColourSelector.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ColourSelector.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp; sourceTree = SOURCE_ROOT; }; - AF42734F63315C85E08587B3 /* pngrio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c; sourceTree = SOURCE_ROOT; }; - AF5F2E4B8A7F1B9A507D043C /* juce_audio_devices.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_devices.mm; path = ../../JuceLibraryCode/juce_audio_devices.mm; sourceTree = SOURCE_ROOT; }; - AF6E053345A73531F9DE19FA /* juce_LittleFootRemoteHeap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LittleFootRemoteHeap.h; path = ../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h; sourceTree = SOURCE_ROOT; }; - B019A04354A3A377813C4F10 /* memory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h; sourceTree = SOURCE_ROOT; }; - B04C24316C7F5D7E5C79E0CA /* juce_ScrollBar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ScrollBar.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp; sourceTree = SOURCE_ROOT; }; - B0792237EC36D9F9D8D94380 /* juce_Singleton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Singleton.h; path = ../../../../../modules/juce_core/memory/juce_Singleton.h; sourceTree = SOURCE_ROOT; }; - B08A348CEAB267336BEE6404 /* juce_AudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_AudioSource.h; sourceTree = SOURCE_ROOT; }; - B0A1C61E0EBC451CB0B3A337 /* juce_CoreAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CoreAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h; sourceTree = SOURCE_ROOT; }; - B0B1C0956FEDCBF2AF19CA6B /* juce_core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_core.mm; path = ../../JuceLibraryCode/juce_core.mm; sourceTree = SOURCE_ROOT; }; - B0B4567F125815CE3D5F97B0 /* juce_FileLogger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileLogger.h; path = ../../../../../modules/juce_core/logging/juce_FileLogger.h; sourceTree = SOURCE_ROOT; }; - B0D2EB2CCE9410392733E088 /* juce_ChannelRemappingAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChannelRemappingAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h; sourceTree = SOURCE_ROOT; }; - B16D0231583843F5782F2FF1 /* setup_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_16.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = SOURCE_ROOT; }; - B185D4ED3D7011747FA30D2C /* juce_TopLevelWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TopLevelWindow.h; path = ../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h; sourceTree = SOURCE_ROOT; }; - B194372F45854DE5FC54671F /* juce_AiffAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AiffAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h; sourceTree = SOURCE_ROOT; }; - B19D56F3E441EB2B1A84C41A /* juce_Logger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Logger.h; path = ../../../../../modules/juce_core/logging/juce_Logger.h; sourceTree = SOURCE_ROOT; }; - B1A84BBE9851F9F56F0E8D0D /* jchuff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c; sourceTree = SOURCE_ROOT; }; - B1B7933CA5A0B7F38A94F728 /* juce_MPEZone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPEZone.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h; sourceTree = SOURCE_ROOT; }; - B1DDA423E55EA93290F02213 /* juce_HostPacketDecoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HostPacketDecoder.h; path = ../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h; sourceTree = SOURCE_ROOT; }; - B210D9151B74DC5875B5F9F5 /* juce_JSON.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_JSON.h; path = ../../../../../modules/juce_core/javascript/juce_JSON.h; sourceTree = SOURCE_ROOT; }; - B258C7C7456130F17398F6EC /* juce_FillType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FillType.h; path = ../../../../../modules/juce_graphics/colour/juce_FillType.h; sourceTree = SOURCE_ROOT; }; - B2737AFF8C4A2300FD4DC321 /* juce_MultiTimer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MultiTimer.cpp; path = ../../../../../modules/juce_events/timers/juce_MultiTimer.cpp; sourceTree = SOURCE_ROOT; }; - B2945D912BAAD64AB84975AA /* juce_BubbleComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BubbleComponent.h; path = ../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h; sourceTree = SOURCE_ROOT; }; - B29B68EFD93C936B6004A003 /* juce_RelativeRectangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeRectangle.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h; sourceTree = SOURCE_ROOT; }; - B2A083D68101A749DA6CEC50 /* juce_GZIPCompressorOutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GZIPCompressorOutputStream.h; path = ../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h; sourceTree = SOURCE_ROOT; }; - B2F323A2CF9DBDE87094A12C /* juce_android_SystemStats.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_SystemStats.cpp; path = ../../../../../modules/juce_core/native/juce_android_SystemStats.cpp; sourceTree = SOURCE_ROOT; }; - B31CB3E3F4BD0212647C599D /* juce_ResizableEdgeComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableEdgeComponent.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp; sourceTree = SOURCE_ROOT; }; - B34A138110D01A3CA9CB727D /* os.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = os.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/os.h"; sourceTree = SOURCE_ROOT; }; - B35C9A4EB69C394A0DE6E813 /* juce_KeyPressMappingSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KeyPressMappingSet.h; path = ../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h; sourceTree = SOURCE_ROOT; }; - B378396CBE6EE2E85295A2DB /* juce_Message.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Message.h; path = ../../../../../modules/juce_events/messages/juce_Message.h; sourceTree = SOURCE_ROOT; }; - B387644139E3E36918C4D03A /* juce_ValueTree.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ValueTree.cpp; path = ../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp; sourceTree = SOURCE_ROOT; }; - B38DA581048FDA139F641FB0 /* juce_gui_basics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_gui_basics.h; path = ../../../../../modules/juce_gui_basics/juce_gui_basics.h; sourceTree = SOURCE_ROOT; }; - B3D4730C96893578BF727D5A /* ogg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h; sourceTree = SOURCE_ROOT; }; - B43C86E279C36B83F25A88D0 /* psy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = SOURCE_ROOT; }; - B50ED6B4AE791917727F5E7F /* inffixed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = ../../../../../modules/juce_core/zip/zlib/inffixed.h; sourceTree = SOURCE_ROOT; }; - B56ACDB21BF63DD70C738C65 /* jdinput.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c; sourceTree = SOURCE_ROOT; }; - B56D69C275FA7C73683BA840 /* juce_OpenGLExtensions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLExtensions.h; path = ../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h; sourceTree = SOURCE_ROOT; }; - B5887F35A912037691A7AA66 /* juce_MACAddress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MACAddress.h; path = ../../../../../modules/juce_core/network/juce_MACAddress.h; sourceTree = SOURCE_ROOT; }; - B5E44A231B747E1759C87CD4 /* juce_RelativeCoordinate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeCoordinate.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp; sourceTree = SOURCE_ROOT; }; - B5F5DB38E5BE6CA6306CCE74 /* juce_EdgeTable.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_EdgeTable.cpp; path = ../../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp; sourceTree = SOURCE_ROOT; }; - B5FB26E84ABF33A7E353A48D /* juce_ImageConvolutionKernel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageConvolutionKernel.cpp; path = ../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp; sourceTree = SOURCE_ROOT; }; - B6291F8983C362DED92336BE /* psych_11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psych_11.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = SOURCE_ROOT; }; - B65C1614B4755DD56161B155 /* juce_FloatVectorOperations.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FloatVectorOperations.h; path = ../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h; sourceTree = SOURCE_ROOT; }; - B6847B2CCF1B2E71712827E5 /* juce_android_RuntimePermissions.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_RuntimePermissions.cpp; path = ../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp; sourceTree = SOURCE_ROOT; }; - B70A7208BDC84707A08B49E3 /* floor0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = SOURCE_ROOT; }; - B714D3995796B3E1783B2B92 /* juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_data_structures.mm; path = ../../../../../modules/juce_data_structures/juce_data_structures.mm; sourceTree = SOURCE_ROOT; }; - B7E100E53E55FBBB995D1015 /* juce_Toolbar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Toolbar.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h; sourceTree = SOURCE_ROOT; }; - B7EF3871AADEF4B0B05827E5 /* bitmath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitmath.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c; sourceTree = SOURCE_ROOT; }; - B82AF1752045C4157C0ADF1B /* juce_PlatformDefs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PlatformDefs.h; path = ../../../../../modules/juce_core/system/juce_PlatformDefs.h; sourceTree = SOURCE_ROOT; }; - B8793874DA3E3A50A76F9572 /* zconf.in.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = ../../../../../modules/juce_core/zip/zlib/zconf.in.h; sourceTree = SOURCE_ROOT; }; - B90793CC817A7C319A3AE20C /* juce_MPEZoneLayout.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPEZoneLayout.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp; sourceTree = SOURCE_ROOT; }; - B978E5CC1180425AD149A152 /* juce_CPlusPlusCodeTokeniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CPlusPlusCodeTokeniser.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h; sourceTree = SOURCE_ROOT; }; - B98F37A336955FF58F90FB4C /* juce_XmlDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_XmlDocument.h; path = ../../../../../modules/juce_core/xml/juce_XmlDocument.h; sourceTree = SOURCE_ROOT; }; - B9DF6AB40767C91B45834CED /* juce_MarkerList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MarkerList.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp; sourceTree = SOURCE_ROOT; }; - BA09B2615301490887929DA8 /* juce_PathStrokeType.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PathStrokeType.cpp; path = ../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp; sourceTree = SOURCE_ROOT; }; - BA5273CC64B39B3B0455A53A /* juce_linux_Threads.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Threads.cpp; path = ../../../../../modules/juce_core/native/juce_linux_Threads.cpp; sourceTree = SOURCE_ROOT; }; - BA55F9EC52073F1ECFEF5F2D /* juce_Logger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Logger.cpp; path = ../../../../../modules/juce_core/logging/juce_Logger.cpp; sourceTree = SOURCE_ROOT; }; - BAB1E713B8FD5FF764E93C7D /* juce_win32_WebBrowserComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_WebBrowserComponent.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp; sourceTree = SOURCE_ROOT; }; - BAB246A896258C6FE2132717 /* juce_FFT.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FFT.h; path = ../../../../../modules/juce_audio_basics/effects/juce_FFT.h; sourceTree = SOURCE_ROOT; }; - BABBA06E9B4F5AC45082E718 /* juce_RelativeTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeTime.h; path = ../../../../../modules/juce_core/time/juce_RelativeTime.h; sourceTree = SOURCE_ROOT; }; - BAFE2641BD8618F8F7F65579 /* juce_MountedVolumeListChangeDetector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MountedVolumeListChangeDetector.h; path = ../../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h; sourceTree = SOURCE_ROOT; }; - BB206032A144BA440AF410E1 /* juce_MidiOutput.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiOutput.cpp; path = ../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp; sourceTree = SOURCE_ROOT; }; - BC2708C1A30230F8FFED0BAF /* juce_Process.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Process.h; path = ../../../../../modules/juce_core/threads/juce_Process.h; sourceTree = SOURCE_ROOT; }; - BC5C888CE6A7A5B4562FA329 /* jcdctmgr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcdctmgr.c; sourceTree = SOURCE_ROOT; }; - BC6AEAE96DA5F1EE5F62BD17 /* jidctfst.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c; sourceTree = SOURCE_ROOT; }; - BCAD87C5C4722BE2239A00F6 /* juce_XMLCodeTokeniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_XMLCodeTokeniser.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h; sourceTree = SOURCE_ROOT; }; - BD019AAA61CCA4A497274794 /* residue_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = residue_16.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h"; sourceTree = SOURCE_ROOT; }; - BD1EC57A31C1A44821E79F00 /* juce_AudioIODeviceType.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioIODeviceType.cpp; path = ../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp; sourceTree = SOURCE_ROOT; }; - BD1F10BA3C91ABDEDA96A90A /* juce_LookAndFeel_V1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LookAndFeel_V1.h; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h; sourceTree = SOURCE_ROOT; }; - BD369BD9E2486BB5D544D8FA /* juce_OpenGL_android.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGL_android.h; path = ../../../../../modules/juce_opengl/native/juce_OpenGL_android.h; sourceTree = SOURCE_ROOT; }; - BD75123529E67F9376C1899A /* juce_Uuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Uuid.h; path = ../../../../../modules/juce_core/misc/juce_Uuid.h; sourceTree = SOURCE_ROOT; }; - BD8807162A21C44D5C816A74 /* juce_RectanglePlacement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RectanglePlacement.h; path = ../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h; sourceTree = SOURCE_ROOT; }; - BDBADF3D55924C948F41334D /* juce_AttributedString.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AttributedString.cpp; path = ../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp; sourceTree = SOURCE_ROOT; }; - BDD5A0B6F6C05C0A0ECDC78B /* juce_MPEMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPEMessages.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h; sourceTree = SOURCE_ROOT; }; - BDE15BB5ED83547045B075DC /* juce_LowLevelGraphicsContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LowLevelGraphicsContext.h; path = ../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h; sourceTree = SOURCE_ROOT; }; - BDF3FBAE1450DCFA0496D341 /* juce_OpenGLImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLImage.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h; sourceTree = SOURCE_ROOT; }; - BE3AB671FE1BF4BA67F3B22E /* juce_ApplicationCommandManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationCommandManager.cpp; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp; sourceTree = SOURCE_ROOT; }; - BED0AA415C62CB7F797E51C4 /* juce_audio_formats.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_formats.mm; path = ../../../../../modules/juce_audio_formats/juce_audio_formats.mm; sourceTree = SOURCE_ROOT; }; - BED548AB5BFA57159DD12DAC /* juce_LiveConstantEditor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LiveConstantEditor.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp; sourceTree = SOURCE_ROOT; }; - BEF0AAA4CC9BA56B412B7B20 /* juce_FileListComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileListComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp; sourceTree = SOURCE_ROOT; }; - BEF40C565264BB572868FF09 /* juce_DirectoryContentsDisplayComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DirectoryContentsDisplayComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp; sourceTree = SOURCE_ROOT; }; - BEFCC3E231F6729C94ED2F49 /* lpc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/lpc.h; sourceTree = SOURCE_ROOT; }; - BF052877DCD7D8C1AA4CDF9F /* md5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c; sourceTree = SOURCE_ROOT; }; - BF273AD2BE0018A6EDCF2258 /* juce_DropShadowEffect.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DropShadowEffect.cpp; path = ../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp; sourceTree = SOURCE_ROOT; }; - BF9B812900B12580FCD3C1C5 /* juce_ComponentDragger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentDragger.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h; sourceTree = SOURCE_ROOT; }; - BFD3CE2B9C2AF98165049337 /* transupp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = transupp.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/transupp.h; sourceTree = SOURCE_ROOT; }; - BFE24BD62EA3F7DBFA196DF7 /* juce_WildcardFileFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_WildcardFileFilter.cpp; path = ../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp; sourceTree = SOURCE_ROOT; }; - BFF50837A22F32388D61E4C4 /* juce_Application.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Application.cpp; path = ../../../../../modules/juce_gui_basics/application/juce_Application.cpp; sourceTree = SOURCE_ROOT; }; - C023041419CCD5A746DD3733 /* juce_UndoManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_UndoManager.h; path = ../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h; sourceTree = SOURCE_ROOT; }; - C02A07C4E5AB7D6C98CEAEFA /* juce_FlacAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FlacAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h; sourceTree = SOURCE_ROOT; }; - C050A75A3FD1ED843430646B /* juce_ChangeBroadcaster.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ChangeBroadcaster.cpp; path = ../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp; sourceTree = SOURCE_ROOT; }; - C0794CF65E83FA413249342B /* juce_SVGParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SVGParser.cpp; path = ../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp; sourceTree = SOURCE_ROOT; }; - C096E8792E18214FCE25A25C /* juce_Draggable3DOrientation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Draggable3DOrientation.h; path = ../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h; sourceTree = SOURCE_ROOT; }; - C12E3B26BAD438E71B125623 /* juce_FileBasedDocument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileBasedDocument.cpp; path = ../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp; sourceTree = SOURCE_ROOT; }; - C1564464E7D3E100E68F78F3 /* juce_posix_SharedCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_posix_SharedCode.h; path = ../../../../../modules/juce_core/native/juce_posix_SharedCode.h; sourceTree = SOURCE_ROOT; }; - C1CB3B69DCF541CF84F0A5C1 /* alloc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = alloc.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/alloc.h; sourceTree = SOURCE_ROOT; }; - C225444502EBA04B63E16CE6 /* juce_FileBrowserComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileBrowserComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp; sourceTree = SOURCE_ROOT; }; - C22DDE0CA3FD2565AC1A9641 /* juce_GZIPDecompressorInputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GZIPDecompressorInputStream.cpp; path = ../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp; sourceTree = SOURCE_ROOT; }; - C23D3AE443F3DA9E05DCF670 /* juce_OpenGLContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLContext.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h; sourceTree = SOURCE_ROOT; }; - C278FC33051757FD973E4BB6 /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h"; sourceTree = SOURCE_ROOT; }; - C2925B912CB7478725EC09C0 /* juce_TemporaryFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TemporaryFile.cpp; path = ../../../../../modules/juce_core/files/juce_TemporaryFile.cpp; sourceTree = SOURCE_ROOT; }; - C2BFF63FD5C214D4E5B993AE /* juce_JSON.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_JSON.cpp; path = ../../../../../modules/juce_core/javascript/juce_JSON.cpp; sourceTree = SOURCE_ROOT; }; - C2EA3FCC07E1674AFDEA71B2 /* juce_RelativeParallelogram.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeParallelogram.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp; sourceTree = SOURCE_ROOT; }; - C3131423ADE321A9FFD64C46 /* juce_core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_core.mm; path = ../../../../../modules/juce_core/juce_core.mm; sourceTree = SOURCE_ROOT; }; - C3729E6D46FC9FE8B8EA99E6 /* jcparam.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c; sourceTree = SOURCE_ROOT; }; - C44815DFC69575308E2E7DF5 /* libpng_readme.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = libpng_readme.txt; path = ../../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt; sourceTree = SOURCE_ROOT; }; - C4703A5DB149F64AE6A30668 /* juce_linux_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Network.cpp; path = ../../../../../modules/juce_core/native/juce_linux_Network.cpp; sourceTree = SOURCE_ROOT; }; - C4716E0C3BCBC857984C58A5 /* juce_MPEInstrument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPEInstrument.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp; sourceTree = SOURCE_ROOT; }; - C50067A84435B50FAE2991A2 /* juce_UndoManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_UndoManager.cpp; path = ../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp; sourceTree = SOURCE_ROOT; }; - C53219A41027ED103B202C42 /* juce_TextInputTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextInputTarget.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h; sourceTree = SOURCE_ROOT; }; - C54776C328896DD9C63D5F14 /* juce_GlowEffect.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GlowEffect.cpp; path = ../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp; sourceTree = SOURCE_ROOT; }; - C57C541975044B538A4204B4 /* stream_encoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stream_encoder.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h; sourceTree = SOURCE_ROOT; }; - C5A18309C2DC13A1156282F6 /* juce_Block.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Block.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_Block.h; sourceTree = SOURCE_ROOT; }; - C5FB97556F8007E0E5849857 /* jcprepct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c; sourceTree = SOURCE_ROOT; }; - C6F13DC7541D0F00B8C8ED6A /* juce_RelativeParallelogram.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeParallelogram.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h; sourceTree = SOURCE_ROOT; }; - C719A471C0AF1ACF4915590B /* juce_android_JNIHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_android_JNIHelpers.h; path = ../../../../../modules/juce_core/native/juce_android_JNIHelpers.h; sourceTree = SOURCE_ROOT; }; - C76C141618B3750168ADC0D1 /* juce_IIRFilterAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IIRFilterAudioSource.h; path = ../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h; sourceTree = SOURCE_ROOT; }; - C78AE90444451893D78C4E91 /* juce_PropertyPanel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertyPanel.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp; sourceTree = SOURCE_ROOT; }; - C7A1D93A3CD65E4F1FA770F2 /* stream_decoder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = stream_decoder.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_decoder.c; sourceTree = SOURCE_ROOT; }; - C80F802372BCFB07523C535D /* juce_KeyListener.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyListener.cpp; path = ../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp; sourceTree = SOURCE_ROOT; }; - C8A28EF3F300FCD23130DADD /* juce_StringArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StringArray.h; path = ../../../../../modules/juce_core/text/juce_StringArray.h; sourceTree = SOURCE_ROOT; }; - C8BDDC0EA95699CED529FB96 /* juce_CodeDocument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CodeDocument.cpp; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp; sourceTree = SOURCE_ROOT; }; - C8CDA61126AEF68721AE396B /* juce_DropShadowEffect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DropShadowEffect.h; path = ../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h; sourceTree = SOURCE_ROOT; }; - C92D8587F5DBAD4B1CC80406 /* juce_DirectoryContentsDisplayComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectoryContentsDisplayComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h; sourceTree = SOURCE_ROOT; }; - C9BF56C284B0BE80A7C89DC0 /* juce_mac_MouseCursor.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_MouseCursor.mm; path = ../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm; sourceTree = SOURCE_ROOT; }; - C9C143571708C2B184BFEB12 /* juce_PropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertyComponent.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; - C9EA5D0B9826A43E6CC7E88C /* juce_ResamplingAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResamplingAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - CA1EF2865AA0F249D7A2646B /* juce_AudioDataConverters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioDataConverters.h; path = ../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h; sourceTree = SOURCE_ROOT; }; - CA54557D28FB9E717532A9B8 /* juce_DragAndDropTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DragAndDropTarget.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h; sourceTree = SOURCE_ROOT; }; - CA5C4EA6672E46AE47A55790 /* ordinals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h; sourceTree = SOURCE_ROOT; }; - CA65DB1D639849CCDABA67FC /* juce_LookAndFeel_V2.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LookAndFeel_V2.cpp; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp; sourceTree = SOURCE_ROOT; }; - CA7BE1CD2A59E4A7A133207F /* juce_Thread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Thread.cpp; path = ../../../../../modules/juce_core/threads/juce_Thread.cpp; sourceTree = SOURCE_ROOT; }; - CA99CDFEEEA27490079060CC /* juce_MemoryOutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryOutputStream.h; path = ../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h; sourceTree = SOURCE_ROOT; }; - CAA47648604DE92DE3E7826B /* bitwriter.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c; sourceTree = SOURCE_ROOT; }; - CACC690868FC319352C6D605 /* trees.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = trees.h; path = ../../../../../modules/juce_core/zip/zlib/trees.h; sourceTree = SOURCE_ROOT; }; - CB01A5CBA8DA5DA64F79F9D5 /* juce_FileDragAndDropTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileDragAndDropTarget.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h; sourceTree = SOURCE_ROOT; }; - CB0C4A25BA9D6F1AEDEF4CD3 /* juce_LagrangeInterpolator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LagrangeInterpolator.cpp; path = ../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp; sourceTree = SOURCE_ROOT; }; - CB3169B4A664108CEA2751DF /* juce_ComponentBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentBuilder.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h; sourceTree = SOURCE_ROOT; }; - CB6C50C6F026F66991905EBA /* pngmem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c; sourceTree = SOURCE_ROOT; }; - CBA6A8FCB0795C89183A8E71 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - CC03ACEC4A87137E5E9C8328 /* jdmarker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c; sourceTree = SOURCE_ROOT; }; - CC764227E00D7572D2B22354 /* juce_WildcardFileFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WildcardFileFilter.h; path = ../../../../../modules/juce_core/files/juce_WildcardFileFilter.h; sourceTree = SOURCE_ROOT; }; - CCF01620822A4A144E3C6FBF /* juce_ComponentPeer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentPeer.h; path = ../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h; sourceTree = SOURCE_ROOT; }; - CD2D5E669A846D3497CADFF5 /* juce_blocks_basics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_blocks_basics.h; path = ../../../../../modules/juce_blocks_basics/juce_blocks_basics.h; sourceTree = SOURCE_ROOT; }; - CD9D44C2A4E6A65D62F5A2F4 /* juce_DrawableRectangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableRectangle.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h; sourceTree = SOURCE_ROOT; }; - CDB1484C4D6010E4D4B03C8A /* juce_CharPointer_UTF16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharPointer_UTF16.h; path = ../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h; sourceTree = SOURCE_ROOT; }; - CDB6AB74B48E27543C7C3247 /* juce_ActionBroadcaster.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ActionBroadcaster.cpp; path = ../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp; sourceTree = SOURCE_ROOT; }; - CDBA14E9ED2A6DFA59B3E9F8 /* juce_Identifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Identifier.h; path = ../../../../../modules/juce_core/text/juce_Identifier.h; sourceTree = SOURCE_ROOT; }; - CDEBA4B2BB49150BFAED8665 /* juce_CPlusPlusCodeTokeniserFunctions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CPlusPlusCodeTokeniserFunctions.h; path = ../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h; sourceTree = SOURCE_ROOT; }; - CE6036ECB2716A67BEDFF215 /* juce_TopologySource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TopologySource.h; path = ../../../../../modules/juce_blocks_basics/topology/juce_TopologySource.h; sourceTree = SOURCE_ROOT; }; - CE63CB470CE025B3344E6B14 /* juce_ComponentBuilder.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentBuilder.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp; sourceTree = SOURCE_ROOT; }; - CE8E7EE0568DAE54277A3A75 /* jidctint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c; sourceTree = SOURCE_ROOT; }; - CEC3F1D21215C9FC326F7970 /* juce_Expression.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Expression.h; path = ../../../../../modules/juce_core/maths/juce_Expression.h; sourceTree = SOURCE_ROOT; }; - CEC52ED2250DAF9085E67628 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - CEE8CFCB66ADE7E78A9B5D84 /* juce_TabbedComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TabbedComponent.h; path = ../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h; sourceTree = SOURCE_ROOT; }; - CF22F2D71CC50A6A6BE820A2 /* jversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h; sourceTree = SOURCE_ROOT; }; - CF56CAFD0B05918B202CC8C1 /* juce_RelativeRectangle.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeRectangle.cpp; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp; sourceTree = SOURCE_ROOT; }; - CF895906826621767E325CAC /* juce_XmlDocument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_XmlDocument.cpp; path = ../../../../../modules/juce_core/xml/juce_XmlDocument.cpp; sourceTree = SOURCE_ROOT; }; - CFF86D411ACF901036AA22E2 /* juce_LookAndFeel_V3.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LookAndFeel_V3.cpp; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp; sourceTree = SOURCE_ROOT; }; - CFFCDE3DE85309817AA5314F /* juce_MessageListener.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MessageListener.cpp; path = ../../../../../modules/juce_events/messages/juce_MessageListener.cpp; sourceTree = SOURCE_ROOT; }; - D0029C076D0AFD4531B8C952 /* juce_PropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertyComponent.h; path = ../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h; sourceTree = SOURCE_ROOT; }; - D00E7D50024BC55EE60D8A1B /* residue_44u.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = residue_44u.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = SOURCE_ROOT; }; - D01B3D44D354E1DD105A6851 /* juce_win32_ComSmartPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_win32_ComSmartPtr.h; path = ../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h; sourceTree = SOURCE_ROOT; }; - D01FEE0DC6C2CED2D3217198 /* juce_ToolbarItemComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToolbarItemComponent.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp; sourceTree = SOURCE_ROOT; }; - D06661831BB0908DEBF996FD /* juce_NamedValueSet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_NamedValueSet.cpp; path = ../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp; sourceTree = SOURCE_ROOT; }; - D0C5462B25A1EF7C0BAC2C66 /* juce_AlertWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AlertWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp; sourceTree = SOURCE_ROOT; }; - D0F8908BB4BF8D2904759E9B /* juce_win32_SystemTrayIcon.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_SystemTrayIcon.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp; sourceTree = SOURCE_ROOT; }; - D111247356C62C3698C5259A /* pngget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngget.c; sourceTree = SOURCE_ROOT; }; - D16614D13C7C9AB7565DE60F /* jmorecfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmorecfg.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h; sourceTree = SOURCE_ROOT; }; - D184EF49BA7A3F3F5545B1D0 /* juce_Base64.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Base64.cpp; path = ../../../../../modules/juce_core/text/juce_Base64.cpp; sourceTree = SOURCE_ROOT; }; - D19C04CE3F848A3EB30BD306 /* os_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h; sourceTree = SOURCE_ROOT; }; - D1B4E1CE074A1BE6DB3D9BD5 /* juce_AudioFormatReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFormatReader.h; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h; sourceTree = SOURCE_ROOT; }; - D1BC969BA323CE7CEEB34692 /* juce_mac_CoreAudio.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_mac_CoreAudio.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp; sourceTree = SOURCE_ROOT; }; - D1D6547CA0BAEB079FF9050F /* juce_ComponentAnimator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentAnimator.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp; sourceTree = SOURCE_ROOT; }; - D23E61F11E9CD3EE88C300C5 /* juce_MidiMessageSequence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageSequence.h; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h; sourceTree = SOURCE_ROOT; }; - D24A6466F1C7D63741B729BC /* juce_FileChooserDialogBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileChooserDialogBox.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h; sourceTree = SOURCE_ROOT; }; - D270EFE61FCF33ABA7DD7A82 /* juce_GZIPDecompressorInputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GZIPDecompressorInputStream.h; path = ../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h; sourceTree = SOURCE_ROOT; }; - D2A305BF46124317B26844C3 /* codebook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = SOURCE_ROOT; }; - D3F2B4B868A0F886E10FD901 /* jdphuff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c; sourceTree = SOURCE_ROOT; }; - D3F75448D5E30FEF546165DF /* juce_ArrayAllocationBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ArrayAllocationBase.h; path = ../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h; sourceTree = SOURCE_ROOT; }; - D410F13F7C6D5DEB4EC91AA6 /* juce_ContainerDeletePolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ContainerDeletePolicy.h; path = ../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h; sourceTree = SOURCE_ROOT; }; - D4E6E686B826C386E372B9B0 /* juce_data_structures.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_data_structures.h; path = ../../../../../modules/juce_data_structures/juce_data_structures.h; sourceTree = SOURCE_ROOT; }; - D4F58BCBE5B9C7D88AC92BA4 /* juce_DrumPadLEDProgram.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrumPadLEDProgram.cpp; path = ../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp; sourceTree = SOURCE_ROOT; }; - D504B7AB34A2CD39CB9C856D /* juce_linux_WebBrowserComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_WebBrowserComponent.cpp; path = ../../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp; sourceTree = SOURCE_ROOT; }; - D50C18AA1D31A606129E712C /* metadata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/metadata.h; sourceTree = SOURCE_ROOT; }; - D512265869F4FD6DBE091DD4 /* juce_win32_Windowing.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Windowing.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp; sourceTree = SOURCE_ROOT; }; - D54B128515F377318B34C9C9 /* juce_win32_FileChooser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_FileChooser.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp; sourceTree = SOURCE_ROOT; }; - D5542B1227D81DCFF2DFCDA4 /* juce_MenuBarModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MenuBarModel.h; path = ../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h; sourceTree = SOURCE_ROOT; }; - D56C2798DB2930BA21DE5222 /* juce_ConcertinaPanel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ConcertinaPanel.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp; sourceTree = SOURCE_ROOT; }; - D5923C2C45B84A2771DB8125 /* juce_MPENote.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPENote.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h; sourceTree = SOURCE_ROOT; }; - D5AE036BF17CF6BF3B415302 /* juce_ios_MessageManager.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_ios_MessageManager.mm; path = ../../../../../modules/juce_events/native/juce_ios_MessageManager.mm; sourceTree = SOURCE_ROOT; }; - D6303AB7ED3A815A746818DB /* infback.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = ../../../../../modules/juce_core/zip/zlib/infback.c; sourceTree = SOURCE_ROOT; }; - D6A1B4EF7647B82043EC5C14 /* pngconf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngconf.h; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngconf.h; sourceTree = SOURCE_ROOT; }; - D6B40F5575A4546875FDBFCA /* juce_AnimatedAppComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AnimatedAppComponent.h; path = ../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h; sourceTree = SOURCE_ROOT; }; - D766274BD43DF76958D6D7A1 /* juce_TextEditor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TextEditor.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp; sourceTree = SOURCE_ROOT; }; - D778C2ED7EA9D5EDCFBA1507 /* BlocksSynth.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BlocksSynth.app; sourceTree = BUILT_PRODUCTS_DIR; }; - D7A1432A09EA76270555EBFF /* juce_MessageListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MessageListener.h; path = ../../../../../modules/juce_events/messages/juce_MessageListener.h; sourceTree = SOURCE_ROOT; }; - D7AA51A9571EBBDACC39F434 /* juce_IPAddress.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_IPAddress.cpp; path = ../../../../../modules/juce_core/network/juce_IPAddress.cpp; sourceTree = SOURCE_ROOT; }; - D7B9697EF473A62BE6453BA6 /* juce_MouseInputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MouseInputSource.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h; sourceTree = SOURCE_ROOT; }; - D816E1D2FDD6252C7AAF2628 /* juce_RectangleList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RectangleList.h; path = ../../../../../modules/juce_graphics/geometry/juce_RectangleList.h; sourceTree = SOURCE_ROOT; }; - D8555991B456F672F132ABEC /* juce_Desktop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Desktop.h; path = ../../../../../modules/juce_gui_basics/components/juce_Desktop.h; sourceTree = SOURCE_ROOT; }; - D88385F251FF95CBF3C70657 /* juce_IIRFilterAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_IIRFilterAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - D8B3083479A22B7344F5BAC6 /* juce_MixerAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MixerAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - D901EBE00D1E01A3702FA03D /* jcmaster.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c; sourceTree = SOURCE_ROOT; }; - D98771DCE827466B36D51AF8 /* Main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = SOURCE_ROOT; }; - D98F033805C033EF081A9696 /* juce_BasicNativeHeaders.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BasicNativeHeaders.h; path = ../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h; sourceTree = SOURCE_ROOT; }; - D9B504A48CCEDE57288899D9 /* juce_OpenGL_win32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGL_win32.h; path = ../../../../../modules/juce_opengl/native/juce_OpenGL_win32.h; sourceTree = SOURCE_ROOT; }; - D9C6F027E7A8E9FDDDAF99BC /* juce_StringPairArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StringPairArray.h; path = ../../../../../modules/juce_core/text/juce_StringPairArray.h; sourceTree = SOURCE_ROOT; }; - D9D800ABA75CDD05817432E2 /* pngtrans.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c; sourceTree = SOURCE_ROOT; }; - D9E2B3341EC036EBCF562434 /* juce_InputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_InputStream.cpp; path = ../../../../../modules/juce_core/streams/juce_InputStream.cpp; sourceTree = SOURCE_ROOT; }; - DA07E0972B6DD508A081B59E /* juce_DeletedAtShutdown.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DeletedAtShutdown.h; path = ../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h; sourceTree = SOURCE_ROOT; }; - DA190E7F11B7C6308E764363 /* juce_AudioFormatManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFormatManager.h; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h; sourceTree = SOURCE_ROOT; }; - DA52F06969FC2FEFD8DCFAE3 /* crc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h; sourceTree = SOURCE_ROOT; }; - DAF373B4117FFAAEF7D9AA22 /* juce_Vector3D.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Vector3D.h; path = ../../../../../modules/juce_opengl/geometry/juce_Vector3D.h; sourceTree = SOURCE_ROOT; }; - DB2F2C84EE330E7B99CB91D6 /* jconfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h; sourceTree = SOURCE_ROOT; }; - DB3F1EBC07134AD21DB325DC /* juce_linux_Fonts.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Fonts.cpp; path = ../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp; sourceTree = SOURCE_ROOT; }; - DB5CE4E6FE04ADB6786CF3F4 /* juce_win32_HiddenMessageWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_win32_HiddenMessageWindow.h; path = ../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h; sourceTree = SOURCE_ROOT; }; - DB759FAAEF7C18AB11580C3C /* juce_Javascript.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Javascript.h; path = ../../../../../modules/juce_core/javascript/juce_Javascript.h; sourceTree = SOURCE_ROOT; }; - DB7D21EDFDD06447F1A26B93 /* juce_ComponentMovementWatcher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentMovementWatcher.h; path = ../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h; sourceTree = SOURCE_ROOT; }; - DBBDB335ABA05B454F030054 /* juce_FileSearchPath.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileSearchPath.cpp; path = ../../../../../modules/juce_core/files/juce_FileSearchPath.cpp; sourceTree = SOURCE_ROOT; }; - DBD9D7E0C4FB25EBBE29B36A /* juce_DocumentWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DocumentWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp; sourceTree = SOURCE_ROOT; }; - DC032932F029EBB4B68C2A21 /* juce_AudioSampleBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioSampleBuffer.h; path = ../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h; sourceTree = SOURCE_ROOT; }; - DC4C0156E331164E93BF2F1B /* juce_win32_ASIO.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_ASIO.cpp; path = ../../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp; sourceTree = SOURCE_ROOT; }; - DC92C4ED5AC4F39FA201F932 /* juce_LassoComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LassoComponent.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h; sourceTree = SOURCE_ROOT; }; - DC9D312245AA5BFA4B21AC85 /* juce_Rectangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Rectangle.h; path = ../../../../../modules/juce_graphics/geometry/juce_Rectangle.h; sourceTree = SOURCE_ROOT; }; - DCCC9B894C6F3FF9643B3D85 /* juce_win32_Direct2DGraphicsContext.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Direct2DGraphicsContext.cpp; path = ../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp; sourceTree = SOURCE_ROOT; }; - DCE85E789DF463EF99F73FE0 /* win_utf8_io.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = win_utf8_io.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h; sourceTree = SOURCE_ROOT; }; - DCFCECAE8ED2C934AB68E4EC /* juce_ComboBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComboBox.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp; sourceTree = SOURCE_ROOT; }; - DD3970FDCA69D2DEFBBA3E72 /* juce_ControlButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ControlButton.h; path = ../../../../../modules/juce_blocks_basics/blocks/juce_ControlButton.h; sourceTree = SOURCE_ROOT; }; - DD58AB0C80AB9D0B6850983D /* juce_audio_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_basics.mm; path = ../../JuceLibraryCode/juce_audio_basics.mm; sourceTree = SOURCE_ROOT; }; - DDA7B0C44BB6500A8264AB08 /* juce_SliderPropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SliderPropertyComponent.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; - DDCB65776F12BA2494D86229 /* juce_WindowsRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WindowsRegistry.h; path = ../../../../../modules/juce_core/misc/juce_WindowsRegistry.h; sourceTree = SOURCE_ROOT; }; - DDD1AD3004D036AF9AFD5043 /* juce_KeyPress.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyPress.cpp; path = ../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp; sourceTree = SOURCE_ROOT; }; - DE005946F4FF5EB9F2B5E94F /* juce_win32_DirectWriteTypeface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_DirectWriteTypeface.cpp; path = ../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp; sourceTree = SOURCE_ROOT; }; - DEB5BC8C4CF7600478965F15 /* md5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h; sourceTree = SOURCE_ROOT; }; - DFA7F722F61CC00E65789E52 /* juce_CustomTypeface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CustomTypeface.cpp; path = ../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp; sourceTree = SOURCE_ROOT; }; - DFBC7ECB67E1FD3C6340663B /* juce_ChannelRemappingAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ChannelRemappingAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - DFD7F405B35ECE2DC44D6939 /* jerror.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jerror.h; sourceTree = SOURCE_ROOT; }; - E068081DF4D036954360B4CA /* juce_KeyPressMappingSet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyPressMappingSet.cpp; path = ../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp; sourceTree = SOURCE_ROOT; }; - E0B3C73D7F3BC93AC8164C1B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - E0FC64420488B39FFC9C25AA /* juce_Colours.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Colours.cpp; path = ../../../../../modules/juce_graphics/colour/juce_Colours.cpp; sourceTree = SOURCE_ROOT; }; - E1714E22DFB33D06F62468F8 /* juce_AnimatedAppComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AnimatedAppComponent.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp; sourceTree = SOURCE_ROOT; }; - E1CDDE683A9D3D00182334F0 /* juce_audio_formats.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_formats.mm; path = ../../JuceLibraryCode/juce_audio_formats.mm; sourceTree = SOURCE_ROOT; }; - E270518951867873C374D756 /* juce_ComponentPeer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentPeer.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp; sourceTree = SOURCE_ROOT; }; - E276994927D3E8743E85FEF0 /* res_books_uncoupled.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = res_books_uncoupled.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h"; sourceTree = SOURCE_ROOT; }; - E283C55B43C31CD66C6C387F /* lookup_data.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup_data.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h"; sourceTree = SOURCE_ROOT; }; - E2AC1771328A969730B88BDA /* juce_ValueTree.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ValueTree.h; path = ../../../../../modules/juce_data_structures/values/juce_ValueTree.h; sourceTree = SOURCE_ROOT; }; - E2C31B4B096247BEB81029C5 /* juce_TreeView.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TreeView.cpp; path = ../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp; sourceTree = SOURCE_ROOT; }; - E2C85B5C1B1B51B08231F7EC /* juce_ApplicationCommandID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandID.h; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h; sourceTree = SOURCE_ROOT; }; - E305CCBB5B76D319BEC9248E /* juce_NotificationType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NotificationType.h; path = ../../../../../modules/juce_events/messages/juce_NotificationType.h; sourceTree = SOURCE_ROOT; }; - E30B4E0A6F8029E7AE3D52E0 /* juce_Typeface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Typeface.cpp; path = ../../../../../modules/juce_graphics/fonts/juce_Typeface.cpp; sourceTree = SOURCE_ROOT; }; - E37B67AAF808FD652E3FBE23 /* juce_MPEValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MPEValue.h; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h; sourceTree = SOURCE_ROOT; }; - E38345D85F1CD35B62CD6456 /* pngwio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c; sourceTree = SOURCE_ROOT; }; - E38D7CBE4043D2FE2DB2B1A0 /* juce_AudioSourcePlayer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioSourcePlayer.cpp; path = ../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp; sourceTree = SOURCE_ROOT; }; - E39AB15FBBB7950C44245FC6 /* juce_PhysicalTopologySource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PhysicalTopologySource.h; path = ../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h; sourceTree = SOURCE_ROOT; }; - E3F31A84F34E8B640AB5BE80 /* fixed.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c; sourceTree = SOURCE_ROOT; }; - E3FFC7BB4B7420DFFB0FF1F0 /* juce_opengl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_opengl.cpp; path = ../../../../../modules/juce_opengl/juce_opengl.cpp; sourceTree = SOURCE_ROOT; }; - E4286C9BBAAF045DA3AC521A /* juce_ReverbAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ReverbAudioSource.cpp; path = ../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp; sourceTree = SOURCE_ROOT; }; - E46479B62709BC51E7EADCA3 /* juce_DrawableComposite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableComposite.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h; sourceTree = SOURCE_ROOT; }; - E4A7570B4EABC3BDD766D2A0 /* juce_LookAndFeel_V1.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LookAndFeel_V1.cpp; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp; sourceTree = SOURCE_ROOT; }; - E4B9999176E0FB1175CE9568 /* juce_MouseCursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MouseCursor.h; path = ../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h; sourceTree = SOURCE_ROOT; }; - E4E68F979116A9B3B7D663C5 /* juce_ImageCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageCache.h; path = ../../../../../modules/juce_graphics/images/juce_ImageCache.h; sourceTree = SOURCE_ROOT; }; - E51D1884CE4F31EA17661097 /* juce_AudioChannelSet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioChannelSet.cpp; path = ../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp; sourceTree = SOURCE_ROOT; }; - E53E7B65080C5BBEF4A9D7C3 /* juce_android_FileChooser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_FileChooser.cpp; path = ../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp; sourceTree = SOURCE_ROOT; }; - E56A4F249B3DC548F3392621 /* juce_FileOutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileOutputStream.h; path = ../../../../../modules/juce_core/files/juce_FileOutputStream.h; sourceTree = SOURCE_ROOT; }; - E56F858D8C2F9C11CBD6308D /* residue_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = residue_8.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h"; sourceTree = SOURCE_ROOT; }; - E5A413D6F34F783C7A708B49 /* pngwutil.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c; sourceTree = SOURCE_ROOT; }; - E60F4AAC9AEFE0400EEEF3F0 /* juce_NormalisableRange.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NormalisableRange.h; path = ../../../../../modules/juce_core/maths/juce_NormalisableRange.h; sourceTree = SOURCE_ROOT; }; - E6BA394E1D41CCDEC2B0DD9B /* juce_NamedPipe.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_NamedPipe.cpp; path = ../../../../../modules/juce_core/network/juce_NamedPipe.cpp; sourceTree = SOURCE_ROOT; }; - E72062CD9EDFCAFFB63157CB /* juce_FloatVectorOperations.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FloatVectorOperations.cpp; path = ../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp; sourceTree = SOURCE_ROOT; }; - E7402936E5521555F7B600AC /* juce_ZipFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ZipFile.h; path = ../../../../../modules/juce_core/zip/juce_ZipFile.h; sourceTree = SOURCE_ROOT; }; - E75A56D8BAB64170C5D38438 /* juce_MidiInput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiInput.h; path = ../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h; sourceTree = SOURCE_ROOT; }; - E7642142C979E15EF3CA8E38 /* juce_BlockModels.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BlockModels.h; path = ../../../../../modules/juce_blocks_basics/protocol/juce_BlockModels.h; sourceTree = SOURCE_ROOT; }; - E76C940E3BEADDDA3B798D3F /* juce_DirectoryContentsList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DirectoryContentsList.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp; sourceTree = SOURCE_ROOT; }; - E76E93F5737FE60F46B3837E /* juce_MPEZone.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPEZone.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp; sourceTree = SOURCE_ROOT; }; - E76FD2235925C85F2D7A8550 /* juce_android_Messaging.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Messaging.cpp; path = ../../../../../modules/juce_events/native/juce_android_Messaging.cpp; sourceTree = SOURCE_ROOT; }; - E7F6687DE8509FCC698399FC /* juce_MidiRPN.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiRPN.cpp; path = ../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp; sourceTree = SOURCE_ROOT; }; - E8598E243314304BD8163FD7 /* juce_CallOutBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CallOutBox.h; path = ../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h; sourceTree = SOURCE_ROOT; }; - E8B53464FF63B6F3C0E8E723 /* juce_StringArray.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StringArray.cpp; path = ../../../../../modules/juce_core/text/juce_StringArray.cpp; sourceTree = SOURCE_ROOT; }; - E8BBBB6CB566863296CC406B /* juce_OpenGLTexture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLTexture.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h; sourceTree = SOURCE_ROOT; }; - E8F80C37B88B1514B9D9F6CD /* juce_MPESynthesiserBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPESynthesiserBase.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp; sourceTree = SOURCE_ROOT; }; - E9BFBC057BDD5E694D04F68E /* jdhuff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c; sourceTree = SOURCE_ROOT; }; - EA53D42B42EB75C773AB045B /* juce_WaitableEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WaitableEvent.h; path = ../../../../../modules/juce_core/threads/juce_WaitableEvent.h; sourceTree = SOURCE_ROOT; }; - EA8A57933A118B68E6C8A037 /* juce_RelativePoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativePoint.h; path = ../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h; sourceTree = SOURCE_ROOT; }; - EAA764F4599A4624B26AD06F /* juce_HyperlinkButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HyperlinkButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h; sourceTree = SOURCE_ROOT; }; - EABAA3E42B432D106A18FC39 /* juce_KeyPress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KeyPress.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h; sourceTree = SOURCE_ROOT; }; - EABE813E005E9B66B20BEF8D /* juce_Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Base64.h; path = ../../../../../modules/juce_core/text/juce_Base64.h; sourceTree = SOURCE_ROOT; }; - EADE74B222122B9F8144DF28 /* juce_SystemClipboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SystemClipboard.h; path = ../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h; sourceTree = SOURCE_ROOT; }; - EAFC617A8DEFF67E2A070D1B /* juce_StretchableLayoutManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutManager.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp; sourceTree = SOURCE_ROOT; }; - EB154A70F170DDD097484FE9 /* juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_events.mm; path = ../../../../../modules/juce_events/juce_events.mm; sourceTree = SOURCE_ROOT; }; - EB91C5FFE88DF5CFF947669D /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; - EBCD4C646F6FA038CBCD1D6F /* juce_Variant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Variant.cpp; path = ../../../../../modules/juce_core/containers/juce_Variant.cpp; sourceTree = SOURCE_ROOT; }; - EBF38E78D19A1BCCAE6C72E1 /* juce_ImagePreviewComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImagePreviewComponent.cpp; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp; sourceTree = SOURCE_ROOT; }; - EC6D7E09774AD0360CFDD3CC /* juce_InterprocessConnection.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_InterprocessConnection.cpp; path = ../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp; sourceTree = SOURCE_ROOT; }; - EC9E71FB57478AB3FDA27CD4 /* juce_MemoryInputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryInputStream.cpp; path = ../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp; sourceTree = SOURCE_ROOT; }; - ECA282604B5FF6065330901B /* juce_Point.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Point.h; path = ../../../../../modules/juce_graphics/geometry/juce_Point.h; sourceTree = SOURCE_ROOT; }; - ED7FCADD5623453DD97B43D8 /* juce_WindowsMediaAudioFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WindowsMediaAudioFormat.h; path = ../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h; sourceTree = SOURCE_ROOT; }; - ED9E41C44623B304A6079277 /* Flac Licence.txt */ = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Flac Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt"; sourceTree = SOURCE_ROOT; }; - EDCE79F26F024D16BCA0F117 /* juce_LowLevelGraphicsPostScriptRenderer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LowLevelGraphicsPostScriptRenderer.cpp; path = ../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp; sourceTree = SOURCE_ROOT; }; - EE3FF44BECDF0A701A625460 /* juce_LookAndFeel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LookAndFeel.h; path = ../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h; sourceTree = SOURCE_ROOT; }; - EE8BBEB89A13B0E1AFD5780C /* juce_ShapeButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ShapeButton.h; path = ../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h; sourceTree = SOURCE_ROOT; }; - EEC8B02D39FBA83A6AE62ADA /* juce_LowLevelGraphicsPostScriptRenderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LowLevelGraphicsPostScriptRenderer.h; path = ../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h; sourceTree = SOURCE_ROOT; }; - EFD23A341192EC2E36497814 /* juce_ImageFileFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageFileFormat.h; path = ../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h; sourceTree = SOURCE_ROOT; }; - EFE9FF35F95193089D2465F5 /* AppConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; - F06F1733D3BA37AA7C511933 /* juce_Justification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Justification.h; path = ../../../../../modules/juce_graphics/placement/juce_Justification.h; sourceTree = SOURCE_ROOT; }; - F0E4E317DBB8EDC346F79C94 /* trees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = trees.c; path = ../../../../../modules/juce_core/zip/zlib/trees.c; sourceTree = SOURCE_ROOT; }; - F0F5158BE492B43B8FAAD1D3 /* juce_ListBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ListBox.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h; sourceTree = SOURCE_ROOT; }; - F1071892476C8E78090C1B04 /* bitwise.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = ../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c; sourceTree = SOURCE_ROOT; }; - F17172414E68A67E86770D16 /* juce_DrawableImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableImage.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h; sourceTree = SOURCE_ROOT; }; - F1A811BDF1FBDB3460847383 /* juce_mac_CarbonViewWrapperComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_mac_CarbonViewWrapperComponent.h; path = ../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h; sourceTree = SOURCE_ROOT; }; - F2544DB9D399C1102E95A867 /* juce_LittleFootCompiler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LittleFootCompiler.h; path = ../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h; sourceTree = SOURCE_ROOT; }; - F2634446266E383816E9341A /* setup_32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = setup_32.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = SOURCE_ROOT; }; - F2720937BE3C1F10272A7C06 /* juce_WindowsMediaAudioFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_WindowsMediaAudioFormat.cpp; path = ../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp; sourceTree = SOURCE_ROOT; }; - F2D31A607BEC69FA6AD0D12E /* inftrees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = ../../../../../modules/juce_core/zip/zlib/inftrees.c; sourceTree = SOURCE_ROOT; }; - F2D9015FC6DBA12DE9609EAA /* juce_win32_SystemStats.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_SystemStats.cpp; path = ../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp; sourceTree = SOURCE_ROOT; }; - F306B08E4CCAD1A06EC0DB0E /* juce_TextPropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TextPropertyComponent.cpp; path = ../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; - F3AD07BBECD1E70E5F3F40BD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - F42D141B9A70BB0273407B0E /* juce_FileBrowserComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileBrowserComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h; sourceTree = SOURCE_ROOT; }; - F464C4862C4DFD5774559248 /* juce_MPESynthesiser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MPESynthesiser.cpp; path = ../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp; sourceTree = SOURCE_ROOT; }; - F56396DCA982B63F2DA78471 /* juce_MessageManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MessageManager.h; path = ../../../../../modules/juce_events/messages/juce_MessageManager.h; sourceTree = SOURCE_ROOT; }; - F572E47156DAA8EEBE746390 /* juce_gui_extra.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_gui_extra.mm; path = ../../../../../modules/juce_gui_extra/juce_gui_extra.mm; sourceTree = SOURCE_ROOT; }; - F5A099B54BDAB42FF8D77144 /* juce_DialogWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DialogWindow.cpp; path = ../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp; sourceTree = SOURCE_ROOT; }; - F5B3C9D2B068F9ADFA8C653C /* juce_Result.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Result.h; path = ../../../../../modules/juce_core/misc/juce_Result.h; sourceTree = SOURCE_ROOT; }; - F5D2EE7EA410E9A78BF68285 /* juce_OpenGLRenderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OpenGLRenderer.h; path = ../../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h; sourceTree = SOURCE_ROOT; }; - F6133ABCAB3AC137D60D3D2F /* misc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = misc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h"; sourceTree = SOURCE_ROOT; }; - F641DDA93FDEF2450E56A606 /* juce_DirectoryContentsList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectoryContentsList.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h; sourceTree = SOURCE_ROOT; }; - F69AED9FEB4B4E8B9457BA1F /* juce_PixelFormats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PixelFormats.h; path = ../../../../../modules/juce_graphics/colour/juce_PixelFormats.h; sourceTree = SOURCE_ROOT; }; - F6E7A4BF54C27C60056270F0 /* jdapimin.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c; sourceTree = SOURCE_ROOT; }; - F70DB3B3FBB0AB2575A13FD4 /* juce_NativeMessageBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NativeMessageBox.h; path = ../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h; sourceTree = SOURCE_ROOT; }; - F77076F73232546CC0DA097C /* res_books_stereo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = res_books_stereo.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = SOURCE_ROOT; }; - F7D345B0E22C7AB91FFF9CD2 /* jerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/jerror.c; sourceTree = SOURCE_ROOT; }; - F837F14CCAD905678B2EB5A1 /* juce_ApplicationCommandManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandManager.h; path = ../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h; sourceTree = SOURCE_ROOT; }; - F86455FC80F2DF1C12D28BFB /* juce_TabbedButtonBar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TabbedButtonBar.cpp; path = ../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp; sourceTree = SOURCE_ROOT; }; - F9450711CCBD8FCDEA9E95F7 /* juce_AudioFormatReaderSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFormatReaderSource.cpp; path = ../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp; sourceTree = SOURCE_ROOT; }; - F97BD4908447C154ADAEB982 /* juce_AffineTransform.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AffineTransform.cpp; path = ../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp; sourceTree = SOURCE_ROOT; }; - FA3537F978DC20BC51975AF4 /* juce_ImageComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageComponent.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h; sourceTree = SOURCE_ROOT; }; - FA7463364B17FAF275702078 /* adler32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = ../../../../../modules/juce_core/zip/zlib/adler32.c; sourceTree = SOURCE_ROOT; }; - FA91B86E9778655B50D0814C /* juce_win32_DirectWriteTypeLayout.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_DirectWriteTypeLayout.cpp; path = ../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp; sourceTree = SOURCE_ROOT; }; - FAF3E26F1BBFA85CA8B333E5 /* juce_AudioTransportSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioTransportSource.cpp; path = ../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp; sourceTree = SOURCE_ROOT; }; - FB44F62FA6C5FA2DFB1B2142 /* juce_TextEditor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextEditor.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h; sourceTree = SOURCE_ROOT; }; - FB558727D4E53558D3F72AE0 /* juce_ImageButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageButton.cpp; path = ../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp; sourceTree = SOURCE_ROOT; }; - FB76ED4506F6CB6BC0FA0D50 /* juce_DrawableText.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableText.h; path = ../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h; sourceTree = SOURCE_ROOT; }; - FB7CEAF8DF0A4447F1BD2DCC /* zconf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = ../../../../../modules/juce_core/zip/zlib/zconf.h; sourceTree = SOURCE_ROOT; }; - FBC1679B39F569C014570698 /* juce_AffineTransform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AffineTransform.h; path = ../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h; sourceTree = SOURCE_ROOT; }; - FBD3C4CF5151FE82BA05D486 /* pngrtran.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c; sourceTree = SOURCE_ROOT; }; - FCD28EC20E234A418F03AB9E /* juce_ConnectedChildProcess.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ConnectedChildProcess.cpp; path = ../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp; sourceTree = SOURCE_ROOT; }; - FD05664C4D9E513C74BFBD73 /* juce_Colour.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Colour.h; path = ../../../../../modules/juce_graphics/colour/juce_Colour.h; sourceTree = SOURCE_ROOT; }; - FD2F08645DF014C0F3110942 /* juce_FilePreviewComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FilePreviewComponent.h; path = ../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h; sourceTree = SOURCE_ROOT; }; - FD6A23DA53BC48A5D01DCAAF /* juce_gui_extra.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_gui_extra.h; path = ../../../../../modules/juce_gui_extra/juce_gui_extra.h; sourceTree = SOURCE_ROOT; }; - FD6A2554500AE9E8F340812C /* transupp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = ../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c; sourceTree = SOURCE_ROOT; }; - FDAC3E164BA3FCB909B9F2BE /* crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = ../../../../../modules/juce_core/zip/zlib/crc32.h; sourceTree = SOURCE_ROOT; }; - FDB547DFBE187A379D96760B /* juce_gui_extra.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_gui_extra.cpp; path = ../../../../../modules/juce_gui_extra/juce_gui_extra.cpp; sourceTree = SOURCE_ROOT; }; - FDF345AF086264E4040A79CF /* juce_RecentlyOpenedFilesList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RecentlyOpenedFilesList.h; path = ../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h; sourceTree = SOURCE_ROOT; }; - FE376580AD9D099778977CBB /* float.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = float.c; path = ../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/float.c; sourceTree = SOURCE_ROOT; }; - FE6B0EBC824D1E924DB2406B /* juce_BigInteger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BigInteger.cpp; path = ../../../../../modules/juce_core/maths/juce_BigInteger.cpp; sourceTree = SOURCE_ROOT; }; - FE81D4D343853571BF409685 /* juce_MessageManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MessageManager.cpp; path = ../../../../../modules/juce_events/messages/juce_MessageManager.cpp; sourceTree = SOURCE_ROOT; }; - FF988FAEBE5F808EE1BB9F4F /* juce_FlexBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FlexBox.h; path = ../../../../../modules/juce_gui_basics/layout/juce_FlexBox.h; sourceTree = SOURCE_ROOT; }; - FF9B172146D046D10BC0E7E0 /* juce_TableHeaderComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableHeaderComponent.h; path = ../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h; sourceTree = SOURCE_ROOT; }; - FF9CD52F808B7C91AD25CF71 /* juce_KeyMappingEditorComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyMappingEditorComponent.cpp; path = ../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp; sourceTree = SOURCE_ROOT; }; - FFC5E68D2033592D6896B282 /* juce_UIViewComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_UIViewComponent.h; path = ../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h; sourceTree = SOURCE_ROOT; }; - FFF9520F524FED8D3468287F /* juce_SubregionStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SubregionStream.cpp; path = ../../../../../modules/juce_core/streams/juce_SubregionStream.cpp; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1EFBDD8D783B94E754626B32 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 96CFB8DAD7FFF76D2E317495 /* Accelerate.framework in Frameworks */, - 535851B45E7D80B53ABB689D /* AudioToolbox.framework in Frameworks */, - 646AAFCDA0A0620699614BB7 /* AVFoundation.framework in Frameworks */, - C04A639A8ABC44749B49ED36 /* CoreAudio.framework in Frameworks */, - 0579DDF4B03255527CD92BF9 /* CoreGraphics.framework in Frameworks */, - 5CC0AE888A8B9CF85C8C1077 /* CoreMIDI.framework in Frameworks */, - BDD9B6E13096A4F929CDF0C7 /* CoreText.framework in Frameworks */, - 03889D80A76102BB72F53888 /* Foundation.framework in Frameworks */, - 268110CDBB2C5560CE1935AB /* OpenGLES.framework in Frameworks */, - DEE7F200E0ABCA5F551B8BC8 /* QuartzCore.framework in Frameworks */, - AE46B38D70B347166EEA3112 /* UIKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0267817D9651ABB317E33C79 /* uncoupled */ = { - isa = PBXGroup; - children = ( - E276994927D3E8743E85FEF0 /* res_books_uncoupled.h */, - ); - name = uncoupled; - sourceTree = ""; - }; - 058E0B5BC34AD4AD46B9CAB4 /* keyboard */ = { - isa = PBXGroup; - children = ( - 8FACD18D8DF3D14D269091CA /* juce_CaretComponent.cpp */, - 7D7F423A3FB0AC8EDBE62944 /* juce_CaretComponent.h */, - A579D7C165F5D2A34D8B60DB /* juce_KeyboardFocusTraverser.cpp */, - 3F57879007B1AD70426EB58B /* juce_KeyboardFocusTraverser.h */, - C80F802372BCFB07523C535D /* juce_KeyListener.cpp */, - 0112674271470DAC194D36F7 /* juce_KeyListener.h */, - DDD1AD3004D036AF9AFD5043 /* juce_KeyPress.cpp */, - EABAA3E42B432D106A18FC39 /* juce_KeyPress.h */, - 332520A35477D044DB108E0B /* juce_ModifierKeys.cpp */, - 047EB8514054BDBED92A4D65 /* juce_ModifierKeys.h */, - EADE74B222122B9F8144DF28 /* juce_SystemClipboard.h */, - 6085D0F7B3DFD7C8A7564A9B /* juce_TextEditorKeyMapper.h */, - C53219A41027ED103B202C42 /* juce_TextInputTarget.h */, - ); - name = keyboard; - sourceTree = ""; - }; - 07904D644F96E4BDE7F97211 /* application */ = { - isa = PBXGroup; - children = ( - BFF50837A22F32388D61E4C4 /* juce_Application.cpp */, - 664C16822A70A0AC8DE7BB7C /* juce_Application.h */, - ); - name = application; - sourceTree = ""; - }; - 0916F802A223C831DF7E3018 /* Frameworks */ = { - isa = PBXGroup; - children = ( - EB91C5FFE88DF5CFF947669D /* Accelerate.framework */, - F3AD07BBECD1E70E5F3F40BD /* AudioToolbox.framework */, - E0B3C73D7F3BC93AC8164C1B /* AVFoundation.framework */, - CBA6A8FCB0795C89183A8E71 /* CoreAudio.framework */, - CEC52ED2250DAF9085E67628 /* CoreGraphics.framework */, - 42747FC2DD3F362950112EFA /* CoreMIDI.framework */, - 0A72A10DC2BCD29B4A801D40 /* CoreText.framework */, - AB8E624C28BB20096959B5C9 /* Foundation.framework */, - 0FD9AE627E98FA0C1EC3C163 /* OpenGLES.framework */, - 67663D2E66C7F1C1B6BD6392 /* QuartzCore.framework */, - ACC89760CF09AB1EB06AD52B /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 093A7AEDD681B83D66FC731D /* buffers */ = { - isa = PBXGroup; - children = ( - E51D1884CE4F31EA17661097 /* juce_AudioChannelSet.cpp */, - 3D8ED3F6C1407C572BBEC652 /* juce_AudioChannelSet.h */, - 408CD5BDE5207D96C2DC6F0B /* juce_AudioDataConverters.cpp */, - CA1EF2865AA0F249D7A2646B /* juce_AudioDataConverters.h */, - DC032932F029EBB4B68C2A21 /* juce_AudioSampleBuffer.h */, - E72062CD9EDFCAFFB63157CB /* juce_FloatVectorOperations.cpp */, - B65C1614B4755DD56161B155 /* juce_FloatVectorOperations.h */, - ); - name = buffers; - sourceTree = ""; - }; - 0C4CEA52BDC9F6A213AC17BD /* windows */ = { - isa = PBXGroup; - children = ( - D0C5462B25A1EF7C0BAC2C66 /* juce_AlertWindow.cpp */, - 38C951E0E35A4B513616931A /* juce_AlertWindow.h */, - 0353708CD8C613C0F5D9081D /* juce_CallOutBox.cpp */, - E8598E243314304BD8163FD7 /* juce_CallOutBox.h */, - E270518951867873C374D756 /* juce_ComponentPeer.cpp */, - CCF01620822A4A144E3C6FBF /* juce_ComponentPeer.h */, - F5A099B54BDAB42FF8D77144 /* juce_DialogWindow.cpp */, - 320BFED03A887CDA204EB748 /* juce_DialogWindow.h */, - DBD9D7E0C4FB25EBBE29B36A /* juce_DocumentWindow.cpp */, - 47123B6CF53D538F0E90AC17 /* juce_DocumentWindow.h */, - F70DB3B3FBB0AB2575A13FD4 /* juce_NativeMessageBox.h */, - 528DB2421C8140B90DA7B1C4 /* juce_ResizableWindow.cpp */, - 130A891678CD13F5B8F813A4 /* juce_ResizableWindow.h */, - 66CBE1EEF8AA4C91EB7046AA /* juce_ThreadWithProgressWindow.cpp */, - 3F461FC27A8BEA812E4604BB /* juce_ThreadWithProgressWindow.h */, - 1FA1A18FDF4E7266114D4B47 /* juce_TooltipWindow.cpp */, - 189CE0561DF5910DAF13D22B /* juce_TooltipWindow.h */, - 260406E9FB3C041C0B3A89E7 /* juce_TopLevelWindow.cpp */, - B185D4ED3D7011747FA30D2C /* juce_TopLevelWindow.h */, - ); - name = windows; - sourceTree = ""; - }; - 0F4E2B72B683E9B48DF13DDB /* Source */ = { - isa = PBXGroup; - children = ( - 38998921858495104F35872D /* BlocksSynth */, - FCB109DCDFCB200668E6864C /* Juce Modules */, - 3ADDC207B0CCAE1F5E220196 /* Juce Library Code */, - A6A176D809E46AF236D766B1 /* Resources */, - 0916F802A223C831DF7E3018 /* Frameworks */, - BEBE62C64C08316AE975AC01 /* Products */, - ); - name = Source; - sourceTree = ""; - }; - 170195FA23226C76E16320A1 /* network */ = { - isa = PBXGroup; - children = ( - D7AA51A9571EBBDACC39F434 /* juce_IPAddress.cpp */, - 0A99DEEFD614DE832C7EF6BB /* juce_IPAddress.h */, - 3BEAA229D9D403CBE51C6670 /* juce_MACAddress.cpp */, - B5887F35A912037691A7AA66 /* juce_MACAddress.h */, - E6BA394E1D41CCDEC2B0DD9B /* juce_NamedPipe.cpp */, - 13F2E257D9546C430FAD9DD5 /* juce_NamedPipe.h */, - A546C8B742A8DC8F5E60C606 /* juce_Socket.cpp */, - 2E6C4EDE0CDE7BCC288D464B /* juce_Socket.h */, - 3A43AB7B49441ABD392D105D /* juce_URL.cpp */, - 224EC8865F2F99C2F1E4361D /* juce_URL.h */, - ); - name = network; - sourceTree = ""; - }; - 18BE705CB0BE08716FC46C14 /* sources */ = { - isa = PBXGroup; - children = ( - B08A348CEAB267336BEE6404 /* juce_AudioSource.h */, - 711C1E768B2C7DB6946D1703 /* juce_BufferingAudioSource.cpp */, - 93B87F458F1F33BFD30539FD /* juce_BufferingAudioSource.h */, - DFBC7ECB67E1FD3C6340663B /* juce_ChannelRemappingAudioSource.cpp */, - B0D2EB2CCE9410392733E088 /* juce_ChannelRemappingAudioSource.h */, - D88385F251FF95CBF3C70657 /* juce_IIRFilterAudioSource.cpp */, - C76C141618B3750168ADC0D1 /* juce_IIRFilterAudioSource.h */, - D8B3083479A22B7344F5BAC6 /* juce_MixerAudioSource.cpp */, - 02A336F8CDC439485DC73DD0 /* juce_MixerAudioSource.h */, - 596AE59CDCCBE4D8E7D27954 /* juce_PositionableAudioSource.h */, - C9EA5D0B9826A43E6CC7E88C /* juce_ResamplingAudioSource.cpp */, - 57A1B82612ACD48D50CDFB42 /* juce_ResamplingAudioSource.h */, - E4286C9BBAAF045DA3AC521A /* juce_ReverbAudioSource.cpp */, - 6C4EE337B0005F5CB6650264 /* juce_ReverbAudioSource.h */, - 84182A25498E78D5DEF6E925 /* juce_ToneGeneratorAudioSource.cpp */, - 856D6984E668878C082F6CE8 /* juce_ToneGeneratorAudioSource.h */, - ); - name = sources; - sourceTree = ""; - }; - 1BD29601F50DC1FE90A2FB08 /* app_properties */ = { - isa = PBXGroup; - children = ( - 47BED7BBD05CF1420DE94CFB /* juce_ApplicationProperties.cpp */, - 4ED26BCBDCC64564B6BC33E5 /* juce_ApplicationProperties.h */, - 03B238D422D95970A3A834EC /* juce_PropertiesFile.cpp */, - 2D0476BBF2E82030BC3095E2 /* juce_PropertiesFile.h */, - ); - name = app_properties; - sourceTree = ""; - }; - 210735BB76D056E28844FFCE /* unit_tests */ = { - isa = PBXGroup; - children = ( - 241982E4455453EF71D03FFF /* juce_UnitTest.cpp */, - 9707394FCE0F9ED5DDBB0524 /* juce_UnitTest.h */, - ); - name = unit_tests; - sourceTree = ""; - }; - 23FE51CE68990B49B3B4AABD /* Audio */ = { - isa = PBXGroup; - children = ( - 1A544EA5E8AC999D7F681DDE /* Oscillators.h */, - 110B6CE01796C1C6DF0DECAE /* Audio.cpp */, - 14CD2D0EE13A7D3289EBBC86 /* Audio.h */, - ); - name = Audio; - sourceTree = ""; - }; - 240FD43C7C457ED97B01A27D /* geometry */ = { - isa = PBXGroup; - children = ( - F97BD4908447C154ADAEB982 /* juce_AffineTransform.cpp */, - FBC1679B39F569C014570698 /* juce_AffineTransform.h */, - 9B059A5FCABFC0743BAAEDB0 /* juce_BorderSize.h */, - B5F5DB38E5BE6CA6306CCE74 /* juce_EdgeTable.cpp */, - 0C39EABAF7EE4C2F8C7D6D71 /* juce_EdgeTable.h */, - 07D9DF1A2D9CA38CB2F08E7E /* juce_Line.h */, - 3D3D5858103B1047C1779AC5 /* juce_Path.cpp */, - 9B927FB567BC0D29DE04DEC7 /* juce_Path.h */, - 03BD89526E26A670AE63B364 /* juce_PathIterator.cpp */, - 599428B835C56E48958680E4 /* juce_PathIterator.h */, - BA09B2615301490887929DA8 /* juce_PathStrokeType.cpp */, - 6E9222D7B192A7EF575F5003 /* juce_PathStrokeType.h */, - ECA282604B5FF6065330901B /* juce_Point.h */, - DC9D312245AA5BFA4B21AC85 /* juce_Rectangle.h */, - D816E1D2FDD6252C7AAF2628 /* juce_RectangleList.h */, - ); - name = geometry; - sourceTree = ""; - }; - 247AF08855C438929F46C640 /* juce_core */ = { - isa = PBXGroup; - children = ( - 989C3BDC492942642C24282E /* containers */, - 7F42CBA4D84F5AAA394B131B /* files */, - 4DA608349B8E06A40C2B3610 /* javascript */, - 8A82CE1314A80CA4B9001732 /* logging */, - 8AEB618AFC1B1D81D447F930 /* maths */, - 92948EE426E4BF8860C245B5 /* memory */, - E25778D3DF758B321155435A /* misc */, - 9BEBBB02AD13A7EEF3C86DF3 /* native */, - 170195FA23226C76E16320A1 /* network */, - E91966262A1070E1B59F692C /* streams */, - 34487656545A1983A0EFEFA8 /* system */, - 7FA3E417701A67C38F905646 /* text */, - C4A0162E2C1F3E0B4B0B0AD8 /* threads */, - F1B99A44061AEE6C7E87751F /* time */, - 210735BB76D056E28844FFCE /* unit_tests */, - B084942B44BF9E6FCCB075C7 /* xml */, - 661D28B0F542603EDC20F3CF /* zip */, - 6FA8114276186677C37A02AB /* juce_core.cpp */, - C3131423ADE321A9FFD64C46 /* juce_core.mm */, - 866A90A69A3EB77768DD8A23 /* juce_core.h */, - ); - name = juce_core; - sourceTree = ""; - }; - 24E373FDAD31DE2E15DFD3D2 /* lib */ = { - isa = PBXGroup; - children = ( - B9E0B6DA3094EEFCFA408C83 /* books */, - 3EFC68CF20814573E989B57A /* modes */, - 69DCAD4B37C6DFC393CAE941 /* analysis.c */, - ADC432227AFFB91565728B20 /* backends.h */, - 50A01BFE69012A08EAAA5EF1 /* bitrate.c */, - 6CFE9428C509216C6B6E691E /* bitrate.h */, - 99A9A70A22EC3C598F623111 /* block.c */, - D2A305BF46124317B26844C3 /* codebook.c */, - 43D4608C71521337A1E62CBF /* codebook.h */, - 685892F6AF56A2B6442C0BA2 /* codec_internal.h */, - 18D12ABCC228BF8EB5D22ACC /* envelope.c */, - 812F5FE9CE244FFDCFA5F7D7 /* envelope.h */, - B70A7208BDC84707A08B49E3 /* floor0.c */, - 881A4A50718FA7CE3F3E5375 /* floor1.c */, - A19C3A3A74428A4C8EF44EBF /* highlevel.h */, - 4E7C1B9669C78323F39F66BA /* info.c */, - 56C47E673A21A919A36BA737 /* lookup.c */, - 09A20E48B6DDCF89C3BA52B5 /* lookup.h */, - E283C55B43C31CD66C6C387F /* lookup_data.h */, - 4083423AC8967EC85128335F /* lpc.c */, - 2B2AB245E134CDF5515EB130 /* lpc.h */, - 7C32EA6B5A32E29B31FE6FFA /* lsp.c */, - 5C1AF59B9E0F831176669ED8 /* lsp.h */, - 65D2779D3783A6B0DB9DD7C1 /* mapping0.c */, - 17A9AAC14945D24CB26659AD /* masking.h */, - 3B740130AAA2019AE049C85B /* mdct.c */, - 174DCEEB1F0A9CC69F671E41 /* mdct.h */, - F6133ABCAB3AC137D60D3D2F /* misc.h */, - B34A138110D01A3CA9CB727D /* os.h */, - 8BD079BB7D801C6E67873BA1 /* psy.c */, - B43C86E279C36B83F25A88D0 /* psy.h */, - A65DFC4FCE8DD0EAA2901FF4 /* registry.c */, - 6FF35BA648B2B034130B0BF0 /* registry.h */, - 7A31D46D227370A23021E676 /* res0.c */, - 660DC5473197813B4E38CC4D /* scales.h */, - 60CB8017B900A02E7C7C1667 /* sharedbook.c */, - 100E8BF90F31D1E045AF1755 /* smallft.c */, - 7F13C06AE22B799467575AB5 /* smallft.h */, - 8CDDF045B2A202FCA5DFD932 /* synthesis.c */, - 0CABBB44D28EDBD36D8E4B87 /* vorbisenc.c */, - AA89E7B373C7733F3F5646F1 /* vorbisfile.c */, - 39F2D7F60BCE45E9BEF6D2D5 /* window.c */, - C278FC33051757FD973E4BB6 /* window.h */, - ); - name = lib; - sourceTree = ""; - }; - 2872F62BFCDB4181EB1E46C3 /* mpe */ = { - isa = PBXGroup; - children = ( - C4716E0C3BCBC857984C58A5 /* juce_MPEInstrument.cpp */, - 89C83AC387C203CF1105C951 /* juce_MPEInstrument.h */, - 1BF2C3AD8A498D0D55F22623 /* juce_MPEMessages.cpp */, - BDD5A0B6F6C05C0A0ECDC78B /* juce_MPEMessages.h */, - 13B6344205397F546400A40B /* juce_MPENote.cpp */, - D5923C2C45B84A2771DB8125 /* juce_MPENote.h */, - F464C4862C4DFD5774559248 /* juce_MPESynthesiser.cpp */, - 514E168C6138BEC0DC0D31BB /* juce_MPESynthesiser.h */, - E8F80C37B88B1514B9D9F6CD /* juce_MPESynthesiserBase.cpp */, - 4C3567E01529EB4730FACB2C /* juce_MPESynthesiserBase.h */, - 2DF02AFF10879E3FE2BBF776 /* juce_MPESynthesiserVoice.cpp */, - 40297764149FD52F1B1B8FF0 /* juce_MPESynthesiserVoice.h */, - 74040BA20DE2E305AE2D0480 /* juce_MPEValue.cpp */, - E37B67AAF808FD652E3FBE23 /* juce_MPEValue.h */, - E76E93F5737FE60F46B3837E /* juce_MPEZone.cpp */, - B1B7933CA5A0B7F38A94F728 /* juce_MPEZone.h */, - B90793CC817A7C319A3AE20C /* juce_MPEZoneLayout.cpp */, - 8221B5162E280BE9AB2619CD /* juce_MPEZoneLayout.h */, - ); - name = mpe; - sourceTree = ""; - }; - 293D388343818393DB994F8B /* timers */ = { - isa = PBXGroup; - children = ( - B2737AFF8C4A2300FD4DC321 /* juce_MultiTimer.cpp */, - 3521249F8414079020AF98B5 /* juce_MultiTimer.h */, - 5AF86438272890D0836A262D /* juce_Timer.cpp */, - 2092AE5634DE6877D83C4CD4 /* juce_Timer.h */, - ); - name = timers; - sourceTree = ""; - }; - 2AE3391E3CF2A2D9AEC5AA27 /* native */ = { - isa = PBXGroup; - children = ( - 2C651B376A3220A9D720B36B /* juce_android_Fonts.cpp */, - 711B895681BA427CC7DF8E7E /* juce_android_GraphicsContext.cpp */, - 276500E2DF4FBF36F4FA1B81 /* juce_freetype_Fonts.cpp */, - DB3F1EBC07134AD21DB325DC /* juce_linux_Fonts.cpp */, - 5EA0ABB0B2C055D60AF351B7 /* juce_mac_CoreGraphicsContext.h */, - 942B534CD5B5BA732092A55E /* juce_mac_CoreGraphicsContext.mm */, - 5C9A7CB614CE1DFA574772DD /* juce_mac_CoreGraphicsHelpers.h */, - 537FDE261B80BA27AB0F268F /* juce_mac_Fonts.mm */, - 51F6B14D12856AA27906835D /* juce_RenderingHelpers.h */, - DCCC9B894C6F3FF9643B3D85 /* juce_win32_Direct2DGraphicsContext.cpp */, - DE005946F4FF5EB9F2B5E94F /* juce_win32_DirectWriteTypeface.cpp */, - FA91B86E9778655B50D0814C /* juce_win32_DirectWriteTypeLayout.cpp */, - 23E03F6187920AD14BFC8BCD /* juce_win32_Fonts.cpp */, - ); - name = native; - sourceTree = ""; - }; - 2E126121467FEA75AE5E28E7 /* juce_events */ = { - isa = PBXGroup; - children = ( - 6848C10D7BE2FDE4F5BE5A0B /* broadcasters */, - 7F7BE232EE718E4A72993E33 /* interprocess */, - 32D439DE7107240949F5553E /* messages */, - B4D20666B4600ED310A0BD4D /* native */, - 293D388343818393DB994F8B /* timers */, - 6DC63841ED21D2CC651147C3 /* juce_events.cpp */, - EB154A70F170DDD097484FE9 /* juce_events.mm */, - 5414D9D1E3345D557CEFE983 /* juce_events.h */, - ); - name = juce_events; - sourceTree = ""; - }; - 2E64869DDF2412C8949B3D60 /* positioning */ = { - isa = PBXGroup; - children = ( - B9DF6AB40767C91B45834CED /* juce_MarkerList.cpp */, - 61287CFC6D4262060F576DD7 /* juce_MarkerList.h */, - B5E44A231B747E1759C87CD4 /* juce_RelativeCoordinate.cpp */, - 9D53AA5877289D7EC8E9D708 /* juce_RelativeCoordinate.h */, - 12748EFBC072636CB555FEED /* juce_RelativeCoordinatePositioner.cpp */, - 3898C8969F187EDE6C2FE1A1 /* juce_RelativeCoordinatePositioner.h */, - C2EA3FCC07E1674AFDEA71B2 /* juce_RelativeParallelogram.cpp */, - C6F13DC7541D0F00B8C8ED6A /* juce_RelativeParallelogram.h */, - AAF99DBF6ACB84A56C7996C5 /* juce_RelativePoint.cpp */, - EA8A57933A118B68E6C8A037 /* juce_RelativePoint.h */, - 799F28AA91B1E73D5DD93EF8 /* juce_RelativePointPath.cpp */, - 7773CF6756E7F17F8CCFBB0B /* juce_RelativePointPath.h */, - CF56CAFD0B05918B202CC8C1 /* juce_RelativeRectangle.cpp */, - B29B68EFD93C936B6004A003 /* juce_RelativeRectangle.h */, - ); - name = positioning; - sourceTree = ""; - }; - 2EF49DCD807993B2B8356444 /* placement */ = { - isa = PBXGroup; - children = ( - F06F1733D3BA37AA7C511933 /* juce_Justification.h */, - 8F311C729219275902113CE6 /* juce_RectanglePlacement.cpp */, - BD8807162A21C44D5C816A74 /* juce_RectanglePlacement.h */, - ); - name = placement; - sourceTree = ""; - }; - 2FAC8B0260F96E4D3115116A /* native */ = { - isa = PBXGroup; - children = ( - A909FAC6633F0D17F297405A /* juce_android_Audio.cpp */, - 22C6FFBE9D2206A13A30D71F /* juce_android_Midi.cpp */, - 8E8EB4F5ADDC2D5B024F0F0F /* juce_android_OpenSL.cpp */, - 0EECE5A38949D03C48FA6727 /* juce_ios_Audio.cpp */, - 173848000A992F19AC7AE30C /* juce_linux_ALSA.cpp */, - 90092F1E5EBA0AA6057FBE6A /* juce_linux_JackAudio.cpp */, - 51DBB2E2806E132D175C2597 /* juce_linux_Midi.cpp */, - D1BC969BA323CE7CEEB34692 /* juce_mac_CoreAudio.cpp */, - 1ACC1653C65505E7AC29FB74 /* juce_mac_CoreMidi.cpp */, - A9FB36572DDA1194317B9352 /* juce_MidiDataConcatenator.h */, - DC4C0156E331164E93BF2F1B /* juce_win32_ASIO.cpp */, - 07B3D9344EFFDC5DFE383519 /* juce_win32_DirectSound.cpp */, - 250D5D5989533ADFB25306EC /* juce_win32_Midi.cpp */, - 66A50CF3EB078EE4D9F4456D /* juce_win32_WASAPI.cpp */, - ); - name = native; - sourceTree = ""; - }; - 2FE9DE53F5D76DADC3CC0E2D /* floor */ = { - isa = PBXGroup; - children = ( - 543DC3C0F6530C99ECA63A9A /* floor_books.h */, - ); - name = floor; - sourceTree = ""; - }; - 321FCEA0CA4F7508415A3CB4 /* pnglib */ = { - isa = PBXGroup; - children = ( - C44815DFC69575308E2E7DF5 /* libpng_readme.txt */, - 46CD74CB0C207D371D0F22BF /* png.c */, - 379FC2C12D06AFB0A0F07476 /* png.h */, - D6A1B4EF7647B82043EC5C14 /* pngconf.h */, - 87F3AD7F998AC58254A5CB14 /* pngerror.c */, - D111247356C62C3698C5259A /* pngget.c */, - 67933CC08A429EF3955DA476 /* pnginfo.h */, - CB6C50C6F026F66991905EBA /* pngmem.c */, - 6D31F014FC058BF4E76B8415 /* pngpread.c */, - 5D77406B71C3A76439A5D9E4 /* pngpriv.h */, - A317B26EF3D30E3CFCC80F79 /* pngread.c */, - AF42734F63315C85E08587B3 /* pngrio.c */, - FBD3C4CF5151FE82BA05D486 /* pngrtran.c */, - 38995FA8FD1425F65F87FC09 /* pngrutil.c */, - 982EF3C57A98E26EAD69AE4B /* pngset.c */, - 17889DFA6CEB679211FF3389 /* pngstruct.h */, - D9D800ABA75CDD05817432E2 /* pngtrans.c */, - E38345D85F1CD35B62CD6456 /* pngwio.c */, - 57702152570891F1CEF1F858 /* pngwrite.c */, - 6FFFF87297AF8C459786210B /* pngwtran.c */, - E5A413D6F34F783C7A708B49 /* pngwutil.c */, - ); - name = pnglib; - sourceTree = ""; - }; - 32D439DE7107240949F5553E /* messages */ = { - isa = PBXGroup; - children = ( - 68F5730BEE88039A3E7E3195 /* juce_ApplicationBase.cpp */, - 8D69477B2E980591FF3F78EE /* juce_ApplicationBase.h */, - 125D60706A72F35D9D6CB3FE /* juce_CallbackMessage.h */, - A48C9F610C0BDA307CC287F7 /* juce_DeletedAtShutdown.cpp */, - DA07E0972B6DD508A081B59E /* juce_DeletedAtShutdown.h */, - 9E0DB0A243F94F8D90C1CB1B /* juce_Initialisation.h */, - B378396CBE6EE2E85295A2DB /* juce_Message.h */, - CFFCDE3DE85309817AA5314F /* juce_MessageListener.cpp */, - D7A1432A09EA76270555EBFF /* juce_MessageListener.h */, - FE81D4D343853571BF409685 /* juce_MessageManager.cpp */, - F56396DCA982B63F2DA78471 /* juce_MessageManager.h */, - BAFE2641BD8618F8F7F65579 /* juce_MountedVolumeListChangeDetector.h */, - E305CCBB5B76D319BEC9248E /* juce_NotificationType.h */, - ); - name = messages; - sourceTree = ""; - }; - 34487656545A1983A0EFEFA8 /* system */ = { - isa = PBXGroup; - children = ( - 7B516EE490E9912305AEBFDC /* juce_CompilerSupport.h */, - B82AF1752045C4157C0ADF1B /* juce_PlatformDefs.h */, - 78E8E4FD896C87A932976258 /* juce_StandardHeader.h */, - 849CF8E8313D7205E0DAA6F8 /* juce_SystemStats.cpp */, - 78E5BFE91209EE3CA40BAC3C /* juce_SystemStats.h */, - 257F034BF0E09D78178ADCF5 /* juce_TargetPlatform.h */, - ); - name = system; - sourceTree = ""; - }; - 366F782486E4200762978002 /* flac */ = { - isa = PBXGroup; - children = ( - 60614F6E93F279F8BD12C504 /* libFLAC */, - 9159BC49F78C18D4ABBAA16A /* all.h */, - C1CB3B69DCF541CF84F0A5C1 /* alloc.h */, - 093EAF4BA57F6552E2C377B8 /* assert.h */, - 61C2BDE6AF13FDD7F7CFB20F /* callback.h */, - 25F6B5BC25A7AFBA774E718C /* compat.h */, - 68C6E67D53E770D9165DFB36 /* endswap.h */, - 7127835E262D977E179ABA27 /* export.h */, - ED9E41C44623B304A6079277 /* Flac Licence.txt */, - 4ACC5E02BDD5C78A53E2522B /* format.h */, - D50C18AA1D31A606129E712C /* metadata.h */, - CA5C4EA6672E46AE47A55790 /* ordinals.h */, - 7E3C266A9195C927EDA3D45B /* stream_decoder.h */, - 75E083FA4A0BAB99229F23EB /* stream_encoder.h */, - DCE85E789DF463EF99F73FE0 /* win_utf8_io.h */, - ); - name = flac; - sourceTree = ""; - }; - 36D60AEACC295718CA4DF1ED /* code_editor */ = { - isa = PBXGroup; - children = ( - C8BDDC0EA95699CED529FB96 /* juce_CodeDocument.cpp */, - 8CB049C67CA9CA3E76960B1D /* juce_CodeDocument.h */, - A2DCF1D28A3EADC8DB365F97 /* juce_CodeEditorComponent.cpp */, - 8103743F82032789096ACEB5 /* juce_CodeEditorComponent.h */, - 66838D5159BDC5AC0E777C0C /* juce_CodeTokeniser.h */, - 6362E2A941EAA49521526692 /* juce_CPlusPlusCodeTokeniser.cpp */, - B978E5CC1180425AD149A152 /* juce_CPlusPlusCodeTokeniser.h */, - CDEBA4B2BB49150BFAED8665 /* juce_CPlusPlusCodeTokeniserFunctions.h */, - 21CA089CEAAEFB67132DE3CD /* juce_LuaCodeTokeniser.cpp */, - A93D235AED6D56DA08F82062 /* juce_LuaCodeTokeniser.h */, - 8E5D35AF16D5BC97A9F05B26 /* juce_XMLCodeTokeniser.cpp */, - BCAD87C5C4722BE2239A00F6 /* juce_XMLCodeTokeniser.h */, - ); - name = code_editor; - sourceTree = ""; - }; - 38998921858495104F35872D /* BlocksSynth */ = { - isa = PBXGroup; - children = ( - 6FBEB977137848BF3903034E /* Source */, - ); - name = BlocksSynth; - sourceTree = ""; - }; - 3ADDC207B0CCAE1F5E220196 /* Juce Library Code */ = { - isa = PBXGroup; - children = ( - EFE9FF35F95193089D2465F5 /* AppConfig.h */, - DD58AB0C80AB9D0B6850983D /* juce_audio_basics.mm */, - AF5F2E4B8A7F1B9A507D043C /* juce_audio_devices.mm */, - E1CDDE683A9D3D00182334F0 /* juce_audio_formats.mm */, - A40D3E3FFBEC78F04EE0DE5A /* juce_blocks_basics.cpp */, - B0B1C0956FEDCBF2AF19CA6B /* juce_core.mm */, - 17544537ED6A83CB6C3F3201 /* juce_data_structures.mm */, - 8EF4F0D964C0ECA2E058F7DC /* juce_events.mm */, - 7038FD73A5F7527FB76E987E /* juce_graphics.mm */, - ABFE23A312B6421D3E21ADC8 /* juce_gui_basics.mm */, - 2E85944AC4191910EE758B99 /* juce_gui_extra.mm */, - 231FA43EA6BDD60E2E5D682E /* juce_opengl.mm */, - 87ECEEBFFBBFB5281E991537 /* JuceHeader.h */, - ); - name = "Juce Library Code"; - sourceTree = ""; - }; - 3EFC68CF20814573E989B57A /* modes */ = { - isa = PBXGroup; - children = ( - 6C5369F8D2216549004C2A0E /* floor_all.h */, - 67836F067567900AD54826E5 /* psych_8.h */, - B6291F8983C362DED92336BE /* psych_11.h */, - 1F2D0A04F7D20953AAD00785 /* psych_16.h */, - 1E732CABBE64BE6C4FD80795 /* psych_44.h */, - E56F858D8C2F9C11CBD6308D /* residue_8.h */, - BD019AAA61CCA4A497274794 /* residue_16.h */, - 930BD2067E0A3FC1B0812211 /* residue_44.h */, - 674C83936EDD53D1D3C70AC1 /* residue_44p51.h */, - D00E7D50024BC55EE60D8A1B /* residue_44u.h */, - 82C32D94FAED75BF1FBB3FCB /* setup_8.h */, - 44F79CEE556BD28E515BA71B /* setup_11.h */, - B16D0231583843F5782F2FF1 /* setup_16.h */, - 686B051DB68F5583A3DE1C31 /* setup_22.h */, - F2634446266E383816E9341A /* setup_32.h */, - 8503FD83B959A39D75548438 /* setup_44.h */, - 0E8C76CFF33AC2608DE25A16 /* setup_44p51.h */, - 3A78A59E802951A187248BD6 /* setup_44u.h */, - 6FE31511DFE124B4DBE13958 /* setup_X.h */, - ); - name = modes; - sourceTree = ""; - }; - 3FE0C15B00B176DC80462EBF /* image_formats */ = { - isa = PBXGroup; - children = ( - 94D15D08688C2A46AC9B168B /* jpglib */, - 321FCEA0CA4F7508415A3CB4 /* pnglib */, - 26688B743438F611F16AA65B /* juce_GIFLoader.cpp */, - 493A7E8767FCA4250B6FBD94 /* juce_JPEGLoader.cpp */, - A10A8513A3239AF1A4E59DD6 /* juce_PNGLoader.cpp */, - ); - name = image_formats; - sourceTree = ""; - }; - 404BFEA464246C3581AFCF47 /* juce_audio_basics */ = { - isa = PBXGroup; - children = ( - 093A7AEDD681B83D66FC731D /* buffers */, - 453B13CE4731731449976196 /* effects */, - 9F8DE539E9189F8A8BC181FD /* midi */, - 2872F62BFCDB4181EB1E46C3 /* mpe */, - 18BE705CB0BE08716FC46C14 /* sources */, - 56AB427B045E77338B2EECD6 /* synthesisers */, - 79741977D90F18EC3D8BAE35 /* juce_audio_basics.cpp */, - 905BDA536A972F6FC36B356F /* juce_audio_basics.mm */, - 05201B7662BC062EA0347E8E /* juce_audio_basics.h */, - ); - name = juce_audio_basics; - sourceTree = ""; - }; - 44A9B15FCFF35B6D4A98AD01 /* widgets */ = { - isa = PBXGroup; - children = ( - DCFCECAE8ED2C934AB68E4EC /* juce_ComboBox.cpp */, - 8DC8471AAC1855AC5FCF5A49 /* juce_ComboBox.h */, - 98A71ED25423EDA3D71C5A82 /* juce_ImageComponent.cpp */, - FA3537F978DC20BC51975AF4 /* juce_ImageComponent.h */, - 7A45794310114755CDD94AB1 /* juce_Label.cpp */, - 3BCDBA897B07973BE96C7CD4 /* juce_Label.h */, - 730CE994579DDD2DE49B5D7A /* juce_ListBox.cpp */, - F0F5158BE492B43B8FAAD1D3 /* juce_ListBox.h */, - 445E7C1EF124A4552532AE4F /* juce_ProgressBar.cpp */, - 61F8335D20F500B2BC612A2D /* juce_ProgressBar.h */, - 2F8470C7C024CC6EF9669961 /* juce_Slider.cpp */, - AB4BAE5B3AAB57A4BC712F3F /* juce_Slider.h */, - 634A8B60191C15D6693B40BA /* juce_TableHeaderComponent.cpp */, - FF9B172146D046D10BC0E7E0 /* juce_TableHeaderComponent.h */, - 8AC432E785BEC3DAD8663650 /* juce_TableListBox.cpp */, - 8694FBBB22ADD72875586C4C /* juce_TableListBox.h */, - D766274BD43DF76958D6D7A1 /* juce_TextEditor.cpp */, - FB44F62FA6C5FA2DFB1B2142 /* juce_TextEditor.h */, - 0E2BE57E047E0F1EC2BF9880 /* juce_Toolbar.cpp */, - B7E100E53E55FBBB995D1015 /* juce_Toolbar.h */, - D01FEE0DC6C2CED2D3217198 /* juce_ToolbarItemComponent.cpp */, - 35E2249D105A48B11BCF2DA3 /* juce_ToolbarItemComponent.h */, - 97A84C15178314A33151C129 /* juce_ToolbarItemFactory.h */, - 577DD1C1B6BC82BE5E32C290 /* juce_ToolbarItemPalette.cpp */, - 137EDFA7BC30E6EEFF2A2C04 /* juce_ToolbarItemPalette.h */, - E2C31B4B096247BEB81029C5 /* juce_TreeView.cpp */, - 959F6D02ECA6B976583C67FA /* juce_TreeView.h */, - ); - name = widgets; - sourceTree = ""; - }; - 453B13CE4731731449976196 /* effects */ = { - isa = PBXGroup; - children = ( - 93704EAD7D73562297F10C7B /* juce_CatmullRomInterpolator.cpp */, - 33B297800F96D1E644E085B6 /* juce_CatmullRomInterpolator.h */, - 8A3EF0C45AE28C847B7BB89E /* juce_Decibels.h */, - A00E9DF1CB3DB09C81B31D98 /* juce_FFT.cpp */, - BAB246A896258C6FE2132717 /* juce_FFT.h */, - 298DDF49756F536B50469375 /* juce_IIRFilter.cpp */, - AD95DCF6FDF31C1C53422FA4 /* juce_IIRFilter.h */, - CB0C4A25BA9D6F1AEDEF4CD3 /* juce_LagrangeInterpolator.cpp */, - AB4B277C8F975F009F31753A /* juce_LagrangeInterpolator.h */, - 40AFF57E82F006FB59D0BB29 /* juce_LinearSmoothedValue.h */, - 720BE46FF929B0A8D37DBB05 /* juce_Reverb.h */, - ); - name = effects; - sourceTree = ""; - }; - 4A4AFBC9552F022B065AF812 /* visualisers */ = { - isa = PBXGroup; - children = ( - 331EE1B47BD07B07DFAAE89E /* juce_BitmapLEDProgram.cpp */, - 225B313A9BC57AB15CC508F3 /* juce_BitmapLEDProgram.h */, - D4F58BCBE5B9C7D88AC92BA4 /* juce_DrumPadLEDProgram.cpp */, - 1177C66130BC8F6B57308A18 /* juce_DrumPadLEDProgram.h */, - ); - name = visualisers; - sourceTree = ""; - }; - 4C6121D44894EBC2CE00C47C /* juce_graphics */ = { - isa = PBXGroup; - children = ( - A0AB8A5CFF0F86A8DFC35FD6 /* colour */, - 788A2BB27DFA716A543497CA /* contexts */, - 6E5F7B54E6D5F4FC5DB69DEA /* effects */, - 521B6DE6C4B7BE10CAE4065F /* fonts */, - 240FD43C7C457ED97B01A27D /* geometry */, - 3FE0C15B00B176DC80462EBF /* image_formats */, - 5A2106C72326CEA212F2CCCA /* images */, - 2AE3391E3CF2A2D9AEC5AA27 /* native */, - 2EF49DCD807993B2B8356444 /* placement */, - 614A8A8F8ED16753F8CFE07C /* juce_graphics.cpp */, - 268EE6C32655E4002E0F67E1 /* juce_graphics.mm */, - 95636B26C770CFEADB3201BA /* juce_graphics.h */, - ); - name = juce_graphics; - sourceTree = ""; - }; - 4DA608349B8E06A40C2B3610 /* javascript */ = { - isa = PBXGroup; - children = ( - 4EAAD4EB24BA19D7B7CC1EBB /* juce_Javascript.cpp */, - DB759FAAEF7C18AB11580C3C /* juce_Javascript.h */, - C2BFF63FD5C214D4E5B993AE /* juce_JSON.cpp */, - B210D9151B74DC5875B5F9F5 /* juce_JSON.h */, - ); - name = javascript; - sourceTree = ""; - }; - 4EA50957218B9A0F396DB28D /* juce_blocks_basics */ = { - isa = PBXGroup; - children = ( - 94FF97995070201943DECACA /* blocks */, - 659FF40903B6F0B096F059FF /* littlefoot */, - 6E032060C5DDE5C3C3D2D844 /* protocol */, - AD032E6784D805C3AEA123E6 /* topology */, - 4A4AFBC9552F022B065AF812 /* visualisers */, - 211D0DA102619F3D2048A741 /* juce_blocks_basics.cpp */, - 014DEEB53672D7474B219518 /* README.txt */, - CD2D5E669A846D3497CADFF5 /* juce_blocks_basics.h */, - ); - name = juce_blocks_basics; - sourceTree = ""; - }; - 4ED61D2C520A402C8D302C3D /* libvorbis-1.3.2 */ = { - isa = PBXGroup; - children = ( - 24E373FDAD31DE2E15DFD3D2 /* lib */, - ); - name = "libvorbis-1.3.2"; - sourceTree = ""; - }; - 521B6DE6C4B7BE10CAE4065F /* fonts */ = { - isa = PBXGroup; - children = ( - BDBADF3D55924C948F41334D /* juce_AttributedString.cpp */, - 21D9B04B3BDC4F1A87DA2C9E /* juce_AttributedString.h */, - DFA7F722F61CC00E65789E52 /* juce_CustomTypeface.cpp */, - 7C3509B7C5B03AEF2B13D26C /* juce_CustomTypeface.h */, - 207D373F8699CA107E7E86F0 /* juce_Font.cpp */, - 12EFD54DC8E9CC723BEBE172 /* juce_Font.h */, - ABB93E3C3FB5C8C04FB65943 /* juce_GlyphArrangement.cpp */, - 92679B9C6D17B2B7CD7B4EFA /* juce_GlyphArrangement.h */, - 68282AFC746AB0122FF571AD /* juce_TextLayout.cpp */, - 015F1290D2CFD4A244E60AC0 /* juce_TextLayout.h */, - E30B4E0A6F8029E7AE3D52E0 /* juce_Typeface.cpp */, - A8A58CFF7A33378076372D7F /* juce_Typeface.h */, - ); - name = fonts; - sourceTree = ""; - }; - 54F4B4E27F443E821ADD4F3B /* audio_io */ = { - isa = PBXGroup; - children = ( - 23DBE20DA60F90ACDEC5A24A /* juce_AudioDeviceManager.cpp */, - 769EC065E9455C2DFECD2CCA /* juce_AudioDeviceManager.h */, - 5737072AA0D7763823260699 /* juce_AudioIODevice.cpp */, - 160EA3FBA3A8D5CD53C381F5 /* juce_AudioIODevice.h */, - BD1EC57A31C1A44821E79F00 /* juce_AudioIODeviceType.cpp */, - 8FC4E1BB74B356F0099608B9 /* juce_AudioIODeviceType.h */, - 18F92B6A8369D0F1A9B6705F /* juce_SystemAudioVolume.h */, - ); - name = audio_io; - sourceTree = ""; - }; - 56AB427B045E77338B2EECD6 /* synthesisers */ = { - isa = PBXGroup; - children = ( - 7578F0E1F643412976B603E9 /* juce_Synthesiser.cpp */, - 2CDD1AD17D9E9316BC26501D /* juce_Synthesiser.h */, - ); - name = synthesisers; - sourceTree = ""; - }; - 594F462315832D34803DA5F6 /* juce_audio_formats */ = { - isa = PBXGroup; - children = ( - E3649F203633856653E44CDF /* codecs */, - EF78B4527B53E228CF764D4C /* format */, - E130859390EF4D3D47AEB9E1 /* sampler */, - 7609EEEACF06B6ABC9B0AD6C /* juce_audio_formats.cpp */, - BED0AA415C62CB7F797E51C4 /* juce_audio_formats.mm */, - 96C5E46FAC93C462A7EBF4DF /* juce_audio_formats.h */, - ); - name = juce_audio_formats; - sourceTree = ""; - }; - 5A2106C72326CEA212F2CCCA /* images */ = { - isa = PBXGroup; - children = ( - A23399E22779624DCB1D025C /* juce_Image.cpp */, - 72578DAAE178DD6EDC268A4E /* juce_Image.h */, - 6C6FCFF482B11A862BE7852F /* juce_ImageCache.cpp */, - E4E68F979116A9B3B7D663C5 /* juce_ImageCache.h */, - B5FB26E84ABF33A7E353A48D /* juce_ImageConvolutionKernel.cpp */, - 0608AD5F887B0DAB247A0169 /* juce_ImageConvolutionKernel.h */, - 45830B6210881854542DEE1C /* juce_ImageFileFormat.cpp */, - EFD23A341192EC2E36497814 /* juce_ImageFileFormat.h */, - ); - name = images; - sourceTree = ""; - }; - 5DCA357F8D71E6533AA7F14C /* commands */ = { - isa = PBXGroup; - children = ( - E2C85B5C1B1B51B08231F7EC /* juce_ApplicationCommandID.h */, - A8C4CA489A4BF1B340754797 /* juce_ApplicationCommandInfo.cpp */, - 54414222D76B0C6CD2D245C5 /* juce_ApplicationCommandInfo.h */, - BE3AB671FE1BF4BA67F3B22E /* juce_ApplicationCommandManager.cpp */, - F837F14CCAD905678B2EB5A1 /* juce_ApplicationCommandManager.h */, - 5DDD8C97387E3792B53F6914 /* juce_ApplicationCommandTarget.cpp */, - 016588BDC792CF429E174F41 /* juce_ApplicationCommandTarget.h */, - E068081DF4D036954360B4CA /* juce_KeyPressMappingSet.cpp */, - B35C9A4EB69C394A0DE6E813 /* juce_KeyPressMappingSet.h */, - ); - name = commands; - sourceTree = ""; - }; - 60614F6E93F279F8BD12C504 /* libFLAC */ = { - isa = PBXGroup; - children = ( - F69691A4E1C622CB74BACAFA /* include */, - B7EF3871AADEF4B0B05827E5 /* bitmath.c */, - 4CA1F3B93913EA346771DFAA /* bitreader.c */, - CAA47648604DE92DE3E7826B /* bitwriter.c */, - 156A9CB51E86FFCA164A77F2 /* cpu.c */, - 1F0A802DF7D1C7F69E32CF10 /* crc.c */, - E3F31A84F34E8B640AB5BE80 /* fixed.c */, - FE376580AD9D099778977CBB /* float.c */, - 4D3CB4D0542A042B8C210E31 /* format.c */, - 03130BDC25B905B277B0B227 /* lpc_flac.c */, - BF052877DCD7D8C1AA4CDF9F /* md5.c */, - 6107414E2EBFD835DB9235E3 /* memory.c */, - C7A1D93A3CD65E4F1FA770F2 /* stream_decoder.c */, - 84FD4873C8F91A307D95563B /* stream_encoder.c */, - A844CEB6720112AAAE4BDABD /* stream_encoder_framing.c */, - 942341A54DBA7FD0D9AD19DF /* window_flac.c */, - ); - name = libFLAC; - sourceTree = ""; - }; - 659FF40903B6F0B096F059FF /* littlefoot */ = { - isa = PBXGroup; - children = ( - F2544DB9D399C1102E95A867 /* juce_LittleFootCompiler.h */, - AF6E053345A73531F9DE19FA /* juce_LittleFootRemoteHeap.h */, - A7102BD74E049F7ED8513D1B /* juce_LittleFootRunner.h */, - 3C3A319FB7E247A39036FB7A /* LittleFoot Language README.txt */, - ); - name = littlefoot; - sourceTree = ""; - }; - 661D28B0F542603EDC20F3CF /* zip */ = { - isa = PBXGroup; - children = ( - E13111C1D2F1074DB33AF04F /* zlib */, - 0ACB19FBE5DEAB16B5FE56B9 /* juce_GZIPCompressorOutputStream.cpp */, - B2A083D68101A749DA6CEC50 /* juce_GZIPCompressorOutputStream.h */, - C22DDE0CA3FD2565AC1A9641 /* juce_GZIPDecompressorInputStream.cpp */, - D270EFE61FCF33ABA7DD7A82 /* juce_GZIPDecompressorInputStream.h */, - A830EA78B992425DA01217BB /* juce_ZipFile.cpp */, - E7402936E5521555F7B600AC /* juce_ZipFile.h */, - ); - name = zip; - sourceTree = ""; - }; - 6848C10D7BE2FDE4F5BE5A0B /* broadcasters */ = { - isa = PBXGroup; - children = ( - CDB6AB74B48E27543C7C3247 /* juce_ActionBroadcaster.cpp */, - 06345AE1675306ACD324B59F /* juce_ActionBroadcaster.h */, - 5E977684B01B2AE8C9E6DAD6 /* juce_ActionListener.h */, - 545F7B594166F08E2B2976C7 /* juce_AsyncUpdater.cpp */, - 57F6D4DF279AF7D98FE44E16 /* juce_AsyncUpdater.h */, - C050A75A3FD1ED843430646B /* juce_ChangeBroadcaster.cpp */, - AE91EB61DAC980EC373284E1 /* juce_ChangeBroadcaster.h */, - 79DB1C896B9D762A9BF4D9EF /* juce_ChangeListener.h */, - ); - name = broadcasters; - sourceTree = ""; - }; - 6E032060C5DDE5C3C3D2D844 /* protocol */ = { - isa = PBXGroup; - children = ( - 595CFE4CA3DAE79C08D9C7C7 /* juce_BitPackingUtilities.h */, - E7642142C979E15EF3CA8E38 /* juce_BlockModels.h */, - A7A27C3E995A0A0CAF75F018 /* juce_BlocksProtocolDefinitions.h */, - 30CC24B13FEBDDB188320191 /* juce_HostPacketBuilder.h */, - B1DDA423E55EA93290F02213 /* juce_HostPacketDecoder.h */, - 80BBC5D053419503A600F7D5 /* Protocol Format.txt */, - ); - name = protocol; - sourceTree = ""; - }; - 6E5F7B54E6D5F4FC5DB69DEA /* effects */ = { - isa = PBXGroup; - children = ( - BF273AD2BE0018A6EDCF2258 /* juce_DropShadowEffect.cpp */, - C8CDA61126AEF68721AE396B /* juce_DropShadowEffect.h */, - C54776C328896DD9C63D5F14 /* juce_GlowEffect.cpp */, - 6208ED57BF34A1758751DC64 /* juce_GlowEffect.h */, - 05F31583615DF3401FCF6EDC /* juce_ImageEffectFilter.h */, - ); - name = effects; - sourceTree = ""; - }; - 6FBEB977137848BF3903034E /* Source */ = { - isa = PBXGroup; - children = ( - 23FE51CE68990B49B3B4AABD /* Audio */, - 77EAC0B282DEA3227F3F03B1 /* MainComponent.cpp */, - 1AE75CB0FA61A03429A4E540 /* MainComponent.h */, - D98771DCE827466B36D51AF8 /* Main.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 7014FBB2A0234F105FFD4373 /* misc */ = { - isa = PBXGroup; - children = ( - 9CD701758E71973D7BF7CC8D /* juce_BubbleComponent.cpp */, - B2945D912BAAD64AB84975AA /* juce_BubbleComponent.h */, - 879DC7CDE41F11EF9A8F3FCE /* juce_DropShadower.cpp */, - 3DDC23784E7F36861AF31A75 /* juce_DropShadower.h */, - ); - name = misc; - sourceTree = ""; - }; - 73B736F0A245E7492E237884 /* properties */ = { - isa = PBXGroup; - children = ( - 083B9BAE399C7621EABFD0DC /* juce_BooleanPropertyComponent.cpp */, - 8E8618D73EBC59ABD8A424EB /* juce_BooleanPropertyComponent.h */, - 20C2BF35D7BA96D597557B46 /* juce_ButtonPropertyComponent.cpp */, - 5EA120BDDD4CEB77D4440C20 /* juce_ButtonPropertyComponent.h */, - 96A355D0A7CCC55998862273 /* juce_ChoicePropertyComponent.cpp */, - 551BB1571903BD046B3947C4 /* juce_ChoicePropertyComponent.h */, - C9C143571708C2B184BFEB12 /* juce_PropertyComponent.cpp */, - D0029C076D0AFD4531B8C952 /* juce_PropertyComponent.h */, - C78AE90444451893D78C4E91 /* juce_PropertyPanel.cpp */, - A868BFDFEFD84058783F8A1B /* juce_PropertyPanel.h */, - DDA7B0C44BB6500A8264AB08 /* juce_SliderPropertyComponent.cpp */, - AB50A06C6DADCC7678D37DF0 /* juce_SliderPropertyComponent.h */, - F306B08E4CCAD1A06EC0DB0E /* juce_TextPropertyComponent.cpp */, - 2D53FB29FFFEEB29036792DB /* juce_TextPropertyComponent.h */, - ); - name = properties; - sourceTree = ""; - }; - 74989612E8D2BDBE1BF17A4A /* coupled */ = { - isa = PBXGroup; - children = ( - 0EDF75F8D489F87A668EA9D5 /* res_books_51.h */, - F77076F73232546CC0DA097C /* res_books_stereo.h */, - ); - name = coupled; - sourceTree = ""; - }; - 788A2BB27DFA716A543497CA /* contexts */ = { - isa = PBXGroup; - children = ( - 14B0A23846DEF4981EB6CD1A /* juce_GraphicsContext.cpp */, - 4977DE7B0A8135EDB73EFD68 /* juce_GraphicsContext.h */, - BDE15BB5ED83547045B075DC /* juce_LowLevelGraphicsContext.h */, - EDCE79F26F024D16BCA0F117 /* juce_LowLevelGraphicsPostScriptRenderer.cpp */, - EEC8B02D39FBA83A6AE62ADA /* juce_LowLevelGraphicsPostScriptRenderer.h */, - 1B70293A6CF7F13B06B6569A /* juce_LowLevelGraphicsSoftwareRenderer.cpp */, - 813E65ADB3932DDD6C2FD747 /* juce_LowLevelGraphicsSoftwareRenderer.h */, - ); - name = contexts; - sourceTree = ""; - }; - 7F2DD2D15FC2FB09957FB5E0 /* midi_io */ = { - isa = PBXGroup; - children = ( - E75A56D8BAB64170C5D38438 /* juce_MidiInput.h */, - 852CE105B166A48264750790 /* juce_MidiMessageCollector.cpp */, - 7F9265BF55E77A3F1FE16D6A /* juce_MidiMessageCollector.h */, - BB206032A144BA440AF410E1 /* juce_MidiOutput.cpp */, - 7806B0B64D514AC448AD6E0F /* juce_MidiOutput.h */, - ); - name = midi_io; - sourceTree = ""; - }; - 7F42CBA4D84F5AAA394B131B /* files */ = { - isa = PBXGroup; - children = ( - 29019D28852F4BA5CC9C303A /* juce_DirectoryIterator.cpp */, - 94123CD59BFDC04A9DFCB71B /* juce_DirectoryIterator.h */, - 21E4F85AFE03A986C667AC7F /* juce_File.cpp */, - A9D2C3EEB94596DD2B772434 /* juce_File.h */, - 993A042E02F2CE3ABC485FC1 /* juce_FileFilter.cpp */, - 8BC3502A774FCDC44C015866 /* juce_FileFilter.h */, - 110E2D4DFEF9D028905A9127 /* juce_FileInputStream.cpp */, - 58AEC1D427BCFE3609BCD90A /* juce_FileInputStream.h */, - 7BBCCF2C183BCF08FA446ABB /* juce_FileOutputStream.cpp */, - E56A4F249B3DC548F3392621 /* juce_FileOutputStream.h */, - DBBDB335ABA05B454F030054 /* juce_FileSearchPath.cpp */, - A406981AEDB8C64F3F1000ED /* juce_FileSearchPath.h */, - 4556D874FD9CF3D1DCE3DF36 /* juce_MemoryMappedFile.h */, - C2925B912CB7478725EC09C0 /* juce_TemporaryFile.cpp */, - 26F41B7D9404B50D9FE40C5E /* juce_TemporaryFile.h */, - BFE24BD62EA3F7DBFA196DF7 /* juce_WildcardFileFilter.cpp */, - CC764227E00D7572D2B22354 /* juce_WildcardFileFilter.h */, - ); - name = files; - sourceTree = ""; - }; - 7F7BE232EE718E4A72993E33 /* interprocess */ = { - isa = PBXGroup; - children = ( - FCD28EC20E234A418F03AB9E /* juce_ConnectedChildProcess.cpp */, - 3837D7332EB169F26F818BB9 /* juce_ConnectedChildProcess.h */, - EC6D7E09774AD0360CFDD3CC /* juce_InterprocessConnection.cpp */, - 5DA4467E35DFFBF7AD8268A8 /* juce_InterprocessConnection.h */, - 75725425105CE1949C646ADA /* juce_InterprocessConnectionServer.cpp */, - 4D372B2B68D66E83A4370DE3 /* juce_InterprocessConnectionServer.h */, - ); - name = interprocess; - sourceTree = ""; - }; - 7FA3E417701A67C38F905646 /* text */ = { - isa = PBXGroup; - children = ( - D184EF49BA7A3F3F5545B1D0 /* juce_Base64.cpp */, - EABE813E005E9B66B20BEF8D /* juce_Base64.h */, - 95A6DD5234F109DB3ABC983C /* juce_CharacterFunctions.cpp */, - 3F01CB2947056402F526A4F4 /* juce_CharacterFunctions.h */, - 80235293554BB0956701E9ED /* juce_CharPointer_ASCII.h */, - 43CC58EE154F54E14E70A9A9 /* juce_CharPointer_UTF8.h */, - CDB1484C4D6010E4D4B03C8A /* juce_CharPointer_UTF16.h */, - 8DC679191499EAE03463DC3E /* juce_CharPointer_UTF32.h */, - 8EBDC229B7D3D13C09C28CE6 /* juce_Identifier.cpp */, - CDBA14E9ED2A6DFA59B3E9F8 /* juce_Identifier.h */, - AA518B503E5A850094865B1A /* juce_LocalisedStrings.cpp */, - 4B28AF2241AA37172D6069F8 /* juce_LocalisedStrings.h */, - 379BA1B50BAEE43F433A9E29 /* juce_NewLine.h */, - 7E6FCB5568F74241A49A5B91 /* juce_String.cpp */, - 884EE4AA71233E725BAC6B70 /* juce_String.h */, - E8B53464FF63B6F3C0E8E723 /* juce_StringArray.cpp */, - C8A28EF3F300FCD23130DADD /* juce_StringArray.h */, - 47607EE37E20577AC6770AD4 /* juce_StringPairArray.cpp */, - D9C6F027E7A8E9FDDDAF99BC /* juce_StringPairArray.h */, - 62062D02BDD756A9F4CD9917 /* juce_StringPool.cpp */, - 5715EA1172976C34BF618365 /* juce_StringPool.h */, - 93FDFB1DD4E2378AE729BA02 /* juce_StringRef.h */, - 284D3D37AFE280A47CFE5732 /* juce_TextDiff.cpp */, - A4E1341FFEB2CDFED4B2750C /* juce_TextDiff.h */, - ); - name = text; - sourceTree = ""; - }; - 81FAD18B53D88E4B82950267 /* native */ = { - isa = PBXGroup; - children = ( - 3B603D361B33DF947B16EC5A /* juce_MissingGLDefinitions.h */, - BD369BD9E2486BB5D544D8FA /* juce_OpenGL_android.h */, - 2DA8B0B8F42BA75AA6C09CF5 /* juce_OpenGL_ios.h */, - 41AAF7E46A95C5137361C5D1 /* juce_OpenGL_linux.h */, - 99D82B4AECBFE5BBEA8E435B /* juce_OpenGL_osx.h */, - D9B504A48CCEDE57288899D9 /* juce_OpenGL_win32.h */, - B56D69C275FA7C73683BA840 /* juce_OpenGLExtensions.h */, - ); - name = native; - sourceTree = ""; - }; - 8A58297D0379A4A41A945917 /* oggvorbis */ = { - isa = PBXGroup; - children = ( - 4ED61D2C520A402C8D302C3D /* libvorbis-1.3.2 */, - F1071892476C8E78090C1B04 /* bitwise.c */, - 8FBD6AD2AA7111D2BE5D52AD /* codec.h */, - 4EE92E0A9A6A3FED53DEF136 /* config_types.h */, - 37D3F9ADA06E46941FFC1532 /* framing.c */, - 818EFDD3442FFD396956B865 /* Ogg Vorbis Licence.txt */, - B3D4730C96893578BF727D5A /* ogg.h */, - D19C04CE3F848A3EB30BD306 /* os_types.h */, - 613FE7EF2A3A4359633BA85E /* vorbisenc.h */, - 2724A39A33300FFBF89A4EAF /* vorbisfile.h */, - ); - name = oggvorbis; - sourceTree = ""; - }; - 8A82CE1314A80CA4B9001732 /* logging */ = { - isa = PBXGroup; - children = ( - 5C8F1A64FF9B42D0D2BED7FE /* juce_FileLogger.cpp */, - B0B4567F125815CE3D5F97B0 /* juce_FileLogger.h */, - BA55F9EC52073F1ECFEF5F2D /* juce_Logger.cpp */, - B19D56F3E441EB2B1A84C41A /* juce_Logger.h */, - ); - name = logging; - sourceTree = ""; - }; - 8AEB618AFC1B1D81D447F930 /* maths */ = { - isa = PBXGroup; - children = ( - FE6B0EBC824D1E924DB2406B /* juce_BigInteger.cpp */, - 820AEA62B5F877385A1B482D /* juce_BigInteger.h */, - 97BAAC4F048477A639E48B3F /* juce_Expression.cpp */, - CEC3F1D21215C9FC326F7970 /* juce_Expression.h */, - 9BC9AD541C62AF0DD2BC11D5 /* juce_MathsFunctions.h */, - E60F4AAC9AEFE0400EEEF3F0 /* juce_NormalisableRange.h */, - ADF718CBF6842DD6FC15CF71 /* juce_Random.cpp */, - 9D95253B677F8E6E916D4C41 /* juce_Random.h */, - 43FA1C85CEEE8976874CDE5D /* juce_Range.h */, - 3863C9397ED9E2DC7C26E98F /* juce_StatisticsAccumulator.h */, - ); - name = maths; - sourceTree = ""; - }; - 8C50A37660EFD2826595E21F /* buttons */ = { - isa = PBXGroup; - children = ( - A6CA6F9862A31AA045082102 /* juce_ArrowButton.cpp */, - 007B1F3B503C7D7F4744BA43 /* juce_ArrowButton.h */, - 1E3AD3FF27C698CD3EE18C93 /* juce_Button.cpp */, - 39B343A6A7A4BD31ED5AA4EA /* juce_Button.h */, - 80E878BF0672503772AB3C6C /* juce_DrawableButton.cpp */, - 549A73307E1C2D12EC3FA599 /* juce_DrawableButton.h */, - A1842A3B2210EA4F3E78A614 /* juce_HyperlinkButton.cpp */, - EAA764F4599A4624B26AD06F /* juce_HyperlinkButton.h */, - FB558727D4E53558D3F72AE0 /* juce_ImageButton.cpp */, - A3C88D6C40459FD49F4BBBFC /* juce_ImageButton.h */, - 84187C96133F7EAC39E46D9B /* juce_ShapeButton.cpp */, - EE8BBEB89A13B0E1AFD5780C /* juce_ShapeButton.h */, - 282CADA9E37A136FDBC83A2F /* juce_TextButton.cpp */, - A1C12AC77EFFF165AC6B053D /* juce_TextButton.h */, - 377AF33A6FFEBFE62A05AD2D /* juce_ToggleButton.cpp */, - 00AFB2ECABC5FF5015B0DF6C /* juce_ToggleButton.h */, - 3C7A5BB34C606EBC8556E38A /* juce_ToolbarButton.cpp */, - 1751F5BA57A88D8A20248EAB /* juce_ToolbarButton.h */, - ); - name = buttons; - sourceTree = ""; - }; - 90D9DDA0B7937A5B2ED77F30 /* juce_audio_devices */ = { - isa = PBXGroup; - children = ( - 54F4B4E27F443E821ADD4F3B /* audio_io */, - 7F2DD2D15FC2FB09957FB5E0 /* midi_io */, - 2FAC8B0260F96E4D3115116A /* native */, - AE3AD44B4637C7B1E2E5E9D5 /* sources */, - 6FC3D011A099091610A803A3 /* juce_audio_devices.cpp */, - 919078E0ACA29DBAEFAEDB97 /* juce_audio_devices.mm */, - 1418A6F2476A59D58CB4D5A6 /* juce_audio_devices.h */, - ); - name = juce_audio_devices; - sourceTree = ""; - }; - 92948EE426E4BF8860C245B5 /* memory */ = { - isa = PBXGroup; - children = ( - 0EEC4F43BAD1FD5DD3503BAF /* juce_Atomic.h */, - 5558831C1B9AE2F59258290A /* juce_ByteOrder.h */, - D410F13F7C6D5DEB4EC91AA6 /* juce_ContainerDeletePolicy.h */, - 52E468B373041BD029A57DA9 /* juce_HeapBlock.h */, - 045387853469E755B6DD741C /* juce_LeakedObjectDetector.h */, - 05D530D67D2893ADAD43AA46 /* juce_Memory.h */, - 01D383BCF77D7704F896259D /* juce_MemoryBlock.cpp */, - 9AAD4E5C83FE06AA1C471DCB /* juce_MemoryBlock.h */, - A9833EF4FF3863198A01845F /* juce_OptionalScopedPointer.h */, - 99D62156E5F03AEEF0F367BE /* juce_ReferenceCountedObject.h */, - 34232FF8256F5BA2E80D6C83 /* juce_ScopedPointer.h */, - 05C5166291508D65E4DE1C7F /* juce_SharedResourcePointer.h */, - B0792237EC36D9F9D8D94380 /* juce_Singleton.h */, - 6F0D14BB0BF350DD7664CFE7 /* juce_WeakReference.h */, - ); - name = memory; - sourceTree = ""; - }; - 94D15D08688C2A46AC9B168B /* jpglib */ = { - isa = PBXGroup; - children = ( - A0FF0FE7A4BA41F808EBF3C1 /* cderror.h */, - 2479A476CE3A4C0AF2EDBA33 /* changes to libjpeg for JUCE.txt */, - 5D2D967B09263CB6D21E1FCB /* jcapimin.c */, - 63577C8216D3E4FA634001A3 /* jcapistd.c */, - 9F87B75B0923DE3CA7124827 /* jccoefct.c */, - AC9C674F22F5CCEDB27CA007 /* jccolor.c */, - BC5C888CE6A7A5B4562FA329 /* jcdctmgr.c */, - B1A84BBE9851F9F56F0E8D0D /* jchuff.c */, - 468845E6939E7671B082138A /* jchuff.h */, - 7F71A4F3F4814177EB0CFB75 /* jcinit.c */, - 7986D1D717F09A2C5DB15445 /* jcmainct.c */, - 4FD457CCBE50024B1A6377A7 /* jcmarker.c */, - D901EBE00D1E01A3702FA03D /* jcmaster.c */, - 55902FE86849138F98309FD1 /* jcomapi.c */, - DB2F2C84EE330E7B99CB91D6 /* jconfig.h */, - C3729E6D46FC9FE8B8EA99E6 /* jcparam.c */, - 3CB2C6DD82376B45112B0576 /* jcphuff.c */, - C5FB97556F8007E0E5849857 /* jcprepct.c */, - 2ED49D97994DA78A2920445B /* jcsample.c */, - 4F5EC73689E82CFA1B5E8B08 /* jctrans.c */, - F6E7A4BF54C27C60056270F0 /* jdapimin.c */, - 761F52DF0A7AEB7B43229D12 /* jdapistd.c */, - 0E2AB1720BB6F9EB7E91279B /* jdatasrc.c */, - 3B4D669F61B7B70F9F60B2A0 /* jdcoefct.c */, - 0501056AA00F05DCCC93B577 /* jdcolor.c */, - 0394E57BC8D292BA4F34C748 /* jdct.h */, - 27A4321B4652868129075D63 /* jddctmgr.c */, - E9BFBC057BDD5E694D04F68E /* jdhuff.c */, - 3392234464B3B3A97DA2B58C /* jdhuff.h */, - B56ACDB21BF63DD70C738C65 /* jdinput.c */, - 939C507246EB383834A13299 /* jdmainct.c */, - CC03ACEC4A87137E5E9C8328 /* jdmarker.c */, - 609FED9DD1CE6987BC6B0407 /* jdmaster.c */, - 97DC76FC35177C25FECDD169 /* jdmerge.c */, - D3F2B4B868A0F886E10FD901 /* jdphuff.c */, - 6F96929ABEA4492374734DB9 /* jdpostct.c */, - 34F5C04FBF3B13F93083A301 /* jdsample.c */, - 0EC6923BA8DD0A685E54F725 /* jdtrans.c */, - F7D345B0E22C7AB91FFF9CD2 /* jerror.c */, - DFD7F405B35ECE2DC44D6939 /* jerror.h */, - 2A545C8625733F4D09626C16 /* jfdctflt.c */, - 11BB8490A209BD313ED39DAE /* jfdctfst.c */, - 8406536DA0B794016B0CC15B /* jfdctint.c */, - 634FC3F52B78B7FD78717F66 /* jidctflt.c */, - BC6AEAE96DA5F1EE5F62BD17 /* jidctfst.c */, - CE8E7EE0568DAE54277A3A75 /* jidctint.c */, - 100828DA91AC6887A22A621A /* jidctred.c */, - 5DEC0A780DB6B3C7E3FE1896 /* jinclude.h */, - 8A92A94D8E00418673E58846 /* jmemmgr.c */, - 47604C0ABC53AE6ADB1BFF3D /* jmemnobs.c */, - 3AB3B36BE9E7513E6A0785BC /* jmemsys.h */, - D16614D13C7C9AB7565DE60F /* jmorecfg.h */, - 9BA7FB3722B671A47037C909 /* jpegint.h */, - 46CA6FE2FCF2B4493A1CB500 /* jpeglib.h */, - 0A2C851155CE6975BA22C5B9 /* jquant1.c */, - 1F7339EB6D3A6DAC5966AA91 /* jquant2.c */, - 5917F2F2E450365FCD07C826 /* jutils.c */, - CF22F2D71CC50A6A6BE820A2 /* jversion.h */, - FD6A2554500AE9E8F340812C /* transupp.c */, - BFD3CE2B9C2AF98165049337 /* transupp.h */, - ); - name = jpglib; - sourceTree = ""; - }; - 94FF97995070201943DECACA /* blocks */ = { - isa = PBXGroup; - children = ( - 780ED77A4BF65BA1F5E61F95 /* juce_Block.cpp */, - C5A18309C2DC13A1156282F6 /* juce_Block.h */, - DD3970FDCA69D2DEFBBA3E72 /* juce_ControlButton.h */, - 81ADF2BEFA99AD3AB0FC9A82 /* juce_LEDGrid.h */, - 8AB24BF1D27B394712F32CBF /* juce_LEDRow.h */, - 5B14C9DFF557CC6B9A05E34D /* juce_StatusLight.h */, - 50E9D72AF3E2F4CCDC6E7767 /* juce_TouchList.h */, - A416B5CD799D7BDABF8FEE69 /* juce_TouchSurface.h */, - ); - name = blocks; - sourceTree = ""; - }; - 989C3BDC492942642C24282E /* containers */ = { - isa = PBXGroup; - children = ( - 44FCA467ADE97D1E2B2A49A1 /* juce_AbstractFifo.cpp */, - 35EA9261CEA2AD1A800B702C /* juce_AbstractFifo.h */, - A76BBF30944A9FC89679BE5E /* juce_Array.h */, - D3F75448D5E30FEF546165DF /* juce_ArrayAllocationBase.h */, - 8232BE31BA3CA0AE677EC11D /* juce_DynamicObject.cpp */, - 8BE67E7D6CE3A17E2E120520 /* juce_DynamicObject.h */, - 5B48244E76313E054EFEF426 /* juce_ElementComparator.h */, - 8CCE915477416067D7B0F311 /* juce_HashMap.h */, - 08E918530A1D5F37DC05B5DD /* juce_LinkedListPointer.h */, - 83123049240352B97AEC1FBE /* juce_ListenerList.h */, - D06661831BB0908DEBF996FD /* juce_NamedValueSet.cpp */, - 22B870C829CEA56B78D8EDFA /* juce_NamedValueSet.h */, - 546AE298612DB93D5C336C70 /* juce_OwnedArray.h */, - 2E8F5CD0CF6A9F42FF864B9D /* juce_PropertySet.cpp */, - 7A5719ACD9A5B0D2663B2EB4 /* juce_PropertySet.h */, - 735D98A7029754C4EEC30638 /* juce_ReferenceCountedArray.h */, - 361070599D3204D0C42F7A22 /* juce_ScopedValueSetter.h */, - 5259900DBEADF9B1E596D6CE /* juce_SortedSet.h */, - 3F24711E8D4D2065EA8C372F /* juce_SparseSet.h */, - EBCD4C646F6FA038CBCD1D6F /* juce_Variant.cpp */, - AE7CE5DD4695049CE940B119 /* juce_Variant.h */, - ); - name = containers; - sourceTree = ""; - }; - 9BEBBB02AD13A7EEF3C86DF3 /* native */ = { - isa = PBXGroup; - children = ( - 4B83FCEFA91AFCB06756FC71 /* juce_android_Files.cpp */, - C719A471C0AF1ACF4915590B /* juce_android_JNIHelpers.h */, - 23DC0CBBB4C6D6084EE19F93 /* juce_android_Misc.cpp */, - 01D74B926C822FA65B778B9A /* juce_android_Network.cpp */, - B6847B2CCF1B2E71712827E5 /* juce_android_RuntimePermissions.cpp */, - B2F323A2CF9DBDE87094A12C /* juce_android_SystemStats.cpp */, - 58DBADC28510520AE1E6E069 /* juce_android_Threads.cpp */, - D98F033805C033EF081A9696 /* juce_BasicNativeHeaders.h */, - 23090584DEA1282747CE4769 /* juce_curl_Network.cpp */, - 317A1C3C47E0CFD28F629EE3 /* juce_linux_CommonFile.cpp */, - 4CCBED88413D14521B8B840E /* juce_linux_Files.cpp */, - C4703A5DB149F64AE6A30668 /* juce_linux_Network.cpp */, - 2C34101EF32AC5EA4030FDAD /* juce_linux_SystemStats.cpp */, - BA5273CC64B39B3B0455A53A /* juce_linux_Threads.cpp */, - A235D66B34BD50E939FF885D /* juce_mac_ClangBugWorkaround.h */, - 1BCEE2EA9EFF8FD8078F15A5 /* juce_mac_Files.mm */, - 0F5134388D55D439AA3B66B8 /* juce_mac_Network.mm */, - 9C331AACD288AAD9F7FDF881 /* juce_mac_Strings.mm */, - 073C36AC9C06770D84781B70 /* juce_mac_SystemStats.mm */, - 71A349845B0AB4ECB6FB56AB /* juce_mac_Threads.mm */, - 3EDA16959191726A83FAF8B3 /* juce_osx_ObjCHelpers.h */, - 1A9A02020BE1CA5BBD29B437 /* juce_posix_NamedPipe.cpp */, - C1564464E7D3E100E68F78F3 /* juce_posix_SharedCode.h */, - D01B3D44D354E1DD105A6851 /* juce_win32_ComSmartPtr.h */, - 8CAF15744CF73CDE5C577AB3 /* juce_win32_Files.cpp */, - 96B1C4A89CB5A5423A116F84 /* juce_win32_Network.cpp */, - 79C0162E66B96342B5135E1F /* juce_win32_Registry.cpp */, - F2D9015FC6DBA12DE9609EAA /* juce_win32_SystemStats.cpp */, - 513984F548890D187E1A5683 /* juce_win32_Threads.cpp */, - ); - name = native; - sourceTree = ""; - }; - 9E18A441884CEFE11E2D3857 /* juce_gui_extra */ = { - isa = PBXGroup; - children = ( - 36D60AEACC295718CA4DF1ED /* code_editor */, - B5E054592FF50093B53D0CA3 /* documents */, - BB26434B9CA479BA9218D9CC /* embedding */, - DE3A2AD01175FA05865FCD67 /* misc */, - 9EC9071CD635A99CC2532CCD /* native */, - FDB547DFBE187A379D96760B /* juce_gui_extra.cpp */, - F572E47156DAA8EEBE746390 /* juce_gui_extra.mm */, - FD6A23DA53BC48A5D01DCAAF /* juce_gui_extra.h */, - ); - name = juce_gui_extra; - sourceTree = ""; - }; - 9EC9071CD635A99CC2532CCD /* native */ = { - isa = PBXGroup; - children = ( - 8A270D3B29FF0A115BDA7C00 /* juce_android_WebBrowserComponent.cpp */, - 8319007F2F0B140F09E10D2E /* juce_ios_UIViewComponent.mm */, - 333C35C42EAAC5C9C654F12B /* juce_linux_SystemTrayIcon.cpp */, - D504B7AB34A2CD39CB9C856D /* juce_linux_WebBrowserComponent.cpp */, - 3942B0BFD06ABC8B8AC0459D /* juce_mac_AppleRemote.mm */, - F1A811BDF1FBDB3460847383 /* juce_mac_CarbonViewWrapperComponent.h */, - 86C5B51CA8FE58BBE6C48E5E /* juce_mac_NSViewComponent.mm */, - 1DA2607436F77B9E79C8D031 /* juce_mac_SystemTrayIcon.cpp */, - 2FAD51414C9D18ADA5B2CC16 /* juce_mac_WebBrowserComponent.mm */, - 1414F1FC8B43992F623E2FD2 /* juce_win32_ActiveXComponent.cpp */, - D0F8908BB4BF8D2904759E9B /* juce_win32_SystemTrayIcon.cpp */, - BAB1E713B8FD5FF764E93C7D /* juce_win32_WebBrowserComponent.cpp */, - ); - name = native; - sourceTree = ""; - }; - 9F8DE539E9189F8A8BC181FD /* midi */ = { - isa = PBXGroup; - children = ( - 12ACF9469751D8A6D9D90E53 /* juce_MidiBuffer.cpp */, - 52B7F9D0AC8BF316E96E480A /* juce_MidiBuffer.h */, - 84BE02BFDAF53B9697664253 /* juce_MidiFile.cpp */, - 65977552E1C7B054FE006EAB /* juce_MidiFile.h */, - 854C4EBBB0954052ACF55160 /* juce_MidiKeyboardState.cpp */, - 5D4BE633D03013E33B4B376D /* juce_MidiKeyboardState.h */, - 88587028FF53FA6CFA0D4887 /* juce_MidiMessage.cpp */, - 38BF78CAB1ABA56E87C5F438 /* juce_MidiMessage.h */, - A7AB12DC3DB28027A4F73022 /* juce_MidiMessageSequence.cpp */, - D23E61F11E9CD3EE88C300C5 /* juce_MidiMessageSequence.h */, - E7F6687DE8509FCC698399FC /* juce_MidiRPN.cpp */, - 90A6E39FA0169E7EE1E66FA7 /* juce_MidiRPN.h */, - ); - name = midi; - sourceTree = ""; - }; - A0AB8A5CFF0F86A8DFC35FD6 /* colour */ = { - isa = PBXGroup; - children = ( - 747883C759DB70A4DAB5FF3C /* juce_Colour.cpp */, - FD05664C4D9E513C74BFBD73 /* juce_Colour.h */, - 890AEBD8BEC0A1A2C418F79B /* juce_ColourGradient.cpp */, - 6A3909C3FD602F355F2E5D74 /* juce_ColourGradient.h */, - E0FC64420488B39FFC9C25AA /* juce_Colours.cpp */, - 3F03CD51A0C38F53DEC35D06 /* juce_Colours.h */, - 8EEEC7C23F3A4D5EBAD32660 /* juce_FillType.cpp */, - B258C7C7456130F17398F6EC /* juce_FillType.h */, - F69AED9FEB4B4E8B9457BA1F /* juce_PixelFormats.h */, - ); - name = colour; - sourceTree = ""; - }; - A354D9464A5E0CA16BACC5FE /* menus */ = { - isa = PBXGroup; - children = ( - 6686824DF63B35A02B0FCDAB /* juce_MenuBarComponent.cpp */, - 329DF7E968A8D1BC5242755D /* juce_MenuBarComponent.h */, - 892C11FB5B2192DC7FE0E617 /* juce_MenuBarModel.cpp */, - D5542B1227D81DCFF2DFCDA4 /* juce_MenuBarModel.h */, - 52162727C5145771E25131C9 /* juce_PopupMenu.cpp */, - 1A8D2D0748598F01CEAAD4F7 /* juce_PopupMenu.h */, - ); - name = menus; - sourceTree = ""; - }; - A6A176D809E46AF236D766B1 /* Resources */ = { - isa = PBXGroup; - children = ( - 0E36301F694447E2DE1A780C /* Info-App.plist */, - 70426BCCD5E978424B32AC8B /* Images.xcassets */, - ); - name = Resources; - sourceTree = ""; - }; - A6E5010F1204E950F65CE679 /* components */ = { - isa = PBXGroup; - children = ( - 58E8DB6E05BEC37A2C386482 /* juce_CachedComponentImage.h */, - 3BE2901B9A625B0A9A34FAEE /* juce_Component.cpp */, - A7DBC8925B48CFF83A1A785D /* juce_Component.h */, - 494C319CCFF5BCCD0F36FD33 /* juce_ComponentListener.cpp */, - 3C0FB54AB7F6499B039CA796 /* juce_ComponentListener.h */, - 868BF9273B56A0762F1CE5B8 /* juce_Desktop.cpp */, - D8555991B456F672F132ABEC /* juce_Desktop.h */, - 61CAFC1A3803B6D6BA913E84 /* juce_ModalComponentManager.cpp */, - 24B3BC3052E9DCD40B98304B /* juce_ModalComponentManager.h */, - ); - name = components; - sourceTree = ""; - }; - A7D9149B4E37D9181E3F9A39 /* filebrowser */ = { - isa = PBXGroup; - children = ( - BEF40C565264BB572868FF09 /* juce_DirectoryContentsDisplayComponent.cpp */, - C92D8587F5DBAD4B1CC80406 /* juce_DirectoryContentsDisplayComponent.h */, - E76C940E3BEADDDA3B798D3F /* juce_DirectoryContentsList.cpp */, - F641DDA93FDEF2450E56A606 /* juce_DirectoryContentsList.h */, - C225444502EBA04B63E16CE6 /* juce_FileBrowserComponent.cpp */, - F42D141B9A70BB0273407B0E /* juce_FileBrowserComponent.h */, - 389F673D479BAA914D559C3C /* juce_FileBrowserListener.h */, - 733D19DB0084F1592D2ACCB5 /* juce_FileChooser.cpp */, - A75D403B2009F5E41DB85E88 /* juce_FileChooser.h */, - 5F622792DD550ED2F85D6BC6 /* juce_FileChooserDialogBox.cpp */, - D24A6466F1C7D63741B729BC /* juce_FileChooserDialogBox.h */, - BEF0AAA4CC9BA56B412B7B20 /* juce_FileListComponent.cpp */, - 26FE8AEE286297F8E8F148E8 /* juce_FileListComponent.h */, - 7FE57FC0CEE579C81819F26B /* juce_FilenameComponent.cpp */, - 0D197638970189B7FC7EF613 /* juce_FilenameComponent.h */, - FD2F08645DF014C0F3110942 /* juce_FilePreviewComponent.h */, - 6BC2FE3123EC3468395FC8D8 /* juce_FileSearchPathListComponent.cpp */, - 3F31EDAA9BB16DCAA86C6A6B /* juce_FileSearchPathListComponent.h */, - 811EB7C741184EAE672D6581 /* juce_FileTreeComponent.cpp */, - 3454368245C5E8CFD1456FBC /* juce_FileTreeComponent.h */, - EBF38E78D19A1BCCAE6C72E1 /* juce_ImagePreviewComponent.cpp */, - 69A4D0C62C1F177C0C877A3A /* juce_ImagePreviewComponent.h */, - ); - name = filebrowser; - sourceTree = ""; - }; - A9FFCB200EC6C79188EC21FA /* utils */ = { - isa = PBXGroup; - children = ( - 9E490E7A44CB793DDFBEE1EE /* juce_OpenGLAppComponent.cpp */, - 63E061781918F57A073B894F /* juce_OpenGLAppComponent.h */, - ); - name = utils; - sourceTree = ""; - }; - AD032E6784D805C3AEA123E6 /* topology */ = { - isa = PBXGroup; - children = ( - 83A8F8A11B1659400C525E81 /* juce_PhysicalTopologySource.cpp */, - E39AB15FBBB7950C44245FC6 /* juce_PhysicalTopologySource.h */, - 36C6D8EECCE8A8A9E21D3895 /* juce_RuleBasedTopologySource.cpp */, - 234C53C2D7D7559F63E77597 /* juce_RuleBasedTopologySource.h */, - 778E2234490F20FEC78AE06E /* juce_Topology.h */, - CE6036ECB2716A67BEDFF215 /* juce_TopologySource.h */, - ); - name = topology; - sourceTree = ""; - }; - AE3AD44B4637C7B1E2E5E9D5 /* sources */ = { - isa = PBXGroup; - children = ( - E38D7CBE4043D2FE2DB2B1A0 /* juce_AudioSourcePlayer.cpp */, - 75A2F39B22AC60256D2115D4 /* juce_AudioSourcePlayer.h */, - FAF3E26F1BBFA85CA8B333E5 /* juce_AudioTransportSource.cpp */, - 396FCA5D9FAE5297B70B2655 /* juce_AudioTransportSource.h */, - ); - name = sources; - sourceTree = ""; - }; - AECDF9A263F52E02F060F2B0 /* mouse */ = { - isa = PBXGroup; - children = ( - 2D3D590B3FA5486BDAD225B0 /* juce_ComponentDragger.cpp */, - BF9B812900B12580FCD3C1C5 /* juce_ComponentDragger.h */, - 1EB612BB5C88FD75360E182C /* juce_DragAndDropContainer.cpp */, - 9A157F41830D8E72D9B6DDE9 /* juce_DragAndDropContainer.h */, - CA54557D28FB9E717532A9B8 /* juce_DragAndDropTarget.h */, - CB01A5CBA8DA5DA64F79F9D5 /* juce_FileDragAndDropTarget.h */, - DC92C4ED5AC4F39FA201F932 /* juce_LassoComponent.h */, - 442B9293D4AECC2B9711CADD /* juce_MouseCursor.cpp */, - E4B9999176E0FB1175CE9568 /* juce_MouseCursor.h */, - 9E56353F5164018FE9407346 /* juce_MouseEvent.cpp */, - 1DA19C5E99B3551ADE26E391 /* juce_MouseEvent.h */, - 49CA1AF15E947DCBBE1AB305 /* juce_MouseInactivityDetector.cpp */, - 1446DDFD289F734BFE1861BD /* juce_MouseInactivityDetector.h */, - 9F02393F695A4882E729627C /* juce_MouseInputSource.cpp */, - D7B9697EF473A62BE6453BA6 /* juce_MouseInputSource.h */, - 6C1E9287AA9C9FEFC393DDCB /* juce_MouseListener.cpp */, - 5013B2E5F2FAF7E880593B1E /* juce_MouseListener.h */, - 9C5ED73E2DF5FDCE5189E945 /* juce_SelectedItemSet.h */, - A0B8C5DC5B1C48EF0B25D9DB /* juce_TextDragAndDropTarget.h */, - 82A5E18127980C5CF8AE919F /* juce_TooltipClient.h */, - ); - name = mouse; - sourceTree = ""; - }; - B084942B44BF9E6FCCB075C7 /* xml */ = { - isa = PBXGroup; - children = ( - CF895906826621767E325CAC /* juce_XmlDocument.cpp */, - B98F37A336955FF58F90FB4C /* juce_XmlDocument.h */, - A9A287E8488E914B1EDDA564 /* juce_XmlElement.cpp */, - 97C27DB9A68F6AACFF857A46 /* juce_XmlElement.h */, - ); - name = xml; - sourceTree = ""; - }; - B4D20666B4600ED310A0BD4D /* native */ = { - isa = PBXGroup; - children = ( - E76FD2235925C85F2D7A8550 /* juce_android_Messaging.cpp */, - D5AE036BF17CF6BF3B415302 /* juce_ios_MessageManager.mm */, - 25C8F3E08BE437DD7F436242 /* juce_linux_Messaging.cpp */, - 24E745A97ACE83CB49C47941 /* juce_mac_MessageManager.mm */, - ADBF05F90178C516209F0C6F /* juce_osx_MessageQueue.h */, - 44530960DE057A0334DFE77A /* juce_ScopedXLock.h */, - DB5CE4E6FE04ADB6786CF3F4 /* juce_win32_HiddenMessageWindow.h */, - 3AF24B9D59180F6C4168586C /* juce_win32_Messaging.cpp */, - ); - name = native; - sourceTree = ""; - }; - B5E054592FF50093B53D0CA3 /* documents */ = { - isa = PBXGroup; - children = ( - C12E3B26BAD438E71B125623 /* juce_FileBasedDocument.cpp */, - A31876A1700D5032452F8AA8 /* juce_FileBasedDocument.h */, - ); - name = documents; - sourceTree = ""; - }; - B9E0B6DA3094EEFCFA408C83 /* books */ = { - isa = PBXGroup; - children = ( - 74989612E8D2BDBE1BF17A4A /* coupled */, - 2FE9DE53F5D76DADC3CC0E2D /* floor */, - 0267817D9651ABB317E33C79 /* uncoupled */, - ); - name = books; - sourceTree = ""; - }; - BB26434B9CA479BA9218D9CC /* embedding */ = { - isa = PBXGroup; - children = ( - 75D9711B81D5DBE678D64734 /* juce_ActiveXControlComponent.h */, - 39C0350A74FE0DD8E792ABC4 /* juce_NSViewComponent.h */, - FFC5E68D2033592D6896B282 /* juce_UIViewComponent.h */, - ); - name = embedding; - sourceTree = ""; - }; - BB630F47D921377AA027C1B4 /* drawables */ = { - isa = PBXGroup; - children = ( - 7D3372B86F706B2EB958851D /* juce_Drawable.cpp */, - A701A3A08035A45B9D1F7963 /* juce_Drawable.h */, - 32882ADD511B3542BB245169 /* juce_DrawableComposite.cpp */, - E46479B62709BC51E7EADCA3 /* juce_DrawableComposite.h */, - 4CE9E46083DBAE3BA66CEF34 /* juce_DrawableImage.cpp */, - F17172414E68A67E86770D16 /* juce_DrawableImage.h */, - 9109705AE4C9C46B0CEBAD57 /* juce_DrawablePath.cpp */, - A94DAD22B9F27389EB042378 /* juce_DrawablePath.h */, - 80CB00749EEB05EB63E6AB02 /* juce_DrawableRectangle.cpp */, - CD9D44C2A4E6A65D62F5A2F4 /* juce_DrawableRectangle.h */, - 182BED30B1F7A3E20AF7C41E /* juce_DrawableShape.cpp */, - 119E392B5554CFFE8416EA5E /* juce_DrawableShape.h */, - 55929F5F3E0FDBA0B5B5740A /* juce_DrawableText.cpp */, - FB76ED4506F6CB6BC0FA0D50 /* juce_DrawableText.h */, - C0794CF65E83FA413249342B /* juce_SVGParser.cpp */, - ); - name = drawables; - sourceTree = ""; - }; - BB809068C10AFC284A1D85E4 /* native */ = { - isa = PBXGroup; - children = ( - E53E7B65080C5BBEF4A9D7C3 /* juce_android_FileChooser.cpp */, - 09901BD8E4BF85BA33E43AC4 /* juce_android_Windowing.cpp */, - 197DFCCEA5C1199B9C4D463F /* juce_ios_UIViewComponentPeer.mm */, - 8899E26B15AA5CE8D18A2DB2 /* juce_ios_Windowing.mm */, - 334C26584909EC5509B8CF72 /* juce_linux_Clipboard.cpp */, - 634DD22DD8F7DE4BA1BA2A8E /* juce_linux_FileChooser.cpp */, - 455B914D8EDEB31EDC2DC451 /* juce_linux_Windowing.cpp */, - 6FB98EFC21231B01B9375164 /* juce_mac_FileChooser.mm */, - A5C1C519AA6CE15BF9547B03 /* juce_mac_MainMenu.mm */, - C9BF56C284B0BE80A7C89DC0 /* juce_mac_MouseCursor.mm */, - 6D9C6DABD7D5E768EF9DCEC9 /* juce_mac_NSViewComponentPeer.mm */, - 4F37C953011C373B54598AD7 /* juce_mac_Windowing.mm */, - 4D4FD67BD642DA535431F2B1 /* juce_MultiTouchMapper.h */, - AB995EFABB924F8175D8954F /* juce_win32_DragAndDrop.cpp */, - D54B128515F377318B34C9C9 /* juce_win32_FileChooser.cpp */, - D512265869F4FD6DBE091DD4 /* juce_win32_Windowing.cpp */, - ); - name = native; - sourceTree = ""; - }; - BEBE62C64C08316AE975AC01 /* Products */ = { - isa = PBXGroup; - children = ( - D778C2ED7EA9D5EDCFBA1507 /* BlocksSynth.app */, - ); - name = Products; - sourceTree = ""; - }; - C0BA57825B1577A586C86CCD /* undomanager */ = { - isa = PBXGroup; - children = ( - 9B04A8539B5ED08A7E26072A /* juce_UndoableAction.h */, - C50067A84435B50FAE2991A2 /* juce_UndoManager.cpp */, - C023041419CCD5A746DD3733 /* juce_UndoManager.h */, - ); - name = undomanager; - sourceTree = ""; - }; - C4A0162E2C1F3E0B4B0B0AD8 /* threads */ = { - isa = PBXGroup; - children = ( - 14C3BD49C3F262D8449A6D89 /* juce_ChildProcess.cpp */, - 0CC672620B96382CF715F134 /* juce_ChildProcess.h */, - 1CFA52094CFDFB61E549EBD4 /* juce_CriticalSection.h */, - A647EFD684A71A7F1DFEF7E9 /* juce_DynamicLibrary.h */, - 64B11380D40B53153C293929 /* juce_HighResolutionTimer.cpp */, - 6C7EADF9387F020492C04442 /* juce_HighResolutionTimer.h */, - 5D5BA1131FE12F38BA17E290 /* juce_InterProcessLock.h */, - BC2708C1A30230F8FFED0BAF /* juce_Process.h */, - 50F08F6B006974130C590F4F /* juce_ReadWriteLock.cpp */, - 920D2C92A6D26ECC0914BE7A /* juce_ReadWriteLock.h */, - 2FAFF79F8E9250E599BEFDDE /* juce_ScopedLock.h */, - A8FBBFE98D5BD4AD7029040E /* juce_ScopedReadLock.h */, - 9065B3CBA068CCEE9F5AFDFE /* juce_ScopedWriteLock.h */, - 59EB48AD6143AB10F2D4830F /* juce_SpinLock.h */, - CA7BE1CD2A59E4A7A133207F /* juce_Thread.cpp */, - 571FD86FB21925B70F4C2439 /* juce_Thread.h */, - 630596B03B4198D9FD956D98 /* juce_ThreadLocalValue.h */, - 4CF48857422D8B4462FDCAC8 /* juce_ThreadPool.cpp */, - 6CD61526F604817E6912686D /* juce_ThreadPool.h */, - 170160056630E4035117107E /* juce_TimeSliceThread.cpp */, - 037C9C0E1723E94B95CD1913 /* juce_TimeSliceThread.h */, - EA53D42B42EB75C773AB045B /* juce_WaitableEvent.h */, - ); - name = threads; - sourceTree = ""; - }; - CD3B970017EF8AC522E6238C /* juce_opengl */ = { - isa = PBXGroup; - children = ( - FF3F83506D205EABE1669524 /* geometry */, - 81FAD18B53D88E4B82950267 /* native */, - D417D822B572124AADECC6BF /* opengl */, - A9FFCB200EC6C79188EC21FA /* utils */, - E3FFC7BB4B7420DFFB0FF1F0 /* juce_opengl.cpp */, - 0FE96D4C83E1846EE628D57F /* juce_opengl.mm */, - 36FB8C0AD65A9A875C90C662 /* juce_opengl.h */, - ); - name = juce_opengl; - sourceTree = ""; - }; - D417D822B572124AADECC6BF /* opengl */ = { - isa = PBXGroup; - children = ( - 1BEF40062139BA123A55EB92 /* juce_OpenGLContext.cpp */, - C23D3AE443F3DA9E05DCF670 /* juce_OpenGLContext.h */, - 738A2C478AADF47D641F9577 /* juce_OpenGLFrameBuffer.cpp */, - 036FADA1493FCEA443F6BD31 /* juce_OpenGLFrameBuffer.h */, - 265C9E0CD85917026D804337 /* juce_OpenGLGraphicsContext.cpp */, - 21AFD9310BD1AA9619366C27 /* juce_OpenGLGraphicsContext.h */, - 099F6F87C4D05FF49A7E3C2C /* juce_OpenGLHelpers.cpp */, - 149DD0517AA814294C0A8C70 /* juce_OpenGLHelpers.h */, - 6A3B0B68AF1891D6708E5CF7 /* juce_OpenGLImage.cpp */, - BDF3FBAE1450DCFA0496D341 /* juce_OpenGLImage.h */, - 279386328A2D384E9C2AE928 /* juce_OpenGLPixelFormat.cpp */, - 339A19F5096F4F61F8255B88 /* juce_OpenGLPixelFormat.h */, - F5D2EE7EA410E9A78BF68285 /* juce_OpenGLRenderer.h */, - 3EB1E0AA5710B0452FF6BBE6 /* juce_OpenGLShaderProgram.cpp */, - A0C6E00A2F5204606A1B0196 /* juce_OpenGLShaderProgram.h */, - A16EB5BE88FD8E25BD4F4158 /* juce_OpenGLTexture.cpp */, - E8BBBB6CB566863296CC406B /* juce_OpenGLTexture.h */, - ); - name = opengl; - sourceTree = ""; - }; - D8F226718DC7C6F677813853 /* juce_data_structures */ = { - isa = PBXGroup; - children = ( - 1BD29601F50DC1FE90A2FB08 /* app_properties */, - C0BA57825B1577A586C86CCD /* undomanager */, - FD7D0D9BA2507086B2E2DA6E /* values */, - AD272D93B639B0D95431D071 /* juce_data_structures.cpp */, - B714D3995796B3E1783B2B92 /* juce_data_structures.mm */, - D4E6E686B826C386E372B9B0 /* juce_data_structures.h */, - ); - name = juce_data_structures; - sourceTree = ""; - }; - D9D416C8CAE3A9E7CE485AE2 /* layout */ = { - isa = PBXGroup; - children = ( - 0D0667D008F7C834DC045F87 /* juce_AnimatedPosition.h */, - 3F4C08B027AA5847220503DF /* juce_AnimatedPositionBehaviours.h */, - D1D6547CA0BAEB079FF9050F /* juce_ComponentAnimator.cpp */, - 58BF05D2E1EBA950D4C132D9 /* juce_ComponentAnimator.h */, - 07176F08AA96CA742FABF32C /* juce_ComponentBoundsConstrainer.cpp */, - 473950B43F215D4523AE801F /* juce_ComponentBoundsConstrainer.h */, - CE63CB470CE025B3344E6B14 /* juce_ComponentBuilder.cpp */, - CB3169B4A664108CEA2751DF /* juce_ComponentBuilder.h */, - 94E460DE1BB4B000A0EB883A /* juce_ComponentMovementWatcher.cpp */, - DB7D21EDFDD06447F1A26B93 /* juce_ComponentMovementWatcher.h */, - D56C2798DB2930BA21DE5222 /* juce_ConcertinaPanel.cpp */, - 4EFE2E4C990EE14732BACEC5 /* juce_ConcertinaPanel.h */, - A7513E63DF1FEE5FB89D5674 /* juce_FlexBox.cpp */, - FF988FAEBE5F808EE1BB9F4F /* juce_FlexBox.h */, - 0522ECF89AFDFE087301B50B /* juce_FlexItem.h */, - 47CC2D3C3EA5DBDD7A160619 /* juce_GroupComponent.cpp */, - 96FC2E3988B10054B1A11323 /* juce_GroupComponent.h */, - 03D95B05B6B6219344A8A5D7 /* juce_MultiDocumentPanel.cpp */, - 260E45CCB287E4CC5DCB27B8 /* juce_MultiDocumentPanel.h */, - 875FEC3940D6185FD9190213 /* juce_ResizableBorderComponent.cpp */, - 77A1BF25012758C1D78583E4 /* juce_ResizableBorderComponent.h */, - 0DF9EA0A64F07528C65C2623 /* juce_ResizableCornerComponent.cpp */, - 8706B5033AE6F9AD92FB4F70 /* juce_ResizableCornerComponent.h */, - B31CB3E3F4BD0212647C599D /* juce_ResizableEdgeComponent.cpp */, - 84FE9718AAA47D64293881CB /* juce_ResizableEdgeComponent.h */, - B04C24316C7F5D7E5C79E0CA /* juce_ScrollBar.cpp */, - 19EC8D47288168DED8C317DF /* juce_ScrollBar.h */, - EAFC617A8DEFF67E2A070D1B /* juce_StretchableLayoutManager.cpp */, - 0D9ED7566FF0B245CCB60C50 /* juce_StretchableLayoutManager.h */, - 819FAA8F15DD9C9789D26B77 /* juce_StretchableLayoutResizerBar.cpp */, - 9D16672FDB24B44DFF13E4B1 /* juce_StretchableLayoutResizerBar.h */, - 15945B1F63EE00FE6BCD61F0 /* juce_StretchableObjectResizer.cpp */, - 25CE3EDC204ADB54724E65DC /* juce_StretchableObjectResizer.h */, - F86455FC80F2DF1C12D28BFB /* juce_TabbedButtonBar.cpp */, - 4A174700334838A28231D4A0 /* juce_TabbedButtonBar.h */, - 44B2FE959DF300C8385863AF /* juce_TabbedComponent.cpp */, - CEE8CFCB66ADE7E78A9B5D84 /* juce_TabbedComponent.h */, - 9F13791A2E1028E08EFB5A32 /* juce_Viewport.cpp */, - 2AFBEF39C606E0A3D698185B /* juce_Viewport.h */, - ); - name = layout; - sourceTree = ""; - }; - DAB6BE35181959435594FFD3 /* private */ = { - isa = PBXGroup; - children = ( - 31DBD439C2A41A1CC472D924 /* all.h */, - 584414FE3F035198BBE28413 /* bitmath.h */, - 72E27E0C9F64F1BACD6EF454 /* bitreader.h */, - 982342A0B98DB337C74DC50A /* bitwriter.h */, - 8AFFB60B20E17B797777B2B8 /* cpu.h */, - DA52F06969FC2FEFD8DCFAE3 /* crc.h */, - 936C85C333BE640A26BEA92B /* fixed.h */, - A32C77F35CC0A61153BDD2BD /* float.h */, - 0AA288FCCF1342C4947F5FD6 /* format.h */, - BEFCC3E231F6729C94ED2F49 /* lpc.h */, - DEB5BC8C4CF7600478965F15 /* md5.h */, - B019A04354A3A377813C4F10 /* memory.h */, - ACE53253C4EF7A3B45197F94 /* metadata.h */, - 8A48EB23ED8F364CF167DF1D /* stream_encoder.h */, - 83AFB3E647BB6ED40AA571A8 /* stream_encoder_framing.h */, - 188EAA1BD57F1209B23F6903 /* window.h */, - ); - name = private; - sourceTree = ""; - }; - DE3A2AD01175FA05865FCD67 /* misc */ = { - isa = PBXGroup; - children = ( - E1714E22DFB33D06F62468F8 /* juce_AnimatedAppComponent.cpp */, - D6B40F5575A4546875FDBFCA /* juce_AnimatedAppComponent.h */, - 0072E9EDE9A531ABF573D6A1 /* juce_AppleRemote.h */, - 66E065F9613ED585487E57B8 /* juce_BubbleMessageComponent.cpp */, - AD3294A10650175E7F446D7E /* juce_BubbleMessageComponent.h */, - AF09AA6BF4864B8998E2676E /* juce_ColourSelector.cpp */, - 5B74F105B018F0D2497D818E /* juce_ColourSelector.h */, - FF9CD52F808B7C91AD25CF71 /* juce_KeyMappingEditorComponent.cpp */, - 40268160C3A821B16C2C0106 /* juce_KeyMappingEditorComponent.h */, - BED548AB5BFA57159DD12DAC /* juce_LiveConstantEditor.cpp */, - 39C7BCC2C6A8A53D47605192 /* juce_LiveConstantEditor.h */, - 6229C851E122AA62DFE23981 /* juce_PreferencesPanel.cpp */, - 27C1AA486727BE2A93B11251 /* juce_PreferencesPanel.h */, - 6F60258048938FF67DFCDDE4 /* juce_RecentlyOpenedFilesList.cpp */, - FDF345AF086264E4040A79CF /* juce_RecentlyOpenedFilesList.h */, - A41A3F1FD1EE4F50F9267231 /* juce_SplashScreen.cpp */, - 9EA89360E878DE14172E34CF /* juce_SplashScreen.h */, - 7D5439A24397FB12F5B97C69 /* juce_SystemTrayIconComponent.cpp */, - ADF9FFDBBDB7AE74869554B6 /* juce_SystemTrayIconComponent.h */, - 4E93058BD941E58123C09290 /* juce_WebBrowserComponent.h */, - ); - name = misc; - sourceTree = ""; - }; - E130859390EF4D3D47AEB9E1 /* sampler */ = { - isa = PBXGroup; - children = ( - 74F32D6CE88116DDAD104001 /* juce_Sampler.cpp */, - 1F7097A7E2FD1CFD992160A3 /* juce_Sampler.h */, - ); - name = sampler; - sourceTree = ""; - }; - E13111C1D2F1074DB33AF04F /* zlib */ = { - isa = PBXGroup; - children = ( - FA7463364B17FAF275702078 /* adler32.c */, - 729FBFD01DE3FC0BAFB0C65F /* compress.c */, - 9768B98C6D83F54C36FA719F /* crc32.c */, - FDAC3E164BA3FCB909B9F2BE /* crc32.h */, - 77192DF1CEF8FA03F0E6EE79 /* deflate.c */, - 11535233EB65A31CB9A1C84C /* deflate.h */, - D6303AB7ED3A815A746818DB /* infback.c */, - 0C368BF5435A155B2CEBF4DE /* inffast.c */, - AC4D225082C6EC2B2F74D280 /* inffast.h */, - B50ED6B4AE791917727F5E7F /* inffixed.h */, - 277B0FD43AA3A74D0BC6A519 /* inflate.c */, - 4A6B7CEB97494FF6D388514E /* inflate.h */, - F2D31A607BEC69FA6AD0D12E /* inftrees.c */, - 01A60EB1D681DDDB424C6C65 /* inftrees.h */, - F0E4E317DBB8EDC346F79C94 /* trees.c */, - CACC690868FC319352C6D605 /* trees.h */, - 327941468D62EFD046DFD31E /* uncompr.c */, - FB7CEAF8DF0A4447F1BD2DCC /* zconf.h */, - B8793874DA3E3A50A76F9572 /* zconf.in.h */, - 9D36B0CD0D56048687E2A573 /* zlib.h */, - 8A3C4AF25492360327C080A7 /* zutil.c */, - 681D758E911D2D050CD20F66 /* zutil.h */, - ); - name = zlib; - sourceTree = ""; - }; - E25778D3DF758B321155435A /* misc */ = { - isa = PBXGroup; - children = ( - 987209E1994B07DBD16DEC8B /* juce_Result.cpp */, - F5B3C9D2B068F9ADFA8C653C /* juce_Result.h */, - 334F7A39BD0DA475F23052A1 /* juce_RuntimePermissions.cpp */, - 029B264C757780A8CD505C1E /* juce_RuntimePermissions.h */, - 2C4A133B427E627877FF8CE9 /* juce_Uuid.cpp */, - BD75123529E67F9376C1899A /* juce_Uuid.h */, - DDCB65776F12BA2494D86229 /* juce_WindowsRegistry.h */, - ); - name = misc; - sourceTree = ""; - }; - E3100ECB6D7064558B06ADFE /* protected */ = { - isa = PBXGroup; - children = ( - 1469F0FEBE09579AE2256553 /* all.h */, - 5A19BDE20FB81C83D0A03799 /* stream_decoder.h */, - C57C541975044B538A4204B4 /* stream_encoder.h */, - ); - name = protected; - sourceTree = ""; - }; - E3649F203633856653E44CDF /* codecs */ = { - isa = PBXGroup; - children = ( - 366F782486E4200762978002 /* flac */, - 8A58297D0379A4A41A945917 /* oggvorbis */, - 481A69F80148E9DCC2B4A067 /* juce_AiffAudioFormat.cpp */, - B194372F45854DE5FC54671F /* juce_AiffAudioFormat.h */, - 97AE93FD5FB144697DBFE207 /* juce_CoreAudioFormat.cpp */, - B0A1C61E0EBC451CB0B3A337 /* juce_CoreAudioFormat.h */, - 46A4ED1AED4B90701C9FA937 /* juce_FlacAudioFormat.cpp */, - C02A07C4E5AB7D6C98CEAEFA /* juce_FlacAudioFormat.h */, - 6D31C33C6C7BDB06D0BCCA99 /* juce_LAMEEncoderAudioFormat.cpp */, - 1358B9554210B5D0242C1BA3 /* juce_LAMEEncoderAudioFormat.h */, - 204D1CE3691490B81EB8C284 /* juce_MP3AudioFormat.cpp */, - 01E8CC333D1A9910A72DF28D /* juce_MP3AudioFormat.h */, - 769D6EB9D30812CE68C829C8 /* juce_OggVorbisAudioFormat.cpp */, - A693A2B27BD70EAF2FDCDD91 /* juce_OggVorbisAudioFormat.h */, - 9D68ED5474F6AA923599D783 /* juce_QuickTimeAudioFormat.cpp */, - 4FFAFAC9B332F9B993A6EBB6 /* juce_QuickTimeAudioFormat.h */, - 4D8C7E04C4FD97998300FDE6 /* juce_WavAudioFormat.cpp */, - 379589FC32E87B31496C96B7 /* juce_WavAudioFormat.h */, - F2720937BE3C1F10272A7C06 /* juce_WindowsMediaAudioFormat.cpp */, - ED7FCADD5623453DD97B43D8 /* juce_WindowsMediaAudioFormat.h */, - ); - name = codecs; - sourceTree = ""; - }; - E91966262A1070E1B59F692C /* streams */ = { - isa = PBXGroup; - children = ( - 1EB32F020771FAC988EA1E64 /* juce_BufferedInputStream.cpp */, - 7E391A85858C06D5F6286DE1 /* juce_BufferedInputStream.h */, - 7A252E1B8C10CF47B083732B /* juce_FileInputSource.cpp */, - 256BCED752B70974C8DBB789 /* juce_FileInputSource.h */, - 7C5ACCC90B3367A29598171C /* juce_InputSource.h */, - D9E2B3341EC036EBCF562434 /* juce_InputStream.cpp */, - 67BBC05B8A0FA71F2A325422 /* juce_InputStream.h */, - EC9E71FB57478AB3FDA27CD4 /* juce_MemoryInputStream.cpp */, - 016076F4D43D15D063A73530 /* juce_MemoryInputStream.h */, - 6401A4CD373276A624803E09 /* juce_MemoryOutputStream.cpp */, - CA99CDFEEEA27490079060CC /* juce_MemoryOutputStream.h */, - ACEA8F358B77577CBE526F1B /* juce_OutputStream.cpp */, - 67A20BDAD84353BFF940850E /* juce_OutputStream.h */, - FFF9520F524FED8D3468287F /* juce_SubregionStream.cpp */, - 40F2DCDCF3AE32D53839E7FC /* juce_SubregionStream.h */, - ); - name = streams; - sourceTree = ""; - }; - EF78B4527B53E228CF764D4C /* format */ = { - isa = PBXGroup; - children = ( - 116D8F769D93B11A66D4F7E4 /* juce_AudioFormat.cpp */, - 771B35D7F44BB8C0DFDE2452 /* juce_AudioFormat.h */, - 0DF05CB01EC7CAE5299DCB5E /* juce_AudioFormatManager.cpp */, - DA190E7F11B7C6308E764363 /* juce_AudioFormatManager.h */, - 8CB84F9ACB8B17117E5FE0C4 /* juce_AudioFormatReader.cpp */, - D1B4E1CE074A1BE6DB3D9BD5 /* juce_AudioFormatReader.h */, - F9450711CCBD8FCDEA9E95F7 /* juce_AudioFormatReaderSource.cpp */, - 001CEF1BC67328BA0A561A06 /* juce_AudioFormatReaderSource.h */, - 223EDE843FE5CF77DCEEA76F /* juce_AudioFormatWriter.cpp */, - 91EBFF0D72C95AA186003C8E /* juce_AudioFormatWriter.h */, - 16457C02C3262323921CA12E /* juce_AudioSubsectionReader.cpp */, - 55E36D80A91694865B7CE332 /* juce_AudioSubsectionReader.h */, - 49424899DC52549DE819C621 /* juce_BufferingAudioFormatReader.cpp */, - 0D9243B5198B9D61504F7ED5 /* juce_BufferingAudioFormatReader.h */, - 397717356F43CD103B169AF1 /* juce_MemoryMappedAudioFormatReader.h */, - ); - name = format; - sourceTree = ""; - }; - F1B99A44061AEE6C7E87751F /* time */ = { - isa = PBXGroup; - children = ( - 8EFAE8B2003284F5A905E08D /* juce_PerformanceCounter.cpp */, - 4AA531F8D8E250C0429E2CBB /* juce_PerformanceCounter.h */, - 660163B352BBE406FE15DDEB /* juce_RelativeTime.cpp */, - BABBA06E9B4F5AC45082E718 /* juce_RelativeTime.h */, - 1ABB18E7361905092E209E5F /* juce_Time.cpp */, - 3D51F32E7FBF84DEE183F53A /* juce_Time.h */, - ); - name = time; - sourceTree = ""; - }; - F69691A4E1C622CB74BACAFA /* include */ = { - isa = PBXGroup; - children = ( - DAB6BE35181959435594FFD3 /* private */, - E3100ECB6D7064558B06ADFE /* protected */, - ); - name = include; - sourceTree = ""; - }; - FAA6CD66C5226D3A9207B754 /* lookandfeel */ = { - isa = PBXGroup; - children = ( - 8D267142A6682D9886D0CD9A /* juce_LookAndFeel.cpp */, - EE3FF44BECDF0A701A625460 /* juce_LookAndFeel.h */, - E4A7570B4EABC3BDD766D2A0 /* juce_LookAndFeel_V1.cpp */, - BD1F10BA3C91ABDEDA96A90A /* juce_LookAndFeel_V1.h */, - CA65DB1D639849CCDABA67FC /* juce_LookAndFeel_V2.cpp */, - 1B07C855838E6EF1D058D000 /* juce_LookAndFeel_V2.h */, - CFF86D411ACF901036AA22E2 /* juce_LookAndFeel_V3.cpp */, - 7C5529A757AAF95634BB7251 /* juce_LookAndFeel_V3.h */, - ); - name = lookandfeel; - sourceTree = ""; - }; - FCB109DCDFCB200668E6864C /* Juce Modules */ = { - isa = PBXGroup; - children = ( - 404BFEA464246C3581AFCF47 /* juce_audio_basics */, - 90D9DDA0B7937A5B2ED77F30 /* juce_audio_devices */, - 594F462315832D34803DA5F6 /* juce_audio_formats */, - 4EA50957218B9A0F396DB28D /* juce_blocks_basics */, - 247AF08855C438929F46C640 /* juce_core */, - D8F226718DC7C6F677813853 /* juce_data_structures */, - 2E126121467FEA75AE5E28E7 /* juce_events */, - 4C6121D44894EBC2CE00C47C /* juce_graphics */, - FE33C8CB124FF0872158875A /* juce_gui_basics */, - 9E18A441884CEFE11E2D3857 /* juce_gui_extra */, - CD3B970017EF8AC522E6238C /* juce_opengl */, - ); - name = "Juce Modules"; - sourceTree = ""; - }; - FD7D0D9BA2507086B2E2DA6E /* values */ = { - isa = PBXGroup; - children = ( - 03E5101ED7B3FD06AE564F67 /* juce_CachedValue.cpp */, - 92014E0EF85DDA08ACCFE803 /* juce_CachedValue.h */, - 2DBADCD115CE48292C27E0FE /* juce_Value.cpp */, - 90040097B24860C360877342 /* juce_Value.h */, - B387644139E3E36918C4D03A /* juce_ValueTree.cpp */, - E2AC1771328A969730B88BDA /* juce_ValueTree.h */, - 1F6AF62DCB06829E5D547080 /* juce_ValueTreeSynchroniser.cpp */, - 003F5B441682BA631DDF3AC3 /* juce_ValueTreeSynchroniser.h */, - ); - name = values; - sourceTree = ""; - }; - FE33C8CB124FF0872158875A /* juce_gui_basics */ = { - isa = PBXGroup; - children = ( - 07904D644F96E4BDE7F97211 /* application */, - 8C50A37660EFD2826595E21F /* buttons */, - 5DCA357F8D71E6533AA7F14C /* commands */, - A6E5010F1204E950F65CE679 /* components */, - BB630F47D921377AA027C1B4 /* drawables */, - A7D9149B4E37D9181E3F9A39 /* filebrowser */, - 058E0B5BC34AD4AD46B9CAB4 /* keyboard */, - D9D416C8CAE3A9E7CE485AE2 /* layout */, - FAA6CD66C5226D3A9207B754 /* lookandfeel */, - A354D9464A5E0CA16BACC5FE /* menus */, - 7014FBB2A0234F105FFD4373 /* misc */, - AECDF9A263F52E02F060F2B0 /* mouse */, - BB809068C10AFC284A1D85E4 /* native */, - 2E64869DDF2412C8949B3D60 /* positioning */, - 73B736F0A245E7492E237884 /* properties */, - 44A9B15FCFF35B6D4A98AD01 /* widgets */, - 0C4CEA52BDC9F6A213AC17BD /* windows */, - 9BC007D5846F63F0F37CF97B /* juce_gui_basics.cpp */, - A928068058AABD08099E1792 /* juce_gui_basics.mm */, - B38DA581048FDA139F641FB0 /* juce_gui_basics.h */, - ); - name = juce_gui_basics; - sourceTree = ""; - }; - FF3F83506D205EABE1669524 /* geometry */ = { - isa = PBXGroup; - children = ( - C096E8792E18214FCE25A25C /* juce_Draggable3DOrientation.h */, - 92CEF1181147D9E110D85278 /* juce_Matrix3D.h */, - AED3A93746DB1172E5A05BBC /* juce_Quaternion.h */, - DAF373B4117FFAAEF7D9AA22 /* juce_Vector3D.h */, - ); - name = geometry; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 0B9ADB15A71FB90DD6919895 /* BlocksSynth (App) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 55C758B950EB7307111C9D74 /* Build configuration list for PBXNativeTarget "BlocksSynth (App)" */; - buildPhases = ( - B62995CCD71EBA82C2BC1692 /* Resources */, - C8A1585A07BDCD77C240ECAA /* Sources */, - 1EFBDD8D783B94E754626B32 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "BlocksSynth (App)"; - productName = BlocksSynth; - productReference = D778C2ED7EA9D5EDCFBA1507 /* BlocksSynth.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C28D173095C609C48901860E /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0440; - TargetAttributes = { - 0B9ADB15A71FB90DD6919895 = { - DevelopmentTeam = A6Y7ZHFYJ2; - SystemCapabilities = { - com.apple.InAppPurchase = { - enabled = 0; - }; - com.apple.Sandbox = { - enabled = 0; - }; - }; - }; - }; - }; - buildConfigurationList = F2BDE5D743A9870C169E5CC8 /* Build configuration list for PBXProject "BlocksSynth" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 0F4E2B72B683E9B48DF13DDB /* Source */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 0B9ADB15A71FB90DD6919895 /* BlocksSynth (App) */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - B62995CCD71EBA82C2BC1692 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9097F21A6491C4C4ABA3185F /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - C8A1585A07BDCD77C240ECAA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3B23FB9BAAEB77AA64AD037B /* Audio.cpp in Sources */, - 657E06CA14EC10A4744D5DEB /* MainComponent.cpp in Sources */, - 8492CFCDEC3C8BC7E679D597 /* Main.cpp in Sources */, - 8708D4FDEA2E44838FF56AF7 /* juce_audio_basics.mm in Sources */, - DD6F640B22B1E254A30D23A3 /* juce_audio_devices.mm in Sources */, - BFF81A843FE6013A9D16AA34 /* juce_audio_formats.mm in Sources */, - BF6FA2A2A66FBBB7C0C82551 /* juce_blocks_basics.cpp in Sources */, - A6C2383A9E41C6C0492FBD71 /* juce_core.mm in Sources */, - 36CA4CF2E34082660F108708 /* juce_data_structures.mm in Sources */, - 90AB9198E92ADD84AFB8EFD6 /* juce_events.mm in Sources */, - 221901C4077F389C16EE6FE1 /* juce_graphics.mm in Sources */, - 8A93A3EB39E14A2887A12CF9 /* juce_gui_basics.mm in Sources */, - 35E0967364383B7202CB3A01 /* juce_gui_extra.mm in Sources */, - 0112FC2B7A664C27E8F9941D /* juce_opengl.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1EABC8E25D5063C5DE0DA4E2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { + 47425BED9114CD2686893AFC = {isa = PBXBuildFile; fileRef = D778C2ED7EA9D5EDCFBA1507; }; + 96CFB8DAD7FFF76D2E317495 = {isa = PBXBuildFile; fileRef = EB91C5FFE88DF5CFF947669D; }; + 535851B45E7D80B53ABB689D = {isa = PBXBuildFile; fileRef = F3AD07BBECD1E70E5F3F40BD; }; + 646AAFCDA0A0620699614BB7 = {isa = PBXBuildFile; fileRef = E0B3C73D7F3BC93AC8164C1B; }; + C04A639A8ABC44749B49ED36 = {isa = PBXBuildFile; fileRef = CBA6A8FCB0795C89183A8E71; }; + 459E5184BB7B47A2DCD0EE4E = {isa = PBXBuildFile; fileRef = 51425B8876D6230E6C6A2B20; }; + 0579DDF4B03255527CD92BF9 = {isa = PBXBuildFile; fileRef = CEC52ED2250DAF9085E67628; }; + 5CC0AE888A8B9CF85C8C1077 = {isa = PBXBuildFile; fileRef = 42747FC2DD3F362950112EFA; }; + BDD9B6E13096A4F929CDF0C7 = {isa = PBXBuildFile; fileRef = 0A72A10DC2BCD29B4A801D40; }; + 03889D80A76102BB72F53888 = {isa = PBXBuildFile; fileRef = AB8E624C28BB20096959B5C9; }; + 268110CDBB2C5560CE1935AB = {isa = PBXBuildFile; fileRef = 0FD9AE627E98FA0C1EC3C163; }; + DEE7F200E0ABCA5F551B8BC8 = {isa = PBXBuildFile; fileRef = 67663D2E66C7F1C1B6BD6392; }; + AE46B38D70B347166EEA3112 = {isa = PBXBuildFile; fileRef = ACC89760CF09AB1EB06AD52B; }; + 9097F21A6491C4C4ABA3185F = {isa = PBXBuildFile; fileRef = 70426BCCD5E978424B32AC8B; }; + 8492CFCDEC3C8BC7E679D597 = {isa = PBXBuildFile; fileRef = D98771DCE827466B36D51AF8; }; + 8708D4FDEA2E44838FF56AF7 = {isa = PBXBuildFile; fileRef = DD58AB0C80AB9D0B6850983D; }; + DD6F640B22B1E254A30D23A3 = {isa = PBXBuildFile; fileRef = AF5F2E4B8A7F1B9A507D043C; }; + BFF81A843FE6013A9D16AA34 = {isa = PBXBuildFile; fileRef = E1CDDE683A9D3D00182334F0; }; + 82F8207EB62803F4657E2BA5 = {isa = PBXBuildFile; fileRef = E556673D5DAC2B12EA15F47D; }; + BDF46ADA08E24B4C1BB27481 = {isa = PBXBuildFile; fileRef = 1041E86890E9D2C1418A2D95; }; + BF6FA2A2A66FBBB7C0C82551 = {isa = PBXBuildFile; fileRef = A40D3E3FFBEC78F04EE0DE5A; }; + A6C2383A9E41C6C0492FBD71 = {isa = PBXBuildFile; fileRef = B0B1C0956FEDCBF2AF19CA6B; }; + 36CA4CF2E34082660F108708 = {isa = PBXBuildFile; fileRef = 17544537ED6A83CB6C3F3201; }; + 90AB9198E92ADD84AFB8EFD6 = {isa = PBXBuildFile; fileRef = 8EF4F0D964C0ECA2E058F7DC; }; + 221901C4077F389C16EE6FE1 = {isa = PBXBuildFile; fileRef = 7038FD73A5F7527FB76E987E; }; + 8A93A3EB39E14A2887A12CF9 = {isa = PBXBuildFile; fileRef = ABFE23A312B6421D3E21ADC8; }; + 35E0967364383B7202CB3A01 = {isa = PBXBuildFile; fileRef = 2E85944AC4191910EE758B99; }; + 0112FC2B7A664C27E8F9941D = {isa = PBXBuildFile; fileRef = 231FA43EA6BDD60E2E5D682E; }; + 001CEF1BC67328BA0A561A06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + 003F5B441682BA631DDF3AC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTreeSynchroniser.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h"; sourceTree = "SOURCE_ROOT"; }; + 0072E9EDE9A531ABF573D6A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + 007B1F3B503C7D7F4744BA43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + 00AFB2ECABC5FF5015B0DF6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 0112674271470DAC194D36F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 014DEEB53672D7474B219518 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = README.txt; path = "../../../../../modules/juce_blocks_basics/README.txt"; sourceTree = "SOURCE_ROOT"; }; + 015F1290D2CFD4A244E60AC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 016076F4D43D15D063A73530 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 016588BDC792CF429E174F41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 01A60EB1D681DDDB424C6C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = "../../../../../modules/juce_core/zip/zlib/inftrees.h"; sourceTree = "SOURCE_ROOT"; }; + 01B1D517AD162A5026608299 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 01D383BCF77D7704F896259D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 01D74B926C822FA65B778B9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 01E8CC333D1A9910A72DF28D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 029B264C757780A8CD505C1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; + 02A336F8CDC439485DC73DD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 03130BDC25B905B277B0B227 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "lpc_flac.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c"; sourceTree = "SOURCE_ROOT"; }; + 0353708CD8C613C0F5D9081D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 036FADA1493FCEA443F6BD31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 037C9C0E1723E94B95CD1913 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 0394E57BC8D292BA4F34C748 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdct.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdct.h"; sourceTree = "SOURCE_ROOT"; }; + 03B238D422D95970A3A834EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 03BD89526E26A670AE63B364 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 03D95B05B6B6219344A8A5D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 03E5101ED7B3FD06AE564F67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CachedValue.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_CachedValue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 045387853469E755B6DD741C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 0464E2958DB999F27CE02A05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + 047EB8514054BDBED92A4D65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 04DB9A00796D0BCF472F4ED7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + 0501056AA00F05DCCC93B577 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; + 05201B7662BC062EA0347E8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 0522ECF89AFDFE087301B50B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexItem.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexItem.h"; sourceTree = "SOURCE_ROOT"; }; + 05C5166291508D65E4DE1C7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; + 05D530D67D2893ADAD43AA46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + 05F31583615DF3401FCF6EDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 0608AD5F887B0DAB247A0169 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 06345AE1675306ACD324B59F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 07176F08AA96CA742FABF32C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 073C36AC9C06770D84781B70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 07B3D9344EFFDC5DFE383519 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07D9DF1A2D9CA38CB2F08E7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + 083B9BAE399C7621EABFD0DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 08E918530A1D5F37DC05B5DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 093EAF4BA57F6552E2C377B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = assert.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/assert.h"; sourceTree = "SOURCE_ROOT"; }; + 09901BD8E4BF85BA33E43AC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 099F6F87C4D05FF49A7E3C2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + 09A20E48B6DDCF89C3BA52B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h"; sourceTree = "SOURCE_ROOT"; }; + 0A2C851155CE6975BA22C5B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; + 0A72A10DC2BCD29B4A801D40 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + 0A99DEEFD614DE832C7EF6BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 0AA288FCCF1342C4947F5FD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/format.h"; sourceTree = "SOURCE_ROOT"; }; + 0ACB19FBE5DEAB16B5FE56B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0C368BF5435A155B2CEBF4DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../../../../modules/juce_core/zip/zlib/inffast.c"; sourceTree = "SOURCE_ROOT"; }; + 0C39EABAF7EE4C2F8C7D6D71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + 0CABBB44D28EDBD36D8E4B87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisenc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisenc.c"; sourceTree = "SOURCE_ROOT"; }; + 0CC672620B96382CF715F134 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 0D0667D008F7C834DC045F87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; + 0D197638970189B7FC7EF613 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 0D338CDA65D6421601AD96F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D9243B5198B9D61504F7ED5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 0D9ED7566FF0B245CCB60C50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + 0DF05CB01EC7CAE5299DCB5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0DF9EA0A64F07528C65C2623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E2AB1720BB6F9EB7E91279B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdatasrc.c"; sourceTree = "SOURCE_ROOT"; }; + 0E2BE57E047E0F1EC2BF9880 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E36301F694447E2DE1A780C = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + 0E8C76CFF33AC2608DE25A16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44p51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h"; sourceTree = "SOURCE_ROOT"; }; + 0EC6923BA8DD0A685E54F725 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdtrans.c"; sourceTree = "SOURCE_ROOT"; }; + 0EDF75F8D489F87A668EA9D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_51.h"; sourceTree = "SOURCE_ROOT"; }; + 0EEC4F43BAD1FD5DD3503BAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + 0EECE5A38949D03C48FA6727 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0F5134388D55D439AA3B66B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + 0FD9AE627E98FA0C1EC3C163 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 0FE96D4C83E1846EE628D57F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 100828DA91AC6887A22A621A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; + 100E8BF90F31D1E045AF1755 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.c"; sourceTree = "SOURCE_ROOT"; }; + 1030640E8440F02E9F19CD2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1041E86890E9D2C1418A2D95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../JuceLibraryCode/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 110E2D4DFEF9D028905A9127 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11535233EB65A31CB9A1C84C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; + 116D8F769D93B11A66D4F7E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1177C66130BC8F6B57308A18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrumPadLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 119E392B5554CFFE8416EA5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + 11BB8490A209BD313ED39DAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; + 11DF8683332B9FD586EB5F31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; + 125D60706A72F35D9D6CB3FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 12748EFBC072636CB555FEED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12ACF9469751D8A6D9D90E53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12BA74B2CDC0FCB813E8325C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 12EFD54DC8E9CC723BEBE172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + 130A891678CD13F5B8F813A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 1358B9554210B5D0242C1BA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 137EDFA7BC30E6EEFF2A2C04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 13B6344205397F546400A40B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; + 13F2E257D9546C430FAD9DD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + 1414F1FC8B43992F623E2FD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1418A6F2476A59D58CB4D5A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + 1446DDFD289F734BFE1861BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 1469F0FEBE09579AE2256553 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h"; sourceTree = "SOURCE_ROOT"; }; + 149DD0517AA814294C0A8C70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 14B0A23846DEF4981EB6CD1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14C3BD49C3F262D8449A6D89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14CD2D0EE13A7D3289EBBC86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Audio.h; path = ../../Source/Audio.h; sourceTree = "SOURCE_ROOT"; }; + 156A9CB51E86FFCA164A77F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; + 15945B1F63EE00FE6BCD61F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 160EA3FBA3A8D5CD53C381F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + 16457C02C3262323921CA12E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 170160056630E4035117107E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 173848000A992F19AC7AE30C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + 174DCEEB1F0A9CC69F671E41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; + 1751F5BA57A88D8A20248EAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 17544537ED6A83CB6C3F3201 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../JuceLibraryCode/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 17889DFA6CEB679211FF3389 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngstruct.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngstruct.h"; sourceTree = "SOURCE_ROOT"; }; + 17A9AAC14945D24CB26659AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = masking.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/masking.h"; sourceTree = "SOURCE_ROOT"; }; + 182BED30B1F7A3E20AF7C41E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 188EAA1BD57F1209B23F6903 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/window.h"; sourceTree = "SOURCE_ROOT"; }; + 189CE0561DF5910DAF13D22B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 18D12ABCC228BF8EB5D22ACC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = envelope.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.c"; sourceTree = "SOURCE_ROOT"; }; + 18F92B6A8369D0F1A9B6705F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; + 197DFCCEA5C1199B9C4D463F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 19EC8D47288168DED8C317DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 1A10133EE03E0BADFFDBDF3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + 1A544EA5E8AC999D7F681DDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Oscillators.h; path = ../../Source/Oscillators.h; sourceTree = "SOURCE_ROOT"; }; + 1A8D2D0748598F01CEAAD4F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + 1A9A02020BE1CA5BBD29B437 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1ABB18E7361905092E209E5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1ACC1653C65505E7AC29FB74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1AE75CB0FA61A03429A4E540 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; + 1B07C855838E6EF1D058D000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; + 1B1343A9DC0E656198B69B82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; + 1B70293A6CF7F13B06B6569A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BCEE2EA9EFF8FD8078F15A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + 1BEF40062139BA123A55EB92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BF2C3AD8A498D0D55F22623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1C89625695166D8B4FC54C90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 1CFA52094CFDFB61E549EBD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + 1D68A8CBC08DA143889B10A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + 1DA19C5E99B3551ADE26E391 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 1DA2607436F77B9E79C8D031 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1E3AD3FF27C698CD3EE18C93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1E732CABBE64BE6C4FD80795 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_44.h"; sourceTree = "SOURCE_ROOT"; }; + 1EB32F020771FAC988EA1E64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1EB612BB5C88FD75360E182C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1F0A802DF7D1C7F69E32CF10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/crc.c"; sourceTree = "SOURCE_ROOT"; }; + 1F2D0A04F7D20953AAD00785 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = "SOURCE_ROOT"; }; + 1F6AF62DCB06829E5D547080 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTreeSynchroniser.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTreeSynchroniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1F7097A7E2FD1CFD992160A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 1F7339EB6D3A6DAC5966AA91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; + 1FA1A18FDF4E7266114D4B47 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 204D1CE3691490B81EB8C284 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 207D373F8699CA107E7E86F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2092AE5634DE6877D83C4CD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + 20C2BF35D7BA96D597557B46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 211D0DA102619F3D2048A741 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_blocks_basics.cpp"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 219D180F89964DDE7AC126F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; + 21AFD9310BD1AA9619366C27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 21CA089CEAAEFB67132DE3CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 21D9B04B3BDC4F1A87DA2C9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 21E4F85AFE03A986C667AC7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 223EDE843FE5CF77DCEEA76F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 224EC8865F2F99C2F1E4361D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + 225B313A9BC57AB15CC508F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BitmapLEDProgram.h"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h"; sourceTree = "SOURCE_ROOT"; }; + 22B870C829CEA56B78D8EDFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + 22C6FFBE9D2206A13A30D71F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23090584DEA1282747CE4769 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_curl_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_curl_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 231FA43EA6BDD60E2E5D682E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../JuceLibraryCode/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + 234C53C2D7D7559F63E77597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuleBasedTopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h"; sourceTree = "SOURCE_ROOT"; }; + 23DBE20DA60F90ACDEC5A24A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23DC0CBBB4C6D6084EE19F93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23E03F6187920AD14BFC8BCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 241982E4455453EF71D03FFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2479A476CE3A4C0AF2EDBA33 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "changes to libjpeg for JUCE.txt"; path = "../../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt"; sourceTree = "SOURCE_ROOT"; }; + 24B3BC3052E9DCD40B98304B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + 24E745A97ACE83CB49C47941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 250D5D5989533ADFB25306EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 256BCED752B70974C8DBB789 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 257F034BF0E09D78178ADCF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + 25C8F3E08BE437DD7F436242 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 25CE3EDC204ADB54724E65DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 25F6B5BC25A7AFBA774E718C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = compat.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/compat.h"; sourceTree = "SOURCE_ROOT"; }; + 260406E9FB3C041C0B3A89E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 260E45CCB287E4CC5DCB27B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 265C9E0CD85917026D804337 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 26688B743438F611F16AA65B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 268EE6C32655E4002E0F67E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 26F41B7D9404B50D9FE40C5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + 26FE8AEE286297F8E8F148E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2724A39A33300FFBF89A4EAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisfile.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisfile.h"; sourceTree = "SOURCE_ROOT"; }; + 276500E2DF4FBF36F4FA1B81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 277B0FD43AA3A74D0BC6A519 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = "../../../../../modules/juce_core/zip/zlib/inflate.c"; sourceTree = "SOURCE_ROOT"; }; + 279386328A2D384E9C2AE928 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27A4321B4652868129075D63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jddctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 27C1AA486727BE2A93B11251 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 282CADA9E37A136FDBC83A2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 284D3D37AFE280A47CFE5732 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextDiff.cpp"; path = "../../../../../modules/juce_core/text/juce_TextDiff.cpp"; sourceTree = "SOURCE_ROOT"; }; + 287802E2B7AE2D2F962B7D07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + 29019D28852F4BA5CC9C303A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 298DDF49756F536B50469375 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A545C8625733F4D09626C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c"; sourceTree = "SOURCE_ROOT"; }; + 2AFBEF39C606E0A3D698185B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 2B2AB245E134CDF5515EB130 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + 2C34101EF32AC5EA4030FDAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C4A133B427E627877FF8CE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2C651B376A3220A9D720B36B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CDD1AD17D9E9316BC26501D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 2D0476BBF2E82030BC3095E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 2D3D590B3FA5486BDAD225B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2D53FB29FFFEEB29036792DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 2DA8B0B8F42BA75AA6C09CF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; + 2DBADCD115CE48292C27E0FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2DF02AFF10879E3FE2BBF776 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E6C4EDE0CDE7BCC288D464B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + 2E85944AC4191910EE758B99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../JuceLibraryCode/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 2E8F5CD0CF6A9F42FF864B9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2ED49D97994DA78A2920445B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcsample.c"; sourceTree = "SOURCE_ROOT"; }; + 2F59CDC2CDF48A14E047F62C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2F5AD1DB8E7F13A21CA462D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + 2F8470C7C024CC6EF9669961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2FAD51414C9D18ADA5B2CC16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 2FAFF79F8E9250E599BEFDDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + 30CC24B13FEBDDB188320191 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HostPacketBuilder.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + 317A1C3C47E0CFD28F629EE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_CommonFile.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_CommonFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 31DBD439C2A41A1CC472D924 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h"; sourceTree = "SOURCE_ROOT"; }; + 320BFED03A887CDA204EB748 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 327941468D62EFD046DFD31E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; + 32882ADD511B3542BB245169 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + 329DF7E968A8D1BC5242755D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 331EE1B47BD07B07DFAAE89E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BitmapLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 332520A35477D044DB108E0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + 333C35C42EAAC5C9C654F12B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 334C26584909EC5509B8CF72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + 334F7A39BD0DA475F23052A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/misc/juce_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3392234464B3B3A97DA2B58C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jdhuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.h"; sourceTree = "SOURCE_ROOT"; }; + 339A19F5096F4F61F8255B88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 33B297800F96D1E644E085B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CatmullRomInterpolator.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + 34232FF8256F5BA2E80D6C83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 3454368245C5E8CFD1456FBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 34F5C04FBF3B13F93083A301 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdsample.c"; sourceTree = "SOURCE_ROOT"; }; + 3521249F8414079020AF98B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 35E2249D105A48B11BCF2DA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 35EA9261CEA2AD1A800B702C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + 36071D4BA204F795714F93D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioVisualiserComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 361070599D3204D0C42F7A22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 36C6D8EECCE8A8A9E21D3895 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RuleBasedTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 36FB8C0AD65A9A875C90C662 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + 377AF33A6FFEBFE62A05AD2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 379589FC32E87B31496C96B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 379BA1B50BAEE43F433A9E29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + 379FC2C12D06AFB0A0F07476 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = png.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/png.h"; sourceTree = "SOURCE_ROOT"; }; + 37D3F9ADA06E46941FFC1532 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c"; sourceTree = "SOURCE_ROOT"; }; + 3837D7332EB169F26F818BB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConnectedChildProcess.h"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 3863C9397ED9E2DC7C26E98F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatisticsAccumulator.h"; path = "../../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h"; sourceTree = "SOURCE_ROOT"; }; + 3898C8969F187EDE6C2FE1A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 38995FA8FD1425F65F87FC09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c"; sourceTree = "SOURCE_ROOT"; }; + 389F673D479BAA914D559C3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + 38BF78CAB1ABA56E87C5F438 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 38C951E0E35A4B513616931A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 3942B0BFD06ABC8B8AC0459D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + 396FCA5D9FAE5297B70B2655 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + 397717356F43CD103B169AF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 39B343A6A7A4BD31ED5AA4EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + 39C0350A74FE0DD8E792ABC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 39C7BCC2C6A8A53D47605192 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 39F2D7F60BCE45E9BEF6D2D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.c"; sourceTree = "SOURCE_ROOT"; }; + 3A43AB7B49441ABD392D105D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A78A59E802951A187248BD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h"; sourceTree = "SOURCE_ROOT"; }; + 3AB3B36BE9E7513E6A0785BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmemsys.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemsys.h"; sourceTree = "SOURCE_ROOT"; }; + 3AF24B9D59180F6C4168586C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B4D669F61B7B70F9F60B2A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcoefct.c"; sourceTree = "SOURCE_ROOT"; }; + 3B603D361B33DF947B16EC5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + 3B740130AAA2019AE049C85B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.c"; sourceTree = "SOURCE_ROOT"; }; + 3BCDBA897B07973BE96C7CD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + 3BE2901B9A625B0A9A34FAEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BEAA229D9D403CBE51C6670 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3C0FB54AB7F6499B039CA796 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + 3C3A319FB7E247A39036FB7A = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "LittleFoot Language README.txt"; path = "../../../../../modules/juce_blocks_basics/littlefoot/LittleFoot Language README.txt"; sourceTree = "SOURCE_ROOT"; }; + 3C7A5BB34C606EBC8556E38A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CB2C6DD82376B45112B0576 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcphuff.c"; sourceTree = "SOURCE_ROOT"; }; + 3D3D5858103B1047C1779AC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3D51F32E7FBF84DEE183F53A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + 3D8ED3F6C1407C572BBEC652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; }; + 3DDC23784E7F36861AF31A75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + 3EB1E0AA5710B0452FF6BBE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3EDA16959191726A83FAF8B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 3F01CB2947056402F526A4F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 3F03CD51A0C38F53DEC35D06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + 3F24711E8D4D2065EA8C372F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + 3F31EDAA9BB16DCAA86C6A6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3F461FC27A8BEA812E4604BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 3F4C08B027AA5847220503DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; + 3F57879007B1AD70426EB58B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 40268160C3A821B16C2C0106 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 40297764149FD52F1B1B8FF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserVoice.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h"; sourceTree = "SOURCE_ROOT"; }; + 407FC6EC1D6396DEB581D217 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_utils.h"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.h"; sourceTree = "SOURCE_ROOT"; }; + 4083423AC8967EC85128335F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.c"; sourceTree = "SOURCE_ROOT"; }; + 408CD5BDE5207D96C2DC6F0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 40AFF57E82F006FB59D0BB29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinearSmoothedValue.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h"; sourceTree = "SOURCE_ROOT"; }; + 40F2DCDCF3AE32D53839E7FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + 41AAF7E46A95C5137361C5D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_linux.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_linux.h"; sourceTree = "SOURCE_ROOT"; }; + 42747FC2DD3F362950112EFA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 43CC58EE154F54E14E70A9A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + 43D4608C71521337A1E62CBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.h"; sourceTree = "SOURCE_ROOT"; }; + 43FA1C85CEEE8976874CDE5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + 442B9293D4AECC2B9711CADD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44530960DE057A0334DFE77A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + 445E7C1EF124A4552532AE4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44B2FE959DF300C8385863AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 44F79CEE556BD28E515BA71B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_11.h"; sourceTree = "SOURCE_ROOT"; }; + 44FCA467ADE97D1E2B2A49A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4556D874FD9CF3D1DCE3DF36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + 455B914D8EDEB31EDC2DC451 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 45830B6210881854542DEE1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 468845E6939E7671B082138A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.h"; sourceTree = "SOURCE_ROOT"; }; + 46A4ED1AED4B90701C9FA937 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 46CA6FE2FCF2B4493A1CB500 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpeglib.h"; sourceTree = "SOURCE_ROOT"; }; + 46CD74CB0C207D371D0F22BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = png.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/png.c"; sourceTree = "SOURCE_ROOT"; }; + 47123B6CF53D538F0E90AC17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 473950B43F215D4523AE801F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + 47604C0ABC53AE6ADB1BFF3D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c"; sourceTree = "SOURCE_ROOT"; }; + 47607EE37E20577AC6770AD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47BED7BBD05CF1420DE94CFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + 47CC2D3C3EA5DBDD7A160619 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 481A69F80148E9DCC2B4A067 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 493A7E8767FCA4250B6FBD94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 49424899DC52549DE819C621 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 494C319CCFF5BCCD0F36FD33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4977DE7B0A8135EDB73EFD68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 49CA1AF15E947DCBBE1AB305 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4A174700334838A28231D4A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + 4A6B7CEB97494FF6D388514E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inflate.h; path = "../../../../../modules/juce_core/zip/zlib/inflate.h"; sourceTree = "SOURCE_ROOT"; }; + 4AA531F8D8E250C0429E2CBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + 4ACC5E02BDD5C78A53E2522B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/format.h"; sourceTree = "SOURCE_ROOT"; }; + 4B28AF2241AA37172D6069F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + 4B83FCEFA91AFCB06756FC71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C2F138D50A040E9CB6E901B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C3567E01529EB4730FACB2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; }; + 4CA1F3B93913EA346771DFAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; + 4CCBED88413D14521B8B840E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CE9E46083DBAE3BA66CEF34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4CF48857422D8B4462FDCAC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4D372B2B68D66E83A4370DE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 4D3CB4D0542A042B8C210E31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = format.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/format.c"; sourceTree = "SOURCE_ROOT"; }; + 4D4FD67BD642DA535431F2B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 4D8C7E04C4FD97998300FDE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E7C1B9669C78323F39F66BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = info.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/info.c"; sourceTree = "SOURCE_ROOT"; }; + 4E93058BD941E58123C09290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 4EAAD4EB24BA19D7B7CC1EBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4ED26BCBDCC64564B6BC33E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + 4EE92E0A9A6A3FED53DEF136 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "config_types.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/config_types.h"; sourceTree = "SOURCE_ROOT"; }; + 4EFE2E4C990EE14732BACEC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 4F37C953011C373B54598AD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 4F5EC73689E82CFA1B5E8B08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jctrans.c"; sourceTree = "SOURCE_ROOT"; }; + 4FD457CCBE50024B1A6377A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmarker.c"; sourceTree = "SOURCE_ROOT"; }; + 4FFAFAC9B332F9B993A6EBB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 5013B2E5F2FAF7E880593B1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 50A01BFE69012A08EAAA5EF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitrate.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c"; sourceTree = "SOURCE_ROOT"; }; + 50E9D72AF3E2F4CCDC6E7767 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TouchList.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_TouchList.h"; sourceTree = "SOURCE_ROOT"; }; + 50F08F6B006974130C590F4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 513984F548890D187E1A5683 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51425B8876D6230E6C6A2B20 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + 514E168C6138BEC0DC0D31BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiser.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 51DBB2E2806E132D175C2597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51F6B14D12856AA27906835D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 52162727C5145771E25131C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5259900DBEADF9B1E596D6CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + 528DB2421C8140B90DA7B1C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52B7F9D0AC8BF316E96E480A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 52E468B373041BD029A57DA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + 537FDE261B80BA27AB0F268F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 5414D9D1E3345D557CEFE983 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + 543DC3C0F6530C99ECA63A9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_books.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/floor/floor_books.h"; sourceTree = "SOURCE_ROOT"; }; + 54414222D76B0C6CD2D245C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 545F7B594166F08E2B2976C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + 546AE298612DB93D5C336C70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 549A73307E1C2D12EC3FA599 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + 551BB1571903BD046B3947C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5558831C1B9AE2F59258290A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 55902FE86849138F98309FD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcomapi.c"; sourceTree = "SOURCE_ROOT"; }; + 55929F5F3E0FDBA0B5B5740A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + 55E36D80A91694865B7CE332 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + 56C47E673A21A919A36BA737 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lookup.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.c"; sourceTree = "SOURCE_ROOT"; }; + 5715EA1172976C34BF618365 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + 571FD86FB21925B70F4C2439 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + 5737072AA0D7763823260699 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 576F1C585F1F6A618B23BDD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioAppComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 57702152570891F1CEF1F858 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; + 577DD1C1B6BC82BE5E32C290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 57A1B82612ACD48D50CDFB42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 57F6D4DF279AF7D98FE44E16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + 584414FE3F035198BBE28413 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitmath.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitmath.h"; sourceTree = "SOURCE_ROOT"; }; + 58AEC1D427BCFE3609BCD90A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 58BF05D2E1EBA950D4C132D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + 58DBADC28510520AE1E6E069 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58E8DB6E05BEC37A2C386482 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + 5917F2F2E450365FCD07C826 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jutils.c"; sourceTree = "SOURCE_ROOT"; }; + 595CFE4CA3DAE79C08D9C7C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BitPackingUtilities.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h"; sourceTree = "SOURCE_ROOT"; }; + 596AE59CDCCBE4D8E7D27954 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 599428B835C56E48958680E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 59EB48AD6143AB10F2D4830F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + 5A19BDE20FB81C83D0A03799 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; + 5AF86438272890D0836A262D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5B14C9DFF557CC6B9A05E34D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatusLight.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_StatusLight.h"; sourceTree = "SOURCE_ROOT"; }; + 5B48244E76313E054EFEF426 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + 5B74F105B018F0D2497D818E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + 5B9B8D944DFA78FF1203EEC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5C1AF59B9E0F831176669ED8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = "SOURCE_ROOT"; }; + 5C8F1A64FF9B42D0D2BED7FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5C9A7CB614CE1DFA574772DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 5CE665392C6A2CB24B5AFEB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_utils.mm"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 5D2D967B09263CB6D21E1FCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; + 5D4BE633D03013E33B4B376D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + 5D5BA1131FE12F38BA17E290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 5D77406B71C3A76439A5D9E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngpriv.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpriv.h"; sourceTree = "SOURCE_ROOT"; }; + 5DA4467E35DFFBF7AD8268A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + 5DDD8C97387E3792B53F6914 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5DEC0A780DB6B3C7E3FE1896 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jinclude.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jinclude.h"; sourceTree = "SOURCE_ROOT"; }; + 5E977684B01B2AE8C9E6DAD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5EA0ABB0B2C055D60AF351B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 5EA120BDDD4CEB77D4440C20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5F622792DD550ED2F85D6BC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5FB26A689F97B61284059C55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + 6085D0F7B3DFD7C8A7564A9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 609FED9DD1CE6987BC6B0407 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmaster.c"; sourceTree = "SOURCE_ROOT"; }; + 60CB8017B900A02E7C7C1667 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/sharedbook.c"; sourceTree = "SOURCE_ROOT"; }; + 6107414E2EBFD835DB9235E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/memory.c"; sourceTree = "SOURCE_ROOT"; }; + 61287CFC6D4262060F576DD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + 613FE7EF2A3A4359633BA85E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vorbisenc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/vorbisenc.h"; sourceTree = "SOURCE_ROOT"; }; + 614A8A8F8ED16753F8CFE07C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_graphics.cpp"; path = "../../../../../modules/juce_graphics/juce_graphics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61C2BDE6AF13FDD7F7CFB20F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; + 61CAFC1A3803B6D6BA913E84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61F8335D20F500B2BC612A2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 61FABA233363E41B6172EEA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 62062D02BDD756A9F4CD9917 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6208ED57BF34A1758751DC64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 6229C851E122AA62DFE23981 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 627432C87D828B863D9496AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62DE47E4B2EC3BAEECC8D198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 630596B03B4198D9FD956D98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + 634A8B60191C15D6693B40BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 634DD22DD8F7DE4BA1BA2A8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 634FC3F52B78B7FD78717F66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctflt.c"; sourceTree = "SOURCE_ROOT"; }; + 63577C8216D3E4FA634001A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapistd.c"; sourceTree = "SOURCE_ROOT"; }; + 6362E2A941EAA49521526692 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63E061781918F57A073B894F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6401A4CD373276A624803E09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 64B11380D40B53153C293929 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 65977552E1C7B054FE006EAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + 65D2779D3783A6B0DB9DD7C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mapping0.c"; sourceTree = "SOURCE_ROOT"; }; + 65D7CA579D9704B795D9F6D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 660163B352BBE406FE15DDEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + 660DC5473197813B4E38CC4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = scales.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/scales.h"; sourceTree = "SOURCE_ROOT"; }; + 664C16822A70A0AC8DE7BB7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 66838D5159BDC5AC0E777C0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 6686824DF63B35A02B0FCDAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66A50CF3EB078EE4D9F4456D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66CBE1EEF8AA4C91EB7046AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66E065F9613ED585487E57B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 674C83936EDD53D1D3C70AC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44p51.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h"; sourceTree = "SOURCE_ROOT"; }; + 67663D2E66C7F1C1B6BD6392 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 67836F067567900AD54826E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_8.h"; sourceTree = "SOURCE_ROOT"; }; + 67933CC08A429EF3955DA476 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pnginfo.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pnginfo.h"; sourceTree = "SOURCE_ROOT"; }; + 67A20BDAD84353BFF940850E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 67BBC05B8A0FA71F2A325422 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 681D758E911D2D050CD20F66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = "../../../../../modules/juce_core/zip/zlib/zutil.h"; sourceTree = "SOURCE_ROOT"; }; + 68282AFC746AB0122FF571AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + 685892F6AF56A2B6442C0BA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "codec_internal.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = "SOURCE_ROOT"; }; + 686B051DB68F5583A3DE1C31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_22.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_22.h"; sourceTree = "SOURCE_ROOT"; }; + 68C6E67D53E770D9165DFB36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = endswap.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/endswap.h"; sourceTree = "SOURCE_ROOT"; }; + 68E98AD88691547A6D7C674E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 68F5730BEE88039A3E7E3195 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + 69A4D0C62C1F177C0C877A3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 69DCAD4B37C6DFC393CAE941 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = analysis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/analysis.c"; sourceTree = "SOURCE_ROOT"; }; + 6A3909C3FD602F355F2E5D74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + 6A3B0B68AF1891D6708E5CF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6BC2FE3123EC3468395FC8D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C1E9287AA9C9FEFC393DDCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C4EE337B0005F5CB6650264 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 6C5369F8D2216549004C2A0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "floor_all.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/floor_all.h"; sourceTree = "SOURCE_ROOT"; }; + 6C6FCFF482B11A862BE7852F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C7EADF9387F020492C04442 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; + 6CD61526F604817E6912686D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + 6CFE9428C509216C6B6E691E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = "SOURCE_ROOT"; }; + 6D31C33C6C7BDB06D0BCCA99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LAMEEncoderAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D31F014FC058BF4E76B8415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngpread.c"; sourceTree = "SOURCE_ROOT"; }; + 6D9C6DABD7D5E768EF9DCEC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 6DC63841ED21D2CC651147C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_events.cpp"; path = "../../../../../modules/juce_events/juce_events.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6E3C4FF98005E3A56700D483 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 6E9222D7B192A7EF575F5003 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + 6F0D14BB0BF350DD7664CFE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + 6F60258048938FF67DFCDDE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F96929ABEA4492374734DB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; + 6FA8114276186677C37A02AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6FB98EFC21231B01B9375164 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + 6FC3D011A099091610A803A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_devices.cpp"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6FE31511DFE124B4DBE13958 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; + 6FF35BA648B2B034130B0BF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = registry.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h"; sourceTree = "SOURCE_ROOT"; }; + 6FFFF87297AF8C459786210B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwtran.c"; sourceTree = "SOURCE_ROOT"; }; + 7038FD73A5F7527FB76E987E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../JuceLibraryCode/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 70426BCCD5E978424B32AC8B = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BlocksSynth/Images.xcassets; sourceTree = "SOURCE_ROOT"; }; + 711B895681BA427CC7DF8E7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 711C1E768B2C7DB6946D1703 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7127835E262D977E179ABA27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; + 71A349845B0AB4ECB6FB56AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + 720BE46FF929B0A8D37DBB05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 72330895D5682846F3A52223 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 72578DAAE178DD6EDC268A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 729FBFD01DE3FC0BAFB0C65F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../../../../modules/juce_core/zip/zlib/compress.c"; sourceTree = "SOURCE_ROOT"; }; + 72E27E0C9F64F1BACD6EF454 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitreader.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitreader.h"; sourceTree = "SOURCE_ROOT"; }; + 730CE994579DDD2DE49B5D7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 733D19DB0084F1592D2ACCB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 735D98A7029754C4EEC30638 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 738A2C478AADF47D641F9577 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74040BA20DE2E305AE2D0480 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; }; + 747883C759DB70A4DAB5FF3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + 74F32D6CE88116DDAD104001 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75725425105CE1949C646ADA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7578F0E1F643412976B603E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 75A2F39B22AC60256D2115D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + 75D9711B81D5DBE678D64734 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 75E083FA4A0BAB99229F23EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + 7609EEEACF06B6ABC9B0AD6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_formats.cpp"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 761F52DF0A7AEB7B43229D12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdapistd.c"; sourceTree = "SOURCE_ROOT"; }; + 769D6EB9D30812CE68C829C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 769EC065E9455C2DFECD2CCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + 77192DF1CEF8FA03F0E6EE79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../../../modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; + 771B35D7F44BB8C0DFDE2452 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 7773CF6756E7F17F8CCFBB0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 778E2234490F20FEC78AE06E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Topology.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_Topology.h"; sourceTree = "SOURCE_ROOT"; }; + 77A1BF25012758C1D78583E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7806B0B64D514AC448AD6E0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + 780ED77A4BF65BA1F5E61F95 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Block.cpp"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.cpp"; sourceTree = "SOURCE_ROOT"; }; + 78E5BFE91209EE3CA40BAC3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + 78E8E4FD896C87A932976258 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 79741977D90F18EC3D8BAE35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7986D1D717F09A2C5DB15445 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmainct.c"; sourceTree = "SOURCE_ROOT"; }; + 799F28AA91B1E73D5DD93EF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79C0162E66B96342B5135E1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79DB1C896B9D762A9BF4D9EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 7A252E1B8C10CF47B083732B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7A31D46D227370A23021E676 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = res0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/res0.c"; sourceTree = "SOURCE_ROOT"; }; + 7A45794310114755CDD94AB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7A5719ACD9A5B0D2663B2EB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 7B516EE490E9912305AEBFDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; + 7BBCCF2C183BCF08FA446ABB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C32EA6B5A32E29B31FE6FFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.c"; sourceTree = "SOURCE_ROOT"; }; + 7C3509B7C5B03AEF2B13D26C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + 7C5529A757AAF95634BB7251 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; + 7C5ACCC90B3367A29598171C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 7D3372B86F706B2EB958851D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D5439A24397FB12F5B97C69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D7F423A3FB0AC8EDBE62944 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7E2295EBF292A71D44A8F638 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E391A85858C06D5F6286DE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 7E3C266A9195C927EDA3D45B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_decoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/stream_decoder.h"; sourceTree = "SOURCE_ROOT"; }; + 7E6FCB5568F74241A49A5B91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7F13C06AE22B799467575AB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h"; sourceTree = "SOURCE_ROOT"; }; + 7F71A4F3F4814177EB0CFB75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c"; sourceTree = "SOURCE_ROOT"; }; + 7F9265BF55E77A3F1FE16D6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + 7FE57FC0CEE579C81819F26B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80235293554BB0956701E9ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 80BBC5D053419503A600F7D5 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Protocol Format.txt"; path = "../../../../../modules/juce_blocks_basics/protocol/Protocol Format.txt"; sourceTree = "SOURCE_ROOT"; }; + 80CB00749EEB05EB63E6AB02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80E4915CE095F2D92F311C02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; + 80E878BF0672503772AB3C6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8103743F82032789096ACEB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 811EB7C741184EAE672D6581 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 812F5FE9CE244FFDCFA5F7D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = envelope.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/envelope.h"; sourceTree = "SOURCE_ROOT"; }; + 813E65ADB3932DDD6C2FD747 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 818EFDD3442FFD396956B865 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Ogg Vorbis Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt"; sourceTree = "SOURCE_ROOT"; }; + 819FAA8F15DD9C9789D26B77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 81ADF2BEFA99AD3AB0FC9A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDGrid.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDGrid.h"; sourceTree = "SOURCE_ROOT"; }; + 820AEA62B5F877385A1B482D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + 8221B5162E280BE9AB2619CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZoneLayout.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 8232BE31BA3CA0AE677EC11D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + 82A5E18127980C5CF8AE919F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + 82C32D94FAED75BF1FBB3FCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_8.h"; sourceTree = "SOURCE_ROOT"; }; + 83123049240352B97AEC1FBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + 8319007F2F0B140F09E10D2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 831D05658D06983B575A395C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WaveshapeProgram.h; path = ../../Source/WaveshapeProgram.h; sourceTree = "SOURCE_ROOT"; }; + 83A8F8A11B1659400C525E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PhysicalTopologySource.cpp"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 83AFB3E647BB6ED40AA571A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder_framing.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder_framing.h"; sourceTree = "SOURCE_ROOT"; }; + 83FAEBCF478836A81887DBDD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailBase.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailBase.h"; sourceTree = "SOURCE_ROOT"; }; + 8406536DA0B794016B0CC15B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jfdctint.c"; sourceTree = "SOURCE_ROOT"; }; + 84182A25498E78D5DEF6E925 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 84187C96133F7EAC39E46D9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 849CF8E8313D7205E0DAA6F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 84BE02BFDAF53B9697664253 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 84FD4873C8F91A307D95563B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder.c"; sourceTree = "SOURCE_ROOT"; }; + 84FE9718AAA47D64293881CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 8503FD83B959A39D75548438 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44.h"; sourceTree = "SOURCE_ROOT"; }; + 852CE105B166A48264750790 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 854C4EBBB0954052ACF55160 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 856D6984E668878C082F6CE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 866A90A69A3EB77768DD8A23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 868BF9273B56A0762F1CE5B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8694FBBB22ADD72875586C4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 86C5B51CA8FE58BBE6C48E5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 8706B5033AE6F9AD92FB4F70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 875FEC3940D6185FD9190213 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 879DC7CDE41F11EF9A8F3FCE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + 87ECEEBFFBBFB5281E991537 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 87F3AD7F998AC58254A5CB14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngerror.c"; sourceTree = "SOURCE_ROOT"; }; + 881A4A50718FA7CE3F3E5375 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor1.c"; sourceTree = "SOURCE_ROOT"; }; + 884D100B3B1AFA24F697670B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + 884EE4AA71233E725BAC6B70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + 88587028FF53FA6CFA0D4887 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8899E26B15AA5CE8D18A2DB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 890AEBD8BEC0A1A2C418F79B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + 892C11FB5B2192DC7FE0E617 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 89C83AC387C203CF1105C951 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; }; + 8A270D3B29FF0A115BDA7C00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A3C4AF25492360327C080A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = "../../../../../modules/juce_core/zip/zlib/zutil.c"; sourceTree = "SOURCE_ROOT"; }; + 8A3EF0C45AE28C847B7BB89E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + 8A48EB23ED8F364CF167DF1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + 8A92A94D8E00418673E58846 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmemmgr.c"; sourceTree = "SOURCE_ROOT"; }; + 8AB24BF1D27B394712F32CBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LEDRow.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_LEDRow.h"; sourceTree = "SOURCE_ROOT"; }; + 8AC432E785BEC3DAD8663650 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8AFFB60B20E17B797777B2B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/cpu.h"; sourceTree = "SOURCE_ROOT"; }; + 8BC3502A774FCDC44C015866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 8BD079BB7D801C6E67873BA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = psy.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.c"; sourceTree = "SOURCE_ROOT"; }; + 8BE67E7D6CE3A17E2E120520 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 8CAF15744CF73CDE5C577AB3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8CB049C67CA9CA3E76960B1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 8CB84F9ACB8B17117E5FE0C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8CCE915477416067D7B0F311 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 8CDDF045B2A202FCA5DFD932 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; + 8D267142A6682D9886D0CD9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D2CB3EBCA42093713991A64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + 8D69477B2E980591FF3F78EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 8DA77A4F70C03CE81EC8ACAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AU_Shared.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AU_Shared.h"; sourceTree = "SOURCE_ROOT"; }; + 8DC679191499EAE03463DC3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 8DC8471AAC1855AC5FCF5A49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + 8E5D35AF16D5BC97A9F05B26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8E8618D73EBC59ABD8A424EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 8E8EB4F5ADDC2D5B024F0F0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8EBDC229B7D3D13C09C28CE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8EEEC7C23F3A4D5EBAD32660 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8EF4F0D964C0ECA2E058F7DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../JuceLibraryCode/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 8EFAE8B2003284F5A905E08D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F311C729219275902113CE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FACD18D8DF3D14D269091CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FBD6AD2AA7111D2BE5D52AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = codec.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/codec.h"; sourceTree = "SOURCE_ROOT"; }; + 8FC4E1BB74B356F0099608B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + 8FD66AA4A824CFB66BCB8660 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 90040097B24860C360877342 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + 90092F1E5EBA0AA6057FBE6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 905BDA536A972F6FC36B356F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 9065B3CBA068CCEE9F5AFDFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 90A6E39FA0169E7EE1E66FA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; }; + 9109705AE4C9C46B0CEBAD57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9159BC49F78C18D4ABBAA16A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/all.h"; sourceTree = "SOURCE_ROOT"; }; + 919078E0ACA29DBAEFAEDB97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 91EBFF0D72C95AA186003C8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + 92014E0EF85DDA08ACCFE803 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedValue.h"; path = "../../../../../modules/juce_data_structures/values/juce_CachedValue.h"; sourceTree = "SOURCE_ROOT"; }; + 920D2C92A6D26ECC0914BE7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 92679B9C6D17B2B7CD7B4EFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + 92CEF1181147D9E110D85278 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + 930BD2067E0A3FC1B0812211 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44.h"; sourceTree = "SOURCE_ROOT"; }; + 936C85C333BE640A26BEA92B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fixed.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/fixed.h"; sourceTree = "SOURCE_ROOT"; }; + 93704EAD7D73562297F10C7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 939C507246EB383834A13299 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmainct.c"; sourceTree = "SOURCE_ROOT"; }; + 93A79C572AAFAA95F17A2548 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 93B87F458F1F33BFD30539FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 93FDFB1DD4E2378AE729BA02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; + 94123CD59BFDC04A9DFCB71B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + 942341A54DBA7FD0D9AD19DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "window_flac.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/window_flac.c"; sourceTree = "SOURCE_ROOT"; }; + 942B534CD5B5BA732092A55E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + 94E460DE1BB4B000A0EB883A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 95636B26C770CFEADB3201BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + 959F6D02ECA6B976583C67FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + 95A6DD5234F109DB3ABC983C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9619CAAC1844127539A434C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96A355D0A7CCC55998862273 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96A92A30161434408958DBE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + 96B1C4A89CB5A5423A116F84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 96B923167B37C9C228C9E4B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; + 96C5E46FAC93C462A7EBF4DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + 96FC2E3988B10054B1A11323 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9707394FCE0F9ED5DDBB0524 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + 9768B98C6D83F54C36FA719F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = "../../../../../modules/juce_core/zip/zlib/crc32.c"; sourceTree = "SOURCE_ROOT"; }; + 97A84C15178314A33151C129 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + 97AE93FD5FB144697DBFE207 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 97BAAC4F048477A639E48B3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 97C27DB9A68F6AACFF857A46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 97DC76FC35177C25FECDD169 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmerge.c"; sourceTree = "SOURCE_ROOT"; }; + 982342A0B98DB337C74DC50A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; + 98248643528AA2985CA7C657 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 982EF3C57A98E26EAD69AE4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngset.c"; sourceTree = "SOURCE_ROOT"; }; + 987209E1994B07DBD16DEC8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + 98A71ED25423EDA3D71C5A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 993A042E02F2CE3ABC485FC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99A9A70A22EC3C598F623111 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = block.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/block.c"; sourceTree = "SOURCE_ROOT"; }; + 99D62156E5F03AEEF0F367BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + 99D82B4AECBFE5BBEA8E435B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; + 9A157F41830D8E72D9B6DDE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 9AAD4E5C83FE06AA1C471DCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + 9B04A8539B5ED08A7E26072A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + 9B059A5FCABFC0743BAAEDB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 9B927FB567BC0D29DE04DEC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + 9BA7FB3722B671A47037C909 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jpegint.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jpegint.h"; sourceTree = "SOURCE_ROOT"; }; + 9BC007D5846F63F0F37CF97B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BC9AD541C62AF0DD2BC11D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 9C16ACB286837989E5380B6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; + 9C236720F87AB53B983968B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTCommon.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTCommon.h"; sourceTree = "SOURCE_ROOT"; }; + 9C331AACD288AAD9F7FDF881 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + 9C5ED73E2DF5FDCE5189E945 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + 9CABAAB05C27919CF1D26D0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9CD701758E71973D7BF7CC8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D16672FDB24B44DFF13E4B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + 9D36B0CD0D56048687E2A573 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../../../../modules/juce_core/zip/zlib/zlib.h"; sourceTree = "SOURCE_ROOT"; }; + 9D53AA5877289D7EC8E9D708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 9D68ED5474F6AA923599D783 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D95253B677F8E6E916D4C41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + 9E0DB0A243F94F8D90C1CB1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + 9E490E7A44CB793DDFBEE1EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLAppComponent.cpp"; path = "../../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E56353F5164018FE9407346 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9EA89360E878DE14172E34CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + 9F02393F695A4882E729627C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F13791A2E1028E08EFB5A32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F4D55451C7742F3B4828F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F87B75B0923DE3CA7124827 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c"; sourceTree = "SOURCE_ROOT"; }; + A00E9DF1CB3DB09C81B31D98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FFT.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.cpp"; sourceTree = "SOURCE_ROOT"; }; + A0B8C5DC5B1C48EF0B25D9DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + A0C6E00A2F5204606A1B0196 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + A0EE4B43B6C9D6E38527BCE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioAppComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + A0FF0FE7A4BA41F808EBF3C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; + A10A8513A3239AF1A4E59DD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + A13820B7BFD6AF837A2E6C57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + A16EB5BE88FD8E25BD4F4158 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + A18168B9063A9605B68FD197 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BluetoothMidiDevicePairingDialogue.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h"; sourceTree = "SOURCE_ROOT"; }; + A1842A3B2210EA4F3E78A614 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + A19C3A3A74428A4C8EF44EBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = highlevel.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h"; sourceTree = "SOURCE_ROOT"; }; + A1C12AC77EFFF165AC6B053D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + A23399E22779624DCB1D025C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + A235D66B34BD50E939FF885D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ClangBugWorkaround.h"; path = "../../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h"; sourceTree = "SOURCE_ROOT"; }; + A2DCF1D28A3EADC8DB365F97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + A317B26EF3D30E3CFCC80F79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngread.c"; sourceTree = "SOURCE_ROOT"; }; + A31876A1700D5032452F8AA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + A32C77F35CC0A61153BDD2BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h"; sourceTree = "SOURCE_ROOT"; }; + A3C88D6C40459FD49F4BBBFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + A406981AEDB8C64F3F1000ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + A40D3E3FFBEC78F04EE0DE5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_blocks_basics.cpp"; path = "../../JuceLibraryCode/juce_blocks_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; + A416B5CD799D7BDABF8FEE69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TouchSurface.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_TouchSurface.h"; sourceTree = "SOURCE_ROOT"; }; + A41A3F1FD1EE4F50F9267231 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + A48C9F610C0BDA307CC287F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + A4E1341FFEB2CDFED4B2750C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; + A546C8B742A8DC8F5E60C606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + A579D7C165F5D2A34D8B60DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + A5C1C519AA6CE15BF9547B03 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + A647EFD684A71A7F1DFEF7E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + A65DFC4FCE8DD0EAA2901FF4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = registry.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c"; sourceTree = "SOURCE_ROOT"; }; + A693A2B27BD70EAF2FDCDD91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + A6CA6F9862A31AA045082102 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + A701A3A08035A45B9D1F7963 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + A7102BD74E049F7ED8513D1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRunner.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h"; sourceTree = "SOURCE_ROOT"; }; + A7513E63DF1FEE5FB89D5674 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlexBox.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + A75D403B2009F5E41DB85E88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + A76BBF30944A9FC89679BE5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + A7A27C3E995A0A0CAF75F018 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlocksProtocolDefinitions.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + A7AB12DC3DB28027A4F73022 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7B9FCBCD699D5D69178412E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7DBC8925B48CFF83A1A785D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + A830EA78B992425DA01217BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + A844CEB6720112AAAE4BDABD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_encoder_framing.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_encoder_framing.c"; sourceTree = "SOURCE_ROOT"; }; + A868BFDFEFD84058783F8A1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + A8A58CFF7A33378076372D7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + A8C4CA489A4BF1B340754797 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + A8FBBFE98D5BD4AD7029040E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + A909FAC6633F0D17F297405A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + A928068058AABD08099E1792 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + A93D235AED6D56DA08F82062 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + A94DAD22B9F27389EB042378 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + A95B8CA1945CF9A8565C423F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + A9833EF4FF3863198A01845F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + A9A287E8488E914B1EDDA564 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + A9D2C3EEB94596DD2B772434 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + A9FB36572DDA1194317B9352 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + AA518B503E5A850094865B1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA89E7B373C7733F3F5646F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/vorbisfile.c"; sourceTree = "SOURCE_ROOT"; }; + AAF99DBF6ACB84A56C7996C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB4B277C8F975F009F31753A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LagrangeInterpolator.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + AB4BAE5B3AAB57A4BC712F3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + AB50A06C6DADCC7678D37DF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AB8E624C28BB20096959B5C9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + AB995EFABB924F8175D8954F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + ABB93E3C3FB5C8C04FB65943 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + ABFE23A312B6421D3E21ADC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../JuceLibraryCode/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + AC4D225082C6EC2B2F74D280 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; + AC9C674F22F5CCEDB27CA007 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jccolor.c"; sourceTree = "SOURCE_ROOT"; }; + ACC89760CF09AB1EB06AD52B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + ACE53253C4EF7A3B45197F94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h"; sourceTree = "SOURCE_ROOT"; }; + ACEA8F358B77577CBE526F1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + AD272D93B639B0D95431D071 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; + AD3294A10650175E7F446D7E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AD95DCF6FDF31C1C53422FA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + ADBF05F90178C516209F0C6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + ADC432227AFFB91565728B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backends.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/backends.h"; sourceTree = "SOURCE_ROOT"; }; + ADF718CBF6842DD6FC15CF71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + ADF9FFDBBDB7AE74869554B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + AE7CE5DD4695049CE940B119 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + AE91EB61DAC980EC373284E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + AED3A93746DB1172E5A05BBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + AF09AA6BF4864B8998E2676E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF42734F63315C85E08587B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c"; sourceTree = "SOURCE_ROOT"; }; + AF5F2E4B8A7F1B9A507D043C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + AF6E053345A73531F9DE19FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootRemoteHeap.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h"; sourceTree = "SOURCE_ROOT"; }; + AFE07A4C5A0309E9D1933320 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + B019A04354A3A377813C4F10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h"; sourceTree = "SOURCE_ROOT"; }; + B04C24316C7F5D7E5C79E0CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0792237EC36D9F9D8D94380 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + B08A348CEAB267336BEE6404 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + B0A1C61E0EBC451CB0B3A337 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B0B1C0956FEDCBF2AF19CA6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../JuceLibraryCode/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + B0B4567F125815CE3D5F97B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + B0D2EB2CCE9410392733E088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + B16D0231583843F5782F2FF1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_16.h"; sourceTree = "SOURCE_ROOT"; }; + B16ED2FDF63691EBF724BE7C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; + B185D4ED3D7011747FA30D2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + B194372F45854DE5FC54671F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + B19D56F3E441EB2B1A84C41A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + B1A84BBE9851F9F56F0E8D0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jchuff.c"; sourceTree = "SOURCE_ROOT"; }; + B1B7933CA5A0B7F38A94F728 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; + B1DDA423E55EA93290F02213 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HostPacketDecoder.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h"; sourceTree = "SOURCE_ROOT"; }; + B210D9151B74DC5875B5F9F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + B258C7C7456130F17398F6EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + B2737AFF8C4A2300FD4DC321 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + B2945D912BAAD64AB84975AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B29B68EFD93C936B6004A003 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + B2A083D68101A749DA6CEC50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + B2F323A2CF9DBDE87094A12C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + B31CB3E3F4BD0212647C599D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B34A138110D01A3CA9CB727D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = os.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/os.h"; sourceTree = "SOURCE_ROOT"; }; + B35C9A4EB69C394A0DE6E813 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + B378396CBE6EE2E85295A2DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + B387644139E3E36918C4D03A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + B38DA581048FDA139F641FB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + B3D4730C96893578BF727D5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/ogg.h"; sourceTree = "SOURCE_ROOT"; }; + B3E74096844FB5B1145A4F26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + B43C86E279C36B83F25A88D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = psy.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/psy.h"; sourceTree = "SOURCE_ROOT"; }; + B50ED6B4AE791917727F5E7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../../../../modules/juce_core/zip/zlib/inffixed.h"; sourceTree = "SOURCE_ROOT"; }; + B56ACDB21BF63DD70C738C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdinput.c"; sourceTree = "SOURCE_ROOT"; }; + B56D69C275FA7C73683BA840 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + B5887F35A912037691A7AA66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + B5E44A231B747E1759C87CD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5F5DB38E5BE6CA6306CCE74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5FB26E84ABF33A7E353A48D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6291F8983C362DED92336BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_11.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_11.h"; sourceTree = "SOURCE_ROOT"; }; + B65C1614B4755DD56161B155 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; + B6847B2CCF1B2E71712827E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_RuntimePermissions.cpp"; path = "../../../../../modules/juce_core/native/juce_android_RuntimePermissions.cpp"; sourceTree = "SOURCE_ROOT"; }; + B6C2723C17CAA6F11A7037BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + B70A7208BDC84707A08B49E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; + B7109FBBA9AA356AFCE8ABDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../../modules/juce_audio_utils/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + B714D3995796B3E1783B2B92 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + B76B019C8E9641E830C654E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTInterface.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VSTInterface.h"; sourceTree = "SOURCE_ROOT"; }; + B7E100E53E55FBBB995D1015 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + B7EF3871AADEF4B0B05827E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitmath.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitmath.c"; sourceTree = "SOURCE_ROOT"; }; + B82AF1752045C4157C0ADF1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + B8793874DA3E3A50A76F9572 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.in.h"; sourceTree = "SOURCE_ROOT"; }; + B90793CC817A7C319A3AE20C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZoneLayout.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + B94A66FB1E20E17BFC6D587D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_BluetoothMidiDevicePairingDialogue.mm"; path = "../../../../../modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm"; sourceTree = "SOURCE_ROOT"; }; + B978E5CC1180425AD149A152 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + B98F37A336955FF58F90FB4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + B9DF6AB40767C91B45834CED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA09B2615301490887929DA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA5273CC64B39B3B0455A53A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA55F9EC52073F1ECFEF5F2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + BAB1E713B8FD5FF764E93C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BAB246A896258C6FE2132717 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FFT.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_FFT.h"; sourceTree = "SOURCE_ROOT"; }; + BABBA06E9B4F5AC45082E718 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + BAE32FDF61A6886B8DA227AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_processors.cpp"; path = "../../../../../modules/juce_audio_processors/juce_audio_processors.cpp"; sourceTree = "SOURCE_ROOT"; }; + BAFE2641BD8618F8F7F65579 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; + BB206032A144BA440AF410E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC2708C1A30230F8FFED0BAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + BC5C888CE6A7A5B4562FA329 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcdctmgr.c"; sourceTree = "SOURCE_ROOT"; }; + BC6AEAE96DA5F1EE5F62BD17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; + BCAD87C5C4722BE2239A00F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + BD019AAA61CCA4A497274794 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_16.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_16.h"; sourceTree = "SOURCE_ROOT"; }; + BD1EC57A31C1A44821E79F00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + BD1F10BA3C91ABDEDA96A90A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; }; + BD369BD9E2486BB5D544D8FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_android.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_android.h"; sourceTree = "SOURCE_ROOT"; }; + BD75123529E67F9376C1899A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + BD8807162A21C44D5C816A74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + BDBADF3D55924C948F41334D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDD5A0B6F6C05C0A0ECDC78B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; }; + BDE15BB5ED83547045B075DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + BDF3FBAE1450DCFA0496D341 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + BE3AB671FE1BF4BA67F3B22E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + BED0AA415C62CB7F797E51C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + BED548AB5BFA57159DD12DAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEF0AAA4CC9BA56B412B7B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEF40C565264BB572868FF09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEFCC3E231F6729C94ED2F49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/lpc.h"; sourceTree = "SOURCE_ROOT"; }; + BF052877DCD7D8C1AA4CDF9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/md5.c"; sourceTree = "SOURCE_ROOT"; }; + BF273AD2BE0018A6EDCF2258 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + BF9B812900B12580FCD3C1C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + BFD3CE2B9C2AF98165049337 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = transupp.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.h"; sourceTree = "SOURCE_ROOT"; }; + BFE24BD62EA3F7DBFA196DF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + BFF50837A22F32388D61E4C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + C023041419CCD5A746DD3733 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + C02A07C4E5AB7D6C98CEAEFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + C050A75A3FD1ED843430646B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0794CF65E83FA413249342B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0927E071B6368B5B9BF27DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + C096E8792E18214FCE25A25C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + C11AD5554D1AADA105974F41 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnail.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp"; sourceTree = "SOURCE_ROOT"; }; + C12E3B26BAD438E71B125623 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + C1564464E7D3E100E68F78F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + C1CB3B69DCF541CF84F0A5C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = alloc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/alloc.h"; sourceTree = "SOURCE_ROOT"; }; + C208C99D56432713772B7091 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_utils.cpp"; path = "../../../../../modules/juce_audio_utils/juce_audio_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; + C225444502EBA04B63E16CE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C22DDE0CA3FD2565AC1A9641 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + C23D3AE443F3DA9E05DCF670 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + C278FC33051757FD973E4BB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = window.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h"; sourceTree = "SOURCE_ROOT"; }; + C2925B912CB7478725EC09C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2BCB8E70BEC2F88B286FDA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + C2BFF63FD5C214D4E5B993AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + C2EA3FCC07E1674AFDEA71B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3131423ADE321A9FFD64C46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + C3441E2009F936E87450A2AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; + C3729E6D46FC9FE8B8EA99E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcparam.c"; sourceTree = "SOURCE_ROOT"; }; + C44815DFC69575308E2E7DF5 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "libpng_readme.txt"; path = "../../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt"; sourceTree = "SOURCE_ROOT"; }; + C460008E91CD8C53C42CF6AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + C4703A5DB149F64AE6A30668 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + C4716E0C3BCBC857984C58A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + C4F34A9C5006FC35A551E229 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; + C50067A84435B50FAE2991A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + C53219A41027ED103B202C42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + C54776C328896DD9C63D5F14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + C55994273946370823474628 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + C57C541975044B538A4204B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; + C5A18309C2DC13A1156282F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Block.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_Block.h"; sourceTree = "SOURCE_ROOT"; }; + C5FB97556F8007E0E5849857 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; + C6D5D50888467509322BC8EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C6F13DC7541D0F00B8C8ED6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + C719A471C0AF1ACF4915590B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + C76C141618B3750168ADC0D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + C78AE90444451893D78C4E91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7A1D93A3CD65E4F1FA770F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "stream_decoder.c"; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/stream_decoder.c"; sourceTree = "SOURCE_ROOT"; }; + C80F802372BCFB07523C535D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + C8A28EF3F300FCD23130DADD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + C8BDDC0EA95699CED529FB96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + C8CDA61126AEF68721AE396B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + C92D8587F5DBAD4B1CC80406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C9BF56C284B0BE80A7C89DC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + C9C143571708C2B184BFEB12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C9EA5D0B9826A43E6CC7E88C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + CA1EF2865AA0F249D7A2646B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + CA54557D28FB9E717532A9B8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + CA5C4EA6672E46AE47A55790 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/ordinals.h"; sourceTree = "SOURCE_ROOT"; }; + CA65DB1D639849CCDABA67FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; + CA7BE1CD2A59E4A7A133207F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + CA99CDFEEEA27490079060CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + CAA47648604DE92DE3E7826B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitwriter.c"; sourceTree = "SOURCE_ROOT"; }; + CACC690868FC319352C6D605 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = trees.h; path = "../../../../../modules/juce_core/zip/zlib/trees.h"; sourceTree = "SOURCE_ROOT"; }; + CB01A5CBA8DA5DA64F79F9D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + CB0C4A25BA9D6F1AEDEF4CD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + CB3169B4A664108CEA2751DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + CB6C50C6F026F66991905EBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngmem.c"; sourceTree = "SOURCE_ROOT"; }; + CBA6A8FCB0795C89183A8E71 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + CC03ACEC4A87137E5E9C8328 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdmarker.c"; sourceTree = "SOURCE_ROOT"; }; + CC764227E00D7572D2B22354 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../../modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + CCF01620822A4A144E3C6FBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + CD2D5E669A846D3497CADFF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_blocks_basics.h"; path = "../../../../../modules/juce_blocks_basics/juce_blocks_basics.h"; sourceTree = "SOURCE_ROOT"; }; + CD9D44C2A4E6A65D62F5A2F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + CDB1484C4D6010E4D4B03C8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + CDB6AB74B48E27543C7C3247 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + CDBA14E9ED2A6DFA59B3E9F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + CDEBA4B2BB49150BFAED8665 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + CE6036ECB2716A67BEDFF215 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_TopologySource.h"; sourceTree = "SOURCE_ROOT"; }; + CE63CB470CE025B3344E6B14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE8E7EE0568DAE54277A3A75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jidctint.c"; sourceTree = "SOURCE_ROOT"; }; + CEC3F1D21215C9FC326F7970 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + CEC52ED2250DAF9085E67628 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + CEE8CFCB66ADE7E78A9B5D84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CF22F2D71CC50A6A6BE820A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; + CF56CAFD0B05918B202CC8C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + CF895906826621767E325CAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFF86D411ACF901036AA22E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFFCDE3DE85309817AA5314F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + D0029C076D0AFD4531B8C952 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D00E7D50024BC55EE60D8A1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44u.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44u.h"; sourceTree = "SOURCE_ROOT"; }; + D017DFE5509F2D4F9416210F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + D01B3D44D354E1DD105A6851 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + D01FEE0DC6C2CED2D3217198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D06661831BB0908DEBF996FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + D0C5462B25A1EF7C0BAC2C66 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + D0F8908BB4BF8D2904759E9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + D111247356C62C3698C5259A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngget.c"; sourceTree = "SOURCE_ROOT"; }; + D160D0F138D9BD23642B94E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; + D16614D13C7C9AB7565DE60F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmorecfg.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h"; sourceTree = "SOURCE_ROOT"; }; + D184EF49BA7A3F3F5545B1D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; + D19C04CE3F848A3EB30BD306 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "os_types.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/os_types.h"; sourceTree = "SOURCE_ROOT"; }; + D1B4E1CE074A1BE6DB3D9BD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + D1BC969BA323CE7CEEB34692 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + D1D6547CA0BAEB079FF9050F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + D23E61F11E9CD3EE88C300C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + D24A6466F1C7D63741B729BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + D270EFE61FCF33ABA7DD7A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + D29CE9F9A0A9ECDA97BD6672 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + D2A305BF46124317B26844C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codebook.c"; sourceTree = "SOURCE_ROOT"; }; + D3F2B4B868A0F886E10FD901 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; + D3F75448D5E30FEF546165DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + D410F13F7C6D5DEB4EC91AA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; + D4E6E686B826C386E372B9B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + D4F58BCBE5B9C7D88AC92BA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrumPadLEDProgram.cpp"; path = "../../../../../modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + D504B7AB34A2CD39CB9C856D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + D50C18AA1D31A606129E712C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/metadata.h"; sourceTree = "SOURCE_ROOT"; }; + D512265869F4FD6DBE091DD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + D54B128515F377318B34C9C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + D5542B1227D81DCFF2DFCDA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + D56C2798DB2930BA21DE5222 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + D5923C2C45B84A2771DB8125 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPENote.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.h"; sourceTree = "SOURCE_ROOT"; }; + D5AE036BF17CF6BF3B415302 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + D6303AB7ED3A815A746818DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../../../../modules/juce_core/zip/zlib/infback.c"; sourceTree = "SOURCE_ROOT"; }; + D6A1B4EF7647B82043EC5C14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pngconf.h; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngconf.h"; sourceTree = "SOURCE_ROOT"; }; + D6B40F5575A4546875FDBFCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D766274BD43DF76958D6D7A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + D778C2ED7EA9D5EDCFBA1507 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BlocksSynth.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + D7A1432A09EA76270555EBFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + D7AA51A9571EBBDACC39F434 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + D7B9697EF473A62BE6453BA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + D816E1D2FDD6252C7AAF2628 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + D8555991B456F672F132ABEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + D88385F251FF95CBF3C70657 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8B3083479A22B7344F5BAC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + D901EBE00D1E01A3702FA03D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcmaster.c"; sourceTree = "SOURCE_ROOT"; }; + D98771DCE827466B36D51AF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + D98F033805C033EF081A9696 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + D9B504A48CCEDE57288899D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_win32.h"; path = "../../../../../modules/juce_opengl/native/juce_OpenGL_win32.h"; sourceTree = "SOURCE_ROOT"; }; + D9C6F027E7A8E9FDDDAF99BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + D9D800ABA75CDD05817432E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngtrans.c"; sourceTree = "SOURCE_ROOT"; }; + D9E2B3341EC036EBCF562434 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA07E0972B6DD508A081B59E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + DA190E7F11B7C6308E764363 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + DA52F06969FC2FEFD8DCFAE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; + DAF373B4117FFAAEF7D9AA22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + DB2F2C84EE330E7B99CB91D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h"; sourceTree = "SOURCE_ROOT"; }; + DB3F1EBC07134AD21DB325DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + DB5CE4E6FE04ADB6786CF3F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + DB759FAAEF7C18AB11580C3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; }; + DB7D21EDFDD06447F1A26B93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + DBBDB335ABA05B454F030054 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + DBD9D7E0C4FB25EBBE29B36A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC032932F029EBB4B68C2A21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + DC4C0156E331164E93BF2F1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC92C4ED5AC4F39FA201F932 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + DC9D312245AA5BFA4B21AC85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + DCB43F332E243AF02D93B430 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + DCCC9B894C6F3FF9643B3D85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + DCE85E789DF463EF99F73FE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "win_utf8_io.h"; path = "../../../../../modules/juce_audio_formats/codecs/flac/win_utf8_io.h"; sourceTree = "SOURCE_ROOT"; }; + DCFCECAE8ED2C934AB68E4EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD3550A359F96E6B06AF3618 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SoundPlayer.cpp"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD3970FDCA69D2DEFBBA3E72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ControlButton.h"; path = "../../../../../modules/juce_blocks_basics/blocks/juce_ControlButton.h"; sourceTree = "SOURCE_ROOT"; }; + DD58AB0C80AB9D0B6850983D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../JuceLibraryCode/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + DDA7B0C44BB6500A8264AB08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DDCB65776F12BA2494D86229 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + DDD1AD3004D036AF9AFD5043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE005946F4FF5EB9F2B5E94F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEB5BC8C4CF7600478965F15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = md5.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h"; sourceTree = "SOURCE_ROOT"; }; + DF7567641FDF30813E7F1274 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; + DFA7F722F61CC00E65789E52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + DFBC7ECB67E1FD3C6340663B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + DFD7F405B35ECE2DC44D6939 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.h"; sourceTree = "SOURCE_ROOT"; }; + E068081DF4D036954360B4CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + E0B3C73D7F3BC93AC8164C1B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + E0FC64420488B39FFC9C25AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + E16D87CCE8D58772774CB203 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SoundPlayer.h"; path = "../../../../../modules/juce_audio_utils/players/juce_SoundPlayer.h"; sourceTree = "SOURCE_ROOT"; }; + E1714E22DFB33D06F62468F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E1CDDE683A9D3D00182334F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../JuceLibraryCode/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + E2136DE3F0428D2C85A0D086 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E270518951867873C374D756 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E276994927D3E8743E85FEF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_uncoupled.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/uncoupled/res_books_uncoupled.h"; sourceTree = "SOURCE_ROOT"; }; + E283C55B43C31CD66C6C387F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "lookup_data.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup_data.h"; sourceTree = "SOURCE_ROOT"; }; + E2AC1771328A969730B88BDA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + E2C31B4B096247BEB81029C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2C85B5C1B1B51B08231F7EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + E305CCBB5B76D319BEC9248E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../../../modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; + E30B4E0A6F8029E7AE3D52E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + E37B67AAF808FD652E3FBE23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEValue.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.h"; sourceTree = "SOURCE_ROOT"; }; + E38345D85F1CD35B62CD6456 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c"; sourceTree = "SOURCE_ROOT"; }; + E38D7CBE4043D2FE2DB2B1A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E39AB15FBBB7950C44245FC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PhysicalTopologySource.h"; path = "../../../../../modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h"; sourceTree = "SOURCE_ROOT"; }; + E3F31A84F34E8B640AB5BE80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/fixed.c"; sourceTree = "SOURCE_ROOT"; }; + E3FFC7BB4B7420DFFB0FF1F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_opengl.cpp"; path = "../../../../../modules/juce_opengl/juce_opengl.cpp"; sourceTree = "SOURCE_ROOT"; }; + E4286C9BBAAF045DA3AC521A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + E46479B62709BC51E7EADCA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + E4A7570B4EABC3BDD766D2A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V1.cpp"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp"; sourceTree = "SOURCE_ROOT"; }; + E4B9999176E0FB1175CE9568 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + E4E68F979116A9B3B7D663C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + E51D1884CE4F31EA17661097 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + E53E7B65080C5BBEF4A9D7C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + E556673D5DAC2B12EA15F47D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../JuceLibraryCode/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + E56A4F249B3DC548F3392621 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + E56F858D8C2F9C11CBD6308D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_8.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_8.h"; sourceTree = "SOURCE_ROOT"; }; + E5A413D6F34F783C7A708B49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwutil.c"; sourceTree = "SOURCE_ROOT"; }; + E60F4AAC9AEFE0400EEEF3F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; }; + E6BA394E1D41CCDEC2B0DD9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + E72062CD9EDFCAFFB63157CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7402936E5521555F7B600AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + E75A56D8BAB64170C5D38438 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + E7642142C979E15EF3CA8E38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlockModels.h"; path = "../../../../../modules/juce_blocks_basics/protocol/juce_BlockModels.h"; sourceTree = "SOURCE_ROOT"; }; + E76C940E3BEADDDA3B798D3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + E76E93F5737FE60F46B3837E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEZone.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEZone.cpp"; sourceTree = "SOURCE_ROOT"; }; + E76FD2235925C85F2D7A8550 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7F6687DE8509FCC698399FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; + E834D534CCBDCD730FCECF71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + E8598E243314304BD8163FD7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + E8B53464FF63B6F3C0E8E723 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + E8BBBB6CB566863296CC406B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + E8F80C37B88B1514B9D9F6CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserBase.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9BFBC057BDD5E694D04F68E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdhuff.c"; sourceTree = "SOURCE_ROOT"; }; + EA53D42B42EB75C773AB045B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + EA8A57933A118B68E6C8A037 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + EAA764F4599A4624B26AD06F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + EABAA3E42B432D106A18FC39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + EABE813E005E9B66B20BEF8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; }; + EADE74B222122B9F8144DF28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + EAFC617A8DEFF67E2A070D1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + EB154A70F170DDD097484FE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + EB91C5FFE88DF5CFF947669D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + EBCD4C646F6FA038CBCD1D6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + EBF38E78D19A1BCCAE6C72E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + EC6D7E09774AD0360CFDD3CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + EC9E71FB57478AB3FDA27CD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + ECA282604B5FF6065330901B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + ED7FCADD5623453DD97B43D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + ED9E41C44623B304A6079277 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Flac Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt"; sourceTree = "SOURCE_ROOT"; }; + EDCE79F26F024D16BCA0F117 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE3FF44BECDF0A701A625460 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + EE8BBEB89A13B0E1AFD5780C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + EEC8B02D39FBA83A6AE62ADA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + EFD23A341192EC2E36497814 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + EFE9FF35F95193089D2465F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + F06F1733D3BA37AA7C511933 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + F0E4E317DBB8EDC346F79C94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = trees.c; path = "../../../../../modules/juce_core/zip/zlib/trees.c"; sourceTree = "SOURCE_ROOT"; }; + F0F5158BE492B43B8FAAD1D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + F1071892476C8E78090C1B04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; + F10C844F2E574F1781D9DB99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + F17172414E68A67E86770D16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + F1955881273B81A622DAD709 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1A811BDF1FBDB3460847383 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F237FC5D87575444CC7FD318 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2544DB9D399C1102E95A867 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LittleFootCompiler.h"; path = "../../../../../modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h"; sourceTree = "SOURCE_ROOT"; }; + F2634446266E383816E9341A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_32.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_32.h"; sourceTree = "SOURCE_ROOT"; }; + F2720937BE3C1F10272A7C06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + F29CA0F119CF7DC65FCA4FFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioVisualiserComponent.h"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioVisualiserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F2D31A607BEC69FA6AD0D12E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../../../../modules/juce_core/zip/zlib/inftrees.c"; sourceTree = "SOURCE_ROOT"; }; + F2D9015FC6DBA12DE9609EAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2DA6D598D3890961AAC73EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; + F306B08E4CCAD1A06EC0DB0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F335FA2C942CF9486223CFA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; path = "../../../../../modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3AD07BBECD1E70E5F3F40BD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + F42D141B9A70BB0273407B0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F464C4862C4DFD5774559248 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiser.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + F4F73FB2DAAB17430685537F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F53468A982DEED777591816F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; + F56396DCA982B63F2DA78471 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + F572E47156DAA8EEBE746390 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + F5A099B54BDAB42FF8D77144 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5B3C9D2B068F9ADFA8C653C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + F5D2EE7EA410E9A78BF68285 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + F6133ABCAB3AC137D60D3D2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = misc.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h"; sourceTree = "SOURCE_ROOT"; }; + F641DDA93FDEF2450E56A606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + F69AED9FEB4B4E8B9457BA1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + F6E7A4BF54C27C60056270F0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdapimin.c"; sourceTree = "SOURCE_ROOT"; }; + F70DB3B3FBB0AB2575A13FD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + F77076F73232546CC0DA097C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; + F7D345B0E22C7AB91FFF9CD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jerror.c"; sourceTree = "SOURCE_ROOT"; }; + F825D1E04D1E079A6B4BA3F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F837F14CCAD905678B2EB5A1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + F86455FC80F2DF1C12D28BFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9450711CCBD8FCDEA9E95F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + F97BD4908447C154ADAEB982 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA3537F978DC20BC51975AF4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FA7463364B17FAF275702078 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../../../../modules/juce_core/zip/zlib/adler32.c"; sourceTree = "SOURCE_ROOT"; }; + FA91B86E9778655B50D0814C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAF3E26F1BBFA85CA8B333E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB44F62FA6C5FA2DFB1B2142 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + FB558727D4E53558D3F72AE0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB76ED4506F6CB6BC0FA0D50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + FB7CEAF8DF0A4447F1BD2DCC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = "../../../../../modules/juce_core/zip/zlib/zconf.h"; sourceTree = "SOURCE_ROOT"; }; + FBC1679B39F569C014570698 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + FBD3C4CF5151FE82BA05D486 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrtran.c"; sourceTree = "SOURCE_ROOT"; }; + FCD28EC20E234A418F03AB9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD05664C4D9E513C74BFBD73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + FD2F08645DF014C0F3110942 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FD6A23DA53BC48A5D01DCAAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + FD6A2554500AE9E8F340812C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; + FD78DF16D8490E3FF7EF761F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + FDAC3E164BA3FCB909B9F2BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = "../../../../../modules/juce_core/zip/zlib/crc32.h"; sourceTree = "SOURCE_ROOT"; }; + FDB547DFBE187A379D96760B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_extra.cpp"; path = "../../../../../modules/juce_gui_extra/juce_gui_extra.cpp"; sourceTree = "SOURCE_ROOT"; }; + FDF345AF086264E4040A79CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + FE376580AD9D099778977CBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = float.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/float.c"; sourceTree = "SOURCE_ROOT"; }; + FE6B0EBC824D1E924DB2406B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + FE81D4D343853571BF409685 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + FF988FAEBE5F808EE1BB9F4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlexBox.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_FlexBox.h"; sourceTree = "SOURCE_ROOT"; }; + FF9B172146D046D10BC0E7E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FF9CD52F808B7C91AD25CF71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + FFC5E68D2033592D6896B282 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FFF9520F524FED8D3468287F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23FE51CE68990B49B3B4AABD = {isa = PBXGroup; children = ( + 1A544EA5E8AC999D7F681DDE, + 14CD2D0EE13A7D3289EBBC86, ); name = Audio; sourceTree = ""; }; + 6FBEB977137848BF3903034E = {isa = PBXGroup; children = ( + 23FE51CE68990B49B3B4AABD, + D98771DCE827466B36D51AF8, + 1AE75CB0FA61A03429A4E540, + 831D05658D06983B575A395C, ); name = Source; sourceTree = ""; }; + 38998921858495104F35872D = {isa = PBXGroup; children = ( + 6FBEB977137848BF3903034E, ); name = BlocksSynth; sourceTree = ""; }; + 093A7AEDD681B83D66FC731D = {isa = PBXGroup; children = ( + E51D1884CE4F31EA17661097, + 3D8ED3F6C1407C572BBEC652, + 408CD5BDE5207D96C2DC6F0B, + CA1EF2865AA0F249D7A2646B, + DC032932F029EBB4B68C2A21, + E72062CD9EDFCAFFB63157CB, + B65C1614B4755DD56161B155, ); name = buffers; sourceTree = ""; }; + 453B13CE4731731449976196 = {isa = PBXGroup; children = ( + 93704EAD7D73562297F10C7B, + 33B297800F96D1E644E085B6, + 8A3EF0C45AE28C847B7BB89E, + A00E9DF1CB3DB09C81B31D98, + BAB246A896258C6FE2132717, + 298DDF49756F536B50469375, + AD95DCF6FDF31C1C53422FA4, + CB0C4A25BA9D6F1AEDEF4CD3, + AB4B277C8F975F009F31753A, + 40AFF57E82F006FB59D0BB29, + 720BE46FF929B0A8D37DBB05, ); name = effects; sourceTree = ""; }; + 9F8DE539E9189F8A8BC181FD = {isa = PBXGroup; children = ( + 12ACF9469751D8A6D9D90E53, + 52B7F9D0AC8BF316E96E480A, + 84BE02BFDAF53B9697664253, + 65977552E1C7B054FE006EAB, + 854C4EBBB0954052ACF55160, + 5D4BE633D03013E33B4B376D, + 88587028FF53FA6CFA0D4887, + 38BF78CAB1ABA56E87C5F438, + A7AB12DC3DB28027A4F73022, + D23E61F11E9CD3EE88C300C5, + E7F6687DE8509FCC698399FC, + 90A6E39FA0169E7EE1E66FA7, ); name = midi; sourceTree = ""; }; + 2872F62BFCDB4181EB1E46C3 = {isa = PBXGroup; children = ( + C4716E0C3BCBC857984C58A5, + 89C83AC387C203CF1105C951, + 1BF2C3AD8A498D0D55F22623, + BDD5A0B6F6C05C0A0ECDC78B, + 13B6344205397F546400A40B, + D5923C2C45B84A2771DB8125, + F464C4862C4DFD5774559248, + 514E168C6138BEC0DC0D31BB, + E8F80C37B88B1514B9D9F6CD, + 4C3567E01529EB4730FACB2C, + 2DF02AFF10879E3FE2BBF776, + 40297764149FD52F1B1B8FF0, + 74040BA20DE2E305AE2D0480, + E37B67AAF808FD652E3FBE23, + E76E93F5737FE60F46B3837E, + B1B7933CA5A0B7F38A94F728, + B90793CC817A7C319A3AE20C, + 8221B5162E280BE9AB2619CD, ); name = mpe; sourceTree = ""; }; + 18BE705CB0BE08716FC46C14 = {isa = PBXGroup; children = ( + B08A348CEAB267336BEE6404, + 711C1E768B2C7DB6946D1703, + 93B87F458F1F33BFD30539FD, + DFBC7ECB67E1FD3C6340663B, + B0D2EB2CCE9410392733E088, + D88385F251FF95CBF3C70657, + C76C141618B3750168ADC0D1, + D8B3083479A22B7344F5BAC6, + 02A336F8CDC439485DC73DD0, + 596AE59CDCCBE4D8E7D27954, + C9EA5D0B9826A43E6CC7E88C, + 57A1B82612ACD48D50CDFB42, + E4286C9BBAAF045DA3AC521A, + 6C4EE337B0005F5CB6650264, + 84182A25498E78D5DEF6E925, + 856D6984E668878C082F6CE8, ); name = sources; sourceTree = ""; }; + 56AB427B045E77338B2EECD6 = {isa = PBXGroup; children = ( + 7578F0E1F643412976B603E9, + 2CDD1AD17D9E9316BC26501D, ); name = synthesisers; sourceTree = ""; }; + 404BFEA464246C3581AFCF47 = {isa = PBXGroup; children = ( + 093A7AEDD681B83D66FC731D, + 453B13CE4731731449976196, + 9F8DE539E9189F8A8BC181FD, + 2872F62BFCDB4181EB1E46C3, + 18BE705CB0BE08716FC46C14, + 56AB427B045E77338B2EECD6, + 79741977D90F18EC3D8BAE35, + 05201B7662BC062EA0347E8E, + 905BDA536A972F6FC36B356F, + 05201B7662BC062EA0347E8E, ); name = "juce_audio_basics"; sourceTree = ""; }; + 54F4B4E27F443E821ADD4F3B = {isa = PBXGroup; children = ( + 23DBE20DA60F90ACDEC5A24A, + 769EC065E9455C2DFECD2CCA, + 5737072AA0D7763823260699, + 160EA3FBA3A8D5CD53C381F5, + BD1EC57A31C1A44821E79F00, + 8FC4E1BB74B356F0099608B9, + 18F92B6A8369D0F1A9B6705F, ); name = "audio_io"; sourceTree = ""; }; + 7F2DD2D15FC2FB09957FB5E0 = {isa = PBXGroup; children = ( + E75A56D8BAB64170C5D38438, + 852CE105B166A48264750790, + 7F9265BF55E77A3F1FE16D6A, + BB206032A144BA440AF410E1, + 7806B0B64D514AC448AD6E0F, ); name = "midi_io"; sourceTree = ""; }; + 2FAC8B0260F96E4D3115116A = {isa = PBXGroup; children = ( + A909FAC6633F0D17F297405A, + 22C6FFBE9D2206A13A30D71F, + 8E8EB4F5ADDC2D5B024F0F0F, + 0EECE5A38949D03C48FA6727, + 173848000A992F19AC7AE30C, + 90092F1E5EBA0AA6057FBE6A, + 51DBB2E2806E132D175C2597, + D1BC969BA323CE7CEEB34692, + 1ACC1653C65505E7AC29FB74, + A9FB36572DDA1194317B9352, + DC4C0156E331164E93BF2F1B, + 07B3D9344EFFDC5DFE383519, + 250D5D5989533ADFB25306EC, + 66A50CF3EB078EE4D9F4456D, ); name = native; sourceTree = ""; }; + AE3AD44B4637C7B1E2E5E9D5 = {isa = PBXGroup; children = ( + E38D7CBE4043D2FE2DB2B1A0, + 75A2F39B22AC60256D2115D4, + FAF3E26F1BBFA85CA8B333E5, + 396FCA5D9FAE5297B70B2655, ); name = sources; sourceTree = ""; }; + 90D9DDA0B7937A5B2ED77F30 = {isa = PBXGroup; children = ( + 54F4B4E27F443E821ADD4F3B, + 7F2DD2D15FC2FB09957FB5E0, + 2FAC8B0260F96E4D3115116A, + AE3AD44B4637C7B1E2E5E9D5, + 6FC3D011A099091610A803A3, + 1418A6F2476A59D58CB4D5A6, + 919078E0ACA29DBAEFAEDB97, + 1418A6F2476A59D58CB4D5A6, ); name = "juce_audio_devices"; sourceTree = ""; }; + DAB6BE35181959435594FFD3 = {isa = PBXGroup; children = ( + 31DBD439C2A41A1CC472D924, + 584414FE3F035198BBE28413, + 72E27E0C9F64F1BACD6EF454, + 982342A0B98DB337C74DC50A, + 8AFFB60B20E17B797777B2B8, + DA52F06969FC2FEFD8DCFAE3, + 936C85C333BE640A26BEA92B, + A32C77F35CC0A61153BDD2BD, + 0AA288FCCF1342C4947F5FD6, + BEFCC3E231F6729C94ED2F49, + DEB5BC8C4CF7600478965F15, + B019A04354A3A377813C4F10, + ACE53253C4EF7A3B45197F94, + 8A48EB23ED8F364CF167DF1D, + 83AFB3E647BB6ED40AA571A8, + 188EAA1BD57F1209B23F6903, ); name = private; sourceTree = ""; }; + E3100ECB6D7064558B06ADFE = {isa = PBXGroup; children = ( + 1469F0FEBE09579AE2256553, + 5A19BDE20FB81C83D0A03799, + C57C541975044B538A4204B4, ); name = protected; sourceTree = ""; }; + F69691A4E1C622CB74BACAFA = {isa = PBXGroup; children = ( + DAB6BE35181959435594FFD3, + E3100ECB6D7064558B06ADFE, ); name = include; sourceTree = ""; }; + 60614F6E93F279F8BD12C504 = {isa = PBXGroup; children = ( + F69691A4E1C622CB74BACAFA, + B7EF3871AADEF4B0B05827E5, + 4CA1F3B93913EA346771DFAA, + CAA47648604DE92DE3E7826B, + 156A9CB51E86FFCA164A77F2, + 1F0A802DF7D1C7F69E32CF10, + E3F31A84F34E8B640AB5BE80, + FE376580AD9D099778977CBB, + 4D3CB4D0542A042B8C210E31, + 03130BDC25B905B277B0B227, + BF052877DCD7D8C1AA4CDF9F, + 6107414E2EBFD835DB9235E3, + C7A1D93A3CD65E4F1FA770F2, + 84FD4873C8F91A307D95563B, + A844CEB6720112AAAE4BDABD, + 942341A54DBA7FD0D9AD19DF, ); name = libFLAC; sourceTree = ""; }; + 366F782486E4200762978002 = {isa = PBXGroup; children = ( + 60614F6E93F279F8BD12C504, + 9159BC49F78C18D4ABBAA16A, + C1CB3B69DCF541CF84F0A5C1, + 093EAF4BA57F6552E2C377B8, + 61C2BDE6AF13FDD7F7CFB20F, + 25F6B5BC25A7AFBA774E718C, + 68C6E67D53E770D9165DFB36, + 7127835E262D977E179ABA27, + ED9E41C44623B304A6079277, + 4ACC5E02BDD5C78A53E2522B, + D50C18AA1D31A606129E712C, + CA5C4EA6672E46AE47A55790, + 7E3C266A9195C927EDA3D45B, + 75E083FA4A0BAB99229F23EB, + DCE85E789DF463EF99F73FE0, ); name = flac; sourceTree = ""; }; + 74989612E8D2BDBE1BF17A4A = {isa = PBXGroup; children = ( + 0EDF75F8D489F87A668EA9D5, + F77076F73232546CC0DA097C, ); name = coupled; sourceTree = ""; }; + 2FE9DE53F5D76DADC3CC0E2D = {isa = PBXGroup; children = ( + 543DC3C0F6530C99ECA63A9A, ); name = floor; sourceTree = ""; }; + 0267817D9651ABB317E33C79 = {isa = PBXGroup; children = ( + E276994927D3E8743E85FEF0, ); name = uncoupled; sourceTree = ""; }; + B9E0B6DA3094EEFCFA408C83 = {isa = PBXGroup; children = ( + 74989612E8D2BDBE1BF17A4A, + 2FE9DE53F5D76DADC3CC0E2D, + 0267817D9651ABB317E33C79, ); name = books; sourceTree = ""; }; + 3EFC68CF20814573E989B57A = {isa = PBXGroup; children = ( + 6C5369F8D2216549004C2A0E, + 67836F067567900AD54826E5, + B6291F8983C362DED92336BE, + 1F2D0A04F7D20953AAD00785, + 1E732CABBE64BE6C4FD80795, + E56F858D8C2F9C11CBD6308D, + BD019AAA61CCA4A497274794, + 930BD2067E0A3FC1B0812211, + 674C83936EDD53D1D3C70AC1, + D00E7D50024BC55EE60D8A1B, + 82C32D94FAED75BF1FBB3FCB, + 44F79CEE556BD28E515BA71B, + B16D0231583843F5782F2FF1, + 686B051DB68F5583A3DE1C31, + F2634446266E383816E9341A, + 8503FD83B959A39D75548438, + 0E8C76CFF33AC2608DE25A16, + 3A78A59E802951A187248BD6, + 6FE31511DFE124B4DBE13958, ); name = modes; sourceTree = ""; }; + 24E373FDAD31DE2E15DFD3D2 = {isa = PBXGroup; children = ( + B9E0B6DA3094EEFCFA408C83, + 3EFC68CF20814573E989B57A, + 69DCAD4B37C6DFC393CAE941, + ADC432227AFFB91565728B20, + 50A01BFE69012A08EAAA5EF1, + 6CFE9428C509216C6B6E691E, + 99A9A70A22EC3C598F623111, + D2A305BF46124317B26844C3, + 43D4608C71521337A1E62CBF, + 685892F6AF56A2B6442C0BA2, + 18D12ABCC228BF8EB5D22ACC, + 812F5FE9CE244FFDCFA5F7D7, + B70A7208BDC84707A08B49E3, + 881A4A50718FA7CE3F3E5375, + A19C3A3A74428A4C8EF44EBF, + 4E7C1B9669C78323F39F66BA, + 56C47E673A21A919A36BA737, + 09A20E48B6DDCF89C3BA52B5, + E283C55B43C31CD66C6C387F, + 4083423AC8967EC85128335F, + 2B2AB245E134CDF5515EB130, + 7C32EA6B5A32E29B31FE6FFA, + 5C1AF59B9E0F831176669ED8, + 65D2779D3783A6B0DB9DD7C1, + 17A9AAC14945D24CB26659AD, + 3B740130AAA2019AE049C85B, + 174DCEEB1F0A9CC69F671E41, + F6133ABCAB3AC137D60D3D2F, + B34A138110D01A3CA9CB727D, + 8BD079BB7D801C6E67873BA1, + B43C86E279C36B83F25A88D0, + A65DFC4FCE8DD0EAA2901FF4, + 6FF35BA648B2B034130B0BF0, + 7A31D46D227370A23021E676, + 660DC5473197813B4E38CC4D, + 60CB8017B900A02E7C7C1667, + 100E8BF90F31D1E045AF1755, + 7F13C06AE22B799467575AB5, + 8CDDF045B2A202FCA5DFD932, + 0CABBB44D28EDBD36D8E4B87, + AA89E7B373C7733F3F5646F1, + 39F2D7F60BCE45E9BEF6D2D5, + C278FC33051757FD973E4BB6, ); name = lib; sourceTree = ""; }; + 4ED61D2C520A402C8D302C3D = {isa = PBXGroup; children = ( + 24E373FDAD31DE2E15DFD3D2, ); name = "libvorbis-1.3.2"; sourceTree = ""; }; + 8A58297D0379A4A41A945917 = {isa = PBXGroup; children = ( + 4ED61D2C520A402C8D302C3D, + F1071892476C8E78090C1B04, + 8FBD6AD2AA7111D2BE5D52AD, + 4EE92E0A9A6A3FED53DEF136, + 37D3F9ADA06E46941FFC1532, + 818EFDD3442FFD396956B865, + B3D4730C96893578BF727D5A, + D19C04CE3F848A3EB30BD306, + 613FE7EF2A3A4359633BA85E, + 2724A39A33300FFBF89A4EAF, ); name = oggvorbis; sourceTree = ""; }; + E3649F203633856653E44CDF = {isa = PBXGroup; children = ( + 366F782486E4200762978002, + 8A58297D0379A4A41A945917, + 481A69F80148E9DCC2B4A067, + B194372F45854DE5FC54671F, + 97AE93FD5FB144697DBFE207, + B0A1C61E0EBC451CB0B3A337, + 46A4ED1AED4B90701C9FA937, + C02A07C4E5AB7D6C98CEAEFA, + 6D31C33C6C7BDB06D0BCCA99, + 1358B9554210B5D0242C1BA3, + 204D1CE3691490B81EB8C284, + 01E8CC333D1A9910A72DF28D, + 769D6EB9D30812CE68C829C8, + A693A2B27BD70EAF2FDCDD91, + 9D68ED5474F6AA923599D783, + 4FFAFAC9B332F9B993A6EBB6, + 4D8C7E04C4FD97998300FDE6, + 379589FC32E87B31496C96B7, + F2720937BE3C1F10272A7C06, + ED7FCADD5623453DD97B43D8, ); name = codecs; sourceTree = ""; }; + EF78B4527B53E228CF764D4C = {isa = PBXGroup; children = ( + 116D8F769D93B11A66D4F7E4, + 771B35D7F44BB8C0DFDE2452, + 0DF05CB01EC7CAE5299DCB5E, + DA190E7F11B7C6308E764363, + 8CB84F9ACB8B17117E5FE0C4, + D1B4E1CE074A1BE6DB3D9BD5, + F9450711CCBD8FCDEA9E95F7, + 001CEF1BC67328BA0A561A06, + 223EDE843FE5CF77DCEEA76F, + 91EBFF0D72C95AA186003C8E, + 16457C02C3262323921CA12E, + 55E36D80A91694865B7CE332, + 49424899DC52549DE819C621, + 0D9243B5198B9D61504F7ED5, + 397717356F43CD103B169AF1, ); name = format; sourceTree = ""; }; + E130859390EF4D3D47AEB9E1 = {isa = PBXGroup; children = ( + 74F32D6CE88116DDAD104001, + 1F7097A7E2FD1CFD992160A3, ); name = sampler; sourceTree = ""; }; + 594F462315832D34803DA5F6 = {isa = PBXGroup; children = ( + E3649F203633856653E44CDF, + EF78B4527B53E228CF764D4C, + E130859390EF4D3D47AEB9E1, + 7609EEEACF06B6ABC9B0AD6C, + 96C5E46FAC93C462A7EBF4DF, + BED0AA415C62CB7F797E51C4, + 96C5E46FAC93C462A7EBF4DF, ); name = "juce_audio_formats"; sourceTree = ""; }; + 39D3CF2F7938EC4BE064E104 = {isa = PBXGroup; children = ( + DCB43F332E243AF02D93B430, + 72330895D5682846F3A52223, + 1030640E8440F02E9F19CD2B, + 1C89625695166D8B4FC54C90, ); name = format; sourceTree = ""; }; + 607E8F3D7296D541A4CE3FF9 = {isa = PBXGroup; children = ( + 8DA77A4F70C03CE81EC8ACAD, + A13820B7BFD6AF837A2E6C57, + 2F5AD1DB8E7F13A21CA462D1, + C0927E071B6368B5B9BF27DC, + 62DE47E4B2EC3BAEECC8D198, + F53468A982DEED777591816F, + 80E4915CE095F2D92F311C02, + B3E74096844FB5B1145A4F26, + 65D7CA579D9704B795D9F6D5, + 9C236720F87AB53B983968B9, + B76B019C8E9641E830C654E9, + 5FB26A689F97B61284059C55, + 7E2295EBF292A71D44A8F638, + 6E3C4FF98005E3A56700D483, ); name = "format_types"; sourceTree = ""; }; + 6B3AC756F17ECF02FB8D36B0 = {isa = PBXGroup; children = ( + 1B1343A9DC0E656198B69B82, + 04DB9A00796D0BCF472F4ED7, + 4C2F138D50A040E9CB6E901B, + 884D100B3B1AFA24F697670B, + E834D534CCBDCD730FCECF71, + D017DFE5509F2D4F9416210F, + A95B8CA1945CF9A8565C423F, + B6C2723C17CAA6F11A7037BA, + C55994273946370823474628, + F2DA6D598D3890961AAC73EA, + 2F59CDC2CDF48A14E047F62C, + 93A79C572AAFAA95F17A2548, + 627432C87D828B863D9496AD, + 287802E2B7AE2D2F962B7D07, ); name = processors; sourceTree = ""; }; + F99F22B64CECD11018E33744 = {isa = PBXGroup; children = ( + 9CABAAB05C27919CF1D26D0E, + 0464E2958DB999F27CE02A05, + 9619CAAC1844127539A434C5, + D29CE9F9A0A9ECDA97BD6672, + F825D1E04D1E079A6B4BA3F6, + E2136DE3F0428D2C85A0D086, ); name = scanning; sourceTree = ""; }; + D7D2D588DCF335D6D78BE7AB = {isa = PBXGroup; children = ( + DF7567641FDF30813E7F1274, + C3441E2009F936E87450A2AD, + D160D0F138D9BD23642B94E8, + B16ED2FDF63691EBF724BE7C, + F1955881273B81A622DAD709, + 96B923167B37C9C228C9E4B8, + 98248643528AA2985CA7C657, + C4F34A9C5006FC35A551E229, ); name = utilities; sourceTree = ""; }; + 63D380A7E6D7B2AE12F73D59 = {isa = PBXGroup; children = ( + 39D3CF2F7938EC4BE064E104, + 607E8F3D7296D541A4CE3FF9, + 6B3AC756F17ECF02FB8D36B0, + F99F22B64CECD11018E33744, + D7D2D588DCF335D6D78BE7AB, + BAE32FDF61A6886B8DA227AF, + 1D68A8CBC08DA143889B10A8, + 1A10133EE03E0BADFFDBDF3E, + 1D68A8CBC08DA143889B10A8, ); name = "juce_audio_processors"; sourceTree = ""; }; + 3317BD38FB78B0B3127153EF = {isa = PBXGroup; children = ( + B7109FBBA9AA356AFCE8ABDE, + A7B9FCBCD699D5D69178412E, + 68E98AD88691547A6D7C674E, ); name = "audio_cd"; sourceTree = ""; }; + 13433EB2F3F2A057708F16C7 = {isa = PBXGroup; children = ( + 576F1C585F1F6A618B23BDD2, + A0EE4B43B6C9D6E38527BCE6, + F4F73FB2DAAB17430685537F, + C6D5D50888467509322BC8EE, + C11AD5554D1AADA105974F41, + 9C16ACB286837989E5380B6A, + 83FAEBCF478836A81887DBDD, + 9F4D55451C7742F3B4828F97, + 219D180F89964DDE7AC126F1, + 36071D4BA204F795714F93D5, + F29CA0F119CF7DC65FCA4FFD, + A18168B9063A9605B68FD197, + 5B9B8D944DFA78FF1203EEC7, + 12BA74B2CDC0FCB813E8325C, ); name = gui; sourceTree = ""; }; + 5309CEB94AD5DDBDAFAEF39C = {isa = PBXGroup; children = ( + 0D338CDA65D6421601AD96F7, + 96A92A30161434408958DBE4, + C460008E91CD8C53C42CF6AB, + F335FA2C942CF9486223CFA0, + 11DF8683332B9FD586EB5F31, + 8D2CB3EBCA42093713991A64, + B94A66FB1E20E17BFC6D587D, + AFE07A4C5A0309E9D1933320, + F10C844F2E574F1781D9DB99, + F237FC5D87575444CC7FD318, ); name = native; sourceTree = ""; }; + C409C67AACD70868E956F339 = {isa = PBXGroup; children = ( + 8FD66AA4A824CFB66BCB8660, + C2BCB8E70BEC2F88B286FDA8, + DD3550A359F96E6B06AF3618, + E16D87CCE8D58772774CB203, ); name = players; sourceTree = ""; }; + 2D543E37FF6A804E98D45CC0 = {isa = PBXGroup; children = ( + 3317BD38FB78B0B3127153EF, + 13433EB2F3F2A057708F16C7, + 5309CEB94AD5DDBDAFAEF39C, + C409C67AACD70868E956F339, + C208C99D56432713772B7091, + 407FC6EC1D6396DEB581D217, + 5CE665392C6A2CB24B5AFEB9, + 407FC6EC1D6396DEB581D217, ); name = "juce_audio_utils"; sourceTree = ""; }; + 94FF97995070201943DECACA = {isa = PBXGroup; children = ( + 780ED77A4BF65BA1F5E61F95, + C5A18309C2DC13A1156282F6, + DD3970FDCA69D2DEFBBA3E72, + 81ADF2BEFA99AD3AB0FC9A82, + 8AB24BF1D27B394712F32CBF, + 5B14C9DFF557CC6B9A05E34D, + 50E9D72AF3E2F4CCDC6E7767, + A416B5CD799D7BDABF8FEE69, ); name = blocks; sourceTree = ""; }; + 659FF40903B6F0B096F059FF = {isa = PBXGroup; children = ( + F2544DB9D399C1102E95A867, + AF6E053345A73531F9DE19FA, + A7102BD74E049F7ED8513D1B, + 3C3A319FB7E247A39036FB7A, ); name = littlefoot; sourceTree = ""; }; + 6E032060C5DDE5C3C3D2D844 = {isa = PBXGroup; children = ( + 595CFE4CA3DAE79C08D9C7C7, + E7642142C979E15EF3CA8E38, + A7A27C3E995A0A0CAF75F018, + 30CC24B13FEBDDB188320191, + B1DDA423E55EA93290F02213, + 80BBC5D053419503A600F7D5, ); name = protocol; sourceTree = ""; }; + AD032E6784D805C3AEA123E6 = {isa = PBXGroup; children = ( + 83A8F8A11B1659400C525E81, + E39AB15FBBB7950C44245FC6, + 36C6D8EECCE8A8A9E21D3895, + 234C53C2D7D7559F63E77597, + 778E2234490F20FEC78AE06E, + CE6036ECB2716A67BEDFF215, ); name = topology; sourceTree = ""; }; + 4A4AFBC9552F022B065AF812 = {isa = PBXGroup; children = ( + 331EE1B47BD07B07DFAAE89E, + 225B313A9BC57AB15CC508F3, + D4F58BCBE5B9C7D88AC92BA4, + 1177C66130BC8F6B57308A18, ); name = visualisers; sourceTree = ""; }; + 4EA50957218B9A0F396DB28D = {isa = PBXGroup; children = ( + 94FF97995070201943DECACA, + 659FF40903B6F0B096F059FF, + 6E032060C5DDE5C3C3D2D844, + AD032E6784D805C3AEA123E6, + 4A4AFBC9552F022B065AF812, + 211D0DA102619F3D2048A741, + CD2D5E669A846D3497CADFF5, + 014DEEB53672D7474B219518, + CD2D5E669A846D3497CADFF5, ); name = "juce_blocks_basics"; sourceTree = ""; }; + 989C3BDC492942642C24282E = {isa = PBXGroup; children = ( + 44FCA467ADE97D1E2B2A49A1, + 35EA9261CEA2AD1A800B702C, + A76BBF30944A9FC89679BE5E, + D3F75448D5E30FEF546165DF, + 8232BE31BA3CA0AE677EC11D, + 8BE67E7D6CE3A17E2E120520, + 5B48244E76313E054EFEF426, + 8CCE915477416067D7B0F311, + 08E918530A1D5F37DC05B5DD, + FD78DF16D8490E3FF7EF761F, + 83123049240352B97AEC1FBE, + D06661831BB0908DEBF996FD, + 22B870C829CEA56B78D8EDFA, + 546AE298612DB93D5C336C70, + 2E8F5CD0CF6A9F42FF864B9D, + 7A5719ACD9A5B0D2663B2EB4, + 735D98A7029754C4EEC30638, + 361070599D3204D0C42F7A22, + 5259900DBEADF9B1E596D6CE, + 3F24711E8D4D2065EA8C372F, + EBCD4C646F6FA038CBCD1D6F, + AE7CE5DD4695049CE940B119, ); name = containers; sourceTree = ""; }; + 7F42CBA4D84F5AAA394B131B = {isa = PBXGroup; children = ( + 29019D28852F4BA5CC9C303A, + 94123CD59BFDC04A9DFCB71B, + 21E4F85AFE03A986C667AC7F, + A9D2C3EEB94596DD2B772434, + 993A042E02F2CE3ABC485FC1, + 8BC3502A774FCDC44C015866, + 110E2D4DFEF9D028905A9127, + 58AEC1D427BCFE3609BCD90A, + 7BBCCF2C183BCF08FA446ABB, + E56A4F249B3DC548F3392621, + DBBDB335ABA05B454F030054, + A406981AEDB8C64F3F1000ED, + 4556D874FD9CF3D1DCE3DF36, + C2925B912CB7478725EC09C0, + 26F41B7D9404B50D9FE40C5E, + BFE24BD62EA3F7DBFA196DF7, + CC764227E00D7572D2B22354, ); name = files; sourceTree = ""; }; + 4DA608349B8E06A40C2B3610 = {isa = PBXGroup; children = ( + 4EAAD4EB24BA19D7B7CC1EBB, + DB759FAAEF7C18AB11580C3C, + C2BFF63FD5C214D4E5B993AE, + B210D9151B74DC5875B5F9F5, ); name = javascript; sourceTree = ""; }; + 8A82CE1314A80CA4B9001732 = {isa = PBXGroup; children = ( + 5C8F1A64FF9B42D0D2BED7FE, + B0B4567F125815CE3D5F97B0, + BA55F9EC52073F1ECFEF5F2D, + B19D56F3E441EB2B1A84C41A, ); name = logging; sourceTree = ""; }; + 8AEB618AFC1B1D81D447F930 = {isa = PBXGroup; children = ( + FE6B0EBC824D1E924DB2406B, + 820AEA62B5F877385A1B482D, + 97BAAC4F048477A639E48B3F, + CEC3F1D21215C9FC326F7970, + 9BC9AD541C62AF0DD2BC11D5, + E60F4AAC9AEFE0400EEEF3F0, + ADF718CBF6842DD6FC15CF71, + 9D95253B677F8E6E916D4C41, + 43FA1C85CEEE8976874CDE5D, + 3863C9397ED9E2DC7C26E98F, ); name = maths; sourceTree = ""; }; + 92948EE426E4BF8860C245B5 = {isa = PBXGroup; children = ( + 0EEC4F43BAD1FD5DD3503BAF, + 5558831C1B9AE2F59258290A, + D410F13F7C6D5DEB4EC91AA6, + 52E468B373041BD029A57DA9, + 045387853469E755B6DD741C, + 05D530D67D2893ADAD43AA46, + 01D383BCF77D7704F896259D, + 9AAD4E5C83FE06AA1C471DCB, + A9833EF4FF3863198A01845F, + 99D62156E5F03AEEF0F367BE, + 34232FF8256F5BA2E80D6C83, + 05C5166291508D65E4DE1C7F, + B0792237EC36D9F9D8D94380, + 6F0D14BB0BF350DD7664CFE7, ); name = memory; sourceTree = ""; }; + E25778D3DF758B321155435A = {isa = PBXGroup; children = ( + 987209E1994B07DBD16DEC8B, + F5B3C9D2B068F9ADFA8C653C, + 334F7A39BD0DA475F23052A1, + 029B264C757780A8CD505C1E, + 2C4A133B427E627877FF8CE9, + BD75123529E67F9376C1899A, + DDCB65776F12BA2494D86229, ); name = misc; sourceTree = ""; }; + 9BEBBB02AD13A7EEF3C86DF3 = {isa = PBXGroup; children = ( + 4B83FCEFA91AFCB06756FC71, + C719A471C0AF1ACF4915590B, + 23DC0CBBB4C6D6084EE19F93, + 01D74B926C822FA65B778B9A, + B6847B2CCF1B2E71712827E5, + B2F323A2CF9DBDE87094A12C, + 58DBADC28510520AE1E6E069, + D98F033805C033EF081A9696, + 23090584DEA1282747CE4769, + 317A1C3C47E0CFD28F629EE3, + 4CCBED88413D14521B8B840E, + C4703A5DB149F64AE6A30668, + 2C34101EF32AC5EA4030FDAD, + BA5273CC64B39B3B0455A53A, + A235D66B34BD50E939FF885D, + 1BCEE2EA9EFF8FD8078F15A5, + 0F5134388D55D439AA3B66B8, + 9C331AACD288AAD9F7FDF881, + 073C36AC9C06770D84781B70, + 71A349845B0AB4ECB6FB56AB, + 3EDA16959191726A83FAF8B3, + 1A9A02020BE1CA5BBD29B437, + C1564464E7D3E100E68F78F3, + D01B3D44D354E1DD105A6851, + 8CAF15744CF73CDE5C577AB3, + 96B1C4A89CB5A5423A116F84, + 79C0162E66B96342B5135E1F, + F2D9015FC6DBA12DE9609EAA, + 513984F548890D187E1A5683, ); name = native; sourceTree = ""; }; + 170195FA23226C76E16320A1 = {isa = PBXGroup; children = ( + D7AA51A9571EBBDACC39F434, + 0A99DEEFD614DE832C7EF6BB, + 3BEAA229D9D403CBE51C6670, + B5887F35A912037691A7AA66, + E6BA394E1D41CCDEC2B0DD9B, + 13F2E257D9546C430FAD9DD5, + A546C8B742A8DC8F5E60C606, + 2E6C4EDE0CDE7BCC288D464B, + 3A43AB7B49441ABD392D105D, + 224EC8865F2F99C2F1E4361D, + 01B1D517AD162A5026608299, + 61FABA233363E41B6172EEA2, ); name = network; sourceTree = ""; }; + E91966262A1070E1B59F692C = {isa = PBXGroup; children = ( + 1EB32F020771FAC988EA1E64, + 7E391A85858C06D5F6286DE1, + 7A252E1B8C10CF47B083732B, + 256BCED752B70974C8DBB789, + 7C5ACCC90B3367A29598171C, + D9E2B3341EC036EBCF562434, + 67BBC05B8A0FA71F2A325422, + EC9E71FB57478AB3FDA27CD4, + 016076F4D43D15D063A73530, + 6401A4CD373276A624803E09, + CA99CDFEEEA27490079060CC, + ACEA8F358B77577CBE526F1B, + 67A20BDAD84353BFF940850E, + FFF9520F524FED8D3468287F, + 40F2DCDCF3AE32D53839E7FC, ); name = streams; sourceTree = ""; }; + 34487656545A1983A0EFEFA8 = {isa = PBXGroup; children = ( + 7B516EE490E9912305AEBFDC, + B82AF1752045C4157C0ADF1B, + 78E8E4FD896C87A932976258, + 849CF8E8313D7205E0DAA6F8, + 78E5BFE91209EE3CA40BAC3C, + 257F034BF0E09D78178ADCF5, ); name = system; sourceTree = ""; }; + 7FA3E417701A67C38F905646 = {isa = PBXGroup; children = ( + D184EF49BA7A3F3F5545B1D0, + EABE813E005E9B66B20BEF8D, + 95A6DD5234F109DB3ABC983C, + 3F01CB2947056402F526A4F4, + 80235293554BB0956701E9ED, + 43CC58EE154F54E14E70A9A9, + CDB1484C4D6010E4D4B03C8A, + 8DC679191499EAE03463DC3E, + 8EBDC229B7D3D13C09C28CE6, + CDBA14E9ED2A6DFA59B3E9F8, + AA518B503E5A850094865B1A, + 4B28AF2241AA37172D6069F8, + 379BA1B50BAEE43F433A9E29, + 7E6FCB5568F74241A49A5B91, + 884EE4AA71233E725BAC6B70, + E8B53464FF63B6F3C0E8E723, + C8A28EF3F300FCD23130DADD, + 47607EE37E20577AC6770AD4, + D9C6F027E7A8E9FDDDAF99BC, + 62062D02BDD756A9F4CD9917, + 5715EA1172976C34BF618365, + 93FDFB1DD4E2378AE729BA02, + 284D3D37AFE280A47CFE5732, + A4E1341FFEB2CDFED4B2750C, ); name = text; sourceTree = ""; }; + C4A0162E2C1F3E0B4B0B0AD8 = {isa = PBXGroup; children = ( + 14C3BD49C3F262D8449A6D89, + 0CC672620B96382CF715F134, + 1CFA52094CFDFB61E549EBD4, + A647EFD684A71A7F1DFEF7E9, + 64B11380D40B53153C293929, + 6C7EADF9387F020492C04442, + 5D5BA1131FE12F38BA17E290, + BC2708C1A30230F8FFED0BAF, + 50F08F6B006974130C590F4F, + 920D2C92A6D26ECC0914BE7A, + 2FAFF79F8E9250E599BEFDDE, + A8FBBFE98D5BD4AD7029040E, + 9065B3CBA068CCEE9F5AFDFE, + 59EB48AD6143AB10F2D4830F, + CA7BE1CD2A59E4A7A133207F, + 571FD86FB21925B70F4C2439, + 630596B03B4198D9FD956D98, + 4CF48857422D8B4462FDCAC8, + 6CD61526F604817E6912686D, + 170160056630E4035117107E, + 037C9C0E1723E94B95CD1913, + EA53D42B42EB75C773AB045B, ); name = threads; sourceTree = ""; }; + F1B99A44061AEE6C7E87751F = {isa = PBXGroup; children = ( + 8EFAE8B2003284F5A905E08D, + 4AA531F8D8E250C0429E2CBB, + 660163B352BBE406FE15DDEB, + BABBA06E9B4F5AC45082E718, + 1ABB18E7361905092E209E5F, + 3D51F32E7FBF84DEE183F53A, ); name = time; sourceTree = ""; }; + 210735BB76D056E28844FFCE = {isa = PBXGroup; children = ( + 241982E4455453EF71D03FFF, + 9707394FCE0F9ED5DDBB0524, ); name = "unit_tests"; sourceTree = ""; }; + B084942B44BF9E6FCCB075C7 = {isa = PBXGroup; children = ( + CF895906826621767E325CAC, + B98F37A336955FF58F90FB4C, + A9A287E8488E914B1EDDA564, + 97C27DB9A68F6AACFF857A46, ); name = xml; sourceTree = ""; }; + E13111C1D2F1074DB33AF04F = {isa = PBXGroup; children = ( + FA7463364B17FAF275702078, + 729FBFD01DE3FC0BAFB0C65F, + 9768B98C6D83F54C36FA719F, + FDAC3E164BA3FCB909B9F2BE, + 77192DF1CEF8FA03F0E6EE79, + 11535233EB65A31CB9A1C84C, + D6303AB7ED3A815A746818DB, + 0C368BF5435A155B2CEBF4DE, + AC4D225082C6EC2B2F74D280, + B50ED6B4AE791917727F5E7F, + 277B0FD43AA3A74D0BC6A519, + 4A6B7CEB97494FF6D388514E, + F2D31A607BEC69FA6AD0D12E, + 01A60EB1D681DDDB424C6C65, + F0E4E317DBB8EDC346F79C94, + CACC690868FC319352C6D605, + 327941468D62EFD046DFD31E, + FB7CEAF8DF0A4447F1BD2DCC, + B8793874DA3E3A50A76F9572, + 9D36B0CD0D56048687E2A573, + 8A3C4AF25492360327C080A7, + 681D758E911D2D050CD20F66, ); name = zlib; sourceTree = ""; }; + 661D28B0F542603EDC20F3CF = {isa = PBXGroup; children = ( + E13111C1D2F1074DB33AF04F, + 0ACB19FBE5DEAB16B5FE56B9, + B2A083D68101A749DA6CEC50, + C22DDE0CA3FD2565AC1A9641, + D270EFE61FCF33ABA7DD7A82, + A830EA78B992425DA01217BB, + E7402936E5521555F7B600AC, ); name = zip; sourceTree = ""; }; + 247AF08855C438929F46C640 = {isa = PBXGroup; children = ( + 989C3BDC492942642C24282E, + 7F42CBA4D84F5AAA394B131B, + 4DA608349B8E06A40C2B3610, + 8A82CE1314A80CA4B9001732, + 8AEB618AFC1B1D81D447F930, + 92948EE426E4BF8860C245B5, + E25778D3DF758B321155435A, + 9BEBBB02AD13A7EEF3C86DF3, + 170195FA23226C76E16320A1, + E91966262A1070E1B59F692C, + 34487656545A1983A0EFEFA8, + 7FA3E417701A67C38F905646, + C4A0162E2C1F3E0B4B0B0AD8, + F1B99A44061AEE6C7E87751F, + 210735BB76D056E28844FFCE, + B084942B44BF9E6FCCB075C7, + 661D28B0F542603EDC20F3CF, + 6FA8114276186677C37A02AB, + 866A90A69A3EB77768DD8A23, + C3131423ADE321A9FFD64C46, + 866A90A69A3EB77768DD8A23, ); name = "juce_core"; sourceTree = ""; }; + 1BD29601F50DC1FE90A2FB08 = {isa = PBXGroup; children = ( + 47BED7BBD05CF1420DE94CFB, + 4ED26BCBDCC64564B6BC33E5, + 03B238D422D95970A3A834EC, + 2D0476BBF2E82030BC3095E2, ); name = "app_properties"; sourceTree = ""; }; + C0BA57825B1577A586C86CCD = {isa = PBXGroup; children = ( + 9B04A8539B5ED08A7E26072A, + C50067A84435B50FAE2991A2, + C023041419CCD5A746DD3733, ); name = undomanager; sourceTree = ""; }; + FD7D0D9BA2507086B2E2DA6E = {isa = PBXGroup; children = ( + 03E5101ED7B3FD06AE564F67, + 92014E0EF85DDA08ACCFE803, + 2DBADCD115CE48292C27E0FE, + 90040097B24860C360877342, + B387644139E3E36918C4D03A, + E2AC1771328A969730B88BDA, + 1F6AF62DCB06829E5D547080, + 003F5B441682BA631DDF3AC3, ); name = values; sourceTree = ""; }; + D8F226718DC7C6F677813853 = {isa = PBXGroup; children = ( + 1BD29601F50DC1FE90A2FB08, + C0BA57825B1577A586C86CCD, + FD7D0D9BA2507086B2E2DA6E, + AD272D93B639B0D95431D071, + D4E6E686B826C386E372B9B0, + B714D3995796B3E1783B2B92, + D4E6E686B826C386E372B9B0, ); name = "juce_data_structures"; sourceTree = ""; }; + 6848C10D7BE2FDE4F5BE5A0B = {isa = PBXGroup; children = ( + CDB6AB74B48E27543C7C3247, + 06345AE1675306ACD324B59F, + 5E977684B01B2AE8C9E6DAD6, + 545F7B594166F08E2B2976C7, + 57F6D4DF279AF7D98FE44E16, + C050A75A3FD1ED843430646B, + AE91EB61DAC980EC373284E1, + 79DB1C896B9D762A9BF4D9EF, ); name = broadcasters; sourceTree = ""; }; + 7F7BE232EE718E4A72993E33 = {isa = PBXGroup; children = ( + FCD28EC20E234A418F03AB9E, + 3837D7332EB169F26F818BB9, + EC6D7E09774AD0360CFDD3CC, + 5DA4467E35DFFBF7AD8268A8, + 75725425105CE1949C646ADA, + 4D372B2B68D66E83A4370DE3, ); name = interprocess; sourceTree = ""; }; + 32D439DE7107240949F5553E = {isa = PBXGroup; children = ( + 68F5730BEE88039A3E7E3195, + 8D69477B2E980591FF3F78EE, + 125D60706A72F35D9D6CB3FE, + A48C9F610C0BDA307CC287F7, + DA07E0972B6DD508A081B59E, + 9E0DB0A243F94F8D90C1CB1B, + B378396CBE6EE2E85295A2DB, + CFFCDE3DE85309817AA5314F, + D7A1432A09EA76270555EBFF, + FE81D4D343853571BF409685, + F56396DCA982B63F2DA78471, + BAFE2641BD8618F8F7F65579, + E305CCBB5B76D319BEC9248E, ); name = messages; sourceTree = ""; }; + B4D20666B4600ED310A0BD4D = {isa = PBXGroup; children = ( + E76FD2235925C85F2D7A8550, + D5AE036BF17CF6BF3B415302, + 25C8F3E08BE437DD7F436242, + 24E745A97ACE83CB49C47941, + ADBF05F90178C516209F0C6F, + 44530960DE057A0334DFE77A, + DB5CE4E6FE04ADB6786CF3F4, + 3AF24B9D59180F6C4168586C, ); name = native; sourceTree = ""; }; + 293D388343818393DB994F8B = {isa = PBXGroup; children = ( + B2737AFF8C4A2300FD4DC321, + 3521249F8414079020AF98B5, + 5AF86438272890D0836A262D, + 2092AE5634DE6877D83C4CD4, ); name = timers; sourceTree = ""; }; + 2E126121467FEA75AE5E28E7 = {isa = PBXGroup; children = ( + 6848C10D7BE2FDE4F5BE5A0B, + 7F7BE232EE718E4A72993E33, + 32D439DE7107240949F5553E, + B4D20666B4600ED310A0BD4D, + 293D388343818393DB994F8B, + 6DC63841ED21D2CC651147C3, + 5414D9D1E3345D557CEFE983, + EB154A70F170DDD097484FE9, + 5414D9D1E3345D557CEFE983, ); name = "juce_events"; sourceTree = ""; }; + A0AB8A5CFF0F86A8DFC35FD6 = {isa = PBXGroup; children = ( + 747883C759DB70A4DAB5FF3C, + FD05664C4D9E513C74BFBD73, + 890AEBD8BEC0A1A2C418F79B, + 6A3909C3FD602F355F2E5D74, + E0FC64420488B39FFC9C25AA, + 3F03CD51A0C38F53DEC35D06, + 8EEEC7C23F3A4D5EBAD32660, + B258C7C7456130F17398F6EC, + F69AED9FEB4B4E8B9457BA1F, ); name = colour; sourceTree = ""; }; + 788A2BB27DFA716A543497CA = {isa = PBXGroup; children = ( + 14B0A23846DEF4981EB6CD1A, + 4977DE7B0A8135EDB73EFD68, + BDE15BB5ED83547045B075DC, + EDCE79F26F024D16BCA0F117, + EEC8B02D39FBA83A6AE62ADA, + 1B70293A6CF7F13B06B6569A, + 813E65ADB3932DDD6C2FD747, ); name = contexts; sourceTree = ""; }; + 6E5F7B54E6D5F4FC5DB69DEA = {isa = PBXGroup; children = ( + BF273AD2BE0018A6EDCF2258, + C8CDA61126AEF68721AE396B, + C54776C328896DD9C63D5F14, + 6208ED57BF34A1758751DC64, + 05F31583615DF3401FCF6EDC, ); name = effects; sourceTree = ""; }; + 521B6DE6C4B7BE10CAE4065F = {isa = PBXGroup; children = ( + BDBADF3D55924C948F41334D, + 21D9B04B3BDC4F1A87DA2C9E, + DFA7F722F61CC00E65789E52, + 7C3509B7C5B03AEF2B13D26C, + 207D373F8699CA107E7E86F0, + 12EFD54DC8E9CC723BEBE172, + ABB93E3C3FB5C8C04FB65943, + 92679B9C6D17B2B7CD7B4EFA, + 68282AFC746AB0122FF571AD, + 015F1290D2CFD4A244E60AC0, + E30B4E0A6F8029E7AE3D52E0, + A8A58CFF7A33378076372D7F, ); name = fonts; sourceTree = ""; }; + 240FD43C7C457ED97B01A27D = {isa = PBXGroup; children = ( + F97BD4908447C154ADAEB982, + FBC1679B39F569C014570698, + 9B059A5FCABFC0743BAAEDB0, + B5F5DB38E5BE6CA6306CCE74, + 0C39EABAF7EE4C2F8C7D6D71, + 07D9DF1A2D9CA38CB2F08E7E, + 3D3D5858103B1047C1779AC5, + 9B927FB567BC0D29DE04DEC7, + 03BD89526E26A670AE63B364, + 599428B835C56E48958680E4, + BA09B2615301490887929DA8, + 6E9222D7B192A7EF575F5003, + ECA282604B5FF6065330901B, + DC9D312245AA5BFA4B21AC85, + D816E1D2FDD6252C7AAF2628, ); name = geometry; sourceTree = ""; }; + 94D15D08688C2A46AC9B168B = {isa = PBXGroup; children = ( + A0FF0FE7A4BA41F808EBF3C1, + 2479A476CE3A4C0AF2EDBA33, + 5D2D967B09263CB6D21E1FCB, + 63577C8216D3E4FA634001A3, + 9F87B75B0923DE3CA7124827, + AC9C674F22F5CCEDB27CA007, + BC5C888CE6A7A5B4562FA329, + B1A84BBE9851F9F56F0E8D0D, + 468845E6939E7671B082138A, + 7F71A4F3F4814177EB0CFB75, + 7986D1D717F09A2C5DB15445, + 4FD457CCBE50024B1A6377A7, + D901EBE00D1E01A3702FA03D, + 55902FE86849138F98309FD1, + DB2F2C84EE330E7B99CB91D6, + C3729E6D46FC9FE8B8EA99E6, + 3CB2C6DD82376B45112B0576, + C5FB97556F8007E0E5849857, + 2ED49D97994DA78A2920445B, + 4F5EC73689E82CFA1B5E8B08, + F6E7A4BF54C27C60056270F0, + 761F52DF0A7AEB7B43229D12, + 0E2AB1720BB6F9EB7E91279B, + 3B4D669F61B7B70F9F60B2A0, + 0501056AA00F05DCCC93B577, + 0394E57BC8D292BA4F34C748, + 27A4321B4652868129075D63, + E9BFBC057BDD5E694D04F68E, + 3392234464B3B3A97DA2B58C, + B56ACDB21BF63DD70C738C65, + 939C507246EB383834A13299, + CC03ACEC4A87137E5E9C8328, + 609FED9DD1CE6987BC6B0407, + 97DC76FC35177C25FECDD169, + D3F2B4B868A0F886E10FD901, + 6F96929ABEA4492374734DB9, + 34F5C04FBF3B13F93083A301, + 0EC6923BA8DD0A685E54F725, + F7D345B0E22C7AB91FFF9CD2, + DFD7F405B35ECE2DC44D6939, + 2A545C8625733F4D09626C16, + 11BB8490A209BD313ED39DAE, + 8406536DA0B794016B0CC15B, + 634FC3F52B78B7FD78717F66, + BC6AEAE96DA5F1EE5F62BD17, + CE8E7EE0568DAE54277A3A75, + 100828DA91AC6887A22A621A, + 5DEC0A780DB6B3C7E3FE1896, + 8A92A94D8E00418673E58846, + 47604C0ABC53AE6ADB1BFF3D, + 3AB3B36BE9E7513E6A0785BC, + D16614D13C7C9AB7565DE60F, + 9BA7FB3722B671A47037C909, + 46CA6FE2FCF2B4493A1CB500, + 0A2C851155CE6975BA22C5B9, + 1F7339EB6D3A6DAC5966AA91, + 5917F2F2E450365FCD07C826, + CF22F2D71CC50A6A6BE820A2, + FD6A2554500AE9E8F340812C, + BFD3CE2B9C2AF98165049337, ); name = jpglib; sourceTree = ""; }; + 321FCEA0CA4F7508415A3CB4 = {isa = PBXGroup; children = ( + C44815DFC69575308E2E7DF5, + 46CD74CB0C207D371D0F22BF, + 379FC2C12D06AFB0A0F07476, + D6A1B4EF7647B82043EC5C14, + 87F3AD7F998AC58254A5CB14, + D111247356C62C3698C5259A, + 67933CC08A429EF3955DA476, + CB6C50C6F026F66991905EBA, + 6D31F014FC058BF4E76B8415, + 5D77406B71C3A76439A5D9E4, + A317B26EF3D30E3CFCC80F79, + AF42734F63315C85E08587B3, + FBD3C4CF5151FE82BA05D486, + 38995FA8FD1425F65F87FC09, + 982EF3C57A98E26EAD69AE4B, + 17889DFA6CEB679211FF3389, + D9D800ABA75CDD05817432E2, + E38345D85F1CD35B62CD6456, + 57702152570891F1CEF1F858, + 6FFFF87297AF8C459786210B, + E5A413D6F34F783C7A708B49, ); name = pnglib; sourceTree = ""; }; + 3FE0C15B00B176DC80462EBF = {isa = PBXGroup; children = ( + 94D15D08688C2A46AC9B168B, + 321FCEA0CA4F7508415A3CB4, + 26688B743438F611F16AA65B, + 493A7E8767FCA4250B6FBD94, + A10A8513A3239AF1A4E59DD6, ); name = "image_formats"; sourceTree = ""; }; + 5A2106C72326CEA212F2CCCA = {isa = PBXGroup; children = ( + A23399E22779624DCB1D025C, + 72578DAAE178DD6EDC268A4E, + 6C6FCFF482B11A862BE7852F, + E4E68F979116A9B3B7D663C5, + B5FB26E84ABF33A7E353A48D, + 0608AD5F887B0DAB247A0169, + 45830B6210881854542DEE1C, + EFD23A341192EC2E36497814, ); name = images; sourceTree = ""; }; + 2AE3391E3CF2A2D9AEC5AA27 = {isa = PBXGroup; children = ( + 2C651B376A3220A9D720B36B, + 711B895681BA427CC7DF8E7E, + 276500E2DF4FBF36F4FA1B81, + DB3F1EBC07134AD21DB325DC, + 5EA0ABB0B2C055D60AF351B7, + 942B534CD5B5BA732092A55E, + 5C9A7CB614CE1DFA574772DD, + 537FDE261B80BA27AB0F268F, + 51F6B14D12856AA27906835D, + DCCC9B894C6F3FF9643B3D85, + DE005946F4FF5EB9F2B5E94F, + FA91B86E9778655B50D0814C, + 23E03F6187920AD14BFC8BCD, ); name = native; sourceTree = ""; }; + 2EF49DCD807993B2B8356444 = {isa = PBXGroup; children = ( + F06F1733D3BA37AA7C511933, + 8F311C729219275902113CE6, + BD8807162A21C44D5C816A74, ); name = placement; sourceTree = ""; }; + 4C6121D44894EBC2CE00C47C = {isa = PBXGroup; children = ( + A0AB8A5CFF0F86A8DFC35FD6, + 788A2BB27DFA716A543497CA, + 6E5F7B54E6D5F4FC5DB69DEA, + 521B6DE6C4B7BE10CAE4065F, + 240FD43C7C457ED97B01A27D, + 3FE0C15B00B176DC80462EBF, + 5A2106C72326CEA212F2CCCA, + 2AE3391E3CF2A2D9AEC5AA27, + 2EF49DCD807993B2B8356444, + 614A8A8F8ED16753F8CFE07C, + 95636B26C770CFEADB3201BA, + 268EE6C32655E4002E0F67E1, + 95636B26C770CFEADB3201BA, ); name = "juce_graphics"; sourceTree = ""; }; + 07904D644F96E4BDE7F97211 = {isa = PBXGroup; children = ( + BFF50837A22F32388D61E4C4, + 664C16822A70A0AC8DE7BB7C, ); name = application; sourceTree = ""; }; + 8C50A37660EFD2826595E21F = {isa = PBXGroup; children = ( + A6CA6F9862A31AA045082102, + 007B1F3B503C7D7F4744BA43, + 1E3AD3FF27C698CD3EE18C93, + 39B343A6A7A4BD31ED5AA4EA, + 80E878BF0672503772AB3C6C, + 549A73307E1C2D12EC3FA599, + A1842A3B2210EA4F3E78A614, + EAA764F4599A4624B26AD06F, + FB558727D4E53558D3F72AE0, + A3C88D6C40459FD49F4BBBFC, + 84187C96133F7EAC39E46D9B, + EE8BBEB89A13B0E1AFD5780C, + 282CADA9E37A136FDBC83A2F, + A1C12AC77EFFF165AC6B053D, + 377AF33A6FFEBFE62A05AD2D, + 00AFB2ECABC5FF5015B0DF6C, + 3C7A5BB34C606EBC8556E38A, + 1751F5BA57A88D8A20248EAB, ); name = buttons; sourceTree = ""; }; + 5DCA357F8D71E6533AA7F14C = {isa = PBXGroup; children = ( + E2C85B5C1B1B51B08231F7EC, + A8C4CA489A4BF1B340754797, + 54414222D76B0C6CD2D245C5, + BE3AB671FE1BF4BA67F3B22E, + F837F14CCAD905678B2EB5A1, + 5DDD8C97387E3792B53F6914, + 016588BDC792CF429E174F41, + E068081DF4D036954360B4CA, + B35C9A4EB69C394A0DE6E813, ); name = commands; sourceTree = ""; }; + A6E5010F1204E950F65CE679 = {isa = PBXGroup; children = ( + 58E8DB6E05BEC37A2C386482, + 3BE2901B9A625B0A9A34FAEE, + A7DBC8925B48CFF83A1A785D, + 494C319CCFF5BCCD0F36FD33, + 3C0FB54AB7F6499B039CA796, + 868BF9273B56A0762F1CE5B8, + D8555991B456F672F132ABEC, + 61CAFC1A3803B6D6BA913E84, + 24B3BC3052E9DCD40B98304B, ); name = components; sourceTree = ""; }; + BB630F47D921377AA027C1B4 = {isa = PBXGroup; children = ( + 7D3372B86F706B2EB958851D, + A701A3A08035A45B9D1F7963, + 32882ADD511B3542BB245169, + E46479B62709BC51E7EADCA3, + 4CE9E46083DBAE3BA66CEF34, + F17172414E68A67E86770D16, + 9109705AE4C9C46B0CEBAD57, + A94DAD22B9F27389EB042378, + 80CB00749EEB05EB63E6AB02, + CD9D44C2A4E6A65D62F5A2F4, + 182BED30B1F7A3E20AF7C41E, + 119E392B5554CFFE8416EA5E, + 55929F5F3E0FDBA0B5B5740A, + FB76ED4506F6CB6BC0FA0D50, + C0794CF65E83FA413249342B, ); name = drawables; sourceTree = ""; }; + A7D9149B4E37D9181E3F9A39 = {isa = PBXGroup; children = ( + BEF40C565264BB572868FF09, + C92D8587F5DBAD4B1CC80406, + E76C940E3BEADDDA3B798D3F, + F641DDA93FDEF2450E56A606, + C225444502EBA04B63E16CE6, + F42D141B9A70BB0273407B0E, + 389F673D479BAA914D559C3C, + 733D19DB0084F1592D2ACCB5, + A75D403B2009F5E41DB85E88, + 5F622792DD550ED2F85D6BC6, + D24A6466F1C7D63741B729BC, + BEF0AAA4CC9BA56B412B7B20, + 26FE8AEE286297F8E8F148E8, + 7FE57FC0CEE579C81819F26B, + 0D197638970189B7FC7EF613, + FD2F08645DF014C0F3110942, + 6BC2FE3123EC3468395FC8D8, + 3F31EDAA9BB16DCAA86C6A6B, + 811EB7C741184EAE672D6581, + 3454368245C5E8CFD1456FBC, + EBF38E78D19A1BCCAE6C72E1, + 69A4D0C62C1F177C0C877A3A, ); name = filebrowser; sourceTree = ""; }; + 058E0B5BC34AD4AD46B9CAB4 = {isa = PBXGroup; children = ( + 8FACD18D8DF3D14D269091CA, + 7D7F423A3FB0AC8EDBE62944, + A579D7C165F5D2A34D8B60DB, + 3F57879007B1AD70426EB58B, + C80F802372BCFB07523C535D, + 0112674271470DAC194D36F7, + DDD1AD3004D036AF9AFD5043, + EABAA3E42B432D106A18FC39, + 332520A35477D044DB108E0B, + 047EB8514054BDBED92A4D65, + EADE74B222122B9F8144DF28, + 6085D0F7B3DFD7C8A7564A9B, + C53219A41027ED103B202C42, ); name = keyboard; sourceTree = ""; }; + D9D416C8CAE3A9E7CE485AE2 = {isa = PBXGroup; children = ( + 0D0667D008F7C834DC045F87, + 3F4C08B027AA5847220503DF, + D1D6547CA0BAEB079FF9050F, + 58BF05D2E1EBA950D4C132D9, + 07176F08AA96CA742FABF32C, + 473950B43F215D4523AE801F, + CE63CB470CE025B3344E6B14, + CB3169B4A664108CEA2751DF, + 94E460DE1BB4B000A0EB883A, + DB7D21EDFDD06447F1A26B93, + D56C2798DB2930BA21DE5222, + 4EFE2E4C990EE14732BACEC5, + A7513E63DF1FEE5FB89D5674, + FF988FAEBE5F808EE1BB9F4F, + 0522ECF89AFDFE087301B50B, + 47CC2D3C3EA5DBDD7A160619, + 96FC2E3988B10054B1A11323, + 03D95B05B6B6219344A8A5D7, + 260E45CCB287E4CC5DCB27B8, + 875FEC3940D6185FD9190213, + 77A1BF25012758C1D78583E4, + 0DF9EA0A64F07528C65C2623, + 8706B5033AE6F9AD92FB4F70, + B31CB3E3F4BD0212647C599D, + 84FE9718AAA47D64293881CB, + B04C24316C7F5D7E5C79E0CA, + 19EC8D47288168DED8C317DF, + EAFC617A8DEFF67E2A070D1B, + 0D9ED7566FF0B245CCB60C50, + 819FAA8F15DD9C9789D26B77, + 9D16672FDB24B44DFF13E4B1, + 15945B1F63EE00FE6BCD61F0, + 25CE3EDC204ADB54724E65DC, + F86455FC80F2DF1C12D28BFB, + 4A174700334838A28231D4A0, + 44B2FE959DF300C8385863AF, + CEE8CFCB66ADE7E78A9B5D84, + 9F13791A2E1028E08EFB5A32, + 2AFBEF39C606E0A3D698185B, ); name = layout; sourceTree = ""; }; + FAA6CD66C5226D3A9207B754 = {isa = PBXGroup; children = ( + 8D267142A6682D9886D0CD9A, + EE3FF44BECDF0A701A625460, + E4A7570B4EABC3BDD766D2A0, + BD1F10BA3C91ABDEDA96A90A, + CA65DB1D639849CCDABA67FC, + 1B07C855838E6EF1D058D000, + CFF86D411ACF901036AA22E2, + 7C5529A757AAF95634BB7251, ); name = lookandfeel; sourceTree = ""; }; + A354D9464A5E0CA16BACC5FE = {isa = PBXGroup; children = ( + 6686824DF63B35A02B0FCDAB, + 329DF7E968A8D1BC5242755D, + 892C11FB5B2192DC7FE0E617, + D5542B1227D81DCFF2DFCDA4, + 52162727C5145771E25131C9, + 1A8D2D0748598F01CEAAD4F7, ); name = menus; sourceTree = ""; }; + 7014FBB2A0234F105FFD4373 = {isa = PBXGroup; children = ( + 9CD701758E71973D7BF7CC8D, + B2945D912BAAD64AB84975AA, + 879DC7CDE41F11EF9A8F3FCE, + 3DDC23784E7F36861AF31A75, ); name = misc; sourceTree = ""; }; + AECDF9A263F52E02F060F2B0 = {isa = PBXGroup; children = ( + 2D3D590B3FA5486BDAD225B0, + BF9B812900B12580FCD3C1C5, + 1EB612BB5C88FD75360E182C, + 9A157F41830D8E72D9B6DDE9, + CA54557D28FB9E717532A9B8, + CB01A5CBA8DA5DA64F79F9D5, + DC92C4ED5AC4F39FA201F932, + 442B9293D4AECC2B9711CADD, + E4B9999176E0FB1175CE9568, + 9E56353F5164018FE9407346, + 1DA19C5E99B3551ADE26E391, + 49CA1AF15E947DCBBE1AB305, + 1446DDFD289F734BFE1861BD, + 9F02393F695A4882E729627C, + D7B9697EF473A62BE6453BA6, + 6C1E9287AA9C9FEFC393DDCB, + 5013B2E5F2FAF7E880593B1E, + 9C5ED73E2DF5FDCE5189E945, + A0B8C5DC5B1C48EF0B25D9DB, + 82A5E18127980C5CF8AE919F, ); name = mouse; sourceTree = ""; }; + BB809068C10AFC284A1D85E4 = {isa = PBXGroup; children = ( + E53E7B65080C5BBEF4A9D7C3, + 09901BD8E4BF85BA33E43AC4, + 197DFCCEA5C1199B9C4D463F, + 8899E26B15AA5CE8D18A2DB2, + 334C26584909EC5509B8CF72, + 634DD22DD8F7DE4BA1BA2A8E, + 455B914D8EDEB31EDC2DC451, + 6FB98EFC21231B01B9375164, + A5C1C519AA6CE15BF9547B03, + C9BF56C284B0BE80A7C89DC0, + 6D9C6DABD7D5E768EF9DCEC9, + 4F37C953011C373B54598AD7, + 4D4FD67BD642DA535431F2B1, + AB995EFABB924F8175D8954F, + D54B128515F377318B34C9C9, + D512265869F4FD6DBE091DD4, ); name = native; sourceTree = ""; }; + 2E64869DDF2412C8949B3D60 = {isa = PBXGroup; children = ( + B9DF6AB40767C91B45834CED, + 61287CFC6D4262060F576DD7, + B5E44A231B747E1759C87CD4, + 9D53AA5877289D7EC8E9D708, + 12748EFBC072636CB555FEED, + 3898C8969F187EDE6C2FE1A1, + C2EA3FCC07E1674AFDEA71B2, + C6F13DC7541D0F00B8C8ED6A, + AAF99DBF6ACB84A56C7996C5, + EA8A57933A118B68E6C8A037, + 799F28AA91B1E73D5DD93EF8, + 7773CF6756E7F17F8CCFBB0B, + CF56CAFD0B05918B202CC8C1, + B29B68EFD93C936B6004A003, ); name = positioning; sourceTree = ""; }; + 73B736F0A245E7492E237884 = {isa = PBXGroup; children = ( + 083B9BAE399C7621EABFD0DC, + 8E8618D73EBC59ABD8A424EB, + 20C2BF35D7BA96D597557B46, + 5EA120BDDD4CEB77D4440C20, + 96A355D0A7CCC55998862273, + 551BB1571903BD046B3947C4, + C9C143571708C2B184BFEB12, + D0029C076D0AFD4531B8C952, + C78AE90444451893D78C4E91, + A868BFDFEFD84058783F8A1B, + DDA7B0C44BB6500A8264AB08, + AB50A06C6DADCC7678D37DF0, + F306B08E4CCAD1A06EC0DB0E, + 2D53FB29FFFEEB29036792DB, ); name = properties; sourceTree = ""; }; + 44A9B15FCFF35B6D4A98AD01 = {isa = PBXGroup; children = ( + DCFCECAE8ED2C934AB68E4EC, + 8DC8471AAC1855AC5FCF5A49, + 98A71ED25423EDA3D71C5A82, + FA3537F978DC20BC51975AF4, + 7A45794310114755CDD94AB1, + 3BCDBA897B07973BE96C7CD4, + 730CE994579DDD2DE49B5D7A, + F0F5158BE492B43B8FAAD1D3, + 445E7C1EF124A4552532AE4F, + 61F8335D20F500B2BC612A2D, + 2F8470C7C024CC6EF9669961, + AB4BAE5B3AAB57A4BC712F3F, + 634A8B60191C15D6693B40BA, + FF9B172146D046D10BC0E7E0, + 8AC432E785BEC3DAD8663650, + 8694FBBB22ADD72875586C4C, + D766274BD43DF76958D6D7A1, + FB44F62FA6C5FA2DFB1B2142, + 0E2BE57E047E0F1EC2BF9880, + B7E100E53E55FBBB995D1015, + D01FEE0DC6C2CED2D3217198, + 35E2249D105A48B11BCF2DA3, + 97A84C15178314A33151C129, + 577DD1C1B6BC82BE5E32C290, + 137EDFA7BC30E6EEFF2A2C04, + E2C31B4B096247BEB81029C5, + 959F6D02ECA6B976583C67FA, ); name = widgets; sourceTree = ""; }; + 0C4CEA52BDC9F6A213AC17BD = {isa = PBXGroup; children = ( + D0C5462B25A1EF7C0BAC2C66, + 38C951E0E35A4B513616931A, + 0353708CD8C613C0F5D9081D, + E8598E243314304BD8163FD7, + E270518951867873C374D756, + CCF01620822A4A144E3C6FBF, + F5A099B54BDAB42FF8D77144, + 320BFED03A887CDA204EB748, + DBD9D7E0C4FB25EBBE29B36A, + 47123B6CF53D538F0E90AC17, + F70DB3B3FBB0AB2575A13FD4, + 528DB2421C8140B90DA7B1C4, + 130A891678CD13F5B8F813A4, + 66CBE1EEF8AA4C91EB7046AA, + 3F461FC27A8BEA812E4604BB, + 1FA1A18FDF4E7266114D4B47, + 189CE0561DF5910DAF13D22B, + 260406E9FB3C041C0B3A89E7, + B185D4ED3D7011747FA30D2C, ); name = windows; sourceTree = ""; }; + FE33C8CB124FF0872158875A = {isa = PBXGroup; children = ( + 07904D644F96E4BDE7F97211, + 8C50A37660EFD2826595E21F, + 5DCA357F8D71E6533AA7F14C, + A6E5010F1204E950F65CE679, + BB630F47D921377AA027C1B4, + A7D9149B4E37D9181E3F9A39, + 058E0B5BC34AD4AD46B9CAB4, + D9D416C8CAE3A9E7CE485AE2, + FAA6CD66C5226D3A9207B754, + A354D9464A5E0CA16BACC5FE, + 7014FBB2A0234F105FFD4373, + AECDF9A263F52E02F060F2B0, + BB809068C10AFC284A1D85E4, + 2E64869DDF2412C8949B3D60, + 73B736F0A245E7492E237884, + 44A9B15FCFF35B6D4A98AD01, + 0C4CEA52BDC9F6A213AC17BD, + 9BC007D5846F63F0F37CF97B, + B38DA581048FDA139F641FB0, + A928068058AABD08099E1792, + B38DA581048FDA139F641FB0, ); name = "juce_gui_basics"; sourceTree = ""; }; + 36D60AEACC295718CA4DF1ED = {isa = PBXGroup; children = ( + C8BDDC0EA95699CED529FB96, + 8CB049C67CA9CA3E76960B1D, + A2DCF1D28A3EADC8DB365F97, + 8103743F82032789096ACEB5, + 66838D5159BDC5AC0E777C0C, + 6362E2A941EAA49521526692, + B978E5CC1180425AD149A152, + CDEBA4B2BB49150BFAED8665, + 21CA089CEAAEFB67132DE3CD, + A93D235AED6D56DA08F82062, + 8E5D35AF16D5BC97A9F05B26, + BCAD87C5C4722BE2239A00F6, ); name = "code_editor"; sourceTree = ""; }; + B5E054592FF50093B53D0CA3 = {isa = PBXGroup; children = ( + C12E3B26BAD438E71B125623, + A31876A1700D5032452F8AA8, ); name = documents; sourceTree = ""; }; + BB26434B9CA479BA9218D9CC = {isa = PBXGroup; children = ( + 75D9711B81D5DBE678D64734, + 39C0350A74FE0DD8E792ABC4, + FFC5E68D2033592D6896B282, ); name = embedding; sourceTree = ""; }; + DE3A2AD01175FA05865FCD67 = {isa = PBXGroup; children = ( + E1714E22DFB33D06F62468F8, + D6B40F5575A4546875FDBFCA, + 0072E9EDE9A531ABF573D6A1, + 66E065F9613ED585487E57B8, + AD3294A10650175E7F446D7E, + AF09AA6BF4864B8998E2676E, + 5B74F105B018F0D2497D818E, + FF9CD52F808B7C91AD25CF71, + 40268160C3A821B16C2C0106, + BED548AB5BFA57159DD12DAC, + 39C7BCC2C6A8A53D47605192, + 6229C851E122AA62DFE23981, + 27C1AA486727BE2A93B11251, + 6F60258048938FF67DFCDDE4, + FDF345AF086264E4040A79CF, + A41A3F1FD1EE4F50F9267231, + 9EA89360E878DE14172E34CF, + 7D5439A24397FB12F5B97C69, + ADF9FFDBBDB7AE74869554B6, + 4E93058BD941E58123C09290, ); name = misc; sourceTree = ""; }; + 9EC9071CD635A99CC2532CCD = {isa = PBXGroup; children = ( + 8A270D3B29FF0A115BDA7C00, + 8319007F2F0B140F09E10D2E, + 333C35C42EAAC5C9C654F12B, + D504B7AB34A2CD39CB9C856D, + 3942B0BFD06ABC8B8AC0459D, + F1A811BDF1FBDB3460847383, + 86C5B51CA8FE58BBE6C48E5E, + 1DA2607436F77B9E79C8D031, + 2FAD51414C9D18ADA5B2CC16, + 1414F1FC8B43992F623E2FD2, + D0F8908BB4BF8D2904759E9B, + BAB1E713B8FD5FF764E93C7D, ); name = native; sourceTree = ""; }; + 9E18A441884CEFE11E2D3857 = {isa = PBXGroup; children = ( + 36D60AEACC295718CA4DF1ED, + B5E054592FF50093B53D0CA3, + BB26434B9CA479BA9218D9CC, + DE3A2AD01175FA05865FCD67, + 9EC9071CD635A99CC2532CCD, + FDB547DFBE187A379D96760B, + FD6A23DA53BC48A5D01DCAAF, + F572E47156DAA8EEBE746390, + FD6A23DA53BC48A5D01DCAAF, ); name = "juce_gui_extra"; sourceTree = ""; }; + FF3F83506D205EABE1669524 = {isa = PBXGroup; children = ( + C096E8792E18214FCE25A25C, + 92CEF1181147D9E110D85278, + AED3A93746DB1172E5A05BBC, + DAF373B4117FFAAEF7D9AA22, ); name = geometry; sourceTree = ""; }; + 81FAD18B53D88E4B82950267 = {isa = PBXGroup; children = ( + 3B603D361B33DF947B16EC5A, + BD369BD9E2486BB5D544D8FA, + 2DA8B0B8F42BA75AA6C09CF5, + 41AAF7E46A95C5137361C5D1, + 99D82B4AECBFE5BBEA8E435B, + D9B504A48CCEDE57288899D9, + B56D69C275FA7C73683BA840, ); name = native; sourceTree = ""; }; + D417D822B572124AADECC6BF = {isa = PBXGroup; children = ( + 1BEF40062139BA123A55EB92, + C23D3AE443F3DA9E05DCF670, + 738A2C478AADF47D641F9577, + 036FADA1493FCEA443F6BD31, + 265C9E0CD85917026D804337, + 21AFD9310BD1AA9619366C27, + 099F6F87C4D05FF49A7E3C2C, + 149DD0517AA814294C0A8C70, + 6A3B0B68AF1891D6708E5CF7, + BDF3FBAE1450DCFA0496D341, + 279386328A2D384E9C2AE928, + 339A19F5096F4F61F8255B88, + F5D2EE7EA410E9A78BF68285, + 3EB1E0AA5710B0452FF6BBE6, + A0C6E00A2F5204606A1B0196, + A16EB5BE88FD8E25BD4F4158, + E8BBBB6CB566863296CC406B, ); name = opengl; sourceTree = ""; }; + A9FFCB200EC6C79188EC21FA = {isa = PBXGroup; children = ( + 9E490E7A44CB793DDFBEE1EE, + 63E061781918F57A073B894F, ); name = utils; sourceTree = ""; }; + CD3B970017EF8AC522E6238C = {isa = PBXGroup; children = ( + FF3F83506D205EABE1669524, + 81FAD18B53D88E4B82950267, + D417D822B572124AADECC6BF, + A9FFCB200EC6C79188EC21FA, + E3FFC7BB4B7420DFFB0FF1F0, + 36FB8C0AD65A9A875C90C662, + 0FE96D4C83E1846EE628D57F, + 36FB8C0AD65A9A875C90C662, ); name = "juce_opengl"; sourceTree = ""; }; + FCB109DCDFCB200668E6864C = {isa = PBXGroup; children = ( + 404BFEA464246C3581AFCF47, + 90D9DDA0B7937A5B2ED77F30, + 594F462315832D34803DA5F6, + 63D380A7E6D7B2AE12F73D59, + 2D543E37FF6A804E98D45CC0, + 4EA50957218B9A0F396DB28D, + 247AF08855C438929F46C640, + D8F226718DC7C6F677813853, + 2E126121467FEA75AE5E28E7, + 4C6121D44894EBC2CE00C47C, + FE33C8CB124FF0872158875A, + 9E18A441884CEFE11E2D3857, + CD3B970017EF8AC522E6238C, ); name = "Juce Modules"; sourceTree = ""; }; + 3ADDC207B0CCAE1F5E220196 = {isa = PBXGroup; children = ( + EFE9FF35F95193089D2465F5, + DD58AB0C80AB9D0B6850983D, + AF5F2E4B8A7F1B9A507D043C, + E1CDDE683A9D3D00182334F0, + E556673D5DAC2B12EA15F47D, + 1041E86890E9D2C1418A2D95, + A40D3E3FFBEC78F04EE0DE5A, + B0B1C0956FEDCBF2AF19CA6B, + 17544537ED6A83CB6C3F3201, + 8EF4F0D964C0ECA2E058F7DC, + 7038FD73A5F7527FB76E987E, + ABFE23A312B6421D3E21ADC8, + 2E85944AC4191910EE758B99, + 231FA43EA6BDD60E2E5D682E, + 87ECEEBFFBBFB5281E991537, ); name = "Juce Library Code"; sourceTree = ""; }; + A6A176D809E46AF236D766B1 = {isa = PBXGroup; children = ( + 0E36301F694447E2DE1A780C, + 70426BCCD5E978424B32AC8B, ); name = Resources; sourceTree = ""; }; + 0916F802A223C831DF7E3018 = {isa = PBXGroup; children = ( + EB91C5FFE88DF5CFF947669D, + F3AD07BBECD1E70E5F3F40BD, + E0B3C73D7F3BC93AC8164C1B, + CBA6A8FCB0795C89183A8E71, + 51425B8876D6230E6C6A2B20, + CEC52ED2250DAF9085E67628, + 42747FC2DD3F362950112EFA, + 0A72A10DC2BCD29B4A801D40, + AB8E624C28BB20096959B5C9, + 0FD9AE627E98FA0C1EC3C163, + 67663D2E66C7F1C1B6BD6392, + ACC89760CF09AB1EB06AD52B, ); name = Frameworks; sourceTree = ""; }; + BEBE62C64C08316AE975AC01 = {isa = PBXGroup; children = ( + D778C2ED7EA9D5EDCFBA1507, ); name = Products; sourceTree = ""; }; + 0F4E2B72B683E9B48DF13DDB = {isa = PBXGroup; children = ( + 38998921858495104F35872D, + FCB109DCDFCB200668E6864C, + 3ADDC207B0CCAE1F5E220196, + A6A176D809E46AF236D766B1, + 0916F802A223C831DF7E3018, + BEBE62C64C08316AE975AC01, ); name = Source; sourceTree = ""; }; + BD1F40E3A4433BD30678025E = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.BlocksSynth; }; name = Debug; }; + 1EABC8E25D5063C5DE0DA4E2 = {isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; @@ -3300,7 +2727,6 @@ COMBINE_HIDPI_IMAGES = YES; CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = A6Y7ZHFYJ2; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3308,51 +2734,17 @@ "NDEBUG=1", "JUCER_XCODE_IPHONE_5BC26AE3=1", "JUCE_APP_VERSION=1.0.0", - "JUCE_APP_VERSION_HEX=0x10000", - ); + "JUCE_APP_VERSION_HEX=0x10000", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ( - ../../JuceLibraryCode, - ../../../../../modules, - "$(inherited)", - ); - INFOPLIST_FILE = "Info-App.plist"; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; INSTALL_PATH = "$(HOME)/Applications"; - PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.BlocksSynth; - }; - name = Release; - }; - 57DFE1C6F280A60ED6AF5D46 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.BlocksSynth; }; name = Release; }; + 9FADB9B516D955EEE4CDF9B9 = {isa = XCBuildConfiguration; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_MODEL_TUNING = G5; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - PRODUCT_NAME = BlocksSynth; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wreorder"; - ZERO_LINK = NO; - }; - name = Release; - }; - 9FADB9B516D955EEE4CDF9B9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf"; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = c99; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; @@ -3365,68 +2757,72 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.3; ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = BlocksSynth; + PRODUCT_NAME = "BlocksSynth"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wreorder"; - ZERO_LINK = NO; - }; - name = Debug; - }; - BD1F40E3A4433BD30678025E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_LINK_OBJC_RUNTIME = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; - COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = A6Y7ZHFYJ2; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "_DEBUG=1", - "DEBUG=1", - "JUCER_XCODE_IPHONE_5BC26AE3=1", - "JUCE_APP_VERSION=1.0.0", - "JUCE_APP_VERSION_HEX=0x10000", - ); - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - HEADER_SEARCH_PATHS = ( - ../../JuceLibraryCode, - ../../../../../modules, - "$(inherited)", - ); - INFOPLIST_FILE = "Info-App.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.BlocksSynth; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 55C758B950EB7307111C9D74 /* Build configuration list for PBXNativeTarget "BlocksSynth (App)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BD1F40E3A4433BD30678025E /* Debug */, - 1EABC8E25D5063C5DE0DA4E2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F2BDE5D743A9870C169E5CC8 /* Build configuration list for PBXProject "BlocksSynth" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9FADB9B516D955EEE4CDF9B9 /* Debug */, - 57DFE1C6F280A60ED6AF5D46 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + 57DFE1C6F280A60ED6AF5D46 = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + PRODUCT_NAME = "BlocksSynth"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + 82EC3EE9E07C52DA2F93CDF9 = {isa = PBXTargetDependency; target = 0B9ADB15A71FB90DD6919895; }; + F2BDE5D743A9870C169E5CC8 = {isa = XCConfigurationList; buildConfigurations = ( + 9FADB9B516D955EEE4CDF9B9, + 57DFE1C6F280A60ED6AF5D46, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 55C758B950EB7307111C9D74 = {isa = XCConfigurationList; buildConfigurations = ( + BD1F40E3A4433BD30678025E, + 1EABC8E25D5063C5DE0DA4E2, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + B62995CCD71EBA82C2BC1692 = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 9097F21A6491C4C4ABA3185F, ); runOnlyForDeploymentPostprocessing = 0; }; + C8A1585A07BDCD77C240ECAA = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 8492CFCDEC3C8BC7E679D597, + 8708D4FDEA2E44838FF56AF7, + DD6F640B22B1E254A30D23A3, + BFF81A843FE6013A9D16AA34, + 82F8207EB62803F4657E2BA5, + BDF46ADA08E24B4C1BB27481, + BF6FA2A2A66FBBB7C0C82551, + A6C2383A9E41C6C0492FBD71, + 36CA4CF2E34082660F108708, + 90AB9198E92ADD84AFB8EFD6, + 221901C4077F389C16EE6FE1, + 8A93A3EB39E14A2887A12CF9, + 35E0967364383B7202CB3A01, + 0112FC2B7A664C27E8F9941D, ); runOnlyForDeploymentPostprocessing = 0; }; + 1EFBDD8D783B94E754626B32 = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 96CFB8DAD7FFF76D2E317495, + 535851B45E7D80B53ABB689D, + 646AAFCDA0A0620699614BB7, + C04A639A8ABC44749B49ED36, + 459E5184BB7B47A2DCD0EE4E, + 0579DDF4B03255527CD92BF9, + 5CC0AE888A8B9CF85C8C1077, + BDD9B6E13096A4F929CDF0C7, + 03889D80A76102BB72F53888, + 268110CDBB2C5560CE1935AB, + DEE7F200E0ABCA5F551B8BC8, + AE46B38D70B347166EEA3112, ); runOnlyForDeploymentPostprocessing = 0; }; + 0B9ADB15A71FB90DD6919895 = {isa = PBXNativeTarget; buildConfigurationList = 55C758B950EB7307111C9D74; buildPhases = ( + B62995CCD71EBA82C2BC1692, + C8A1585A07BDCD77C240ECAA, + 1EFBDD8D783B94E754626B32, ); buildRules = ( ); dependencies = ( ); name = "BlocksSynth (App)"; productName = BlocksSynth; productReference = D778C2ED7EA9D5EDCFBA1507; productType = "com.apple.product-type.application"; }; + C28D173095C609C48901860E = {isa = PBXProject; buildConfigurationList = F2BDE5D743A9870C169E5CC8; attributes = { LastUpgradeCheck = 0440; TargetAttributes = { 0B9ADB15A71FB90DD6919895 = { SystemCapabilities = {com.apple.InAppPurchase = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 0F4E2B72B683E9B48DF13DDB; projectDirPath = ""; projectRoot = ""; targets = (0B9ADB15A71FB90DD6919895); }; }; - rootObject = C28D173095C609C48901860E /* Project object */; + rootObject = C28D173095C609C48901860E; } diff --git a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/AppConfig.h b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/AppConfig.h index 3b4800cfb8..5dbc0820f0 100644 --- a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/AppConfig.h +++ b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/AppConfig.h @@ -17,22 +17,24 @@ //============================================================================== // [BEGIN_USER_CODE_SECTION] -// (You can add your own code in this section, and the Projucer will not overwrite it) +#define DUMP_TOPOLOGY 1 // [END_USER_CODE_SECTION] //============================================================================== -#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_blocks_basics 1 -#define JUCE_MODULE_AVAILABLE_juce_core 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_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_blocks_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_core 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 //============================================================================== #ifndef JUCE_STANDALONE_APPLICATION @@ -99,6 +101,32 @@ //#define JUCE_USE_WINDOWS_MEDIA_FORMAT #endif +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + //#define JUCE_PLUGINHOST_VST +#endif + +#ifndef JUCE_PLUGINHOST_VST3 + //#define JUCE_PLUGINHOST_VST3 +#endif + +#ifndef JUCE_PLUGINHOST_AU + //#define JUCE_PLUGINHOST_AU +#endif + +//============================================================================== +// juce_audio_utils flags: + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER +#endif + //============================================================================== // juce_core flags: diff --git a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/JuceHeader.h b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/JuceHeader.h index 6828f96af1..be2d94f134 100644 --- a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/JuceHeader.h +++ b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/JuceHeader.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_processors.cpp b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_processors.cpp new file mode 100644 index 0000000000..bfe172edd0 --- /dev/null +++ b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_processors.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_processors.mm b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_processors.mm new file mode 100644 index 0000000000..b80ae9017f --- /dev/null +++ b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_processors.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_utils.cpp b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_utils.cpp new file mode 100644 index 0000000000..97bd2c568c --- /dev/null +++ b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_utils.mm b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_utils.mm new file mode 100644 index 0000000000..8eae7c6e2f --- /dev/null +++ b/examples/BLOCKS/BlocksSynth/JuceLibraryCode/juce_audio_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/BLOCKS/BlocksSynth/Source/Main.cpp b/examples/BLOCKS/BlocksSynth/Source/Main.cpp index 91d0d7b358..a0fcaab3fb 100644 --- a/examples/BLOCKS/BlocksSynth/Source/Main.cpp +++ b/examples/BLOCKS/BlocksSynth/Source/Main.cpp @@ -1,13 +1,3 @@ -/* - ============================================================================== - - This file was auto-generated! - - It contains the basic startup code for a Juce application. - - ============================================================================== -*/ - #include "../JuceLibraryCode/JuceHeader.h" #include "MainComponent.h" @@ -27,9 +17,8 @@ public: void shutdown() override { mainWindow = nullptr; } //============================================================================== - class MainWindow : public DocumentWindow + struct MainWindow : public DocumentWindow { - public: MainWindow (String name) : DocumentWindow (name, Colours::lightgrey, DocumentWindow::allButtons) @@ -40,6 +29,10 @@ public: centreWithSize (getWidth(), getHeight()); setResizable (true, true); setVisible (true); + + #if JUCE_IOS + setFullScreen (true); + #endif } void closeButtonPressed() override @@ -47,10 +40,8 @@ public: JUCEApplication::getInstance()->systemRequestedQuit(); } - private: TooltipWindow tooltipWindow; - //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) }; diff --git a/examples/BLOCKS/BlocksSynth/Source/MainComponent.h b/examples/BLOCKS/BlocksSynth/Source/MainComponent.h index 415c73629c..41d8fe2931 100644 --- a/examples/BLOCKS/BlocksSynth/Source/MainComponent.h +++ b/examples/BLOCKS/BlocksSynth/Source/MainComponent.h @@ -1,10 +1,11 @@ - #ifndef MAINCOMPONENT_H_INCLUDED #define MAINCOMPONENT_H_INCLUDED #include "../JuceLibraryCode/JuceHeader.h" #include "Audio.h" +#include "WaveshapeProgram.h" +//============================================================================== /** A struct that handles the setup and layout of the DrumPadGridProgram */ @@ -41,7 +42,7 @@ struct SynthGrid } } - int getNoteNumberForPad (int x, int y) + int getNoteNumberForPad (int x, int y) const { int xIndex = x / 3; int yIndex = y / 3; @@ -55,15 +56,16 @@ struct SynthGrid Array gridFillArray; Colour baseGridColour = Colours::green; - Colour touchColour = Colours::cyan; + Colour touchColour = Colours::red; Array tonics = { 4, 12, 20 }; - Array notes = { 1, 3, 6, 7, 9, 11, 14, 15, 17, 19, 22, 24 }; + Array notes = { 1, 3, 6, 7, 9, 11, 14, 15, 17, 19, 22, 24 }; //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SynthGrid) }; +//============================================================================== /** The main component */ @@ -71,17 +73,24 @@ class MainComponent : public Component, public TopologySource::Listener, private TouchSurface::Listener, private ControlButton::Listener, + #if JUCE_IOS + private Button::Listener, + #endif private Timer { public: - MainComponent() : layout (5, 5) + MainComponent() { setSize (600, 400); // Register MainContentComponent as a listener to the PhysicalTopologySource object topologySource.addListener (this); - generateWaveshapes(); + #if JUCE_IOS + connectButton.setButtonText ("Connect"); + connectButton.addListener (this); + addAndMakeVisible (connectButton); + #endif }; ~MainComponent() @@ -93,10 +102,16 @@ public: void paint (Graphics& g) override { g.fillAll (Colours::lightgrey); - g.drawText ("Connect a Lightpad Block to play.", getLocalBounds(), Justification::centred, false); + g.drawText ("Connect a Lightpad Block to play.", + getLocalBounds(), Justification::centred, false); } - void resized() override {} + void resized() override + { + #if JUCE_IOS + connectButton.setBounds (getRight() - 100, 20, 80, 30); + #endif + } /** Overridden from TopologySource::Listener, called when the topology changes */ void topologyChanged() override @@ -106,7 +121,7 @@ public: detachActiveBlock(); // Get the array of currently connected Block objects from the PhysicalTopologySource - Block::Array blocks = topologySource.getCurrentTopology().blocks; + auto blocks = topologySource.getCurrentTopology().blocks; // Iterate over the array of Block objects for (auto b : blocks) @@ -143,13 +158,18 @@ private: /** Overridden from TouchSurface::Listener. Called when a Touch is received on the Lightpad */ void touchChanged (TouchSurface&, const TouchSurface::Touch& touch) override { - if (currentMode == waveformSelectionMode && touch.isTouchStart) + if (currentMode == waveformSelectionMode && touch.isTouchStart && allowTouch) { // Change the displayed waveshape to the next one ++waveshapeMode; if (waveshapeMode > 3) waveshapeMode = 0; + + waveshapeProgram->setWaveshapeType (static_cast (waveshapeMode)); + + allowTouch = false; + startTimer (250); } else if (currentMode == playMode) { @@ -180,10 +200,11 @@ private: if (touchMessageTimesInLastSecond.size() > maxNumTouchMessagesPerSecond / 3) return; - gridProgram->sendTouch (touch.x, touch.y, touch.z, layout.touchColour); + gridProgram->sendTouch (touch.x, touch.y, touch.z, + layout.touchColour); // Send pitch change and pressure values to the Audio class - audio.pitchChange (midiChannel, (touch.x - touch.startX) / static_cast (activeBlock->getWidth())); + audio.pitchChange (midiChannel, (touch.x - touch.startX) / activeBlock->getWidth()); audio.pressureChange (midiChannel, touch.z); } @@ -210,55 +231,13 @@ private: setLEDProgram (activeBlock->getLEDGrid()); } - void timerCallback() override + #if JUCE_IOS + void buttonClicked (Button* b) override { - // Clear all LEDs - for (uint32 x = 0; x < 15; ++x) - for (uint32 y = 0; y < 15; ++y) - bitmapProgram->setLED (x, y, Colours::black); - - // Determine which array to use based on waveshapeMode - int* waveshapeY = nullptr; - switch (waveshapeMode) - { - case 0: - waveshapeY = sineWaveY; - break; - case 1: - waveshapeY = squareWaveY; - break; - case 2: - waveshapeY = sawWaveY; - break; - case 3: - waveshapeY = triangleWaveY; - break; - default: - break; - } - - // For each X co-ordinate - for (uint32 x = 0; x < 15; ++x) - { - // Find the corresponding Y co-ordinate for the current waveshape - int y = waveshapeY[x + yOffset]; - - // Draw a vertical line if flag is set or draw an LED circle - if (y == -1) - { - for (uint32 i = 0; i < 15; ++i) - drawLEDCircle (x, i); - } - else if (x % 2 == 0) - { - drawLEDCircle (x, static_cast (y)); - } - } - - // Increment the offset to draw a 'moving' waveshape - if (++yOffset == 30) - yOffset -= 30; + if (b == &connectButton) + BluetoothMidiDevicePairingDialogue::open(); } + #endif /** Clears the old touch times */ void clearOldTouchTimes (const Time now) @@ -285,20 +264,18 @@ private: { if (currentMode == waveformSelectionMode) { - // Create a new BitmapLEDProgram for the LEDGrid - bitmapProgram = new BitmapLEDProgram (*grid); + // Create a new WaveshapeProgram for the LEDGrid + waveshapeProgram = new WaveshapeProgram (*grid); // Set the LEDGrid program - grid->setProgram (bitmapProgram); + grid->setProgram (waveshapeProgram); - // Redraw at 25Hz - startTimerHz (25); + // Initialise the program + waveshapeProgram->setWaveshapeType (static_cast (waveshapeMode)); + waveshapeProgram->generateWaveshapes(); } else if (currentMode == playMode) { - // Stop the redraw timer - stopTimer(); - // Create a new DrumPadGridProgram for the LEDGrid gridProgram = new DrumPadGridProgram (*grid); @@ -306,115 +283,47 @@ private: grid->setProgram (gridProgram); // Setup the grid layout - gridProgram->setGridFills (layout.numColumns, layout.numRows, layout.gridFillArray); + gridProgram->setGridFills (layout.numColumns, + layout.numRows, + layout.gridFillArray); } } - /** Generates the X and Y co-ordiantes for 1.5 cycles of each of the 4 waveshapes and stores them in arrays */ - void generateWaveshapes() - { - // Set current phase position to 0 and work out the required phase increment for one cycle - double currentPhase = 0.0; - double phaseInc = (1.0 / 30.0) * (2.0 * double_Pi); + /** Stops touch events from triggering multiple waveshape mode changes */ + void timerCallback() override { allowTouch = true; } - for (int x = 0; x < 30; ++x) - { - // Scale and offset the sin output to the Lightpad display - double sineOutput = sin (currentPhase); - sineWaveY[x] = roundToInt ((sineOutput * 6.5) + 7.0); - - // Square wave output, set flags for when vertical line should be drawn - if (currentPhase < double_Pi) - { - if (x == 0) - squareWaveY[x] = -1; - else - squareWaveY[x] = 1; - } - else - { - if (squareWaveY[x - 1] == 1) - squareWaveY[x - 1] = -1; - - squareWaveY[x] = 13; - } - - // Saw wave output, set flags for when vertical line should be drawn - sawWaveY[x] = 14 - ((x / 2) % 15); - if (sawWaveY[x] == 0 && sawWaveY[x - 1] != -1) - sawWaveY[x] = -1; - - // Triangle wave output - triangleWaveY[x] = x < 15 ? x : 14 - (x % 15); - - // Add half cycle to end of array so it loops correctly - if (x < 15) - { - sineWaveY[x + 30] = sineWaveY[x]; - squareWaveY[x + 30] = squareWaveY[x]; - sawWaveY[x + 30] = sawWaveY[x]; - triangleWaveY[x + 30] = triangleWaveY[x]; - } - - // Increment the current phase - currentPhase += phaseInc; - } - } - - /** Draws a 'circle' on the Lightpad around an origin co-ordinate */ - void drawLEDCircle (uint32 x0, uint32 y0) - { - bitmapProgram->setLED (x0, y0, waveshapeColour); - - const uint32 minLedIndex = 0; - const uint32 maxLedIndex = 14; - - bitmapProgram->setLED (jmin (x0 + 1, maxLedIndex), y0, waveshapeColour.withBrightness (0.4f)); - bitmapProgram->setLED (jmax (x0 - 1, minLedIndex), y0, waveshapeColour.withBrightness (0.4f)); - bitmapProgram->setLED (x0, jmin (y0 + 1, maxLedIndex), waveshapeColour.withBrightness (0.4f)); - bitmapProgram->setLED (x0, jmax (y0 - 1, minLedIndex), waveshapeColour.withBrightness (0.4f)); - - bitmapProgram->setLED (jmin (x0 + 1, maxLedIndex), jmin (y0 + 1, maxLedIndex), waveshapeColour.withBrightness (0.1f)); - bitmapProgram->setLED (jmin (x0 + 1, maxLedIndex), jmax (y0 - 1, minLedIndex), waveshapeColour.withBrightness (0.1f)); - bitmapProgram->setLED (jmax (x0 - 1, minLedIndex), jmin (y0 + 1, maxLedIndex), waveshapeColour.withBrightness (0.1f)); - bitmapProgram->setLED (jmax (x0 - 1, minLedIndex), jmax (y0 - 1, minLedIndex), waveshapeColour.withBrightness (0.1f)); - } - - /** - enum for the two modes - */ enum BlocksSynthMode { waveformSelectionMode = 0, playMode }; + BlocksSynthMode currentMode = playMode; //============================================================================== Audio audio; - DrumPadGridProgram* gridProgram; - BitmapLEDProgram* bitmapProgram; + DrumPadGridProgram* gridProgram = nullptr; + WaveshapeProgram* waveshapeProgram = nullptr; - SynthGrid layout; + SynthGrid layout { 5, 5 }; PhysicalTopologySource topologySource; Block::Ptr activeBlock; Array touchMessageTimesInLastSecond; - Colour waveshapeColour = Colours::red; - - int sineWaveY[45]; - int squareWaveY[45]; - int sawWaveY[45]; - int triangleWaveY[45]; - int waveshapeMode = 0; - uint32 yOffset = 0; float scaleX = 0.0; float scaleY = 0.0; + bool allowTouch = true; + + //============================================================================== + #if JUCE_IOS + TextButton connectButton; + #endif + //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent) }; diff --git a/examples/BLOCKS/BlocksSynth/Source/Oscillators.h b/examples/BLOCKS/BlocksSynth/Source/Oscillators.h index c7f70432ed..e5fcc205de 100644 --- a/examples/BLOCKS/BlocksSynth/Source/Oscillators.h +++ b/examples/BLOCKS/BlocksSynth/Source/Oscillators.h @@ -7,7 +7,7 @@ /** Base class for oscillators */ -class Oscillator : public SynthesiserVoice +class Oscillator : public SynthesiserVoice { public: Oscillator() @@ -16,10 +16,6 @@ public: phaseIncrement.reset (getSampleRate(), 0.1); } - virtual ~Oscillator() - { - } - void startNote (int midiNoteNumber, float velocity, SynthesiserSound*, int) override { frequency = MidiMessage::getMidiNoteInHertz (midiNoteNumber); @@ -57,7 +53,7 @@ public: void renderNextBlock (AudioSampleBuffer& outputBuffer, int startSample, int numSamples) override { - while(--numSamples >= 0) + while (--numSamples >= 0) { double output = getSample() * amplitude.getNextValue(); @@ -82,22 +78,20 @@ public: } /** Subclasses should override this to say whether they can play the given sound */ - virtual bool canPlaySound (SynthesiserSound* sound) override = 0; + virtual bool canPlaySound (SynthesiserSound*) override = 0; /** Subclasses should override this to render a waveshape */ virtual double renderWaveShape (const double currentPhase) = 0; private: - LinearSmoothedValue amplitude; - LinearSmoothedValue phaseIncrement; + LinearSmoothedValue amplitude, phaseIncrement; - double frequency; - double phasePos = 0.0f; - double sampleRate = 44100.0; + double frequency = 0; + double phasePos = 0.0f; + double sampleRate = 44100.0; - int initialNote; - double maxFreq; - double minFreq; + int initialNote = 0; + double maxFreq = 0, minFreq = 0; //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Oscillator) diff --git a/examples/BLOCKS/BlocksSynth/Source/WaveshapeProgram.h b/examples/BLOCKS/BlocksSynth/Source/WaveshapeProgram.h new file mode 100644 index 0000000000..7dc904fccd --- /dev/null +++ b/examples/BLOCKS/BlocksSynth/Source/WaveshapeProgram.h @@ -0,0 +1,183 @@ +#ifndef WAVESHAPEPROGRAM_H_INCLUDED +#define WAVESHAPEPROGRAM_H_INCLUDED + +/** + A Program to draw moving waveshapes onto the LEDGrid +*/ +class WaveshapeProgram : public LEDGrid::Program +{ +public: + WaveshapeProgram (LEDGrid& lg) : Program (lg) {} + + /** Sets the waveshape type to display on the grid */ + void setWaveshapeType (uint8 type) + { + ledGrid.setDataByte (0, type); + } + + /** Generates the Y coordinates for 1.5 cycles of each of the four waveshapes and stores them + at the correct offsets in the shared data heap. */ + void generateWaveshapes() + { + uint8 sineWaveY[45]; + uint8 squareWaveY[45]; + uint8 sawWaveY[45]; + uint8 triangleWaveY[45]; + + // Set current phase position to 0 and work out the required phase increment for one cycle + double currentPhase = 0.0; + double phaseInc = (1.0 / 30.0) * (2.0 * double_Pi); + + for (int x = 0; x < 30; ++x) + { + // Scale and offset the sin output to the Lightpad display + double sineOutput = sin (currentPhase); + sineWaveY[x] = static_cast (roundToInt ((sineOutput * 6.5) + 7.0)); + + // Square wave output, set flags for when vertical line should be drawn + if (currentPhase < double_Pi) + { + if (x == 0) + squareWaveY[x] = 255; + else + squareWaveY[x] = 1; + } + else + { + if (squareWaveY[x - 1] == 1) + squareWaveY[x - 1] = 255; + + squareWaveY[x] = 13; + } + + // Saw wave output, set flags for when vertical line should be drawn + sawWaveY[x] = 14 - ((x / 2) % 15); + + if (sawWaveY[x] == 0 && sawWaveY[x - 1] != 255) + sawWaveY[x] = 255; + + // Triangle wave output + triangleWaveY[x] = x < 15 ? static_cast (x) : static_cast (14 - (x % 15)); + + // Add half cycle to end of array so it loops correctly + if (x < 15) + { + sineWaveY[x + 30] = sineWaveY[x]; + squareWaveY[x + 30] = squareWaveY[x]; + sawWaveY[x + 30] = sawWaveY[x]; + triangleWaveY[x + 30] = triangleWaveY[x]; + } + + // Increment the current phase + currentPhase += phaseInc; + } + + // Store the values for each of the waveshapes at the correct offsets in the shared data heap + for (uint8 i = 0; i < 45; ++i) + { + ledGrid.setDataByte (sineWaveOffset + i, sineWaveY[i]); + ledGrid.setDataByte (squareWaveOffset + i, squareWaveY[i]); + ledGrid.setDataByte (sawWaveOffset + i, sawWaveY[i]); + ledGrid.setDataByte (triangleWaveOffset + i, triangleWaveY[i]); + } + } + + uint32 getHeapSize() override + { + return totalDataSize; + } + + String getLittleFootProgram() override + { + return R"littlefoot( + + int yOffset; + + int min (int a, int b) + { + if (a > b) + return b; + + return a; + } + + int max (int a, int b) + { + if (a > b) + return a; + + return b; + } + + void drawLEDCircle (int x0, int y0) + { + setLED (x0, y0, 0xffff0000); + + int minLedIndex = 0; + int maxLedIndex = 14; + + setLED (min (x0 + 1, maxLedIndex), y0, 0xff660000); + setLED (max (x0 - 1, minLedIndex), y0, 0xff660000); + setLED (x0, min (y0 + 1, maxLedIndex), 0xff660000); + setLED (x0, max (y0 - 1, minLedIndex), 0xff660000); + + setLED (min (x0 + 1, maxLedIndex), min (y0 + 1, maxLedIndex), 0xff1a0000); + setLED (min (x0 + 1, maxLedIndex), max (y0 - 1, minLedIndex), 0xff1a0000); + setLED (max (x0 - 1, minLedIndex), min (y0 + 1, maxLedIndex), 0xff1a0000); + setLED (max (x0 - 1, minLedIndex), max (y0 - 1, minLedIndex), 0xff1a0000); + } + + void repaint() + { + // Clear LEDs to black + fillRect (0xff000000, 0, 0, 15, 15); + + // Get the waveshape type + int type = getHeapByte (0); + + // Calculate the heap offset + int offset = 1 + (type * 45) + yOffset; + + for (int x = 0; x < 15; ++x) + { + // Get the corresponding Y coordinate for each X coordinate + int y = getHeapByte (offset + x); + + // Draw a vertical line if flag is set or draw an LED circle + if (y == 255) + { + for (int i = 0; i < 15; ++i) + drawLEDCircle (x, i); + } + else if (x % 2 == 0) + { + drawLEDCircle (x, y); + } + } + + // Increment and wrap the Y offset to draw a 'moving' waveshape + if (++yOffset == 30) + yOffset = 0; + } + + )littlefoot"; + } + +private: + //============================================================================== + /** Shared data heap is laid out as below. There is room for the waveshape type and + the Y coordinates for 1.5 cycles of each of the four waveshapes. */ + + static constexpr uint32 waveshapeType = 0; // 1 byte + static constexpr uint32 sineWaveOffset = 1; // 1 byte * 45 + static constexpr uint32 squareWaveOffset = 46; // 1 byte * 45 + static constexpr uint32 sawWaveOffset = 91; // 1 byte * 45 + static constexpr uint32 triangleWaveOffset = 136; // 1 byte * 45 + + static constexpr uint32 totalDataSize = triangleWaveOffset + 45; + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WaveshapeProgram) +}; + +#endif // WAVESHAPEPROGRAM_H_INCLUDED diff --git a/examples/BouncingBallWavetableDemo/BouncingBallWavetableDemo.jucer b/examples/BouncingBallWavetableDemo/BouncingBallWavetableDemo.jucer index 434d69c7bf..8d288c5613 100644 --- a/examples/BouncingBallWavetableDemo/BouncingBallWavetableDemo.jucer +++ b/examples/BouncingBallWavetableDemo/BouncingBallWavetableDemo.jucer @@ -2,7 +2,7 @@ + includeBinaryInAppConfig="1" jucerVersion="4.3.1"> /dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -88,7 +95,7 @@ check-pkg-config: clean: @echo Cleaning BouncingBallWavetableDemo - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping BouncingBallWavetableDemo @@ -97,76 +104,76 @@ strip: $(JUCE_OBJDIR)/MainComponent_a6ffb4a5.o: ../../Source/MainComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MainComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj b/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj index 2ecb79a4e0..140e0aaef6 100644 --- a/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj +++ b/examples/BouncingBallWavetableDemo/Builds/MacOSX/BouncingBallWavetableDemo.xcodeproj/project.pbxproj @@ -437,6 +437,8 @@ 5A83E19D2911E9CBB0340703 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; 5A933F2B1797016553D30F75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; 5AA59F8D6F93AF55E8D70792 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5ADDF6C7FE20ECC48049A4DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5B3742415D0C3C57ADCA54D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 5B7024081D37B30B5F0B8022 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; 5C4784D160388C542B4D1EC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; 5CA96039BD69F9BA6B3192E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; @@ -815,6 +817,7 @@ B0B2870F462D9A908140C85F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; B0BE2E18C56E00BAF67C6E77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "residue_44p51.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/residue_44p51.h"; sourceTree = "SOURCE_ROOT"; }; B0E9E2A6AC5D7FB2E405C29B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B10A657A18812AC13C7029F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; B11AE64B62AF8E18D86F97A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; B1583CD65532475FF0FEDEEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jccoefct.c"; sourceTree = "SOURCE_ROOT"; }; B17EFF34EB8FF31F4DCB0F82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1633,6 +1636,7 @@ 02C6AD1B6DAC532CA72C1E7F, 3CDA2AE415D9137129F2E63D, AAD1B1AD934454FA92B1504F, + 5ADDF6C7FE20ECC48049A4DB, EA35A1AE6B7EAB3B6D61098B, 5606CF9E0119808651438313, D08663F421676DDD1612ED9B, @@ -1747,7 +1751,9 @@ D0A385C2895F5851923BC173, 764EECA92D7E4A49C76FA6CF, 8A1FD53BA9D264108FA07B80, - 9CCA40506AA8A110F213EDC6, ); name = network; sourceTree = ""; }; + 9CCA40506AA8A110F213EDC6, + B10A657A18812AC13C7029F2, + 5B3742415D0C3C57ADCA54D9, ); name = network; sourceTree = ""; }; 12991357F0042CADE801E9CF = {isa = PBXGroup; children = ( B36608DDBC3E0E6A7568DBAB, 96972E69DE74C0C2D9512D56, diff --git a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj index 62e8afda82..3289d8262d 100644 --- a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj +++ b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 WavetableBouncingEditor + .exe true WavetableBouncingEditor + .exe true v120 @@ -560,6 +562,9 @@ true + + true + true @@ -695,6 +700,9 @@ true + + true + true @@ -1936,6 +1944,7 @@ + diff --git a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj.filters b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj.filters index c35f8bc287..548da2d290 100644 --- a/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj.filters +++ b/examples/BouncingBallWavetableDemo/Builds/VisualStudio2013/BouncingBallWavetableDemo.vcxproj.filters @@ -817,6 +817,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -967,6 +970,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2829,6 +2835,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj b/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj index 8b3356948c..f571c0ffdc 100644 --- a/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj +++ b/examples/ComponentTutorialExample/Builds/MacOSX/ComponentTutorialExample.xcodeproj/project.pbxproj @@ -115,6 +115,7 @@ 2046EE2F238A501690806F25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ToggleLightComponent.h; path = ../../Source/ToggleLightComponent.h; sourceTree = "SOURCE_ROOT"; }; 2072DEFC75F338D907B077D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; 2205447329487F1D5F4B1F82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + 22A60556B81659542619F90F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 2328AE195EE96739592F77E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; 23DC725C20C9095CD53D65BC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 23E2008B1E0281431E22BF29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; @@ -221,6 +222,7 @@ 4451A2866EA224F1CDA51598 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; 446E81F01BF3462388C8C9EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; 4475821D1F79990CD1D92ACE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 453D3849A0EEC74056645878 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 454054374D6980D2CBEA4CB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; 456C56C896ECCDFE8C8E5CA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 45A2D90F6DD432F2250421DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; @@ -703,6 +705,7 @@ D59B6942FDD2642025761C5D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; D5E0E6D45EF3B2084CDB9B3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; D6CD400F55B95272D1F181AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RuntimePermissions.h"; path = "../../../../modules/juce_core/misc/juce_RuntimePermissions.h"; sourceTree = "SOURCE_ROOT"; }; + D6EFAFB893CB5422F044CEBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; D77971530C1453A08AE50F07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; D7ABAE7176AC9AC92F8601F8 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; D7B402E2C5C291CA939283A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -815,6 +818,7 @@ 0C1214958F622A0566A8A7AE, 5194143614FFC2ACAA9AA65F, 92CD087050372D1A2388F537, + D6EFAFB893CB5422F044CEBA, DA399EF6644D18816CCB7A18, CD9C4E56AACC240BBCDD7BDD, 9E125145B6A81E9432EF7F76, @@ -929,7 +933,9 @@ 5DA4197175128C3C89A3E08B, CFCFC70957F4DD653811999F, 89E53FD2ACB49E1AA152EBC2, - 1FF2AE7CAF095DB8217FA194, ); name = network; sourceTree = ""; }; + 1FF2AE7CAF095DB8217FA194, + 22A60556B81659542619F90F, + 453D3849A0EEC74056645878, ); name = network; sourceTree = ""; }; 381DF8BBC822C0B989B99208 = {isa = PBXGroup; children = ( FB55E4055FFC9161143DDDFF, AA518347E2E68E414FF265CD, diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj b/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj index f5d2230060..37b563bcdb 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 ComponentTutorialExample + .exe true ComponentTutorialExample + .exe true @@ -131,6 +133,9 @@ true + + true + true @@ -266,6 +271,9 @@ true + + true + true @@ -1268,6 +1276,7 @@ + diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj.filters b/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj.filters index dc19cbc3d2..af73a2ad15 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj.filters +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2010/ComponentTutorialExample.vcxproj.filters @@ -223,6 +223,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -373,6 +376,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1584,6 +1590,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj b/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj index 6659ca5b9a..1071ccfd05 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 ComponentTutorialExample + .exe true ComponentTutorialExample + .exe true v110 @@ -137,6 +139,9 @@ true + + true + true @@ -272,6 +277,9 @@ true + + true + true @@ -1274,6 +1282,7 @@ + diff --git a/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj.filters b/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj.filters index dc19cbc3d2..af73a2ad15 100644 --- a/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj.filters +++ b/examples/ComponentTutorialExample/Builds/VisualStudio2012/ComponentTutorialExample.vcxproj.filters @@ -223,6 +223,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -373,6 +376,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1584,6 +1590,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/ComponentTutorialExample/ComponentTutorialExample.jucer b/examples/ComponentTutorialExample/ComponentTutorialExample.jucer index 78375769b6..ed70104033 100644 --- a/examples/ComponentTutorialExample/ComponentTutorialExample.jucer +++ b/examples/ComponentTutorialExample/ComponentTutorialExample.jucer @@ -2,7 +2,7 @@ + includeBinaryInAppConfig="1" jucerVersion="4.3.1"> /dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -130,7 +137,7 @@ check-pkg-config: clean: @echo Cleaning JuceDemo - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping JuceDemo @@ -139,286 +146,286 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MainWindow_499ac812.o: ../../Source/MainWindow.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MainWindow.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/IntroScreen_73347059.o: ../../Source/IntroScreen.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling IntroScreen.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/AnimationDemo_9fc7e4e9.o: ../../Source/Demos/AnimationDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling AnimationDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/AudioLatencyDemo_78d49233.o: ../../Source/Demos/AudioLatencyDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling AudioLatencyDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/AudioPlaybackDemo_ea12adf6.o: ../../Source/Demos/AudioPlaybackDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling AudioPlaybackDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/AudioRecordingDemo_435914e6.o: ../../Source/Demos/AudioRecordingDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling AudioRecordingDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/AudioSettingsDemo_6d710bfe.o: ../../Source/Demos/AudioSettingsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling AudioSettingsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/AudioSynthesiserDemo_1b3666f6.o: ../../Source/Demos/AudioSynthesiserDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling AudioSynthesiserDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/Box2DDemo_51053c42.o: ../../Source/Demos/Box2DDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Box2DDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/CameraDemo_a10f7e50.o: ../../Source/Demos/CameraDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling CameraDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/ChildProcessDemo_2c2b949e.o: ../../Source/Demos/ChildProcessDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling ChildProcessDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/CodeEditorDemo_d5c17a65.o: ../../Source/Demos/CodeEditorDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling CodeEditorDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/ComponentTransformsDemo_377f7889.o: ../../Source/Demos/ComponentTransformsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling ComponentTransformsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/CryptographyDemo_232d46d7.o: ../../Source/Demos/CryptographyDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling CryptographyDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/DialogsDemo_19d585d0.o: ../../Source/Demos/DialogsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling DialogsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/FlexBoxDemo_e4f3d9b7.o: ../../Source/Demos/FlexBoxDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling FlexBoxDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/FontsDemo_6da1e5e9.o: ../../Source/Demos/FontsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling FontsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/GraphicsDemo_85142ef6.o: ../../Source/Demos/GraphicsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling GraphicsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/ImagesDemo_ecf13aa3.o: ../../Source/Demos/ImagesDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling ImagesDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/JavaScript_d6e42eb5.o: ../../Source/Demos/JavaScript.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling JavaScript.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/KeyMappingsDemo_cf05c709.o: ../../Source/Demos/KeyMappingsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling KeyMappingsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/LiveConstantDemo_e3b18a9b.o: ../../Source/Demos/LiveConstantDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling LiveConstantDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/LookAndFeelDemo_25c558a3.o: ../../Source/Demos/LookAndFeelDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling LookAndFeelDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MDIDemo_c476c2d7.o: ../../Source/Demos/MDIDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MDIDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MidiDemo_75ebc30c.o: ../../Source/Demos/MidiDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MidiDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MultithreadingDemo_ff566eaa.o: ../../Source/Demos/MultithreadingDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MultithreadingDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MultiTouch_595f3a2e.o: ../../Source/Demos/MultiTouch.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MultiTouch.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/NetworkingDemo_fbd1b19f.o: ../../Source/Demos/NetworkingDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling NetworkingDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/OpenGLDemo_fdac55da.o: ../../Source/Demos/OpenGLDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling OpenGLDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/OpenGLDemo2D_48eeadec.o: ../../Source/Demos/OpenGLDemo2D.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling OpenGLDemo2D.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/PropertiesDemo_8ff1a8de.o: ../../Source/Demos/PropertiesDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling PropertiesDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/SystemInfoDemo_984acd28.o: ../../Source/Demos/SystemInfoDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling SystemInfoDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/TimersAndEventsDemo_f2656547.o: ../../Source/Demos/TimersAndEventsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling TimersAndEventsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/UnitTestsDemo_5c21762.o: ../../Source/Demos/UnitTestsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling UnitTestsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/ValueTreesDemo_9657d84f.o: ../../Source/Demos/ValueTreesDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling ValueTreesDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/VideoDemo_b55a1560.o: ../../Source/Demos/VideoDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling VideoDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/WebBrowserDemo_3df2dbdf.o: ../../Source/Demos/WebBrowserDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling WebBrowserDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/WidgetsDemo_fb0454.o: ../../Source/Demos/WidgetsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling WidgetsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/WindowsDemo_e8cfa428.o: ../../Source/Demos/WindowsDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling WindowsDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/XMLandJSONDemo_5bc88df3.o: ../../Source/Demos/XMLandJSONDemo.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling XMLandJSONDemo.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling BinaryData.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_box2d_95719d14.o: ../../JuceLibraryCode/juce_box2d.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_box2d.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj b/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj index 9ae25d4865..3a9ee08da5 100644 --- a/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj +++ b/examples/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj @@ -94,6 +94,7 @@ 02659911BD886D2E8431B912 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; 02ABF8C447E1A47845F6027D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; 02F0BF69062E8D9583F13C83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02F56486F8C6CC64CCF96A24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 030B047C95BEA80469F28E35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2EdgeAndCircleContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2EdgeAndCircleContact.h"; sourceTree = "SOURCE_ROOT"; }; 033BE48C56ED09055876AFB9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 0349FEE5DA18067918536934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -416,6 +417,7 @@ 3B61B715F29A0AEAEF73CCBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; 3BC7A4DF55FD436E8C4D190B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BCC9E4DFC3910F668DA3FF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BE38D79FE135715685D1AAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BF94F93AE8A8E9AFA5FDEC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; 3BFEBBE9B8185F65D69A1721 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C169AF805125BDB30041647 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1242,6 +1244,7 @@ DAF2C8E641253779B6DFF139 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; DAFB19E49A6221854341BE2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; DB333E69879020687C4DEE40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = "SOURCE_ROOT"; }; + DB4F93F7AC744AEB619ABE42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; DB748B0D9227F5345683CF7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; DB8FAF091C9E78AE5F64701F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; DBA2AA024D68F286B07E32AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; @@ -2038,6 +2041,7 @@ ADDA92448B0EC5EC1C6D5A2C, 69249A7E30512BBF13CB8A09, 7761FFBFAC88B7157D65EE1F, + 3BE38D79FE135715685D1AAF, C92A35B9676A81157B54284A, 9A4190B5B7E788B732637F2E, D0A84ED14FC2F7A143679258, @@ -2152,7 +2156,9 @@ CD9B8C96642C7F691FCB3EC4, 6EA8B0940C4486B9F03BA19C, D61BA88D3AC9556266FE4368, - 24E2AF695F11B9BAEB8FBE3D, ); name = network; sourceTree = ""; }; + 24E2AF695F11B9BAEB8FBE3D, + DB4F93F7AC744AEB619ABE42, + 02F56486F8C6CC64CCF96A24, ); name = network; sourceTree = ""; }; 32C5ED6A8EEB53DF786EA273 = {isa = PBXGroup; children = ( 945E090A8DE2E776F7033143, 9CED8F32B3718A90481EEDE6, diff --git a/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj b/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj index 9911fbdb73..633f13df54 100644 --- a/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj +++ b/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 JuceDemo + .exe true JuceDemo + .exe true @@ -734,6 +736,9 @@ true + + true + true @@ -869,6 +874,9 @@ true + + true + true @@ -2197,6 +2205,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters b/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters index 5679cc7aaa..cf838b6ab2 100644 --- a/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters @@ -1126,6 +1126,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1276,6 +1279,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3342,6 +3348,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj b/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj index f20720c219..ebcc2531cf 100644 --- a/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj +++ b/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 JuceDemo + .exe true JuceDemo + .exe true v110 @@ -740,6 +742,9 @@ true + + true + true @@ -875,6 +880,9 @@ true + + true + true @@ -2203,6 +2211,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters b/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters index 5679cc7aaa..cf838b6ab2 100644 --- a/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters @@ -1126,6 +1126,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1276,6 +1279,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3342,6 +3348,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj b/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj index 6565c4d288..9daf6900b6 100644 --- a/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj +++ b/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 JuceDemo + .exe true JuceDemo + .exe true v120 @@ -740,6 +742,9 @@ true + + true + true @@ -875,6 +880,9 @@ true + + true + true @@ -2203,6 +2211,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters b/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters index d33c481bdc..c0288ab2dd 100644 --- a/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters @@ -1126,6 +1126,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1276,6 +1279,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3342,6 +3348,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj b/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj index 07df1f63ac..cad2350c61 100644 --- a/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj +++ b/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 JuceDemo + .exe true JuceDemo + .exe true v140 @@ -740,6 +742,9 @@ true + + true + true @@ -875,6 +880,9 @@ true + + true + true @@ -2203,6 +2211,7 @@ + diff --git a/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj.filters b/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj.filters index d4404b7af9..acada24030 100644 --- a/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj.filters +++ b/examples/Demo/Builds/VisualStudio2015/JuceDemo.vcxproj.filters @@ -1126,6 +1126,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1276,6 +1279,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3342,6 +3348,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/Demo/Builds/iOS/Info-App.plist b/examples/Demo/Builds/iOS/Info-App.plist index 6aa71d6b65..bb70315700 100644 --- a/examples/Demo/Builds/iOS/Info-App.plist +++ b/examples/Demo/Builds/iOS/Info-App.plist @@ -10,6 +10,8 @@ LSRequiresIPhoneOS + NSMicrophoneUsageDescription + This app requires microphone input. UIViewControllerBasedStatusBarAppearance CFBundleExecutable diff --git a/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj b/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj index 5821ba3b50..dbccbb0572 100644 --- a/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj +++ b/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj @@ -93,6 +93,7 @@ 02659911BD886D2E8431B912 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; 02ABF8C447E1A47845F6027D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; 02F0BF69062E8D9583F13C83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 02F56486F8C6CC64CCF96A24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 030B047C95BEA80469F28E35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = b2EdgeAndCircleContact.h; path = "../../../../modules/juce_box2d/box2d/Dynamics/Contacts/b2EdgeAndCircleContact.h"; sourceTree = "SOURCE_ROOT"; }; 033BE48C56ED09055876AFB9 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 0349FEE5DA18067918536934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -414,6 +415,7 @@ 3B61B715F29A0AEAEF73CCBA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; 3BC7A4DF55FD436E8C4D190B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BCC9E4DFC3910F668DA3FF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BE38D79FE135715685D1AAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BF94F93AE8A8E9AFA5FDEC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../JuceLibraryCode/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; 3BFEBBE9B8185F65D69A1721 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C169AF805125BDB30041647 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1238,6 +1240,7 @@ DAF2C8E641253779B6DFF139 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; DAFB19E49A6221854341BE2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; DB333E69879020687C4DEE40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h"; sourceTree = "SOURCE_ROOT"; }; + DB4F93F7AC744AEB619ABE42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; DB748B0D9227F5345683CF7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; DB8FAF091C9E78AE5F64701F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; DBA2AA024D68F286B07E32AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; @@ -2036,6 +2039,7 @@ ADDA92448B0EC5EC1C6D5A2C, 69249A7E30512BBF13CB8A09, 7761FFBFAC88B7157D65EE1F, + 3BE38D79FE135715685D1AAF, C92A35B9676A81157B54284A, 9A4190B5B7E788B732637F2E, D0A84ED14FC2F7A143679258, @@ -2150,7 +2154,9 @@ CD9B8C96642C7F691FCB3EC4, 6EA8B0940C4486B9F03BA19C, D61BA88D3AC9556266FE4368, - 24E2AF695F11B9BAEB8FBE3D, ); name = network; sourceTree = ""; }; + 24E2AF695F11B9BAEB8FBE3D, + DB4F93F7AC744AEB619ABE42, + 02F56486F8C6CC64CCF96A24, ); name = network; sourceTree = ""; }; 32C5ED6A8EEB53DF786EA273 = {isa = PBXGroup; children = ( 945E090A8DE2E776F7033143, 9CED8F32B3718A90481EEDE6, diff --git a/examples/Demo/JuceDemo.jucer b/examples/Demo/JuceDemo.jucer index 4355e0f19f..238e5650e7 100644 --- a/examples/Demo/JuceDemo.jucer +++ b/examples/Demo/JuceDemo.jucer @@ -1,7 +1,7 @@ + customPList="<plist> <dict> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> </dict> </plist>" + microphonePermissionNeeded="1"> write (inputChannelData, numSamples); - // Create an AudioSampleBuffer to wrap our incomming data, note that this does no allocations or copies, it simply references our input data + // Create an AudioSampleBuffer to wrap our incoming data, note that this does no allocations or copies, it simply references our input data const AudioSampleBuffer buffer (const_cast (inputChannelData), thumbnail.getNumChannels(), numSamples); thumbnail.addBlock (nextSampleNum, buffer, 0, numSamples); nextSampleNum += numSamples; diff --git a/examples/Demo/Source/Demos/OpenGLDemo.cpp b/examples/Demo/Source/Demos/OpenGLDemo.cpp index af16b3eb16..382a7ef959 100644 --- a/examples/Demo/Source/Demos/OpenGLDemo.cpp +++ b/examples/Demo/Source/Demos/OpenGLDemo.cpp @@ -51,10 +51,10 @@ struct OpenGLDemoClasses { Attributes (OpenGLContext& openGLContext, OpenGLShaderProgram& shader) { - position = createAttribute (openGLContext, shader, "position"); - normal = createAttribute (openGLContext, shader, "normal"); - sourceColour = createAttribute (openGLContext, shader, "sourceColour"); - texureCoordIn = createAttribute (openGLContext, shader, "texureCoordIn"); + position = createAttribute (openGLContext, shader, "position"); + normal = createAttribute (openGLContext, shader, "normal"); + sourceColour = createAttribute (openGLContext, shader, "sourceColour"); + textureCoordIn = createAttribute (openGLContext, shader, "textureCoordIn"); } void enable (OpenGLContext& openGLContext) @@ -77,10 +77,10 @@ struct OpenGLDemoClasses openGLContext.extensions.glEnableVertexAttribArray (sourceColour->attributeID); } - if (texureCoordIn != nullptr) + if (textureCoordIn != nullptr) { - openGLContext.extensions.glVertexAttribPointer (texureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); - openGLContext.extensions.glEnableVertexAttribArray (texureCoordIn->attributeID); + openGLContext.extensions.glVertexAttribPointer (textureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); + openGLContext.extensions.glEnableVertexAttribArray (textureCoordIn->attributeID); } } @@ -89,10 +89,10 @@ struct OpenGLDemoClasses if (position != nullptr) openGLContext.extensions.glDisableVertexAttribArray (position->attributeID); if (normal != nullptr) openGLContext.extensions.glDisableVertexAttribArray (normal->attributeID); if (sourceColour != nullptr) openGLContext.extensions.glDisableVertexAttribArray (sourceColour->attributeID); - if (texureCoordIn != nullptr) openGLContext.extensions.glDisableVertexAttribArray (texureCoordIn->attributeID); + if (textureCoordIn != nullptr) openGLContext.extensions.glDisableVertexAttribArray (textureCoordIn->attributeID); } - ScopedPointer position, normal, sourceColour, texureCoordIn; + ScopedPointer position, normal, sourceColour, textureCoordIn; private: static OpenGLShaderProgram::Attribute* createAttribute (OpenGLContext& openGLContext, @@ -869,7 +869,7 @@ struct OpenGLDemoClasses "attribute vec4 position;\n" "attribute vec4 normal;\n" "attribute vec4 sourceColour;\n" - "attribute vec2 texureCoordIn;\n" + "attribute vec2 textureCoordIn;\n" "\n" "uniform mat4 projectionMatrix;\n" "uniform mat4 viewMatrix;\n" @@ -882,7 +882,7 @@ struct OpenGLDemoClasses "void main()\n" "{\n" " destinationColour = sourceColour;\n" - " textureCoordOut = texureCoordIn;\n" + " textureCoordOut = textureCoordIn;\n" "\n" " vec4 light = viewMatrix * lightPosition;\n" " lightIntensity = dot (light, normal);\n" @@ -922,7 +922,7 @@ struct OpenGLDemoClasses SHADER_DEMO_HEADER "attribute vec4 position;\n" "attribute vec4 sourceColour;\n" - "attribute vec2 texureCoordIn;\n" + "attribute vec2 textureCoordIn;\n" "\n" "uniform mat4 projectionMatrix;\n" "uniform mat4 viewMatrix;\n" @@ -933,7 +933,7 @@ struct OpenGLDemoClasses "void main()\n" "{\n" " destinationColour = sourceColour;\n" - " textureCoordOut = texureCoordIn;\n" + " textureCoordOut = textureCoordIn;\n" " gl_Position = projectionMatrix * viewMatrix * position;\n" "}\n", @@ -960,7 +960,7 @@ struct OpenGLDemoClasses SHADER_DEMO_HEADER "attribute vec4 position;\n" "attribute vec4 sourceColour;\n" - "attribute vec2 texureCoordIn;\n" + "attribute vec2 textureCoordIn;\n" "\n" "uniform mat4 projectionMatrix;\n" "uniform mat4 viewMatrix;\n" @@ -971,7 +971,7 @@ struct OpenGLDemoClasses "void main()\n" "{\n" " destinationColour = sourceColour;\n" - " textureCoordOut = texureCoordIn;\n" + " textureCoordOut = textureCoordIn;\n" " gl_Position = projectionMatrix * viewMatrix * position;\n" "}\n", @@ -996,7 +996,7 @@ struct OpenGLDemoClasses SHADER_DEMO_HEADER "attribute vec4 position;\n" "attribute vec4 sourceColour;\n" - "attribute vec2 texureCoordIn;\n" + "attribute vec2 textureCoordIn;\n" "\n" "uniform mat4 projectionMatrix;\n" "uniform mat4 viewMatrix;\n" @@ -1043,7 +1043,7 @@ struct OpenGLDemoClasses SHADER_DEMO_HEADER "attribute vec4 position;\n" - "attribute vec2 texureCoordIn;\n" + "attribute vec2 textureCoordIn;\n" "\n" "uniform mat4 projectionMatrix;\n" "uniform mat4 viewMatrix;\n" @@ -1052,7 +1052,7 @@ struct OpenGLDemoClasses "\n" "void main()\n" "{\n" - " textureCoordOut = texureCoordIn;\n" + " textureCoordOut = textureCoordIn;\n" " gl_Position = projectionMatrix * viewMatrix * position;\n" "}\n", diff --git a/examples/Demo/Source/MainWindow.cpp b/examples/Demo/Source/MainWindow.cpp index 0900af8c51..90795ffad8 100644 --- a/examples/Demo/Source/MainWindow.cpp +++ b/examples/Demo/Source/MainWindow.cpp @@ -559,13 +559,13 @@ AudioDeviceManager& MainAppWindow::getSharedAudioDeviceManager() if (sharedAudioDeviceManager == nullptr) { sharedAudioDeviceManager = new AudioDeviceManager(); - RuntimePermissions::request (RuntimePermissions::recordAudio, runtimPermissionsCallback); + RuntimePermissions::request (RuntimePermissions::recordAudio, runtimePermissionsCallback); } return *sharedAudioDeviceManager; } -void MainAppWindow::runtimPermissionsCallback (bool wasGranted) +void MainAppWindow::runtimePermissionsCallback (bool wasGranted) { int numInputChannels = wasGranted ? 2 : 0; sharedAudioDeviceManager->initialise (numInputChannels, 2, nullptr, true, String(), nullptr); diff --git a/examples/Demo/Source/MainWindow.h b/examples/Demo/Source/MainWindow.h index 5baa678f3c..21bde62df6 100644 --- a/examples/Demo/Source/MainWindow.h +++ b/examples/Demo/Source/MainWindow.h @@ -93,8 +93,7 @@ public: }; private: - - static void runtimPermissionsCallback (bool wasGranted); + static void runtimePermissionsCallback (bool wasGranted); ScopedPointer contentComponent; ScopedPointer taskbarIcon; diff --git a/examples/HelloWorld/Builds/Linux/Makefile b/examples/HelloWorld/Builds/Linux/Makefile index 9c09d22d56..049b505e8d 100644 --- a/examples/HelloWorld/Builds/Linux/Makefile +++ b/examples/HelloWorld/Builds/Linux/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := HelloWorld BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := HelloWorld BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -73,7 +80,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -81,7 +88,7 @@ check-pkg-config: clean: @echo Cleaning HelloWorld - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping HelloWorld @@ -90,41 +97,41 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MainComponent_a6ffb4a5.o: ../../Source/MainComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MainComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj b/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj index f2dc85f398..42a1316633 100644 --- a/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj +++ b/examples/HelloWorld/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj @@ -458,6 +458,7 @@ 9041FE725DC8818D8E686A3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; 90CFC8BC9D8A156A512D2A39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; 9132D1324A6D6D049C9B2FFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 91652481FA1915C6813B3BC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 918FA23368FDE2ECDDC1CD08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; 92DA7079019C276D5070DA7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; 932964B332CC31005CAE0FB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c"; sourceTree = "SOURCE_ROOT"; }; @@ -679,6 +680,7 @@ D735FA88C8465C02D4217A39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; D79A70561BC95BE42F900F2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c"; sourceTree = "SOURCE_ROOT"; }; D882D6E64CEFE8FFE435EF40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + D8F61141B8B28CE2D10E95B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DA64460418AFD14930104FEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; DA8CFA399CD27524DB69AD78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; DB57D9360A4FA63286A9E305 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -709,6 +711,7 @@ E2C9F5675F700544E40B46C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; E31FA0995B22027AEF89904B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; E3273B696D8398C56B0F1A40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + E342962A1FBE034B61949F7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; E3AC1627011B7DC669A8FAAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; E41E6A613E45920223A133F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; E422C589FA0328C35A0549FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; @@ -811,6 +814,7 @@ 6FD7AFA0B4E7F4E848E33737, B5D117435CCB80BF33D4AD00, 95FFFE6A27ACBB4E28739E88, + 91652481FA1915C6813B3BC7, 1B799004320846B17A0D2820, 07B9E81DB1A4F13B7FF54FD4, 453B6D80B6389BE1341A0A29, @@ -925,7 +929,9 @@ E02BE252CF20E4FABAC9A7B2, 1BF703172DA6AC2179913394, DD6356DF25DE4F39BFB2BD87, - 3A1128BBCB04C3DCE2E5D37E, ); name = network; sourceTree = ""; }; + 3A1128BBCB04C3DCE2E5D37E, + E342962A1FBE034B61949F7F, + D8F61141B8B28CE2D10E95B4, ); name = network; sourceTree = ""; }; B948E2575CB007B96DBD0073 = {isa = PBXGroup; children = ( 0DBB48BEAC0B38D509A6ED6F, 0E0B382367017DA9380D3C61, diff --git a/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj b/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj index 855b54a80e..101f7e6c77 100644 --- a/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj +++ b/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 HelloWorld + .exe true HelloWorld + .exe true @@ -131,6 +133,9 @@ true + + true + true @@ -266,6 +271,9 @@ true + + true + true @@ -1266,6 +1274,7 @@ + diff --git a/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj.filters b/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj.filters index 4852be0571..28deb08de2 100644 --- a/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj.filters +++ b/examples/HelloWorld/Builds/VisualStudio2010/HelloWorld.vcxproj.filters @@ -223,6 +223,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -373,6 +376,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1578,6 +1584,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj index b6ae766cfc..d25aa99d90 100644 --- a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj +++ b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 HelloWorld + .exe true HelloWorld + .exe true v140 @@ -137,6 +139,9 @@ true + + true + true @@ -272,6 +277,9 @@ true + + true + true @@ -1272,6 +1280,7 @@ + diff --git a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj.filters b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj.filters index a0165016db..b56972457c 100644 --- a/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj.filters +++ b/examples/HelloWorld/Builds/VisualStudio2015/HelloWorld.vcxproj.filters @@ -223,6 +223,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -373,6 +376,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1578,6 +1584,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj b/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj index eaa692335e..d60a0b5d07 100644 --- a/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj +++ b/examples/HelloWorld/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj @@ -456,6 +456,7 @@ 9041FE725DC8818D8E686A3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; 90CFC8BC9D8A156A512D2A39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; 9132D1324A6D6D049C9B2FFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 91652481FA1915C6813B3BC7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 918FA23368FDE2ECDDC1CD08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; 92DA7079019C276D5070DA7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctfst.c"; sourceTree = "SOURCE_ROOT"; }; 932964B332CC31005CAE0FB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngrio.c"; sourceTree = "SOURCE_ROOT"; }; @@ -677,6 +678,7 @@ D735FA88C8465C02D4217A39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; D79A70561BC95BE42F900F2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jfdctflt.c"; sourceTree = "SOURCE_ROOT"; }; D882D6E64CEFE8FFE435EF40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + D8F61141B8B28CE2D10E95B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DA64460418AFD14930104FEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; DA8CFA399CD27524DB69AD78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; DB57D9360A4FA63286A9E305 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -707,6 +709,7 @@ E2C9F5675F700544E40B46C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; E31FA0995B22027AEF89904B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; E3273B696D8398C56B0F1A40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + E342962A1FBE034B61949F7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; E3AC1627011B7DC669A8FAAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jquant1.c"; sourceTree = "SOURCE_ROOT"; }; E41E6A613E45920223A133F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; E422C589FA0328C35A0549FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; @@ -811,6 +814,7 @@ 6FD7AFA0B4E7F4E848E33737, B5D117435CCB80BF33D4AD00, 95FFFE6A27ACBB4E28739E88, + 91652481FA1915C6813B3BC7, 1B799004320846B17A0D2820, 07B9E81DB1A4F13B7FF54FD4, 453B6D80B6389BE1341A0A29, @@ -925,7 +929,9 @@ E02BE252CF20E4FABAC9A7B2, 1BF703172DA6AC2179913394, DD6356DF25DE4F39BFB2BD87, - 3A1128BBCB04C3DCE2E5D37E, ); name = network; sourceTree = ""; }; + 3A1128BBCB04C3DCE2E5D37E, + E342962A1FBE034B61949F7F, + D8F61141B8B28CE2D10E95B4, ); name = network; sourceTree = ""; }; B948E2575CB007B96DBD0073 = {isa = PBXGroup; children = ( 0DBB48BEAC0B38D509A6ED6F, 0E0B382367017DA9380D3C61, diff --git a/examples/HelloWorld/HelloWorld.jucer b/examples/HelloWorld/HelloWorld.jucer index 4258f1340c..f9688a472c 100644 --- a/examples/HelloWorld/HelloWorld.jucer +++ b/examples/HelloWorld/HelloWorld.jucer @@ -1,7 +1,7 @@ /dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -88,7 +95,7 @@ check-pkg-config: clean: @echo Cleaning MPETest - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping MPETest @@ -97,76 +104,76 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj b/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj index 7bbc9747d1..79f20a702f 100644 --- a/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj +++ b/examples/MPETest/Builds/MacOSX/MPETest.xcodeproj/project.pbxproj @@ -321,6 +321,7 @@ 3B86FA979F365227E1EB9592 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; 3BC401D5C6F376B3E8A98BE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; 3C3914CF4EB61FC23AEA3490 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + 3C4316CEC2316106B98E5281 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C5EB4E00CDBA4EAE7C96902 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; 3CBCE009F649A76261CC81C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; 3D0A72C575B21608CC08323F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -539,6 +540,7 @@ 6CE9869F76A0BDBBAAFC2AD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; 6D26985E06804C5898D76934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../modules/juce_audio_utils/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; 6D45A9F8D00AF9F3FBF43394 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DA00561C5B055B7752EA2AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 6DBAA8FC487AE3C94BF0EA9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; 6E515F0982E797C04C1B4612 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; 6E52C52B8794D97378E70B01 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; @@ -829,6 +831,7 @@ A9235E9E60C4A238FA54047B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; AA21DA98CEF52C5F09BEEC38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; AA8F60F83EE2F2E19A7648A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jmorecfg.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jmorecfg.h"; sourceTree = "SOURCE_ROOT"; }; + AB0655B9E25CBB7807ED9CA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; AB0F764CBA1600621049FAE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; AB17BDF654E684FC179BB7DD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; AB1DE39BFBA22179B919703B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ZoneLayoutComponent.h; path = ../../Source/ZoneLayoutComponent.h; sourceTree = "SOURCE_ROOT"; }; @@ -1679,6 +1682,7 @@ A60F4908677D0C613FB1737C, 1C75EA4C7928F352F3C5843A, A510130632DD97A188B6C814, + 6DA00561C5B055B7752EA2AC, 97C8203B745D9AFE10D00FDC, 1672341168714E02AED9122E, D02AAF5A413CDBA06CC7DFE1, @@ -1793,7 +1797,9 @@ A816E22F2317F3AB90262CB4, DB68CB04F33818FB58F304B7, E62F93F0E69F1FDDBC40E5FA, - D01042D887575822E0081B0E, ); name = network; sourceTree = ""; }; + D01042D887575822E0081B0E, + 3C4316CEC2316106B98E5281, + AB0655B9E25CBB7807ED9CA2, ); name = network; sourceTree = ""; }; 3A5626D9B628927B44423FCC = {isa = PBXGroup; children = ( 7861AA53364025BA5B10E816, 9E4BB78272577D198F7CEA4E, diff --git a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj index f6bd18b687..5672569f4d 100644 --- a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj +++ b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 MPETest + .exe true MPETest + .exe true v140 @@ -559,6 +561,9 @@ true + + true + true @@ -694,6 +699,9 @@ true + + true + true @@ -1972,6 +1980,7 @@ + diff --git a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters index d5daae2ae3..908b21666b 100644 --- a/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters +++ b/examples/MPETest/Builds/VisualStudio2015/MPETest.vcxproj.filters @@ -829,6 +829,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -979,6 +982,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2895,6 +2901,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/MPETest/MPETest.jucer b/examples/MPETest/MPETest.jucer index 40e38e0c61..e38559929c 100644 --- a/examples/MPETest/MPETest.jucer +++ b/examples/MPETest/MPETest.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/MidiTest/Builds/LinuxMakefile/Makefile b/examples/MidiTest/Builds/LinuxMakefile/Makefile index 7e88d199f3..72ed27db1c 100644 --- a/examples/MidiTest/Builds/LinuxMakefile/Makefile +++ b/examples/MidiTest/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := MidiTest BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := MidiTest BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -78,7 +85,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -86,7 +93,7 @@ check-pkg-config: clean: @echo Cleaning MidiTest - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping MidiTest @@ -95,66 +102,66 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MainComponent_a6ffb4a5.o: ../../Source/MainComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MainComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj b/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj index c1ed741ae2..5ef1c32e0a 100644 --- a/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj +++ b/examples/MidiTest/Builds/MacOSX/MidiTest.xcodeproj/project.pbxproj @@ -666,6 +666,7 @@ 8D317883E61856EE2491FC09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; 8D6CCBB6ADF78D5139B35DE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; 8E317934922B12ABA2B5A8AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 8E4B356AB3E951D1F063D6BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 8E6B3E9DA6571C37BE6760BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; 8E9358560B0ACE8A912B8AB3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 8EC4AF1FE4A928F8558AE0B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; @@ -718,6 +719,7 @@ 992E198BAFF9F97CA8267243 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; 99665EBB1C635EC8B198D415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; 9987B55A7D7AE452D921F227 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99B9A585A64F6844479B7FBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 99F3BE02BEA734C0197C607C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; 9A1630514C56BFA5361E93D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; 9A458C31170E38D728FDC648 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1030,6 +1032,7 @@ DC9B8C25598219E6D3F09BAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; DD30B985E81FD9E1A2DA0CFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; DD45E70E19FB20AA19459C2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + DD63A41DFB5783A4F406F83C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DD7B1C3AD07C439C5D9EFA3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h"; sourceTree = "SOURCE_ROOT"; }; DD80465B0BAAD50257737B48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; DD813DFB4467E734B53BD1F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1599,6 +1602,7 @@ A1EAEF985828A65A8BB822E9, 69D6EDDF240FE265F3963EAD, 7EE6C13ACD91E2B5CD3DE8AC, + 99B9A585A64F6844479B7FBC, A1DE30BF8642FB2549F8D772, 477E47C2C3B9D1856815B5EC, 7A35D2308BFE8D941E84F128, @@ -1713,7 +1717,9 @@ 43E964EF17328AB8C3F454D0, 1A39051C4AF1619FA04E23C7, 5E3E8D9EDD3396025DB49F40, - 12A03A62777C1C5E81950DBC, ); name = network; sourceTree = ""; }; + 12A03A62777C1C5E81950DBC, + 8E4B356AB3E951D1F063D6BE, + DD63A41DFB5783A4F406F83C, ); name = network; sourceTree = ""; }; FBE8D70C83F3A9DDBB6FA0DF = {isa = PBXGroup; children = ( EA7B437CA63EDE546A390088, 9C00A3B72C9748ACFBF5C059, diff --git a/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj b/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj index f90eb39ed7..7777bbffa1 100644 --- a/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj +++ b/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 MidiTest + .exe true MidiTest + .exe true v140 @@ -560,6 +562,9 @@ true + + true + true @@ -695,6 +700,9 @@ true + + true + true @@ -1896,6 +1904,7 @@ + diff --git a/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj.filters b/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj.filters index 5b4a159bec..187fab57ef 100644 --- a/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj.filters +++ b/examples/MidiTest/Builds/VisualStudio2015/MidiTest.vcxproj.filters @@ -796,6 +796,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -946,6 +949,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2754,6 +2760,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj b/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj index e074311e98..9642d480db 100644 --- a/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj +++ b/examples/MidiTest/Builds/iOS/MidiTest.xcodeproj/project.pbxproj @@ -665,6 +665,7 @@ 8D317883E61856EE2491FC09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; 8D6CCBB6ADF78D5139B35DE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; 8E317934922B12ABA2B5A8AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + 8E4B356AB3E951D1F063D6BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 8E6B3E9DA6571C37BE6760BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; 8E9358560B0ACE8A912B8AB3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 8EC4AF1FE4A928F8558AE0B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; @@ -717,6 +718,7 @@ 992E198BAFF9F97CA8267243 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; 99665EBB1C635EC8B198D415 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; 9987B55A7D7AE452D921F227 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99B9A585A64F6844479B7FBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 99F3BE02BEA734C0197C607C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; 9A1630514C56BFA5361E93D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; 9A458C31170E38D728FDC648 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1031,6 +1033,7 @@ DC9B8C25598219E6D3F09BAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; DD30B985E81FD9E1A2DA0CFA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; DD45E70E19FB20AA19459C2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + DD63A41DFB5783A4F406F83C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DD7B1C3AD07C439C5D9EFA3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jconfig.h"; sourceTree = "SOURCE_ROOT"; }; DD80465B0BAAD50257737B48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; DD813DFB4467E734B53BD1F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1601,6 +1604,7 @@ A1EAEF985828A65A8BB822E9, 69D6EDDF240FE265F3963EAD, 7EE6C13ACD91E2B5CD3DE8AC, + 99B9A585A64F6844479B7FBC, A1DE30BF8642FB2549F8D772, 477E47C2C3B9D1856815B5EC, 7A35D2308BFE8D941E84F128, @@ -1715,7 +1719,9 @@ 43E964EF17328AB8C3F454D0, 1A39051C4AF1619FA04E23C7, 5E3E8D9EDD3396025DB49F40, - 12A03A62777C1C5E81950DBC, ); name = network; sourceTree = ""; }; + 12A03A62777C1C5E81950DBC, + 8E4B356AB3E951D1F063D6BE, + DD63A41DFB5783A4F406F83C, ); name = network; sourceTree = ""; }; FBE8D70C83F3A9DDBB6FA0DF = {isa = PBXGroup; children = ( EA7B437CA63EDE546A390088, 9C00A3B72C9748ACFBF5C059, diff --git a/examples/MidiTest/MidiTest.jucer b/examples/MidiTest/MidiTest.jucer index e76adfe51a..fd0ad705e5 100644 --- a/examples/MidiTest/MidiTest.jucer +++ b/examples/MidiTest/MidiTest.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile b/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile index b113dbc324..cd508dab83 100644 --- a/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile +++ b/examples/NetworkGraphicsDemo/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := JUCE\ Network\ Graphics\ Demo BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := JUCE\ Network\ Graphics\ Demo BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -81,7 +88,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -89,7 +96,7 @@ check-pkg-config: clean: @echo Cleaning JUCE Network Graphics Demo - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping JUCE Network Graphics Demo @@ -98,81 +105,81 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling BinaryData.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_osc_be4cee16.o: ../../JuceLibraryCode/juce_osc.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_osc.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/NetworkGraphicsDemo/Builds/MacOSX/JUCE Network Graphics Demo.xcodeproj/project.pbxproj b/examples/NetworkGraphicsDemo/Builds/MacOSX/JUCE Network Graphics Demo.xcodeproj/project.pbxproj index 623aad73ab..39a3e55724 100644 --- a/examples/NetworkGraphicsDemo/Builds/MacOSX/JUCE Network Graphics Demo.xcodeproj/project.pbxproj +++ b/examples/NetworkGraphicsDemo/Builds/MacOSX/JUCE Network Graphics Demo.xcodeproj/project.pbxproj @@ -79,6 +79,7 @@ 06753930A82DF7E1BF429914 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0679221D71CD972EE07343B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; 06E0E9069EB3A4DED12A83DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + 07556E8425EBF5ED526128D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 07955C2B1994766829BE8043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../../../modules/juce_core/zip/zlib/compress.c"; sourceTree = "SOURCE_ROOT"; }; 07C80E087D94784140EBF39F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitrate.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c"; sourceTree = "SOURCE_ROOT"; }; 07EA9462917C02F0805971A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_16.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = "SOURCE_ROOT"; }; @@ -413,6 +414,7 @@ 4E1C2B9C5692A96700C1A898 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; 4E451FB3A0D657682324CEED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; 4E8939ACD0CB224ABD3B3C00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EEA16E77199E8101E783946 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 4F742E04B5AD194395A593C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; 4FF648D72D6F1A78956CDA1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Demos.h; path = ../../Source/Demos.h; sourceTree = "SOURCE_ROOT"; }; 5016A40C1850BBD55197D30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; @@ -507,6 +509,7 @@ 6386ADE8A90ABD189AB72936 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 63DB40AFD30CEFB03779AB79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 63E2478C4D365C034FAEF66B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63F153F0AC94D0E3D2F6B1A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 63FB8DC8554DE3DC4EE53492 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; 64223866AD9D3D69464C198B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; 648259AF304511A097949BED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1683,6 +1686,7 @@ 61D67AE4149D2EF04BFC2F15, B14FEADC75BB9C57CF45D850, 729B6245E3A797878E3F4ADC, + 07556E8425EBF5ED526128D6, D45979081B92930C507C3B87, 94F0F55A3456014AA91FE44C, 3D7BB39A9FCE43D8EAF6B6CD, @@ -1797,7 +1801,9 @@ B4E70AE3447587BABF51A076, 2AAA2414F61ABBBF1C571901, 8FD227DE98DB156FBBC8DD1D, - 90348A625874E8DD3DCBF583, ); name = network; sourceTree = ""; }; + 90348A625874E8DD3DCBF583, + 63F153F0AC94D0E3D2F6B1A3, + 4EEA16E77199E8101E783946, ); name = network; sourceTree = ""; }; E15D306575BCCB6DB43BEF49 = {isa = PBXGroup; children = ( E4546F8D14174EB8C05A47C3, BAE421BF414A8713DC446E10, diff --git a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj index dded485bd2..a251d20df9 100644 --- a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj +++ b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 JUCE Network Graphics Demo + .exe true JUCE Network Graphics Demo + .exe true v120 @@ -559,6 +561,9 @@ true + + true + true @@ -694,6 +699,9 @@ true + + true + true @@ -1980,6 +1988,7 @@ + diff --git a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj.filters b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj.filters index de571dbdd0..32d7a97315 100644 --- a/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj.filters +++ b/examples/NetworkGraphicsDemo/Builds/VisualStudio2013/JUCE Network Graphics Demo.vcxproj.filters @@ -823,6 +823,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -973,6 +976,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2886,6 +2892,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo.xcodeproj/project.pbxproj b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo.xcodeproj/project.pbxproj index e1048b2c51..ffb65d23ba 100644 --- a/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo.xcodeproj/project.pbxproj +++ b/examples/NetworkGraphicsDemo/Builds/iOS/JUCE Network Graphics Demo.xcodeproj/project.pbxproj @@ -80,6 +80,7 @@ 06753930A82DF7E1BF429914 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0679221D71CD972EE07343B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; 06E0E9069EB3A4DED12A83DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + 07556E8425EBF5ED526128D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 07955C2B1994766829BE8043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../../../modules/juce_core/zip/zlib/compress.c"; sourceTree = "SOURCE_ROOT"; }; 07C80E087D94784140EBF39F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitrate.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.c"; sourceTree = "SOURCE_ROOT"; }; 07EA9462917C02F0805971A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "psych_16.h"; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/psych_16.h"; sourceTree = "SOURCE_ROOT"; }; @@ -416,6 +417,7 @@ 4E1C2B9C5692A96700C1A898 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; 4E451FB3A0D657682324CEED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; 4E8939ACD0CB224ABD3B3C00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4EEA16E77199E8101E783946 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 4F742E04B5AD194395A593C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; 4FF648D72D6F1A78956CDA1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Demos.h; path = ../../Source/Demos.h; sourceTree = "SOURCE_ROOT"; }; 5016A40C1850BBD55197D30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; @@ -510,6 +512,7 @@ 6386ADE8A90ABD189AB72936 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 63DB40AFD30CEFB03779AB79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 63E2478C4D365C034FAEF66B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 63F153F0AC94D0E3D2F6B1A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 63FB8DC8554DE3DC4EE53492 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; 64223866AD9D3D69464C198B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; 648259AF304511A097949BED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1685,6 +1688,7 @@ 61D67AE4149D2EF04BFC2F15, B14FEADC75BB9C57CF45D850, 729B6245E3A797878E3F4ADC, + 07556E8425EBF5ED526128D6, D45979081B92930C507C3B87, 94F0F55A3456014AA91FE44C, 3D7BB39A9FCE43D8EAF6B6CD, @@ -1799,7 +1803,9 @@ B4E70AE3447587BABF51A076, 2AAA2414F61ABBBF1C571901, 8FD227DE98DB156FBBC8DD1D, - 90348A625874E8DD3DCBF583, ); name = network; sourceTree = ""; }; + 90348A625874E8DD3DCBF583, + 63F153F0AC94D0E3D2F6B1A3, + 4EEA16E77199E8101E783946, ); name = network; sourceTree = ""; }; E15D306575BCCB6DB43BEF49 = {isa = PBXGroup; children = ( E4546F8D14174EB8C05A47C3, BAE421BF414A8713DC446E10, diff --git a/examples/NetworkGraphicsDemo/NetworkGraphicsDemo.jucer b/examples/NetworkGraphicsDemo/NetworkGraphicsDemo.jucer index a96d9a12a9..63be54ab68 100644 --- a/examples/NetworkGraphicsDemo/NetworkGraphicsDemo.jucer +++ b/examples/NetworkGraphicsDemo/NetworkGraphicsDemo.jucer @@ -2,7 +2,7 @@ + includeBinaryInAppConfig="1" jucerVersion="4.3.1"> diff --git a/examples/OSCMonitor/Builds/LinuxMakefile/Makefile b/examples/OSCMonitor/Builds/LinuxMakefile/Makefile index dbca80add3..07744d49d9 100644 --- a/examples/OSCMonitor/Builds/LinuxMakefile/Makefile +++ b/examples/OSCMonitor/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := OSCMonitor BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := OSCMonitor BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -80,7 +87,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -88,7 +95,7 @@ check-pkg-config: clean: @echo Cleaning OSCMonitor - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping OSCMonitor @@ -97,76 +104,76 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_osc_be4cee16.o: ../../JuceLibraryCode/juce_osc.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_osc.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj b/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj index 23aa6482c2..3c171a7df0 100644 --- a/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj +++ b/examples/OSCMonitor/Builds/MacOSX/OSCMonitor.xcodeproj/project.pbxproj @@ -370,6 +370,7 @@ 469372BCD2E4A19BA918C8B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; 47B5F10C7E724663B4B880EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; 47D3A79943D449E43F412A21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4826378529654A727E9E17AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 489FAE16E149CD33F7537E50 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; 497510685AB657F03EDB49FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; 49C0F640C9BEA3C4A3FE7096 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1123,6 +1124,7 @@ EE8BAB9A2B017754997FA6EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; EEABF9C7265E9B1B6767B2A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; EED6252B8E88159841FFAB1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + EF132CBC8DD5EDE9C175BAD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; EF6E0AA7622256AD0A0F2DDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; EF8D50867BCC011A28EC4BEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = "../../../../modules/juce_core/zip/zlib/zconf.h"; sourceTree = "SOURCE_ROOT"; }; EFB2B860FA73940D27E0AF32 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1157,6 +1159,7 @@ F424523A813298D45AF5609F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; F49B8A85A34D03B31B93A9A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; F4EB797898FBCE771679190A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + F50658D198473EFDB6FA98E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; F59581D8631D6A684736D6FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; F5D08B3F42677B34F472A33D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_cryptography.cpp"; path = "../../../../modules/juce_cryptography/juce_cryptography.cpp"; sourceTree = "SOURCE_ROOT"; }; F61D480253AF8F68D427401D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1609,6 +1612,7 @@ 22F268841B521ED17CB4AD12, 59E652109EE2C2D27F2226B8, FD54E26E14C7799FB267E30F, + 4826378529654A727E9E17AE, 70805F194C6C47E9AAA4DFA5, C421BDB19B769FD6AF0183C9, 9C0377F1B1457E27B3B712CC, @@ -1723,7 +1727,9 @@ 22E2EF7FE8A98E380815B772, 462D423963B1B96FA13F4CCC, 39DA57397F102CACE67EF508, - 17385E08CF13E8A648C449E7, ); name = network; sourceTree = ""; }; + 17385E08CF13E8A648C449E7, + F50658D198473EFDB6FA98E0, + EF132CBC8DD5EDE9C175BAD2, ); name = network; sourceTree = ""; }; A99B621862768A470B4BB842 = {isa = PBXGroup; children = ( 0CE6EEBE234E83B3E2DAB95A, 8EF1D9DC7431D93543EAB32C, diff --git a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj index 70b0d96fdc..708a6a153b 100644 --- a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj +++ b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 OSCMonitor + .exe true OSCMonitor + .exe true v140 @@ -511,6 +513,9 @@ true + + true + true @@ -646,6 +651,9 @@ true + + true + true @@ -1933,6 +1941,7 @@ + diff --git a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj.filters b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj.filters index f99f978cb8..e708ad9d92 100644 --- a/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj.filters +++ b/examples/OSCMonitor/Builds/VisualStudio2015/OSCMonitor.vcxproj.filters @@ -757,6 +757,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -907,6 +910,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2796,6 +2802,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/OSCMonitor/OSCMonitor.jucer b/examples/OSCMonitor/OSCMonitor.jucer index 81b6e03377..0f987e1aa7 100644 --- a/examples/OSCMonitor/OSCMonitor.jucer +++ b/examples/OSCMonitor/OSCMonitor.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/OSCReceiver/Builds/LinuxMakefile/Makefile b/examples/OSCReceiver/Builds/LinuxMakefile/Makefile index 2c0117832e..66eedab377 100644 --- a/examples/OSCReceiver/Builds/LinuxMakefile/Makefile +++ b/examples/OSCReceiver/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := OSCReceiver BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := OSCReceiver BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -74,7 +81,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -82,7 +89,7 @@ check-pkg-config: clean: @echo Cleaning OSCReceiver - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping OSCReceiver @@ -91,46 +98,46 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_osc_be4cee16.o: ../../JuceLibraryCode/juce_osc.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_osc.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj b/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj index 30188d403d..7f05020f68 100644 --- a/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj +++ b/examples/OSCReceiver/Builds/MacOSX/OSCReceiver.xcodeproj/project.pbxproj @@ -216,6 +216,7 @@ 39DBD4799E7BF499F1358411 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; 3A5C25CF94C5E9EDD134E98B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; 3B38D39DE9EBA8BE3717DEA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BC3B1AE0ECC4FE7CEF555A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BD3440C2FFC460C41E84AE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; 3C57EF63B92CBE5BAAF22A42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OSCSender.cpp"; path = "../../../../modules/juce_osc/osc/juce_OSCSender.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C9A527231181774DC31F3AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OSCAddress.h"; path = "../../../../modules/juce_osc/osc/juce_OSCAddress.h"; sourceTree = "SOURCE_ROOT"; }; @@ -226,6 +227,7 @@ 3FE59126846263AB26CB0774 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; 406E2D810454736FB86488AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; 407726CDC6691529862022A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 40B702BA674DF3EF56ACE29A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 40F8B56D9CB67C9EA12FE8E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; 414C3FC8261D0E20FE5DFE29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; 420EC00184E732853B859498 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -604,6 +606,7 @@ BADB77F2A3EEB2CC3D92A6FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; BBAA8397ABCB2E7370AFEDC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; BBABED75602DFC68C50A59CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + BBBDFD36DEC484A3A7748490 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; BBC5780E3334A0B38CEE3132 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; BBCFE7093F51A9F755E2FB62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; BBE630009C367704659D83AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; @@ -845,6 +848,7 @@ 1BA25963C42B95F6ECED0730, F33A63E9C935199E7AA0A226, 0AF96CE53586C9DDE1D147F6, + BBBDFD36DEC484A3A7748490, 1541CCA5C9088B1415D76C3E, D49D9721EF36A0A9003A2185, 9183FE6399753C92E85E90E3, @@ -959,7 +963,9 @@ 7E5929781730A36E236FE175, 58DDDC9F9A246900A39CD543, 43C2F15C3A916D74C6F7BECD, - B95E3992A72900539ECA613B, ); name = network; sourceTree = ""; }; + B95E3992A72900539ECA613B, + 3BC3B1AE0ECC4FE7CEF555A7, + 40B702BA674DF3EF56ACE29A, ); name = network; sourceTree = ""; }; 0ADB80B628B0FD6B46B4D24D = {isa = PBXGroup; children = ( 34E480C353B9C741DF744493, 1B1E99DA1D133DE21750F2B5, diff --git a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj index 449a9d1af4..3fd1a1bc32 100644 --- a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj +++ b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 OSCReceiver + .exe true OSCReceiver + .exe true v140 @@ -136,6 +138,9 @@ true + + true + true @@ -271,6 +276,9 @@ true + + true + true @@ -1321,6 +1329,7 @@ + diff --git a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj.filters b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj.filters index f940e36703..be0618a0c4 100644 --- a/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj.filters +++ b/examples/OSCReceiver/Builds/VisualStudio2015/OSCReceiver.vcxproj.filters @@ -235,6 +235,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -385,6 +388,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1647,6 +1653,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj b/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj index 3157a13a43..38639f05c1 100644 --- a/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj +++ b/examples/OSCReceiver/Builds/iOS/OSCReceiver.xcodeproj/project.pbxproj @@ -215,6 +215,7 @@ 39DBD4799E7BF499F1358411 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; 3A5C25CF94C5E9EDD134E98B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; 3B38D39DE9EBA8BE3717DEA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3BC3B1AE0ECC4FE7CEF555A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 3BD3440C2FFC460C41E84AE5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; 3C57EF63B92CBE5BAAF22A42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OSCSender.cpp"; path = "../../../../modules/juce_osc/osc/juce_OSCSender.cpp"; sourceTree = "SOURCE_ROOT"; }; 3C9A527231181774DC31F3AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OSCAddress.h"; path = "../../../../modules/juce_osc/osc/juce_OSCAddress.h"; sourceTree = "SOURCE_ROOT"; }; @@ -225,6 +226,7 @@ 3FE59126846263AB26CB0774 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; 406E2D810454736FB86488AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; 407726CDC6691529862022A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 40B702BA674DF3EF56ACE29A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 40F8B56D9CB67C9EA12FE8E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; 414C3FC8261D0E20FE5DFE29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; 420EC00184E732853B859498 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -604,6 +606,7 @@ BADB77F2A3EEB2CC3D92A6FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; BBAA8397ABCB2E7370AFEDC2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; BBABED75602DFC68C50A59CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + BBBDFD36DEC484A3A7748490 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; BBC5780E3334A0B38CEE3132 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; BBCFE7093F51A9F755E2FB62 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctred.c"; sourceTree = "SOURCE_ROOT"; }; BBE630009C367704659D83AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; @@ -845,6 +848,7 @@ 1BA25963C42B95F6ECED0730, F33A63E9C935199E7AA0A226, 0AF96CE53586C9DDE1D147F6, + BBBDFD36DEC484A3A7748490, 1541CCA5C9088B1415D76C3E, D49D9721EF36A0A9003A2185, 9183FE6399753C92E85E90E3, @@ -959,7 +963,9 @@ 7E5929781730A36E236FE175, 58DDDC9F9A246900A39CD543, 43C2F15C3A916D74C6F7BECD, - B95E3992A72900539ECA613B, ); name = network; sourceTree = ""; }; + B95E3992A72900539ECA613B, + 3BC3B1AE0ECC4FE7CEF555A7, + 40B702BA674DF3EF56ACE29A, ); name = network; sourceTree = ""; }; 0ADB80B628B0FD6B46B4D24D = {isa = PBXGroup; children = ( 34E480C353B9C741DF744493, 1B1E99DA1D133DE21750F2B5, diff --git a/examples/OSCReceiver/OSCReceiver.jucer b/examples/OSCReceiver/OSCReceiver.jucer index 43896a7a29..410de97740 100644 --- a/examples/OSCReceiver/OSCReceiver.jucer +++ b/examples/OSCReceiver/OSCReceiver.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/OSCSender/Builds/LinuxMakefile/Makefile b/examples/OSCSender/Builds/LinuxMakefile/Makefile index 1600076d3d..52f249d84e 100644 --- a/examples/OSCSender/Builds/LinuxMakefile/Makefile +++ b/examples/OSCSender/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := OSCSender BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := OSCSender BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -72,7 +79,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -80,7 +87,7 @@ check-pkg-config: clean: @echo Cleaning OSCSender - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping OSCSender @@ -89,36 +96,36 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_osc_be4cee16.o: ../../JuceLibraryCode/juce_osc.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_osc.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj b/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj index 35676cbc77..e641093a80 100644 --- a/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj +++ b/examples/OSCSender/Builds/MacOSX/OSCSender.xcodeproj/project.pbxproj @@ -217,6 +217,7 @@ 42DBAA5FEB22C47EB3E9A465 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 431D37DEF42489D3D2BAA92C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; 431E90D8119368A51F45F9F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 436558399EF1CAC368C49CA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 43FB864DB11F4A6D182EECBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; 445AD046C327FB7D2C082952 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jerror.h"; sourceTree = "SOURCE_ROOT"; }; 44D6F268BB9D222CF15E8152 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -401,6 +402,7 @@ 8A0E7639BA2EC2B118F0820D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; 8A129151479A5AAD2BD39091 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; 8A5080FEECD8BD2FDA32C65D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A807C94D847BB012CC10D8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 8A8EB41D7E88B03839083874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; 8AAF2D405CD94D4EF846AD33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OSCReceiver.h"; path = "../../../../modules/juce_osc/osc/juce_OSCReceiver.h"; sourceTree = "SOURCE_ROOT"; }; 8AF7EBF16C1AADA1E9A29866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -577,6 +579,7 @@ C959DCDA5A0B45FD52231382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; C9D88946156002CE878BC4D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; C9FF6E12A8FD051CF6193B24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CA16F4A189690F17FC6A627B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; CA3B343B4917C1BB3ACF4AA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ClangBugWorkaround.h"; path = "../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h"; sourceTree = "SOURCE_ROOT"; }; CA7C7FAADFCC10A7466BE898 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OSCSender.cpp"; path = "../../../../modules/juce_osc/osc/juce_OSCSender.cpp"; sourceTree = "SOURCE_ROOT"; }; CB0C151B6FC39A6B8DD9F69A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -772,6 +775,7 @@ 1B0288B3DC5993F6537F0125, FB804B682C683C360DAE6C5B, 56ACA5E2124B635579CF7615, + CA16F4A189690F17FC6A627B, 46D9A546710BF2503ABD4C96, B3E00783408BA5A929E48235, 0C52788862239CCDFFA2B5C5, @@ -886,7 +890,9 @@ CBCE2DE10CF82B5A463AEE00, 6F11C39FA9C8E2F1DCD6CB53, C3D367C0B3573411FE70D226, - 1EED7017C33745D0E23EFED7, ); name = network; sourceTree = ""; }; + 1EED7017C33745D0E23EFED7, + 8A807C94D847BB012CC10D8D, + 436558399EF1CAC368C49CA8, ); name = network; sourceTree = ""; }; B0F2F8645A847AF8090C4FA2 = {isa = PBXGroup; children = ( 9F80A197F695CE97616BD1E2, D53140323325368C36FF0980, diff --git a/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj b/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj index 87160c9972..1b4316f75e 100644 --- a/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj +++ b/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 OSCSender + .exe true OSCSender + .exe true v140 @@ -136,6 +138,9 @@ true + + true + true @@ -271,6 +276,9 @@ true + + true + true @@ -1229,6 +1237,7 @@ + diff --git a/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj.filters b/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj.filters index f56b12033c..50676f060d 100644 --- a/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj.filters +++ b/examples/OSCSender/Builds/VisualStudio2015/OSCSender.vcxproj.filters @@ -208,6 +208,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -358,6 +361,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -1506,6 +1512,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj b/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj index 2f7cbc624f..39b328707d 100644 --- a/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj +++ b/examples/OSCSender/Builds/iOS/OSCSender.xcodeproj/project.pbxproj @@ -217,6 +217,7 @@ 42DBAA5FEB22C47EB3E9A465 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 431D37DEF42489D3D2BAA92C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; 431E90D8119368A51F45F9F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 436558399EF1CAC368C49CA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 43FB864DB11F4A6D182EECBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; 445AD046C327FB7D2C082952 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../../../modules/juce_graphics/image_formats/jpglib/jerror.h"; sourceTree = "SOURCE_ROOT"; }; 44D6F268BB9D222CF15E8152 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -403,6 +404,7 @@ 8A0E7639BA2EC2B118F0820D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; 8A129151479A5AAD2BD39091 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; 8A5080FEECD8BD2FDA32C65D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A807C94D847BB012CC10D8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 8A8EB41D7E88B03839083874 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; 8AAF2D405CD94D4EF846AD33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OSCReceiver.h"; path = "../../../../modules/juce_osc/osc/juce_OSCReceiver.h"; sourceTree = "SOURCE_ROOT"; }; 8AF7EBF16C1AADA1E9A29866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -580,6 +582,7 @@ C959DCDA5A0B45FD52231382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; C9D88946156002CE878BC4D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; C9FF6E12A8FD051CF6193B24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CA16F4A189690F17FC6A627B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; CA3B343B4917C1BB3ACF4AA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ClangBugWorkaround.h"; path = "../../../../modules/juce_core/native/juce_mac_ClangBugWorkaround.h"; sourceTree = "SOURCE_ROOT"; }; CA7C7FAADFCC10A7466BE898 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OSCSender.cpp"; path = "../../../../modules/juce_osc/osc/juce_OSCSender.cpp"; sourceTree = "SOURCE_ROOT"; }; CB0C151B6FC39A6B8DD9F69A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -774,6 +777,7 @@ 1B0288B3DC5993F6537F0125, FB804B682C683C360DAE6C5B, 56ACA5E2124B635579CF7615, + CA16F4A189690F17FC6A627B, 46D9A546710BF2503ABD4C96, B3E00783408BA5A929E48235, 0C52788862239CCDFFA2B5C5, @@ -888,7 +892,9 @@ CBCE2DE10CF82B5A463AEE00, 6F11C39FA9C8E2F1DCD6CB53, C3D367C0B3573411FE70D226, - 1EED7017C33745D0E23EFED7, ); name = network; sourceTree = ""; }; + 1EED7017C33745D0E23EFED7, + 8A807C94D847BB012CC10D8D, + 436558399EF1CAC368C49CA8, ); name = network; sourceTree = ""; }; B0F2F8645A847AF8090C4FA2 = {isa = PBXGroup; children = ( 9F80A197F695CE97616BD1E2, D53140323325368C36FF0980, diff --git a/examples/OSCSender/OSCSender.jucer b/examples/OSCSender/OSCSender.jucer index 5c4e5c71ad..7544de5f05 100644 --- a/examples/OSCSender/OSCSender.jucer +++ b/examples/OSCSender/OSCSender.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj b/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj index 8bcb95dc62..57ec1c9f77 100644 --- a/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj +++ b/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj @@ -727,6 +727,7 @@ 98F1DD6EE3E63CA046070664 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; }; 9954A5B8424CE9ABC802AC8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; 9986CD0D1752D063F3DC2652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99A20EE91E7B99890B52284C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 99BF73D0D5B995E84BAB52B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; 9A3209A7E5C33CDC36DC6E80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h"; sourceTree = "SOURCE_ROOT"; }; 9A67CA8503FB1E02090F5FAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -793,6 +794,7 @@ A900A56A57D410F0A78FE64B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; A91A41860F3F1AA2C762F1CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; A937C45D53029A6BD6DA500B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + A953B21B5B84089C34FF8A20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; A96A21232A57ABCE293F7AEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_video.cpp"; path = "../../../../modules/juce_video/juce_video.cpp"; sourceTree = "SOURCE_ROOT"; }; AA54E821F947C9A9DC359693 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; AA55BD139AEC1B8272ABE461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1034,6 +1036,7 @@ DC3E9EDCD85270B2E9D33BF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; DC9D4AE01FB7CF8D2877B198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; DCB52EFF8A9F5D9F6CF3D3FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD45B0C268CB1266B4CA3CB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DD4BAA40B619A941A61CEA8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; DD542B6F61E6C27A0D5A5F2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; DDE0FBFAC8D2239A971F3C94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1597,6 +1600,7 @@ ADFFCCFC47120AF338FD8C22, 0C2B705429E7587EB29AAD6A, 2BCD3C3BC90487E5B932FC98, + A953B21B5B84089C34FF8A20, 00A864993620E35F6951A372, EF70C0EA201D702D22D06396, 356A77E7E341874950015BD0, @@ -1711,7 +1715,9 @@ E81332E1BCBF978D86F92DFE, 7A76BF61E569CCC96B9E16DE, F1EB95EC0156CE6D16280A45, - 2517140ED8C0697A51CF87AA, ); name = network; sourceTree = ""; }; + 2517140ED8C0697A51CF87AA, + 99A20EE91E7B99890B52284C, + DD45B0C268CB1266B4CA3CB2, ); name = network; sourceTree = ""; }; 641D66477D3BB6B1EE58A930 = {isa = PBXGroup; children = ( 3F20765E456B1B8FF59C2461, 5BB4A463E17E9C4AD5F43FFE, diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj index 5d5cf5e08c..d8e5aac32b 100644 --- a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj +++ b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 OpenGLAppExample + .exe true OpenGLAppExample + .exe true @@ -506,6 +508,9 @@ true + + true + true @@ -641,6 +646,9 @@ true + + true + true @@ -1900,6 +1908,7 @@ + diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters index d6050900f5..46ad3bf1ee 100644 --- a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters +++ b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters @@ -757,6 +757,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -907,6 +910,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2766,6 +2772,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj index f260727f33..f310d239b7 100644 --- a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj +++ b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj @@ -724,6 +724,7 @@ 98F1DD6EE3E63CA046070664 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; }; 9954A5B8424CE9ABC802AC8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; 9986CD0D1752D063F3DC2652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99A20EE91E7B99890B52284C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 99BF73D0D5B995E84BAB52B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; 9A3209A7E5C33CDC36DC6E80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = lookup.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h"; sourceTree = "SOURCE_ROOT"; }; 9A67CA8503FB1E02090F5FAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -790,6 +791,7 @@ A900A56A57D410F0A78FE64B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/bitwise.c"; sourceTree = "SOURCE_ROOT"; }; A91A41860F3F1AA2C762F1CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; A937C45D53029A6BD6DA500B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + A953B21B5B84089C34FF8A20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; A96A21232A57ABCE293F7AEF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_video.cpp"; path = "../../../../modules/juce_video/juce_video.cpp"; sourceTree = "SOURCE_ROOT"; }; AA54E821F947C9A9DC359693 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; AA55BD139AEC1B8272ABE461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1032,6 +1034,7 @@ DC3E9EDCD85270B2E9D33BF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; DC9D4AE01FB7CF8D2877B198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; DCB52EFF8A9F5D9F6CF3D3FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD45B0C268CB1266B4CA3CB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; DD4BAA40B619A941A61CEA8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioChannelSet.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp"; sourceTree = "SOURCE_ROOT"; }; DD542B6F61E6C27A0D5A5F2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; DDE0FBFAC8D2239A971F3C94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = transupp.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/transupp.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1595,6 +1598,7 @@ ADFFCCFC47120AF338FD8C22, 0C2B705429E7587EB29AAD6A, 2BCD3C3BC90487E5B932FC98, + A953B21B5B84089C34FF8A20, 00A864993620E35F6951A372, EF70C0EA201D702D22D06396, 356A77E7E341874950015BD0, @@ -1709,7 +1713,9 @@ E81332E1BCBF978D86F92DFE, 7A76BF61E569CCC96B9E16DE, F1EB95EC0156CE6D16280A45, - 2517140ED8C0697A51CF87AA, ); name = network; sourceTree = ""; }; + 2517140ED8C0697A51CF87AA, + 99A20EE91E7B99890B52284C, + DD45B0C268CB1266B4CA3CB2, ); name = network; sourceTree = ""; }; 641D66477D3BB6B1EE58A930 = {isa = PBXGroup; children = ( 3F20765E456B1B8FF59C2461, 5BB4A463E17E9C4AD5F43FFE, diff --git a/examples/OpenGLAppExample/OpenGLAppExample.jucer b/examples/OpenGLAppExample/OpenGLAppExample.jucer index eba4db5f2c..0fc2b36f4f 100644 --- a/examples/OpenGLAppExample/OpenGLAppExample.jucer +++ b/examples/OpenGLAppExample/OpenGLAppExample.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj b/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj index a19ed28619..a01dba8e93 100644 --- a/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj +++ b/examples/PluckedStringsDemo/Builds/MacOSX/PluckedStringsDemo.xcodeproj/project.pbxproj @@ -73,6 +73,7 @@ 071B5F7BDAEA5AA4254259B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; 072204A3DD23A0007C2D5BB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; }; 074E5A380EA7F8C8EF88F13A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07AFF8983A6EA41C1177571A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 07BA05B963910EBD1BDD09DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; 07C770726C30A4EAE75251D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; 0874F696E38C170FBF0DB8E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -141,6 +142,7 @@ 16747AE33169CAE41818A0FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; }; 16FC53D6B89990E017B5E23B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/synthesis.c"; sourceTree = "SOURCE_ROOT"; }; 17342DAA7DDCE8A758F4A353 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1735CC2F04F425600DF6E30C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 17614E1C7FCB3152646C7496 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; 17BFC11EA3AA659DDA506227 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; 17C1B88CF8910492B6FBBEC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -907,6 +909,7 @@ C6FB3B1E0A40C277E7342BE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; C711AC6AF947CC524DA96EA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c"; sourceTree = "SOURCE_ROOT"; }; C713F8502BD622BD3E2B905C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + C7354B59CF4CD894021D024E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; C784852DD948BFA740D1FD9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; C7D36782B9B35C8FDE85466A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/floor0.c"; sourceTree = "SOURCE_ROOT"; }; C83830A9E5385799A7DB35DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1600,6 +1603,7 @@ CB59D8E18EB3A68250B358A6, 4F751F019A7B3E96803FF6E0, 8053F38ECD9D9C004CF9FF7D, + 07AFF8983A6EA41C1177571A, B433947CFEBB85F8D2F029DB, 88D7320B84F829FB04601EBE, BCB59F2175A5F9A89FA4B7D2, @@ -1714,7 +1718,9 @@ D49251DC02B56E702AAF667F, 631C04DB8E078ACFBCE88899, 1FF72CF8D18F36023DBA52FF, - A87535BCCA1FADDD74E5B71F, ); name = network; sourceTree = ""; }; + A87535BCCA1FADDD74E5B71F, + 1735CC2F04F425600DF6E30C, + C7354B59CF4CD894021D024E, ); name = network; sourceTree = ""; }; EB24CCF8E7D77345FB496E7C = {isa = PBXGroup; children = ( EDF22F22D7353773E15461E6, 4B6A8C8A7737818D196A9CAB, diff --git a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj index b4fb518751..7360eaad51 100644 --- a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj +++ b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 PluckedStringsDemo + .exe true PluckedStringsDemo + .exe true v120 @@ -559,6 +561,9 @@ true + + true + true @@ -694,6 +699,9 @@ true + + true + true @@ -1897,6 +1905,7 @@ + diff --git a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj.filters b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj.filters index fcc445fce4..bea414666d 100644 --- a/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj.filters +++ b/examples/PluckedStringsDemo/Builds/VisualStudio2013/PluckedStringsDemo.vcxproj.filters @@ -793,6 +793,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -943,6 +946,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2757,6 +2763,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/PluckedStringsDemo/PluckedStringsDemo.jucer b/examples/PluckedStringsDemo/PluckedStringsDemo.jucer index e056483e8b..bc01bd8840 100644 --- a/examples/PluckedStringsDemo/PluckedStringsDemo.jucer +++ b/examples/PluckedStringsDemo/PluckedStringsDemo.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> diff --git a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj index 7f865c4a05..86d736381a 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj +++ b/examples/PlugInSamples/Arpeggiator/Builds/MacOSX/Arpeggiator.xcodeproj/project.pbxproj @@ -482,10 +482,13 @@ 5BF7B1BF887DF27308F5F8F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; 5C045A60C690BEA1949F0058 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; 5C19214F0B69A3870A60BB57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + 5CE7F367D76371C1FFF3C664 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; 5CF362F3F89B2CA00EF86107 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + 5DA8F03F5C8C1191011DF4C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; 5DB5A30479144B1BDC7EFB2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; 5DC404F2965686DECF6BF259 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitrate.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h"; sourceTree = "SOURCE_ROOT"; }; 5E6F9C107ED44AD3A6C38F25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; }; + 5E787FADAFF518FF48945E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; 5E7D4EE3F4AF0E8F5178E18E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_plugin_client_AU_2.mm"; path = "../../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_AU_2.mm"; sourceTree = "SOURCE_ROOT"; }; 5FA106E6F7385516B5B015E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUPlugInDispatch.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUPlugInDispatch.cpp"; sourceTree = "SOURCE_ROOT"; }; 5FE9B5BC7B02FE080E9587BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; @@ -509,14 +512,11 @@ 5AD0D3D9D071EF79F4D2CEA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; 5B53101DF03F661003E571D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; 5C26F49D71004A08E3A0CF1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; - 5CE7F367D76371C1FFF3C664 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; 5D772B2770B73BDA1AF8B815 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; - 5DA8F03F5C8C1191011DF4C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; 5DC3F807B9FD5319F2A3651A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; 5DDC06B78943DE8EE8019F93 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; }; 5E13D21827E76C6ACCFA7358 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; 5E141F12062283522B42D8EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StatisticsAccumulator.h"; path = "../../../../../modules/juce_core/maths/juce_StatisticsAccumulator.h"; sourceTree = "SOURCE_ROOT"; }; - 5E787FADAFF518FF48945E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdcolor.c"; sourceTree = "SOURCE_ROOT"; }; 5E7F940669620DB0130FCD3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; 5EBABFCFC48AAC97FFCBCFD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; 5F6D44158DFFDE893C0193EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; @@ -709,6 +709,7 @@ 867C3B1BCE6F830734F490B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; 86E4C9BAFD35A57EC10F979A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; 86FD44F4DA4399B817CA1B65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8716B332A94D4B9386041CE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 873B652F0BD7B50479DE7520 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 8784217530CF5AAECCF34ED2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/framing.c"; sourceTree = "SOURCE_ROOT"; }; 87BCE02659EE4D59DCD32E33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; @@ -918,6 +919,7 @@ AFE21D6D3B962F8B04CAD469 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; B032C343B2510BBC0D81739B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; B03946A7332A9CA655E47260 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + B06188C8E21737FBA8A62F30 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; B076487D097918E3D510801B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; B082837B13A368148C64EB87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; B0DEA2204F8BD758EB747B5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = float.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/float.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1057,6 +1059,7 @@ CAF3F518EDC50BDEC789DFFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../../../../modules/juce_core/zip/zlib/uncompr.c"; sourceTree = "SOURCE_ROOT"; }; CB0423C1CAC3F0CFC56DEBF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; CB4E1657499BD2FF5940573A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + CB9423C6E04DD8ADC08FA58C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; CB9F9C32A3215BB9EA29564A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; CBDF4DF6A7679ECC81BACF3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputElement.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUOutputElement.cpp"; sourceTree = "SOURCE_ROOT"; }; CC2246C0B5CD65742AF62C54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1822,6 +1825,7 @@ 837D41054CF06F3C359E1C4C, F14CDF0462EBEDEE9BA22F1F, 4220849FC5D24D5998470B27, + B06188C8E21737FBA8A62F30, 1AC1AD1897BA6CDA479EECF8, 66B6E7D3C0DA58D3D789929C, 8B266FAFAC2B004FE0491E3F, @@ -1936,7 +1940,9 @@ 1C510CCD7B8234F455CAB860, 1727DCA5EF0641010D04F7A1, 10632C4F008A111031D05448, - 1391051B07375667336EF320, ); name = network; sourceTree = ""; }; + 1391051B07375667336EF320, + 8716B332A94D4B9386041CE9, + CB9423C6E04DD8ADC08FA58C, ); name = network; sourceTree = ""; }; 24A69247815F23EA61D2D826 = {isa = PBXGroup; children = ( 666A31978FB69AB0C300F424, C18684F220FB0814153BE4E0, diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj index 1f9ae841d7..e4ce8a74f7 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj +++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 Arpeggiator + .dll true Arpeggiator + .dll true v140 @@ -636,6 +638,9 @@ true + + true + true @@ -771,6 +776,9 @@ true + + true + true @@ -2078,6 +2086,7 @@ + diff --git a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters index dac7bc2e8d..e2f7d56727 100644 --- a/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters +++ b/examples/PlugInSamples/Arpeggiator/Builds/VisualStudio2015/Arpeggiator.vcxproj.filters @@ -928,6 +928,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1078,6 +1081,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3081,6 +3087,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/PlugInSamples/Arpeggiator/JuceLibraryCode/AppConfig.h b/examples/PlugInSamples/Arpeggiator/JuceLibraryCode/AppConfig.h index 44cc0ce4e1..e970c4ce52 100644 --- a/examples/PlugInSamples/Arpeggiator/JuceLibraryCode/AppConfig.h +++ b/examples/PlugInSamples/Arpeggiator/JuceLibraryCode/AppConfig.h @@ -109,6 +109,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj index 56414de3d5..484c0d0c28 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj +++ b/examples/PlugInSamples/GainPlugIn/Builds/MacOSX/GainPlugIn.xcodeproj/project.pbxproj @@ -60,6 +60,7 @@ 015E97C363F4CE0656327274 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; 018946646831EA648038DB11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../../../../modules/juce_core/zip/zlib/infback.c"; sourceTree = "SOURCE_ROOT"; }; 01947181134AC4100C1E9540 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0203EE396E6F8D6B6F4C3C2C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 02325FB27988AABC15E9F7D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; 023B6151C1E0A0B27A80AA40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcprepct.c"; sourceTree = "SOURCE_ROOT"; }; 027412328DE49125F841AE57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEMessages.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -198,6 +199,7 @@ 1DBC2C49E8C76118F139BF71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; 1DCE505077A6C5324710A87D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; 1E169938E15F03E270AA35BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1E60BEB4CB9D162549AE8018 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 1E90D8399009E8D2C856956F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; 1EA94446B66963A255715930 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; 1EB188F935B70B5515E62F0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; @@ -777,6 +779,7 @@ 927EDE14267F24C1529C908D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_CommonFile.cpp"; path = "../../../../../modules/juce_core/native/juce_linux_CommonFile.cpp"; sourceTree = "SOURCE_ROOT"; }; 92834AA91135F9049B69068A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; 92EC9D7739D7B8886EC93C87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 937A9D7E70B3D0555556D1EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 939172D714BB97C1064800F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; 93D22E30CF61C961B6CE1733 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; 9420B606457A7060C2F978B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1826,6 +1829,7 @@ BE1897DD24C0D246E3A3CAFE, 6128AC2D8968E03358270E2C, 1A94132E3E360E82F17A6BC4, + 1E60BEB4CB9D162549AE8018, 93D22E30CF61C961B6CE1733, 0DF6C35510888847D1E902F5, CA8A03AA754B6D2E50407614, @@ -1940,7 +1944,9 @@ 3A51540ABD1A39C9E4F5B697, 072EC0BD45686F0D876AFC9F, CD117363B0E312AAFD54FA9C, - A14920DF295C8C1203169426, ); name = network; sourceTree = ""; }; + A14920DF295C8C1203169426, + 937A9D7E70B3D0555556D1EE, + 0203EE396E6F8D6B6F4C3C2C, ); name = network; sourceTree = ""; }; 91F3C2EC14C692FA6963F2F9 = {isa = PBXGroup; children = ( 2B5BFA938F8B7DD4456242C8, 33751A84F74C4C3F97292623, diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj index f87a76c416..77fd13a78c 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj +++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 GainPlugIn + .dll true GainPlugIn + .dll true v140 @@ -642,6 +644,9 @@ true + + true + true @@ -777,6 +782,9 @@ true + + true + true @@ -2085,6 +2093,7 @@ + diff --git a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters index 84fd10adeb..4480a915a5 100644 --- a/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters +++ b/examples/PlugInSamples/GainPlugIn/Builds/VisualStudio2015/GainPlugIn.vcxproj.filters @@ -928,6 +928,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1078,6 +1081,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3084,6 +3090,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer b/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer index ca4affdbbe..df060c5a1a 100644 --- a/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer +++ b/examples/PlugInSamples/GainPlugIn/GainPlugIn.jucer @@ -8,7 +8,7 @@ pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1" pluginEditorRequiresKeys="0" pluginAUExportPrefix="GainPlugInAU" pluginRTASCategory="" aaxIdentifier="com.ROLI.GainPlugIn" - pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.0" + pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.1" pluginIsMidiEffectPlugin="0" buildAUv3="0"> diff --git a/examples/PlugInSamples/GainPlugIn/JuceLibraryCode/AppConfig.h b/examples/PlugInSamples/GainPlugIn/JuceLibraryCode/AppConfig.h index 49fc3ded2b..10cd7a7825 100644 --- a/examples/PlugInSamples/GainPlugIn/JuceLibraryCode/AppConfig.h +++ b/examples/PlugInSamples/GainPlugIn/JuceLibraryCode/AppConfig.h @@ -109,6 +109,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/PlugInSamples/GenericEditor.h b/examples/PlugInSamples/GenericEditor.h index 120b904156..8bf7aedb79 100644 --- a/examples/PlugInSamples/GenericEditor.h +++ b/examples/PlugInSamples/GenericEditor.h @@ -43,6 +43,10 @@ public: { if (const AudioParameterFloat* param = dynamic_cast(params[i])) { + const bool isLevelMeter = (((param->category & 0xffff0000) >> 16) == 2); + if (isLevelMeter) + continue; + Slider* aSlider; paramSliders.add (aSlider = new Slider (param->name)); diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj index 589fa2a505..19def3694d 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj +++ b/examples/PlugInSamples/MultiOutSynth/Builds/MacOSX/MultiOutSynth.xcodeproj/project.pbxproj @@ -628,6 +628,7 @@ 7053FC8D746749F7DA46BC08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; 7059556F3B242B8E276833AC = {isa = PBXFileReference; lastKnownFileType = file.r; name = "juce_audio_plugin_client_RTAS.r"; path = "../../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS.r"; sourceTree = "SOURCE_ROOT"; }; 706EA223A5859B5B1D9AE107 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + 70A83C6E5489C7E25B607F44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 70BC3C87909EA4BAA5A23BFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 70C5C7441E1ABDD141697357 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPESynthesiserVoice.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp"; sourceTree = "SOURCE_ROOT"; }; 70D716A3A5CB882444F74D9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -772,6 +773,7 @@ 8BC913A5669953BFE5A456F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FakeMouseMoveGenerator.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_FakeMouseMoveGenerator.h"; sourceTree = "SOURCE_ROOT"; }; 8BEBCB1696D9FA887C5A0F47 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c"; sourceTree = "SOURCE_ROOT"; }; 8C038C98516FAAFA4B02C2D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8C222DCECE04801608D9DDA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 8CD1C282DEEEE9E33BED538E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; 8D3FA5C2C12EC7E60EAD2B2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; 8D8D6C4E9A3B9D7ECA7A8B6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -994,6 +996,7 @@ B85A6DC93ABF4209AE96197C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; B8FCB681E6E754ACF0D793F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_cryptography.cpp"; path = "../../../../../modules/juce_cryptography/juce_cryptography.cpp"; sourceTree = "SOURCE_ROOT"; }; B9BFB6F9BED194BD6EB8A257 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA32EAC3A6F6696CBFB6B179 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; BA3A3C4E7976F6E6A58FE217 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/all.h"; sourceTree = "SOURCE_ROOT"; }; BA3D71CC1639F38B8E894A56 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; BA6AED1534D6988B34B17EDE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1043,11 +1046,9 @@ C453837C3342293C205C2F83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; C49E420FD1E187FA65B8DD59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiRPN.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.h"; sourceTree = "SOURCE_ROOT"; }; C4B9D5E8565EEA36D3C53523 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; - C5BDC880AF3D6D7908579D75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; C5DC2ECDDAB3A46934EF8550 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c"; sourceTree = "SOURCE_ROOT"; }; C6527E22690701CDEB628259 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; C6765BF98421489E663C9713 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_plugin_client_AAX.cpp"; path = "../../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.cpp"; sourceTree = "SOURCE_ROOT"; }; - C7570B6C472BBE132D6EA308 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; C7620DBAD9E38AA49607E8A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiRPN.cpp"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiRPN.cpp"; sourceTree = "SOURCE_ROOT"; }; D06DCC799C2F8567B19C2B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; DA5881053EBA06F96F1D1CF3 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MultiOutSynth.vst3; sourceTree = "BUILT_PRODUCTS_DIR"; }; @@ -1062,6 +1063,7 @@ C543793FB12BB110AED9D59E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; C55BA71B6FDCD2E164586597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; C55EEA8F62CF0500BAE5C0C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + C5BDC880AF3D6D7908579D75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; C5C2EC39931BD2F4F037C7E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdphuff.c"; sourceTree = "SOURCE_ROOT"; }; C601E3B7474CCAD421297824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; C6416871206E496758E0AEAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1069,6 +1071,7 @@ C6AD5270E37301FDDD0D7B00 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jquant2.c"; sourceTree = "SOURCE_ROOT"; }; C6BCF1BF6CD60E7F9F8FEF18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "codec_internal.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/codec_internal.h"; sourceTree = "SOURCE_ROOT"; }; C70AF24CE449413957076690 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + C7570B6C472BBE132D6EA308 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; C776CA9A1CF4DA8FD93B8223 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = crc.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/crc.h"; sourceTree = "SOURCE_ROOT"; }; C785485A7DC04A2134F4F2B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEValue.cpp"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEValue.cpp"; sourceTree = "SOURCE_ROOT"; }; C78B08A40E0F71F8091C8F58 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1838,6 +1841,7 @@ F366732E3ADF596642F1639A, 59D43C502ABCFF34DFB72CA2, BC88BB8A29FC65FD3EB84D76, + 70A83C6E5489C7E25B607F44, 8EB72E0BBFF2C0E0BA3EDA96, CEEC9947F99D7F39C77DE79B, 59C20493E9BF8D89F9238BF1, @@ -1952,7 +1956,9 @@ B19D9B4BBB6FE2A7D87858F9, 1812A6C1E645FC4B86EF5ABC, 9EB246A061A05D2BDA8D2CA0, - BBF45E20594DD37229EFB672, ); name = network; sourceTree = ""; }; + BBF45E20594DD37229EFB672, + 8C222DCECE04801608D9DDA5, + BA32EAC3A6F6696CBFB6B179, ); name = network; sourceTree = ""; }; 84FE3767672C41B989821FF0 = {isa = PBXGroup; children = ( C9F38DEE0CD76DA4FF6BBDF8, 27A6540E8DAB996C93BBE49C, diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj index 3d315578e4..5b997a4f31 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj +++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 MultiOutSynth + .dll true MultiOutSynth + .dll true v140 @@ -91,7 +93,7 @@ if not exist "$(OutDir)$(TargetName).aaxplugin" mkdir "$(OutDir)$ if not exist "$(OutDir)$(TargetName).aaxplugin\Contents" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents" if not exist "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32\$(TargetName).aaxplugin" -"..\..\c:\SDKs\AAX\Utilities\CreatePackage.bat" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" "..\..\c:\SDKs\AAX\Utilities\PlugIn.ico" +""c:\\SDKs\\AAX\\Utilities\\CreatePackage.bat"" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" ""c:\\SDKs\\AAX\\Utilities\\PlugIn.ico"" @@ -141,7 +143,7 @@ if not exist "$(OutDir)$(TargetName).aaxplugin" mkdir "$(OutDir)$ if not exist "$(OutDir)$(TargetName).aaxplugin\Contents" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents" if not exist "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32\$(TargetName).aaxplugin" -"..\..\c:\SDKs\AAX\Utilities\CreatePackage.bat" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" "..\..\c:\SDKs\AAX\Utilities\PlugIn.ico" +""c:\\SDKs\\AAX\\Utilities\\CreatePackage.bat"" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" ""c:\\SDKs\\AAX\\Utilities\\PlugIn.ico"" @@ -652,6 +654,9 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp true + + true + true @@ -787,6 +792,9 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp true + + true + true @@ -2097,6 +2105,7 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp + diff --git a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters index 03b9155dac..3d9aac06d4 100644 --- a/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters +++ b/examples/PlugInSamples/MultiOutSynth/Builds/VisualStudio2015/MultiOutSynth.vcxproj.filters @@ -931,6 +931,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1081,6 +1084,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3093,6 +3099,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/PlugInSamples/MultiOutSynth/JuceLibraryCode/AppConfig.h b/examples/PlugInSamples/MultiOutSynth/JuceLibraryCode/AppConfig.h index 435ab15b10..559b0c061e 100644 --- a/examples/PlugInSamples/MultiOutSynth/JuceLibraryCode/AppConfig.h +++ b/examples/PlugInSamples/MultiOutSynth/JuceLibraryCode/AppConfig.h @@ -109,6 +109,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer b/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer index 48258dfb6c..6ce08873b8 100644 --- a/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer +++ b/examples/PlugInSamples/MultiOutSynth/MultiOutSynth.jucer @@ -9,7 +9,7 @@ pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="MultiOutSynthAU" pluginRTASCategory="" aaxIdentifier="com.ROLI.MultiOutSynth" pluginAAXCategory="AAX_ePlugInCategory_SWGenerators" - jucerVersion="4.3.0" companyName="ROLI Ltd." companyWebsite="www.roli.com" + jucerVersion="4.3.1" companyName="ROLI Ltd." companyWebsite="www.roli.com" companyEmail="info@juce.com" pluginIsMidiEffectPlugin="0" buildAUv3="0"> diff --git a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj index 7d439438f7..52643dfb34 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj +++ b/examples/PlugInSamples/NoiseGate/Builds/MacOSX/NoiseGate.xcodeproj/project.pbxproj @@ -160,6 +160,7 @@ 17106B2F8183E77DB5CB1791 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputBase.cpp; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUOutputBase.cpp"; sourceTree = "SOURCE_ROOT"; }; 17224629C5A04A2D8C311535 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAException.h; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/CAException.h"; sourceTree = "SOURCE_ROOT"; }; 1769D44BDA0B8E64864EA673 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_plugin_client_utils.cpp"; path = "../../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; + 177912827C9C49A83E5C493A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 17B02E07833DB8FF25CB61B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; 18040ADFE828B070A8442F0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; 181740F4C90CA4C66C6E2B8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; @@ -798,29 +799,17 @@ 9A82F298785B858993CCE61C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../../../modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; 9AD6A70D08B644E6406BD1E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "res_books_stereo.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/books/coupled/res_books_stereo.h"; sourceTree = "SOURCE_ROOT"; }; 9B2F97252A28CBC0532AC1C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9B55A59CD39578E3164E2997 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; 9C039AA0FFD66F1D922EF7C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../JuceLibraryCode/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; - 9C48479A55EBFC4C22D4B7B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; 9C779471720BDDE417ED9BE1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9CBD130337083207F2B56452 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; 9CC8CDF595616EEF33071A40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 9CDA4A2E17BF5DB191F883D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; 9D0EADD58202012822195D8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_plugin_client_VST2.cpp"; path = "../../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp"; sourceTree = "SOURCE_ROOT"; }; 9D14B147B6A2CA89387ADD72 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; - 9D67E9F6247EDE2E207EFE8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9D91048D35939171C41AFA99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9DEA01475DB585366B99507A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; 9DF06DEA20D7CC5B7784ABB5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../../../../modules/juce_core/zip/zlib/zlib.h"; sourceTree = "SOURCE_ROOT"; }; - 9E0C3CD23088388B14CFE298 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 9E1B841AC727490DBAD510C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngwio.c"; sourceTree = "SOURCE_ROOT"; }; 9E3C9508D07D11C753F6F4EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; - 9E65E218A429E2B64829B4E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9EA4A85998E5730634754DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; - 9F0F2E14CFA9F3D6A25E2B38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 9EB8F8C25EC50AA2C1289551 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; 9F385C17D1F088F19F3A12F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; - 9F39266110C56F8A0C97FA65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; - 9F5C521FCFAB9BD273073B55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; - 9F9D896F664C8CA286C041FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; A466C5F100D695F2DC325C90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; }; AFB3197B2BE07ED91A0C5FEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CatmullRomInterpolator.cpp"; path = "../../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; B6567C791BE962F993B78C02 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; @@ -829,17 +818,29 @@ 8D84B63F343660AEE31FD166 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NoiseGate.component; sourceTree = "BUILT_PRODUCTS_DIR"; }; 94E9B55296D347A134AFCA1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; 970832BB3D7B3F1D404D36CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "setup_X.h"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_X.h"; sourceTree = "SOURCE_ROOT"; }; + 9B55A59CD39578E3164E2997 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C48479A55EBFC4C22D4B7B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; 9C62742BCA5D3C9524DE3029 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NoiseGate.aaxplugin; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 9CBD130337083207F2B56452 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; 9CCA07FAE3B4A4D2257497BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; 9D366DD91CD44CED6934A26A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/bitreader.c"; sourceTree = "SOURCE_ROOT"; }; 9D67999CB8A7EA49B548EF9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; + 9D67E9F6247EDE2E207EFE8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D91048D35939171C41AFA99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 9DAB02E651736622947A4879 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 9DEA01475DB585366B99507A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + 9E0C3CD23088388B14CFE298 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 9E2841D274BDF096C1567AA0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_plugin_client_AAX.mm"; path = "../../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.mm"; sourceTree = "SOURCE_ROOT"; }; + 9E65E218A429E2B64829B4E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; 9E685F6C42796C5B486A08BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUPlugInDispatch.h; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUPlugInDispatch.h"; sourceTree = "SOURCE_ROOT"; }; + 9EA4A85998E5730634754DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; 9EB05C378008BD43BC552E33 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; - 9EB8F8C25EC50AA2C1289551 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 9F0F2E14CFA9F3D6A25E2B38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 9F39266110C56F8A0C97FA65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = jversion.h; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jversion.h"; sourceTree = "SOURCE_ROOT"; }; 9F53388B3A4667994AD93E8D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = bitwriter.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/bitwriter.h"; sourceTree = "SOURCE_ROOT"; }; + 9F5C521FCFAB9BD273073B55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; 9F5E1264C9AC4AA54E0AB158 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + 9F9D896F664C8CA286C041FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; 9FB3DAAD402A11A090B0521C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IncludeSystemHeaders.h"; path = "../../../../../modules/juce_audio_plugin_client/utility/juce_IncludeSystemHeaders.h"; sourceTree = "SOURCE_ROOT"; }; 9FC8B1D81C0535EC5B6D0C75 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_basics.cpp"; path = "../../../../../modules/juce_audio_basics/juce_audio_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; 9FD8096E8A6E070EB0D3E6F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1125,6 +1126,7 @@ D5F71BDF23BEEA366EA8E2F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; D602A07DDC281230A9657C14 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Ogg Vorbis Licence.txt"; path = "../../../../../modules/juce_audio_formats/codecs/oggvorbis/Ogg Vorbis Licence.txt"; sourceTree = "SOURCE_ROOT"; }; D728CE983C344A38A6743BAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D744D5FA83FFC322E7941A43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; D76C5795FBA50C36A54CD2E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; D7A2E04166975454688978C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; D7A8276363B3E1802C316937 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1307,6 +1309,7 @@ FC9E8A3EB85B138139C98323 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; FCC423AA738412A39006C90C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; FCDA75DBFFBEC005520A7E37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD097F6A99ED189B8C994D63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; FD41B287ABA4D47C799CF726 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; FD99F26F3E68C26BFB43AA1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jdpostct.c"; sourceTree = "SOURCE_ROOT"; }; FDD1022CBB4FE524922B3AEB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -1831,6 +1834,7 @@ 1C7FF524BBD0810430CF06D2, A79A2F454A734BF87399A9F5, 65E98340D35A2BE70D0534C4, + 177912827C9C49A83E5C493A, A9C5A07DC31D544051025C80, EA8723E2A2C8F0DD058F9665, 9EB05C378008BD43BC552E33, @@ -1945,7 +1949,9 @@ 3119C964C1406136A1A5E5BD, AA9B31B85C75B0CA6DA24741, 88D314EEFFC356133A574058, - CB9FB800411BB27FAC82E799, ); name = network; sourceTree = ""; }; + CB9FB800411BB27FAC82E799, + FD097F6A99ED189B8C994D63, + D744D5FA83FFC322E7941A43, ); name = network; sourceTree = ""; }; A63B8B9E6C9A52CF0852F71A = {isa = PBXGroup; children = ( 6BAA3A86AB3C52889E1ECC35, AFEF9B9BCF1BFD72D1CA72EB, diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj index 2dec768d26..e181077daa 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj +++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 NoiseGate + .dll true NoiseGate + .dll true v140 @@ -91,7 +93,7 @@ if not exist "$(OutDir)$(TargetName).aaxplugin" mkdir "$(OutDir)$ if not exist "$(OutDir)$(TargetName).aaxplugin\Contents" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents" if not exist "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32\$(TargetName).aaxplugin" -"..\..\c:\SDKs\AAX\Utilities\CreatePackage.bat" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" "..\..\c:\SDKs\AAX\Utilities\PlugIn.ico" +""c:\\SDKs\\AAX\\Utilities\\CreatePackage.bat"" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" ""c:\\SDKs\\AAX\\Utilities\\PlugIn.ico"" @@ -141,7 +143,7 @@ if not exist "$(OutDir)$(TargetName).aaxplugin" mkdir "$(OutDir)$ if not exist "$(OutDir)$(TargetName).aaxplugin\Contents" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents" if not exist "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32\$(TargetName).aaxplugin" -"..\..\c:\SDKs\AAX\Utilities\CreatePackage.bat" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" "..\..\c:\SDKs\AAX\Utilities\PlugIn.ico" +""c:\\SDKs\\AAX\\Utilities\\CreatePackage.bat"" "$(OutDir)$(TargetName).aaxplugin\Contents\Win32" ""c:\\SDKs\\AAX\\Utilities\\PlugIn.ico"" @@ -652,6 +654,9 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp true + + true + true @@ -787,6 +792,9 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp true + + true + true @@ -2096,6 +2104,7 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp + diff --git a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters index d210458de5..7468c1d20c 100644 --- a/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters +++ b/examples/PlugInSamples/NoiseGate/Builds/VisualStudio2015/NoiseGate.vcxproj.filters @@ -928,6 +928,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1078,6 +1081,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3087,6 +3093,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/PlugInSamples/NoiseGate/JuceLibraryCode/AppConfig.h b/examples/PlugInSamples/NoiseGate/JuceLibraryCode/AppConfig.h index a177e552b6..f6f256fe27 100644 --- a/examples/PlugInSamples/NoiseGate/JuceLibraryCode/AppConfig.h +++ b/examples/PlugInSamples/NoiseGate/JuceLibraryCode/AppConfig.h @@ -109,6 +109,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/PlugInSamples/NoiseGate/NoiseGate.jucer b/examples/PlugInSamples/NoiseGate/NoiseGate.jucer index 074c0ba12b..f2166dc6ae 100644 --- a/examples/PlugInSamples/NoiseGate/NoiseGate.jucer +++ b/examples/PlugInSamples/NoiseGate/NoiseGate.jucer @@ -8,7 +8,7 @@ pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="NoiseGateAU" pluginRTASCategory="" aaxIdentifier="com.roli.NoiseGate" - pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.0" + pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.1" pluginIsMidiEffectPlugin="0" buildAUv3="0"> diff --git a/examples/PlugInSamples/NoiseGate/Source/NoiseGate.cpp b/examples/PlugInSamples/NoiseGate/Source/NoiseGate.cpp index 1ab03abf81..4a98e375a5 100644 --- a/examples/PlugInSamples/NoiseGate/Source/NoiseGate.cpp +++ b/examples/PlugInSamples/NoiseGate/Source/NoiseGate.cpp @@ -33,7 +33,7 @@ public: NoiseGate() : AudioProcessor (BusesProperties().withInput ("Input", AudioChannelSet::stereo()) .withOutput ("Output", AudioChannelSet::stereo()) - .withInput ("Sidechain", AudioChannelSet::mono())) + .withInput ("Sidechain", AudioChannelSet::stereo())) { addParameter (threshold = new AudioParameterFloat ("threshold", "Threshold", 0.0f, 1.0f, 0.5f)); addParameter (alpha = new AudioParameterFloat ("alpha", "Alpha", 0.0f, 1.0f, 0.8f)); diff --git a/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile b/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile index 43974e5496..a615666944 100644 --- a/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile +++ b/examples/PlugInSamples/Surround/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0 -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -Wl,--no-undefined -shared -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0 -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -Wl,--no-undefined -shared -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := Surround.so BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -O3 -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -Wl,--no-undefined -shared -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -O3 -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -Wl,--no-undefined -shared -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := Surround.so BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -81,7 +88,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -89,7 +96,7 @@ check-pkg-config: clean: @echo Cleaning Surround - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping Surround @@ -98,81 +105,81 @@ strip: $(JUCE_OBJDIR)/SurroundProcessor_c7ed9c55.o: ../../Source/SurroundProcessor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling SurroundProcessor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_plugin_client_utils_35fbf7.o: ../../JuceLibraryCode/juce_audio_plugin_client_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_plugin_client_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_plugin_client_VST2_fd137df.o: ../../JuceLibraryCode/juce_audio_plugin_client_VST2.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_plugin_client_VST2.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/PlugInSamples/Surround/Builds/MacOSX/Surround.xcodeproj/project.pbxproj b/examples/PlugInSamples/Surround/Builds/MacOSX/Surround.xcodeproj/project.pbxproj index 561f39563b..3cd06fcb75 100644 --- a/examples/PlugInSamples/Surround/Builds/MacOSX/Surround.xcodeproj/project.pbxproj +++ b/examples/PlugInSamples/Surround/Builds/MacOSX/Surround.xcodeproj/project.pbxproj @@ -184,6 +184,7 @@ 1A635AC7B19A22FA1C5AE1FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; 1A755B96F4FA13FB9706F070 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; 1ABF878EC4CF5548BDE03989 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 1ADDD0DCABDBBCC74692BCDA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 1B0B59142B090064059EF414 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; 1B32BBE6348485F8B68ED911 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; 1BB6C06A841BDE30CE21AB8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -707,10 +708,10 @@ 86382EEFD2D874C080F395EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../JuceLibraryCode/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; 86422EC835DBE9E12ACAA844 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/private/memory.h"; sourceTree = "SOURCE_ROOT"; }; 86C60AB46BC50B750493C0C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; - 870B95887E00B482EC3BCBC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; 878E3A6EA611E5474CCCF740 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; 87CBFFF0A410C24D08C77B9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; 884753558BC1F3FA3CD36289 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8884CB197E61E62731D1A4B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; 889215816EC0BE292B4FC278 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 88B47C0A3A0E52A0A69E85DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; 88EBFB20CA512CF5BE712220 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcapimin.c"; sourceTree = "SOURCE_ROOT"; }; @@ -749,7 +750,7 @@ 7E9EEE55C07DEB78803DBF5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEInstrument.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.h"; sourceTree = "SOURCE_ROOT"; }; 83C89E3C13A5897E5A1A062E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEMessages.h"; path = "../../../../../modules/juce_audio_basics/mpe/juce_MPEMessages.h"; sourceTree = "SOURCE_ROOT"; }; 85FAAFC7204659F3B375631F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; - 8884CB197E61E62731D1A4B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 870B95887E00B482EC3BCBC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; 8A0648AE319C0CEA55D7AD88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; 8C3432BC2BDC534720A9DBB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../../../../modules/juce_graphics/image_formats/pnglib/pngrutil.c"; sourceTree = "SOURCE_ROOT"; }; 8D136314D0A9E7C7A20F5252 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../../../../modules/juce_core/zip/zlib/infback.c"; sourceTree = "SOURCE_ROOT"; }; @@ -950,6 +951,7 @@ B8A70AB65D399DD66984ADDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = "../../../../../modules/juce_graphics/image_formats/jpglib/jcinit.c"; sourceTree = "SOURCE_ROOT"; }; B8DE040EE5E1A84F57C346E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_gui_basics.cpp"; path = "../../../../../modules/juce_gui_basics/juce_gui_basics.cpp"; sourceTree = "SOURCE_ROOT"; }; B91EC6C409062ECFE844B213 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + B9391DD03D989309D636D1AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; B9F98E9DA83B9DF6DDEB8D74 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; BA11252A1B41F99FE7875EF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; BA3594967B27A2A928060559 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUViewLocalizedStringKeys.h; path = "../../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUViewLocalizedStringKeys.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1096,6 +1098,7 @@ D30ABE36C88A10D28AED416B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; D36B4CDCA954030E8FD4DF29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; D3D9B276C5A329C2ECCC7762 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + D4078C16B01E3CB853353FCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; D4213F3BE3F5ABFD8FB44C3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; D487D34A38A1DE7F492FDB7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; D49040D48736DBA0A0708F04 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../../../../modules/juce_audio_formats/codecs/flac/export.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1833,6 +1836,7 @@ D91C831E10E35FD587C55EAD, E9D99C7B57FBA78B15C7B7C5, 602A11234D5A0A7B698A44DD, + D4078C16B01E3CB853353FCD, B38B922A6F64EFC597284354, A8F91A8DDEFE95135E8ABF02, 2034E590062F7F6B7EEB450C, @@ -1947,7 +1951,9 @@ FDA7D1B08757B59771543D9B, 5678B143016B8436B3D88FD6, 80EA2404E65720795807D3AE, - 2D98D39894F5BD49E05A4689, ); name = network; sourceTree = ""; }; + 2D98D39894F5BD49E05A4689, + 1ADDD0DCABDBBCC74692BCDA, + B9391DD03D989309D636D1AE, ); name = network; sourceTree = ""; }; 33FE5C6705774576749E7558 = {isa = PBXGroup; children = ( C70293434A59AA2F1C600F4A, 2C9242328E31C72B5B3114F9, diff --git a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj index 9e44f27f85..e732f757d5 100644 --- a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj +++ b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj @@ -41,8 +41,10 @@ <_ProjectFileVersion>10.0.30319.1 Surround + .dll true Surround + .dll true v140_xp @@ -91,7 +93,7 @@ if not exist "$(OutDir)$(TargetName).aaxplugin" mkdir "$(OutDir)$ if not exist "$(OutDir)$(TargetName).aaxplugin\Contents" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents" if not exist "$(OutDir)$(TargetName).aaxplugin\Contents\x64" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents\x64" copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxplugin\Contents\x64\$(TargetName).aaxplugin" -"..\..\c:\SDKs\AAX\Utilities\CreatePackage.bat" "$(OutDir)$(TargetName).aaxplugin\Contents\x64" "..\..\c:\SDKs\AAX\Utilities\PlugIn.ico" +""c:\\SDKs\\AAX\\Utilities\\CreatePackage.bat"" "$(OutDir)$(TargetName).aaxplugin\Contents\x64" ""c:\\SDKs\\AAX\\Utilities\\PlugIn.ico"" @@ -140,7 +142,7 @@ if not exist "$(OutDir)$(TargetName).aaxplugin" mkdir "$(OutDir)$ if not exist "$(OutDir)$(TargetName).aaxplugin\Contents" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents" if not exist "$(OutDir)$(TargetName).aaxplugin\Contents\x64" mkdir "$(OutDir)$(TargetName).aaxplugin\Contents\x64" copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxplugin\Contents\x64\$(TargetName).aaxplugin" -"..\..\c:\SDKs\AAX\Utilities\CreatePackage.bat" "$(OutDir)$(TargetName).aaxplugin\Contents\x64" "..\..\c:\SDKs\AAX\Utilities\PlugIn.ico" +""c:\\SDKs\\AAX\\Utilities\\CreatePackage.bat"" "$(OutDir)$(TargetName).aaxplugin\Contents\x64" ""c:\\SDKs\\AAX\\Utilities\\PlugIn.ico"" @@ -651,6 +653,9 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp true + + true + true @@ -786,6 +791,9 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp true + + true + true @@ -2096,6 +2104,7 @@ copy /Y "$(OutDir)$(TargetFileName)" "$(OutDir)$(TargetName).aaxp + diff --git a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj.filters b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj.filters index d5b8aec19b..021e5ae0da 100644 --- a/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj.filters +++ b/examples/PlugInSamples/Surround/Builds/VisualStudio2015/Surround.vcxproj.filters @@ -928,6 +928,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1078,6 +1081,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3090,6 +3096,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/PlugInSamples/Surround/JuceLibraryCode/AppConfig.h b/examples/PlugInSamples/Surround/JuceLibraryCode/AppConfig.h index ce4e7ec6d8..87a033eb36 100644 --- a/examples/PlugInSamples/Surround/JuceLibraryCode/AppConfig.h +++ b/examples/PlugInSamples/Surround/JuceLibraryCode/AppConfig.h @@ -109,6 +109,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/PlugInSamples/Surround/Surround.jucer b/examples/PlugInSamples/Surround/Surround.jucer index 9ae0a9c62b..3c1d6e310a 100644 --- a/examples/PlugInSamples/Surround/Surround.jucer +++ b/examples/PlugInSamples/Surround/Surround.jucer @@ -9,7 +9,7 @@ pluginIsMidiEffectPlugin="0" pluginSilenceInIsSilenceOut="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="SurroundAU" pluginRTASCategory="" aaxIdentifier="com.ROLI.Surround" pluginAAXCategory="AAX_ePlugInCategory_Dynamics" - jucerVersion="4.3.0" buildAUv3="0"> + jucerVersion="4.3.1" buildAUv3="0"> <_ProjectFileVersion>10.0.30319.1 SimpleFFTExample + .exe true SimpleFFTExample + .exe true v120 @@ -559,6 +561,9 @@ true + + true + true @@ -694,6 +699,9 @@ true + + true + true @@ -1895,6 +1903,7 @@ + diff --git a/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample.vcxproj.filters b/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample.vcxproj.filters index 120e863835..1780c18e72 100644 --- a/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample.vcxproj.filters +++ b/examples/SimpleFFTExample/Builds/VisualStudio2013/SimpleFFTExample.vcxproj.filters @@ -793,6 +793,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -943,6 +946,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2751,6 +2757,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/SimpleFFTExample/SimpleFFTExample.jucer b/examples/SimpleFFTExample/SimpleFFTExample.jucer index ab98d96818..729dc1b671 100644 --- a/examples/SimpleFFTExample/SimpleFFTExample.jucer +++ b/examples/SimpleFFTExample/SimpleFFTExample.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1"> /dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -88,7 +95,7 @@ check-pkg-config: clean: @echo Cleaning JuceDemoPlugin - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping JuceDemoPlugin @@ -97,76 +104,76 @@ strip: $(JUCE_OBJDIR)/PluginEditor_94d4fb09.o: ../../Source/PluginEditor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling PluginEditor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/PluginProcessor_a059e380.o: ../../Source/PluginProcessor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling PluginProcessor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_plugin_client_utils_35fbf7.o: ../../JuceLibraryCode/juce_audio_plugin_client_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_plugin_client_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_plugin_client_VST2_fd137df.o: ../../JuceLibraryCode/juce_audio_plugin_client_VST2.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_plugin_client_VST2.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj b/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj index a08c2344f4..f2f7abf03d 100644 --- a/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj +++ b/examples/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj @@ -399,6 +399,7 @@ 4B7CE8D596B3F3901B2A7826 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; 4BDDD1EF709062B8DA24BA06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPENote.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPENote.cpp"; sourceTree = "SOURCE_ROOT"; }; 4BDFDEDCF05F480BB99EE8A2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4BEE40628E4C3581FF774383 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 4C4A52A64706F6C88DE0D81B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPEZone.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEZone.h"; sourceTree = "SOURCE_ROOT"; }; 4CD4D1B175AC037DFAF3E2E5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MPESynthesiserBase.h"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h"; sourceTree = "SOURCE_ROOT"; }; 6160E8E6AB587105E4DA5F8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioChannelSet.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioChannelSet.h"; sourceTree = "SOURCE_ROOT"; }; @@ -411,7 +412,6 @@ 45C2C296C9A745B292F49C65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; 46BF351143B8DAE509C4C38A = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "Flac Licence.txt"; path = "../../../../modules/juce_audio_formats/codecs/flac/Flac Licence.txt"; sourceTree = "SOURCE_ROOT"; }; 4B56EFD49A1BC1A0263A72B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../../../modules/juce_core/zip/zlib/deflate.h"; sourceTree = "SOURCE_ROOT"; }; - 4BEE40628E4C3581FF774383 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 4C1E0D6A11C45BEE00169D8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_utils/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; 4CD51FE9C1157452F5DDDF68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_plugin_client_RTAS_utils.cpp"; path = "../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; 4CE2C5B8F3B9176330D7E38D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -625,6 +625,7 @@ 78959840E3EF9DC06998BB42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; 78A4EFE0FCA98D7898349078 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../../../modules/juce_graphics/image_formats/pnglib/pngwrite.c"; sourceTree = "SOURCE_ROOT"; }; 79491394ED1AB40D68F11E13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_audio_plugin_client_RTAS_2.cpp"; path = "../../../../modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_2.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7991D8C7C52560EABF1715D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 7997E4EB2706B00B44880412 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; 79AC1A5B1BD9672F7B6DB092 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "stream_encoder.h"; path = "../../../../modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/stream_encoder.h"; sourceTree = "SOURCE_ROOT"; }; 7A1CD659BB507996CC7EE951 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -895,6 +896,7 @@ AE3C497B58239EA75FD18AD9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; AEE273E29C5B07B96BAFFA46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; AF14FDB3693F569F275C1A8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + AF428C4D152E279B11090E59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; AF7AFE4A1D7A8831E06D9645 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CatmullRomInterpolator.h"; path = "../../../../modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; AFACD6F1962239C42123364A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jmemnobs.c"; sourceTree = "SOURCE_ROOT"; }; AFE00126A5FEF419332CD2B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputElement.cpp; path = "../../../../modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUOutputElement.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1199,6 +1201,7 @@ EDD6B4608C8E4C7E7581489D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; EE149F9075819C0132879D4C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AU_Wrapper.mm"; path = "../../../../modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; }; EE1708227B48B586BE17D06B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + EE3A9FFA168148156487050A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; EE6030D7677731D8C2B14CA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; EECBEDF7C26CF9597CC601D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; EED2AEDB27E7562C4DCFA637 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1844,6 +1847,7 @@ F838E6717B0378A7AA5A8DAA, D5916F93E2539DD6996DCAAF, DEEA71B9C3EDDD33636CEEC3, + EE3A9FFA168148156487050A, E609E0D561D5D8546A90ABBD, 19F3E1F0B144D48016FDF6C0, 68AB90F3F4B4ABA2AE384EE0, @@ -1958,7 +1962,9 @@ D2B566B69C9046D46EB8289C, 62421FC040737EACE584486E, 56BFD67859B81D9E53F5B727, - 489EA9E664A2157AC01C2F94, ); name = network; sourceTree = ""; }; + 489EA9E664A2157AC01C2F94, + 7991D8C7C52560EABF1715D5, + AF428C4D152E279B11090E59, ); name = network; sourceTree = ""; }; 62CB59DB3736C01C62A14665 = {isa = PBXGroup; children = ( 115FCA1C09C15AD7EB4AC87C, DF693A14980C1E9D122E98F2, diff --git a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj index 747a0f94f5..bdde15c4a2 100644 --- a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj +++ b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 JuceDemoPlugin + .dll true JuceDemoPlugin + .dll true v140 @@ -691,6 +693,9 @@ true + + true + true @@ -826,6 +831,9 @@ true + + true + true @@ -2080,6 +2088,7 @@ + diff --git a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj.filters b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj.filters index d138e546e5..94694ca13c 100644 --- a/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj.filters +++ b/examples/audio plugin demo/Builds/VisualStudio2015/JuceDemoPlugin.vcxproj.filters @@ -970,6 +970,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -1120,6 +1123,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -3087,6 +3093,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/audio plugin demo/JuceDemoPlugin.jucer b/examples/audio plugin demo/JuceDemoPlugin.jucer index 6cdac89ac7..d285784e91 100644 --- a/examples/audio plugin demo/JuceDemoPlugin.jucer +++ b/examples/audio plugin demo/JuceDemoPlugin.jucer @@ -8,7 +8,7 @@ pluginProducesMidiOut="1" pluginSilenceInIsSilenceOut="0" pluginTailLength="0" pluginEditorRequiresKeys="1" pluginAUExportPrefix="JuceDemoProjectAU" pluginAUViewClass="JuceDemoProjectAU_V1" pluginRTASCategory="" - bundleIdentifier="com.juce.JuceDemoPlugin" jucerVersion="4.3.0" + bundleIdentifier="com.juce.JuceDemoPlugin" jucerVersion="4.3.1" companyName="ROLI Ltd." aaxIdentifier="com.yourcompany.JuceDemoPlugin" buildAAX="0" pluginAAXCategory="AAX_ePlugInCategory_Dynamics" includeBinaryInAppConfig="1" buildVST3="1" pluginManufacturerEmail="support@yourcompany.com" diff --git a/examples/audio plugin demo/JuceLibraryCode/AppConfig.h b/examples/audio plugin demo/JuceLibraryCode/AppConfig.h index 99ecc464a5..9b421481f2 100644 --- a/examples/audio plugin demo/JuceLibraryCode/AppConfig.h +++ b/examples/audio plugin demo/JuceLibraryCode/AppConfig.h @@ -107,6 +107,10 @@ //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS #endif +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS +#endif + //============================================================================== // juce_audio_processors flags: diff --git a/examples/audio plugin host/Builds/Linux/Makefile b/examples/audio plugin host/Builds/Linux/Makefile index 8b373f410b..055e3b26a7 100644 --- a/examples/audio plugin host/Builds/Linux/Makefile +++ b/examples/audio plugin host/Builds/Linux/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := Plugin\ Host BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_7346DA2A=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -Os $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := Plugin\ Host BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -85,7 +92,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -93,7 +100,7 @@ check-pkg-config: clean: @echo Cleaning Plugin Host - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping Plugin Host @@ -102,101 +109,101 @@ strip: $(JUCE_OBJDIR)/FilterGraph_62e9c017.o: ../../Source/FilterGraph.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling FilterGraph.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/FilterIOConfiguration_1cc9b659.o: ../../Source/FilterIOConfiguration.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling FilterIOConfiguration.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/GraphEditorPanel_3dbd4872.o: ../../Source/GraphEditorPanel.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling GraphEditorPanel.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/HostStartup_5ce96f96.o: ../../Source/HostStartup.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling HostStartup.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/InternalFilters_beb54bdf.o: ../../Source/InternalFilters.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling InternalFilters.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/MainHostWindow_e920295a.o: ../../Source/MainHostWindow.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling MainHostWindow.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj b/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj index 7cb7226cc7..66c2f735e0 100644 --- a/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj +++ b/examples/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj @@ -611,6 +611,7 @@ 75F290D7B7C53C03DC653FC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; 75FCAA8D3DF24813844D6552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; 762A527676B2324439BB0318 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../../../modules/juce_audio_formats/codecs/flac/callback.h"; sourceTree = "SOURCE_ROOT"; }; + 763A9A183A7A43DDEDCAAA6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 7646DD91B282525F32FB8518 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; 76B5967943C389C01379E87F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; 76E4D8FCD61BCB53103C63C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; @@ -736,6 +737,7 @@ 900EA0058BB65D96876084E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; 901F35034A6F498B6035F024 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; 902D2D75157CA779F1F2324A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + 9062E6656AF90FD5A96D1998 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 90ADB27801C40001A8074FD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; 9187BBE1C406F3DAFDA09CF4 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; 918A6AE024A876783EC063DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -833,6 +835,7 @@ A2FB8F9EFCA86F0F9A80F8B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; A30AE6BCB8C3947B097DA340 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; A33C3431D27F0B126C692839 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_data_structures.cpp"; path = "../../../../modules/juce_data_structures/juce_data_structures.cpp"; sourceTree = "SOURCE_ROOT"; }; + A34E6B8C8D6A465F8AAF41CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; A3574DDAD00B4384A37492EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; A3C35D3106F9B4807D59BCD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../../../modules/juce_core/zip/zlib/inffast.h"; sourceTree = "SOURCE_ROOT"; }; A3D4618127661FE2728BAB9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1692,6 +1695,7 @@ 15C16C75F4AEE80566E12F89, 54737D917B4E0D544E7E652C, DDE8C5406D4928C0C240E6EA, + 9062E6656AF90FD5A96D1998, FE136D9C5722936D4E70D10D, 28ED5260F421B14669651864, 9FD54AAEFDAC77FAC6186FC2, @@ -1806,7 +1810,9 @@ 5C24DE268797C1C7AC932837, 2CA584226C55F38D81D05A38, 0AD649B7CF3F9E2A8C875081, - E000EB4363C6887897FB457C, ); name = network; sourceTree = ""; }; + E000EB4363C6887897FB457C, + A34E6B8C8D6A465F8AAF41CE, + 763A9A183A7A43DDEDCAAA6F, ); name = network; sourceTree = ""; }; F4668068AEF190621CE35505 = {isa = PBXGroup; children = ( 01A717DA37FEFAD85FBB4903, E266710E1EB05EA9BCA234A8, diff --git a/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj b/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj index b2a30e7002..78382d1466 100644 --- a/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj +++ b/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 Plugin Host + .exe true Plugin Host + .exe true @@ -558,6 +560,9 @@ true + + true + true @@ -693,6 +698,9 @@ true + + true + true @@ -1970,6 +1978,7 @@ + diff --git a/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters b/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters index dcd77ce38e..c2d0908869 100644 --- a/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters +++ b/examples/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters @@ -841,6 +841,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -991,6 +994,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2904,6 +2910,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj index 666348dcdd..0cfe5026dd 100644 --- a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj +++ b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 Plugin Host + .exe true Plugin Host + .exe true v120 @@ -564,6 +566,9 @@ true + + true + true @@ -699,6 +704,9 @@ true + + true + true @@ -1976,6 +1984,7 @@ + diff --git a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj.filters b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj.filters index a1f4640969..c2a44147b2 100644 --- a/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj.filters +++ b/examples/audio plugin host/Builds/VisualStudio2013/Plugin Host.vcxproj.filters @@ -841,6 +841,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -991,6 +994,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2904,6 +2910,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj index d902ee5cd6..f3fe3abb42 100644 --- a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj +++ b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 Plugin Host + .exe true Plugin Host + .exe true v140 @@ -564,6 +566,9 @@ true + + true + true @@ -699,6 +704,9 @@ true + + true + true @@ -1976,6 +1984,7 @@ + diff --git a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj.filters b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj.filters index 1c39ecd3bf..022b6846b8 100644 --- a/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj.filters +++ b/examples/audio plugin host/Builds/VisualStudio2015/Plugin Host.vcxproj.filters @@ -841,6 +841,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -991,6 +994,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2904,6 +2910,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/examples/audio plugin host/Plugin Host.jucer b/examples/audio plugin host/Plugin Host.jucer index cfd4c7969b..2d4367c7fe 100644 --- a/examples/audio plugin host/Plugin Host.jucer +++ b/examples/audio plugin host/Plugin Host.jucer @@ -2,7 +2,7 @@ & targetBuses = (isInput ? busesLayout.inputBuses : busesLayout.outputBuses); + int maxNumBuses = 0; + + if (auto* buses = xml.getChildByName (isInput ? "INPUTS" : "OUTPUTS")) + { + forEachXmlChildElementWithTagName (*buses, e, "BUS") + { + const int busIdx = e->getIntAttribute ("index"); + maxNumBuses = jmax (maxNumBuses, busIdx + 1); + + // the number of buses on busesLayout may not be in sync with the plugin after adding buses + // because adding an input bus could also add an output bus + for (int actualIdx = plugin->getBusCount (isInput) - 1; actualIdx < busIdx; ++actualIdx) + if (! plugin->addBus (isInput)) return; + + for (int actualIdx = targetBuses.size() - 1; actualIdx < busIdx; ++actualIdx) + targetBuses.add (plugin->getChannelLayoutOfBus (isInput, busIdx)); + + const String& layout = e->getStringAttribute("layout"); + + if (layout.isNotEmpty()) + targetBuses.getReference (busIdx) = AudioChannelSet::fromAbbreviatedString (layout); + } + } + + // if the plugin has more buses than specified in the xml, then try to remove them! + while (maxNumBuses < targetBuses.size()) + { + if (! plugin->removeBus (isInput)) + return; + + targetBuses.removeLast(); + } +} + +//============================================================================== +static XmlElement* createBusLayoutXml (const AudioProcessor::BusesLayout& layout, const bool isInput) +{ + const Array& buses = (isInput ? layout.inputBuses : layout.outputBuses); + + XmlElement* xml = new XmlElement (isInput ? "INPUTS" : "OUTPUTS"); + + const int n = buses.size(); + for (int busIdx = 0; busIdx < n; ++busIdx) + { + XmlElement* bus = new XmlElement ("BUS"); + bus->setAttribute ("index", busIdx); + + const AudioChannelSet& set = buses.getReference (busIdx); + const String layoutName = set.isDisabled() ? "disabled" : set.getSpeakerArrangementAsString(); + + bus->setAttribute ("layout", layoutName); + + xml->addChildElement (bus); + } + + return xml; +} + static XmlElement* createNodeXml (AudioProcessorGraph::Node* const node) noexcept { AudioPluginInstance* plugin = dynamic_cast (node->getProcessor()); @@ -327,6 +388,14 @@ static XmlElement* createNodeXml (AudioProcessorGraph::Node* const node) noexcep state->addTextElement (m.toBase64Encoding()); e->addChildElement (state); + XmlElement* layouts = new XmlElement ("LAYOUT"); + const AudioProcessor::BusesLayout layout = plugin->getBusesLayout(); + + for (bool isInput : { true, false }) + layouts->addChildElement (createBusLayoutXml (layout, isInput)); + + e->addChildElement (layouts); + return e; } @@ -344,14 +413,19 @@ void FilterGraph::createNodeFromXml (const XmlElement& xml) AudioPluginInstance* instance = formatManager.createPluginInstance (pd, graph.getSampleRate(), graph.getBlockSize(), errorMessage); - if (instance == nullptr) - { - // xxx handle ins + outs - } - if (instance == nullptr) return; + if (const XmlElement* const layoutEntity = xml.getChildByName ("LAYOUT")) + { + AudioProcessor::BusesLayout layout = instance->getBusesLayout(); + + for (bool isInput : { true, false }) + readBusLayoutFromXml (layout, instance, *layoutEntity, isInput); + + instance->setBusesLayout (layout); + } + AudioProcessorGraph::Node::Ptr node (graph.addNode (instance, (uint32) xml.getIntAttribute ("uid"))); if (const XmlElement* const state = xml.getChildByName ("STATE")) diff --git a/extras/AudioPerformanceTest/AudioPerformanceTest.jucer b/extras/AudioPerformanceTest/AudioPerformanceTest.jucer index 87bc7a47c3..92396e6d2f 100644 --- a/extras/AudioPerformanceTest/AudioPerformanceTest.jucer +++ b/extras/AudioPerformanceTest/AudioPerformanceTest.jucer @@ -2,7 +2,7 @@ + includeBinaryInAppConfig="1" jucerVersion="4.3.1"> diff --git a/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile b/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile index 86ac13bd2a..0bd719b89f 100644 --- a/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile +++ b/extras/AudioPerformanceTest/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := AudioPerformanceTest BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := AudioPerformanceTest BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -77,7 +84,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -85,7 +92,7 @@ check-pkg-config: clean: @echo Cleaning AudioPerformanceTest - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping AudioPerformanceTest @@ -94,61 +101,61 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_utils_c7eb679f.o: ../../JuceLibraryCode/juce_audio_utils.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_utils.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj b/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj index d556f02fb0..066aba138d 100644 --- a/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj +++ b/extras/AudioPerformanceTest/Builds/MacOSX/AudioPerformanceTest.xcodeproj/project.pbxproj @@ -830,6 +830,7 @@ B58743FE48B10A581E6097CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; B5AF3F3B893E7D19B80EE0C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; B5BA79CC82D06D67F7AB1B94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + B613AD5CD7D0F194A0BCB717 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; B616F1A2F003067580167783 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; B65F1BEA12EE3D722EF3B232 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; B660B68D11DCF9DAA6E38F11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -863,6 +864,7 @@ BCD0AACFBE72D3B11FEA6C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; BCFB67C5C864E7D06CAF19B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; BD06828DB1C4B74A7519AA49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + BD2F243B5F0195F74C16A563 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; BD7E81EFFBDE420C015965FE = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "libpng_readme.txt"; path = "../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt"; sourceTree = "SOURCE_ROOT"; }; BE9365B35DD9AE62D00ABC65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; BF35646861CB41B4E5E870B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -947,6 +949,7 @@ CFB4DCFA5B5958F2259731ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; CFB7E1B87400E062203FCAC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; CFC288965D13DA3AE55B0862 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFCB552C0857441C8AF40B23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; CFF3E3E27308529D8A71B0B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; D020D7629DC183D4937EC160 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; D05ED5DAE5FDE25E68241713 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1596,6 +1599,7 @@ A3DA77EBEFC20A72872F3E28, 8A9814BA560F0DC64E58403F, 6760F9B20993C2913615D62B, + CFCB552C0857441C8AF40B23, 24D257A12D67B90281563F49, 589727A3116C274566D20F5E, FE03488C6BD8BBA2DEA2AAD5, @@ -1710,7 +1714,9 @@ FE212771DD1CED8E5E1093BF, 4F0284FA3AB4945EA21980A4, BFEC403690E7A9D4FCB2828B, - BB2CB3C81D742E6FAE5008A1, ); name = network; sourceTree = ""; }; + BB2CB3C81D742E6FAE5008A1, + BD2F243B5F0195F74C16A563, + B613AD5CD7D0F194A0BCB717, ); name = network; sourceTree = ""; }; F87B0654D4A1DF3624D810C0 = {isa = PBXGroup; children = ( ABF6785F88E9CE3836BB982B, 157021E882DD2790DB3DA1C0, diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj index 90b5d8c7b3..5c2df1c1f1 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 AudioPerformanceTest + .exe true AudioPerformanceTest + .exe true v140 @@ -559,6 +561,9 @@ true + + true + true @@ -694,6 +699,9 @@ true + + true + true @@ -1895,6 +1903,7 @@ + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj.filters index 38bd4ca089..3cbdd0e222 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj.filters +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2015/AudioPerformanceTest.vcxproj.filters @@ -793,6 +793,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -943,6 +946,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2751,6 +2757,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj b/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj index cadda4aa5c..2421409581 100644 --- a/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj +++ b/extras/AudioPerformanceTest/Builds/iOS/AudioPerformanceTest.xcodeproj/project.pbxproj @@ -832,6 +832,7 @@ B58743FE48B10A581E6097CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; B5AF3F3B893E7D19B80EE0C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; B5BA79CC82D06D67F7AB1B94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + B613AD5CD7D0F194A0BCB717 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; B616F1A2F003067580167783 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; B65F1BEA12EE3D722EF3B232 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; B660B68D11DCF9DAA6E38F11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -865,6 +866,7 @@ BCD0AACFBE72D3B11FEA6C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; BCFB67C5C864E7D06CAF19B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; BD06828DB1C4B74A7519AA49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + BD2F243B5F0195F74C16A563 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; BD7E81EFFBDE420C015965FE = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "libpng_readme.txt"; path = "../../../../modules/juce_graphics/image_formats/pnglib/libpng_readme.txt"; sourceTree = "SOURCE_ROOT"; }; BE9365B35DD9AE62D00ABC65 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; BF35646861CB41B4E5E870B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -950,6 +952,7 @@ CFB4DCFA5B5958F2259731ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; CFB7E1B87400E062203FCAC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; CFC288965D13DA3AE55B0862 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MPEInstrument.cpp"; path = "../../../../modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFCB552C0857441C8AF40B23 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; CFF3E3E27308529D8A71B0B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; D020D7629DC183D4937EC160 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; D05ED5DAE5FDE25E68241713 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1598,6 +1601,7 @@ A3DA77EBEFC20A72872F3E28, 8A9814BA560F0DC64E58403F, 6760F9B20993C2913615D62B, + CFCB552C0857441C8AF40B23, 24D257A12D67B90281563F49, 589727A3116C274566D20F5E, FE03488C6BD8BBA2DEA2AAD5, @@ -1712,7 +1716,9 @@ FE212771DD1CED8E5E1093BF, 4F0284FA3AB4945EA21980A4, BFEC403690E7A9D4FCB2828B, - BB2CB3C81D742E6FAE5008A1, ); name = network; sourceTree = ""; }; + BB2CB3C81D742E6FAE5008A1, + BD2F243B5F0195F74C16A563, + B613AD5CD7D0F194A0BCB717, ); name = network; sourceTree = ""; }; F87B0654D4A1DF3624D810C0 = {isa = PBXGroup; children = ( ABF6785F88E9CE3836BB982B, 157021E882DD2790DB3DA1C0, diff --git a/extras/BLOCKS/doxygen/images/BlocksMonitor.png b/extras/BLOCKS/doxygen/images/BlocksMonitor.png index 8caa0388f3..45f3ed80b4 100644 Binary files a/extras/BLOCKS/doxygen/images/BlocksMonitor.png and b/extras/BLOCKS/doxygen/images/BlocksMonitor.png differ diff --git a/extras/BLOCKS/doxygen/pages/controlling_led_grids.dox b/extras/BLOCKS/doxygen/pages/controlling_led_grids.dox index 767f729241..16eaa0182e 100644 --- a/extras/BLOCKS/doxygen/pages/controlling_led_grids.dox +++ b/extras/BLOCKS/doxygen/pages/controlling_led_grids.dox @@ -33,25 +33,5 @@ void setLED (Block& block, int x, int y, Colour c) Using a custom %LEDGrid::Program allows more precise control over the operation of the LEDs. The code which will actually execute on the device, returned by your overriden LEDGrid::Program::getLittleFootProgram() function, must be specified in the LittleFoot language. - -@subsection the_littlefoot_language The LittleFoot Language - -A description of the LittleFoot language is contained in the SDK source code at juce_blocks_basics/littlefoot/LittleFoot Language README.txt: -@includedoc "LittleFoot Language README.txt" - -@subsection littlefoot_example A LittleFoot example - -The %BitmapLEDProgram class is a simple example of a LittleFoot program. - -%juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h -@include juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h - -juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp -@include juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp - -The repaint() method of the LittleFoot program is called at approximately 25 Hz, and each time it simply inspects the heap (the shared area of memory used to communicate between your application code and your LittleFoot program) and sets the LEDs based on the heap's content. -To update the heap, and hence the LEDS, your application code calls BitmapLEDProgram::setLED. - -A more advanced example can be found in the source code of the DrumPadGridProgram class. */ diff --git a/extras/BLOCKS/doxygen/pages/example_blocks_monitor.dox b/extras/BLOCKS/doxygen/pages/example_blocks_monitor.dox index 405a7258db..3131c7bf6f 100644 --- a/extras/BLOCKS/doxygen/pages/example_blocks_monitor.dox +++ b/extras/BLOCKS/doxygen/pages/example_blocks_monitor.dox @@ -9,7 +9,7 @@ BlocksMonitor is a simple JUCE application that shows currently connected Lightp Navigate to the JUCE/examples/BLOCKS/BlocksMonitor/Builds/ directory and open the code project in your IDE of choice. Run the application and connect your Blocks (if you do not know how to do this, see @ref connecting_blocks). Any devices that you have connected should now show up in the application window and this display will be updated as you add and remove Blocks. Lightpads are represented as a black square and will display the current touches as coloured circles, the size of which depend on the touch pressure, and Control Blocks are shown as rectangles containing the LED row and clickable buttons on the hardware. If you hover the mouse cursor over a %Block, a tooltip will appear displaying the name, UID, serial number and current battery level. -\image html BlocksMonitor.png "The BlocksMonitor application with a Lightpad and Control Block connected" +\image html BlocksMonitor.png "The BlocksMonitor application with a Lightpad and 3 Control Blocks connected" @section blocks_monitor_topology Topology @@ -19,7 +19,7 @@ To access the current topology, MainComponent inherits from the Top @section blocks_monitor_block_object The Block Object -The array of %Block objects contained in the %BlockTopology struct can be used to access individual %Block objects and determine their type using the Block::getType() method. The application uses this information to construct an on-screen representation of the currently connected Blocks by creating either a LightpadComponent or ControlBlockComponent object for each %Block in the current topology. Both of these classes derive from BlockComponent, a relatively simple base class that contains some virtual functions for painting the %Block on screen and handling callbacks from the touch surface and/or buttons on the %Block. In its constructor, BlockComponent takes a reference to the %Block object that it represents and adds itself as a listener to the touch surface (if it is a Lightpad) and buttons using the Block::getTouchSurface() and Block::getButtons() methods, respectively. It inherits from the TouchSurface::Listener and ControlButton::Listener classes and overrides the TouchSurface::Listener::touchChanged(), ControlButton::Listener::buttonPressed() and ControlButton::Listener::buttonReleased() methods to call its own virtual methods, which are implemented by the LightpadComponent and ControlBlockComponent classes to update the on-screen components. +The array of %Block objects contained in the %BlockTopology struct can be used to access individual %Block objects and determine their type using the Block::getType() method. The application uses this information to construct an on-screen representation of the currently connected Blocks by creating either a LightpadComponent or ControlBlockComponent object for each %Block in the current topology. Both of these classes derive from BlockComponent, a relatively simple base class that contains some virtual functions for painting the %Block on screen and handling callbacks from the touch surface and/or buttons on the %Block. In its constructor, BlockComponent takes a pointer to the %Block object that it represents and adds itself as a listener to the touch surface (if it is a Lightpad) and buttons using the Block::getTouchSurface() and Block::getButtons() methods, respectively. It inherits from the TouchSurface::Listener and ControlButton::Listener classes and overrides the TouchSurface::Listener::touchChanged(), ControlButton::Listener::buttonPressed() and ControlButton::Listener::buttonReleased() methods to call its own virtual methods, which are implemented by the LightpadComponent and ControlBlockComponent classes to update the on-screen components. To visualise touches on the Lightpad, LightpadComponent contains an instance of the TouchList class called touches and calls the TouchList::updateTouch() method whenever it receives a touch surface listener callback in the LightpadComponent::handleTouchChange() method. The LightpadBlock::paint() method then iterates over the current TouchSurface::Touch objects in the %TouchList and visualises them on the component at 25Hz. @@ -27,6 +27,13 @@ The ControlBlockComponent class represents a generic Control %Block These callback methods are a simple and powerful way to get user input from the Blocks and use this data to drive some process in your application. In this example, the input is simply mirrored on the screen but it could be used to control any number of things such as audio synthesis (see the @ref example_blocks_synth example) and graphics (see the @ref example_blocks_drawing example). +@section blocks_monitor_connections Blocks Connections + +The %BlockTopology struct returned by the %PhysicalTopologySource::getCurrentTopology() method also contains an array of BlockDeviceConnection objects representing all the current DNA port connections between Blocks in the topology. A single %BlockDeviceConnection struct describes a physical connection between two ports on two Blocks and contains a Block::UID and Block::ConnectionPort object for each of the two devices. + +This information is used to calculate the position and rotation of each connected %Block and update the corresponding topLeft and rotation member variables of its BlockComponent so that the correct topology is displayed on the screen. The topLeft variable is a Point that describes the position of the top left of the BlockComponent in terms of logical device units relative to the top left of the master %Block at Point (0, 0). Initially, all BlockComponent instances have the topLeft position (0, 0) and the MainComponent::positionBlocks() method iterates first over all of the Blocks connected to the master %Block and then any remaining Blocks and calculates the correct topLeft %Point and rotation for each using the array of %BlockDeviceConnection objects. Then, in the MainComponent::resized() method these attributes are used to correctly position the components. + + @section blocks_monitor_summary Summary This tutorial and the accompanying code has introduced the %BlockTopology and %Block objects, and demonstrated how to receive callbacks from connected Blocks when the touch surface or buttons are pressed, allowing you to use this input in your own applications. diff --git a/extras/BLOCKS/doxygen/pages/example_blocks_synth.dox b/extras/BLOCKS/doxygen/pages/example_blocks_synth.dox index cd6934e0e4..0e29eeb328 100644 --- a/extras/BLOCKS/doxygen/pages/example_blocks_synth.dox +++ b/extras/BLOCKS/doxygen/pages/example_blocks_synth.dox @@ -9,7 +9,7 @@ BlocksSynth is a JUCE application that turns your Lightpad into a simple monopho Navigate to the JUCE/examples/BLOCKS/BlocksSynth/Builds/ directory and open the code project in your IDE of choice. Run the application and connect your Lightpad (if you do not know how to do this, see @ref connecting_blocks) - it should now display a simple 5x5 grid where each pad plays a note in the chromatic scale using a sine wave starting from the bottom-left (C3). It is possible to play any of the 25 notes but for ease of use tonics (the root note of the scale) are highlighted in white and notes in the C-major scale are highlighted in green. When a note has been played it is possible to change the amplitude using touch pressure and to pitch bend between adjacent notes by sliding left and right. Pressing the mode button on the Lightpad will change to the waveshape selection screen where the currently selected waveshape is rendered on the LEDs and you can switch between the 4 different waveshapes by touching anywhere on the %Block surface. -The concept of a BLOCKS topology and the methods for receiving callbacks from the Block object are covered in the @ref example_blocks_monitor example and the basic methods for displaying grids and setting LEDs on the %Block are covered in the @ref example_blocks_drawing example. This example will cover how to render more complex displays on the LEDGrid and how to do some simple audio synthesis using data from the Lightpad. +The concept of a BLOCKS topology and the methods for receiving callbacks from the Block object are covered in the @ref example_blocks_monitor example and the basic methods for displaying grids and setting LEDs on the %Block are covered in the @ref example_blocks_drawing example. This example will cover how to render custom programs on the LEDGrid using the Littlefoot language and how to do some simple audio synthesis using data from the Lightpad. @section blocks_synth_note_grid Note Grid @@ -19,7 +19,9 @@ In the synthesiser mode the Lightpad displays a 5x5 grid constructed using the D @section blocks_synth_waveshape_display Waveshape Display -In the waveshape selection mode the LEDGrid::Program is set to an instance of BitmapLEDProgram and uses a Timer to draw moving waveshapes onto the LEDs of the Lightpad. In the constructor of MainComponent the MainComponent::generateWaveshapes() method is called - this function generates 45 Y coordinates scaled and offset to fit the LED grid of the Lightpad for each of the 4 waveshapes and stores them in 4 separate arrays: sineWaveY, squareWaveY, sawWaveY and triangleWaveY. Then in the MainComponent::timerCallback() method, a for loop iterates over the 15 LEDs on the X-axis and draws an LED 'circle' using the MainComponent::drawLEDCircle() method at the corresponding Y coordinate for the selected waveshape. The read position of the array is offset using the yOffset variable which is incremented each timer callback and wraps back around when the end of the array is reached to draw a 'moving' waveshape. +In the waveshape selection mode the LEDGrid::Program is set to an instance of the WaveshapeProgram class, which is contained in the WaveshapeProgram.h file. This class inherits from %LEDGrid::Program so that it can be loaded onto the %LEDGrid and its LittleFoot program can be executed on the Lightpad. The class itself is relatively simple and contains a method to set which waveshape should be displayed, a method to load the coordinates for each of the four waveshapes into the heap and two pure virtual methods overridden from %LEDGrid::Program - LEDGrid::Program::getLittleFootProgram() and LEDGrid::Program::getHeapSize(). The heap is the area of shared memory that is used by the program to communicate with the host computer and the size of this memory is set using the getHeapSize() method. In the private section of WaveshapeProgram the structure of the shared data heap is laid out with variables containing the offsets for each section and the totalDataSize variable contains the total size (in bytes) that is required and is returned by the WaveshapeProgram::getHeapSize() method. The heap contains space for a variable that determines which waveshape type to display and the Y coordinates for 1.5 cycles of each of the four waveshapes. + +The WaveshapeProgram::getLittleFootProgram() method returns the LittleFoot program that will be executed on the BLOCKS device. The repaint() method of this program is called at approximately 25Hz and is used to draw the moving waveshape on the LEDs of the Lightpad. Each time this method is called, it clears the LEDs by setting them all to black then calculates the heap offset based on the waveshape type that has been set and uses a for loop to iterate over the 15 LEDs on the X-axis and draw an LED 'circle' using the drawLEDCircle() method at the corresponding Y coordinate for the selected waveshape. The read position of the heap is offset using the yOffset variable which is incremented each repaint() call and wraps back around when the end of the heap section for the selected waveshape is reached to draw a 'moving' waveshape. \image html BlocksSynth_waveshape.gif "A sine wave dispayed in the waveshape selection mode" @@ -30,6 +32,6 @@ The Oscillators.h file contains the waveshape rendering code. It contai @section blocks_synth_summary Summary -This tutorial and the accompanying code project have expanded on the topics covered by previous tutorials, showing you how to display more complex programs on the %LEDGrid and how to control simple audio synthesis parameters using the Lightpad. +This tutorial and the accompanying code project have expanded on the topics covered by previous tutorials, showing you how to display more complex, custom programs on the %LEDGrid using the LittleFoot language and how to control simple audio synthesis parameters using the Lightpad. */ diff --git a/extras/BLOCKS/doxygen/pages/main.dox b/extras/BLOCKS/doxygen/pages/main.dox index 512c6a4ba4..a5f122b0c8 100644 --- a/extras/BLOCKS/doxygen/pages/main.dox +++ b/extras/BLOCKS/doxygen/pages/main.dox @@ -39,6 +39,13 @@ Lightpad and Control Blocks have control buttons, either a mode button on their This section explains how to control the LED grid on a Lightpad. +
+@subpage the_littlefoot_language + +Advanced SDK users can specify specialised programs to run on Lightpad Blocks. +These programs must be written in the LittleFoot language, which is described +in this section. +
@subpage controlling_led_strips diff --git a/extras/BLOCKS/doxygen/pages/the_littlefoot_language.dox b/extras/BLOCKS/doxygen/pages/the_littlefoot_language.dox new file mode 100644 index 0000000000..4e115eb8ba --- /dev/null +++ b/extras/BLOCKS/doxygen/pages/the_littlefoot_language.dox @@ -0,0 +1,24 @@ +/** +@page the_littlefoot_language The LittleFoot Language + +@section littlefoot_description A description of the LittleFoot language + +A description of the LittleFoot language is contained in the SDK source code at juce_blocks_basics/littlefoot/LittleFoot Language README.txt: +@includedoc "LittleFoot Language README.txt" + +@section littlefoot_example A LittleFoot example + +The %BitmapLEDProgram class is a simple example of a LittleFoot program. + +%juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h +@include juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h + +juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp +@include juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp + +The repaint() method of the LittleFoot program is called at approximately 25 Hz, and each time it simply inspects the heap (the shared area of memory used to communicate between your application code and your LittleFoot program) and sets the LEDs based on the heap's content. +To update the heap, and hence the LEDS, your application code calls BitmapLEDProgram::setLED. + +A more advanced example can be found in the source code of the DrumPadGridProgram class or in the @ref example_blocks_synth example. +*/ + diff --git a/extras/BLOCKS/doxygen/pages/the_standalone_blocks_sdk.dox b/extras/BLOCKS/doxygen/pages/the_standalone_blocks_sdk.dox index 248150b997..b7244cabe7 100644 --- a/extras/BLOCKS/doxygen/pages/the_standalone_blocks_sdk.dox +++ b/extras/BLOCKS/doxygen/pages/the_standalone_blocks_sdk.dox @@ -9,16 +9,19 @@ Finally, when you want to compile your application, you must link against the st @section standalone_building_library Building the SDK library -The source code for the BLOCKS SDK library is contained within the SDK directory of the BLOCKS-SDK repository. -Here you will find a header file that you can include in your own projects and the Build directory contains an XCode project, a Visual Studio project and a Linux Makefile for compiling the SDK source code into a static library. +The source code for the BLOCKS SDK library is contained within the BLOCKS-SDK-static and BLOCKS-SDK-dynamic directories of the BLOCKS-SDK repository. +Here you will find header files that you can include in your own projects and the Builds subdirectory contains an XCode project, a Visual Studio project and a Linux Makefile for compiling the SDK source code into either static or dynamic library. Open the appropriate project for your platform, select either the "Debug" or "Release" configuration, and build the project. -For MacOS and Linux this will produce libBLOCKS-SDK.a in either a Debug/ or Release/ directory, and for Windows this will produce BLOCKS-SDK.lib in x64/Debug/ or x64/Release/. + +For the remainder of this page of documentation we will assume that you will be building the static library. + +For MacOS this will produce libBLOCKS-SDK-static.a in either a build/Debug/ or build/Release/ directory, for Linux this will produce libBLOCKS-SDK-static.a in build/, and for Windows this will produce BLOCKS-SDK-static.lib in x64/Debug/ or x64/Release/. @section standalone_using_header Using the SDK header file To use BLOCKS classes and functions in your application you must include the BlocksHeader.h file in your source code. -You must also tell the compiler to look in the SDK/ directory for additional header files, which you can configure inside your XCode or Visual Studio project. -If you are using the command line to compile your application then you can see an example of how to do this in examples/BLOCKS-SDK/BlockFinder/Linux/Makefile (which is also appropriate for MacOS, despite being located inside the Linux directory). +You must also tell the compiler to look in the BLOCKS-SDK-static/JuceLibraryCode/ and BLOCKS-SDK-static/JuceLibraryCode/modules directories for additional header files, which you can configure inside your XCode or Visual Studio project. +If you are using the command line to compile your application then you can see an example of how to do this in examples/BLOCKS-SDK/BlockFinder/LinuxMakefile/Makefile (which is also appropriate for MacOS, despite being located inside the Linux directory). @section standalone_linking Linking against the SDK library diff --git a/extras/BLOCKS/doxygen/stylesheet.css b/extras/BLOCKS/doxygen/stylesheet.css index 125edee3de..f41da2b9de 100644 --- a/extras/BLOCKS/doxygen/stylesheet.css +++ b/extras/BLOCKS/doxygen/stylesheet.css @@ -29,7 +29,7 @@ h4 { font-smoothing: antialiased } hr { - border-top: 2px solid #ebebeb; + border-top: 2px solid #fbfbfb; margin: 20px 0 } .link-list { @@ -2075,7 +2075,7 @@ body, input { font-family: Open Sans, Helvetica, sans-serif; color: #323d47; - background: #ebebeb + background: #fbfbfb } a { color: #4665a2 @@ -2111,7 +2111,7 @@ hr { border: 1px solid #f59cad } a.SelectItem:hover { - background: #ebebeb; + background: #fbfbfb; color: #000 } #MSearchResultsWindow { @@ -2145,11 +2145,11 @@ a.SelectItem:hover { height: 3px; border-style: double; border-width: 6px 0; - border-color: #ebebeb; + border-color: #fbfbfb; margin-left: 2px } div.header { - background: #ebebeb; + background: #fbfbfb; border: 0 } h2.groupheader { diff --git a/extras/BLOCKS/standalone_sdk/create_standalone_sdk.py b/extras/BLOCKS/standalone_sdk/create_standalone_sdk.py index 7b0b13240e..8100c7b17b 100644 --- a/extras/BLOCKS/standalone_sdk/create_standalone_sdk.py +++ b/extras/BLOCKS/standalone_sdk/create_standalone_sdk.py @@ -1,3 +1,6 @@ +# Run this script in an empty directory to create the contents of the +# standalone SDK repository. + import os import shutil @@ -9,28 +12,16 @@ with open(os.path.join(script_dir, "..", "juce_modules.txt"), "r") as f: for line in f: juce_modules.append(line.strip()) -# Make sure we are starting afresh. -out_directory = "BLOCKS-SDK" -try: - shutil.rmtree(out_directory) -except OSError as e: - if e.errno != 2: - # An errno of 2 indicates that the directory does not exist, which is - # fine! - raise e - # Copy the required modules into the SDK dir. -sdk_dir = os.path.join(out_directory, "SDK") -shutil.copytree(os.path.join(script_dir, "SDK"), sdk_dir) +sdk_dir = "SDK" +shutil.copytree(os.path.join(script_dir, sdk_dir), sdk_dir) for module_name in juce_modules: shutil.copytree(os.path.join(script_dir, "..", "..", "..", "modules", module_name), os.path.join(sdk_dir, module_name)) # Copy the examples. -shutil.copytree(os.path.join(script_dir, "examples"), - os.path.join(out_directory, "examples")) +shutil.copytree(os.path.join(script_dir, "examples"), "examples") # Copy the README. -shutil.copyfile(os.path.join(script_dir, "README.md"), - os.path.join(out_directory, "README.md")) +shutil.copyfile(os.path.join(script_dir, "README.md"), "README.md") diff --git a/extras/Projucer/Builds/LinuxMakefile/Makefile b/extras/Projucer/Builds/LinuxMakefile/Makefile index b5b3cb8833..ef4ebeb1fa 100644 --- a/extras/Projucer/Builds/LinuxMakefile/Makefile +++ b/extras/Projucer/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=4.3.0 -DJUCE_APP_VERSION_HEX=0x40300 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 -std=c++11 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=4.3.1 -DJUCE_APP_VERSION_HEX=0x40301 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 -std=c++11 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := Projucer BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=4.3.0 -DJUCE_APP_VERSION_HEX=0x40300 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 -std=c++11 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=4.3.1 -DJUCE_APP_VERSION_HEX=0x40301 $(shell pkg-config --cflags freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 -std=c++11 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs freetype2 libcurl x11 xext xinerama) -ldl -lpthread -lrt $(LDFLAGS) TARGET := Projucer BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -121,7 +128,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -129,7 +136,7 @@ check-pkg-config: clean: @echo Cleaning Projucer - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping Projucer @@ -138,281 +145,281 @@ strip: $(JUCE_OBJDIR)/jucer_AppearanceSettings_788d9889.o: ../../Source/Application/jucer_AppearanceSettings.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_AppearanceSettings.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_AutoUpdater_ca658dc2.o: ../../Source/Application/jucer_AutoUpdater.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_AutoUpdater.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_CommandLine_f35de107.o: ../../Source/Application/jucer_CommandLine.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_CommandLine.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_DocumentEditorComponent_695dff1d.o: ../../Source/Application/jucer_DocumentEditorComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_DocumentEditorComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_DownloadCompileEngineThread_8a38703f.o: ../../Source/Application/jucer_DownloadCompileEngineThread.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_DownloadCompileEngineThread.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_GlobalPreferences_b0f1bd3d.o: ../../Source/Application/jucer_GlobalPreferences.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_GlobalPreferences.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_Main_f8488f5b.o: ../../Source/Application/jucer_Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_MainWindow_1e163aeb.o: ../../Source/Application/jucer_MainWindow.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_MainWindow.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_OpenDocumentManager_4c72d210.o: ../../Source/Application/jucer_OpenDocumentManager.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_OpenDocumentManager.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/projucer_CompileEngineClient_542e6b2d.o: ../../Source/LiveBuildEngine/projucer_CompileEngineClient.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling projucer_CompileEngineClient.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/projucer_CompileEngineServer_a5a32aa5.o: ../../Source/LiveBuildEngine/projucer_CompileEngineServer.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling projucer_CompileEngineServer.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_SourceCodeEditor_461f5487.o: ../../Source/Code\ Editor/jucer_SourceCodeEditor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_SourceCodeEditor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ComponentTypeHandler_6bec6262.o: ../../Source/ComponentEditor/components/jucer_ComponentTypeHandler.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ComponentTypeHandler.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ButtonDocument_56c341cc.o: ../../Source/ComponentEditor/documents/jucer_ButtonDocument.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ButtonDocument.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ComponentDocument_92868083.o: ../../Source/ComponentEditor/documents/jucer_ComponentDocument.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ComponentDocument.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ColouredElement_70cbc839.o: ../../Source/ComponentEditor/paintelements/jucer_ColouredElement.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ColouredElement.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_PaintElement_653460.o: ../../Source/ComponentEditor/paintelements/jucer_PaintElement.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_PaintElement.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_PaintElementPath_908894a5.o: ../../Source/ComponentEditor/paintelements/jucer_PaintElementPath.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_PaintElementPath.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ComponentLayoutEditor_aeb44f8d.o: ../../Source/ComponentEditor/ui/jucer_ComponentLayoutEditor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ComponentLayoutEditor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ComponentOverlayComponent_fd508d63.o: ../../Source/ComponentEditor/ui/jucer_ComponentOverlayComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ComponentOverlayComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_EditingPanelBase_6c2ed9ee.o: ../../Source/ComponentEditor/ui/jucer_EditingPanelBase.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_EditingPanelBase.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_JucerDocumentEditor_2c581e26.o: ../../Source/ComponentEditor/ui/jucer_JucerDocumentEditor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_JucerDocumentEditor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_PaintRoutineEditor_f6ac0344.o: ../../Source/ComponentEditor/ui/jucer_PaintRoutineEditor.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_PaintRoutineEditor.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_PaintRoutinePanel_c309a0d7.o: ../../Source/ComponentEditor/ui/jucer_PaintRoutinePanel.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_PaintRoutinePanel.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ResourceEditorPanel_a558f2e2.o: ../../Source/ComponentEditor/ui/jucer_ResourceEditorPanel.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ResourceEditorPanel.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_TestComponent_db757dc4.o: ../../Source/ComponentEditor/ui/jucer_TestComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_TestComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_BinaryResources_e0f99b46.o: ../../Source/ComponentEditor/jucer_BinaryResources.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_BinaryResources.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ComponentLayout_6ea00129.o: ../../Source/ComponentEditor/jucer_ComponentLayout.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ComponentLayout.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_GeneratedCode_9ca4ef7e.o: ../../Source/ComponentEditor/jucer_GeneratedCode.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_GeneratedCode.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_JucerDocument_ff8afcc2.o: ../../Source/ComponentEditor/jucer_JucerDocument.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_JucerDocument.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ObjectTypes_4406f01c.o: ../../Source/ComponentEditor/jucer_ObjectTypes.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ObjectTypes.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_PaintRoutine_e1e891ee.o: ../../Source/ComponentEditor/jucer_PaintRoutine.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_PaintRoutine.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_DependencyPathPropertyComponent_4d137229.o: ../../Source/Project/jucer_DependencyPathPropertyComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_DependencyPathPropertyComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_Module_3f7666a5.o: ../../Source/Project/jucer_Module.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_Module.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_Project_c131864a.o: ../../Source/Project/jucer_Project.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_Project.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ProjectExporter_eefe2e5b.o: ../../Source/Project\ Saving/jucer_ProjectExporter.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ProjectExporter.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ProjectSaver_38b16c25.o: ../../Source/Project\ Saving/jucer_ProjectSaver.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ProjectSaver.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ResourceFile_6af120d3.o: ../../Source/Project\ Saving/jucer_ResourceFile.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ResourceFile.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_CodeHelpers_c317179c.o: ../../Source/Utility/jucer_CodeHelpers.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_CodeHelpers.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_FileHelpers_f98ed0ad.o: ../../Source/Utility/jucer_FileHelpers.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_FileHelpers.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_Icons_9db2f51e.o: ../../Source/Utility/jucer_Icons.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_Icons.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_JucerTreeViewBase_d043309d.o: ../../Source/Utility/jucer_JucerTreeViewBase.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_JucerTreeViewBase.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_MiscUtilities_25b68c82.o: ../../Source/Utility/jucer_MiscUtilities.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_MiscUtilities.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_ProjucerLookAndFeel_d6c6b28a.o: ../../Source/Utility/jucer_ProjucerLookAndFeel.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_ProjucerLookAndFeel.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_SlidingPanelComponent_9aa7a2ab.o: ../../Source/Utility/jucer_SlidingPanelComponent.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_SlidingPanelComponent.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_StoredSettings_26078d2c.o: ../../Source/Utility/jucer_StoredSettings.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_StoredSettings.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_NewFileWizard_fac97f47.o: ../../Source/Wizards/jucer_NewFileWizard.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_NewFileWizard.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/jucer_NewProjectWizardClasses_891f6fa2.o: ../../Source/Wizards/jucer_NewProjectWizardClasses.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_NewProjectWizardClasses.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling BinaryData.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/extras/Projucer/Builds/MacOSX/Info-App.plist b/extras/Projucer/Builds/MacOSX/Info-App.plist index 2ed1ad416e..492d93c037 100644 --- a/extras/Projucer/Builds/MacOSX/Info-App.plist +++ b/extras/Projucer/Builds/MacOSX/Info-App.plist @@ -33,9 +33,9 @@ CFBundleSignature ???? CFBundleShortVersionString - 4.3.0 + 4.3.1 CFBundleVersion - 4.3.0 + 4.3.1 NSHumanReadableCopyright NSHighResolutionCapable diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj index 544316aeef..f9a61c0c0e 100644 --- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj +++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj @@ -300,6 +300,7 @@ 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"; }; 33267FA61241D957E4304728 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "changes to libjpeg for JUCE.txt"; path = "../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt"; sourceTree = "SOURCE_ROOT"; }; + 3352AE3C5B7BBB6E6BE308F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.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"; }; 3514E78B58A08F4C98F54C5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentLayoutPanel.h"; path = "../../Source/ComponentEditor/ui/jucer_ComponentLayoutPanel.h"; sourceTree = "SOURCE_ROOT"; }; @@ -489,6 +490,7 @@ 631983AA62673015F8D7453B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_StoredSettings.cpp"; path = "../../Source/Utility/jucer_StoredSettings.cpp"; sourceTree = "SOURCE_ROOT"; }; 635290DEB1D564927D7A450C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "projucer_CompileEngineServer.cpp"; path = "../../Source/LiveBuildEngine/projucer_CompileEngineServer.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"; }; + 63A924F701EA7ABD2DAFA2D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.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"; }; 641B57E5FAE6BEFDB6462921 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ResourceEditorPanel.h"; path = "../../Source/ComponentEditor/ui/jucer_ResourceEditorPanel.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1082,6 +1084,7 @@ 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"; }; F1164F66F799CEA74174328A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + F16722821DB72C079716CBEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; F18AE75F1831D13FF53A8CCC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_PaintElementRectangle.h"; path = "../../Source/ComponentEditor/paintelements/jucer_PaintElementRectangle.h"; 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"; }; @@ -1435,6 +1438,7 @@ 7E3ACAD10381DA0D81093329, 24CA69C0CC466CD524021099, 4F88933C6D2AB8A83EB14E16, + 63A924F701EA7ABD2DAFA2D6, 19BA84DFC81467A0CD6DC44D, 90BD70D106A80947463BCB1A, B4AA53EF291A383B3C50048A, @@ -1549,7 +1553,9 @@ 6CD1E57C60BC2917A46BF4AD, C2ECD077AC4C784A67BC3DDE, FF04AE9E4F2AAA29AC549461, - EBF7B2DEDAEEB28C1873F580, ); name = network; sourceTree = ""; }; + EBF7B2DEDAEEB28C1873F580, + 3352AE3C5B7BBB6E6BE308F9, + F16722821DB72C079716CBEA, ); name = network; sourceTree = ""; }; CE726671300191C325E9A55E = {isa = PBXGroup; children = ( 3276A099EB6880D55D2D52C0, B89AC6F01153CC6E222EE72E, @@ -2393,8 +2399,8 @@ "_DEBUG=1", "DEBUG=1", "JUCER_XCODE_MAC_F6D2F4CF=1", - "JUCE_APP_VERSION=4.3.0", - "JUCE_APP_VERSION_HEX=0x40300", ); + "JUCE_APP_VERSION=4.3.1", + "JUCE_APP_VERSION_HEX=0x40301", ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); INFOPLIST_FILE = Info-App.plist; @@ -2417,8 +2423,8 @@ "_NDEBUG=1", "NDEBUG=1", "JUCER_XCODE_MAC_F6D2F4CF=1", - "JUCE_APP_VERSION=4.3.0", - "JUCE_APP_VERSION_HEX=0x40300", ); + "JUCE_APP_VERSION=4.3.1", + "JUCE_APP_VERSION_HEX=0x40301", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj b/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj index 413b499ccd..27b24de258 100644 --- a/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj @@ -41,8 +41,10 @@ <_ProjectFileVersion>10.0.30319.1 Projucer + .exe true Projucer + .exe true v120 @@ -58,7 +60,7 @@ Disabled ProgramDatabase ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=4.3.0;JUCE_APP_VERSION_HEX=0x40300;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=4.3.1;JUCE_APP_VERSION_HEX=0x40301;%(PreprocessorDefinitions) MultiThreadedDebugDLL true @@ -97,7 +99,7 @@ Full ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=4.3.0;JUCE_APP_VERSION_HEX=0x40300;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2013_78A5020=1;JUCE_APP_VERSION=4.3.1;JUCE_APP_VERSION_HEX=0x40301;%(PreprocessorDefinitions) MultiThreaded true @@ -227,6 +229,9 @@ true + + true + true @@ -362,6 +367,9 @@ true + + true + true @@ -1549,6 +1557,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj.filters index d6fd3b963a..7a94799c24 100644 --- a/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2013/Projucer.vcxproj.filters @@ -460,6 +460,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -610,6 +613,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2337,6 +2343,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/extras/Projucer/Builds/VisualStudio2013/resources.rc b/extras/Projucer/Builds/VisualStudio2013/resources.rc index 61a9e7d6bf..081fd0df9d 100644 --- a/extras/Projucer/Builds/VisualStudio2013/resources.rc +++ b/extras/Projucer/Builds/VisualStudio2013/resources.rc @@ -7,16 +7,16 @@ #include VS_VERSION_INFO VERSIONINFO -FILEVERSION 4,3,0,0 +FILEVERSION 4,3,1,0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN VALUE "FileDescription", "Projucer\0" - VALUE "FileVersion", "4.3.0\0" + VALUE "FileVersion", "4.3.1\0" VALUE "ProductName", "Projucer\0" - VALUE "ProductVersion", "4.3.0\0" + VALUE "ProductVersion", "4.3.1\0" END END diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj index 75334440f0..3000aae997 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj @@ -41,8 +41,10 @@ <_ProjectFileVersion>10.0.30319.1 Projucer + .exe true Projucer + .exe true v140 @@ -58,7 +60,7 @@ Disabled ProgramDatabase ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=4.3.0;JUCE_APP_VERSION_HEX=0x40300;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=4.3.1;JUCE_APP_VERSION_HEX=0x40301;%(PreprocessorDefinitions) MultiThreadedDebugDLL true @@ -97,7 +99,7 @@ Full ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=4.3.0;JUCE_APP_VERSION_HEX=0x40300;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=4.3.1;JUCE_APP_VERSION_HEX=0x40301;%(PreprocessorDefinitions) MultiThreaded true @@ -227,6 +229,9 @@ true + + true + true @@ -362,6 +367,9 @@ true + + true + true @@ -1549,6 +1557,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj.filters index cac93bc3d1..aa50d3928b 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer.vcxproj.filters @@ -460,6 +460,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -610,6 +613,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2337,6 +2343,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/extras/Projucer/Builds/VisualStudio2015/resources.rc b/extras/Projucer/Builds/VisualStudio2015/resources.rc index 61a9e7d6bf..081fd0df9d 100644 --- a/extras/Projucer/Builds/VisualStudio2015/resources.rc +++ b/extras/Projucer/Builds/VisualStudio2015/resources.rc @@ -7,16 +7,16 @@ #include VS_VERSION_INFO VERSIONINFO -FILEVERSION 4,3,0,0 +FILEVERSION 4,3,1,0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN VALUE "FileDescription", "Projucer\0" - VALUE "FileVersion", "4.3.0\0" + VALUE "FileVersion", "4.3.1\0" VALUE "ProductName", "Projucer\0" - VALUE "ProductVersion", "4.3.0\0" + VALUE "ProductVersion", "4.3.1\0" END END diff --git a/extras/Projucer/JuceLibraryCode/JuceHeader.h b/extras/Projucer/JuceLibraryCode/JuceHeader.h index 7bce745e27..65d8fe6afa 100644 --- a/extras/Projucer/JuceLibraryCode/JuceHeader.h +++ b/extras/Projucer/JuceLibraryCode/JuceHeader.h @@ -35,8 +35,8 @@ namespace ProjectInfo { const char* const projectName = "Projucer"; - const char* const versionString = "4.3.0"; - const int versionNumber = 0x40300; + const char* const versionString = "4.3.1"; + const int versionNumber = 0x40301; } #endif diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index c13a1985fc..e768d2f0bf 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -1,7 +1,7 @@ showEditorForFile (File (compileUnit), true); } diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h index 199bff2955..5e2df15728 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h @@ -138,9 +138,9 @@ public: } //============================================================================== - void addPlatformSpecificSettingsForProjectType (const ProjectType&) override + void addPlatformSpecificSettingsForProjectType (const ProjectType& type) override { - // no-op. + createDynamicLibrary = type.isAudioPlugin() || type.isDynamicLibrary(); } private: @@ -241,6 +241,25 @@ private: } } + if (config.exporter.isLinux()) + { + if (createDynamicLibrary) + flags.add ("-fPIC"); + + if (linuxPackages.size() > 0) + { + auto pkgconfigFlags = String ("`pkg-config --cflags"); + for (auto p : linuxPackages) + pkgconfigFlags << " " << p; + + pkgconfigFlags << "`"; + flags.add (pkgconfigFlags); + } + + if (linuxLibs.contains("pthread")) + flags.add ("-pthread"); + } + return getCleanedStringArray (flags); } @@ -254,6 +273,19 @@ private: flags.addTokens (replacePreprocessorTokens (config, getExtraLinkerFlagsString()).trim(), " \n", "\"'"); + if (config.exporter.isLinux() && linuxPackages.size() > 0) + { + if (createDynamicLibrary) + flags.add ("-shared"); + + auto pkgconfigLibs = String ("`pkg-config --libs"); + for (auto p : linuxPackages) + pkgconfigLibs << " " << p; + + pkgconfigLibs << "`"; + flags.add (pkgconfigLibs); + } + return getCleanedStringArray (flags); } @@ -262,9 +294,7 @@ private: StringArray paths; paths.add ("."); - paths.add (RelativePath (project.getGeneratedCodeFolder(), - getTargetFolder(), RelativePath::buildTargetFolder).toWindowsStyle()); - + paths.addArray (extraSearchPaths); paths.addArray (config.getHeaderSearchPaths()); if (! (isCodeBlocks() && isWindows())) @@ -443,6 +473,7 @@ private: } CodeBlocksOS os; + bool createDynamicLibrary = false; JUCE_DECLARE_NON_COPYABLE (CodeBlocksProjectExporter) }; diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h index ba031c755e..54a90d33ef 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h @@ -184,7 +184,11 @@ private: void addAAXPluginSettings() { - const RelativePath aaxLibsFolder = RelativePath (getAAXPathValue().toString(), RelativePath::projectFolder).getChildFile ("Libs"); + const RelativePath aaxSDKFolder = RelativePath (getAAXPathValue().toString(), + RelativePath::projectFolder); + msvcExtraPreprocessorDefs.set ("JucePlugin_AAXLibs_path", + createRebasedPath (aaxSDKFolder.getChildFile ("Libs"))); + const RelativePath aaxSDKUtilitiesFolder = aaxSDKFolder.getChildFile ("Utilities"); for (ProjectExporter::ConfigIterator config (*this); config.next();) { @@ -194,20 +198,17 @@ private: if (config->getValue(Ids::postbuildCommand).toString().isEmpty()) { const String previousBuildCommands = config->getValue (Ids::internalPostBuildComamnd).toString(); - const String aaxSDKPath = File::isAbsolutePath(aaxPath.toString()) - ? aaxPath.toString() - : String ("..\\..\\") + aaxPath.toString(); const bool is64Bit = (config->getValue (Ids::winArchitecture) == "x64"); const String bundleDir = "$(OutDir)$(TargetName).aaxplugin"; const String bundleContents = bundleDir + "\\Contents"; const String macOSDir = bundleContents + String ("\\") + (is64Bit ? "x64" : "Win32"); const String executable = macOSDir + String ("\\$(TargetName).aaxplugin"); - const String bundleScript = aaxSDKPath + String ("\\Utilities\\CreatePackage.bat"); - String iconFilePath = getTargetFolder().getChildFile ("icon.ico").getFullPathName(); + const String bundleScript = createRebasedPath (aaxSDKUtilitiesFolder.getChildFile ("CreatePackage.bat")); + String iconFilePath = getTargetFolder().getChildFile ("icon.ico").getFullPathName(); if (! File (iconFilePath).existsAsFile()) - iconFilePath = aaxSDKPath + String ("\\Utilities\\PlugIn.ico"); + iconFilePath = createRebasedPath (aaxSDKUtilitiesFolder.getChildFile ("PlugIn.ico")); String script; @@ -228,9 +229,6 @@ private: config->getValue (Ids::internalPostBuildComamnd) = previousBuildCommands + script; } } - - msvcExtraPreprocessorDefs.set ("JucePlugin_AAXLibs_path", - createRebasedPath (aaxLibsFolder)); } void addRTASPluginSettings() @@ -1504,6 +1502,12 @@ protected: targetName->addTextElement (config.getOutputFilename (String(), true)); } + { + XmlElement* targetExt = props->createNewChildElement ("TargetExt"); + setConditionAttribute (*targetExt, config); + targetExt->addTextElement (msvcTargetSuffix); + } + { XmlElement* manifest = props->createNewChildElement ("GenerateManifest"); setConditionAttribute (*manifest, config); diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h index 7ed90c5cdc..fdcc401975 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_Make.h @@ -117,11 +117,12 @@ public: if (type.isStaticLibrary()) makefileTargetSuffix = ".a"; - else if (type.isDynamicLibrary()) - makefileTargetSuffix = ".so"; - - else if (type.isAudioPlugin()) + else if (type.isAudioPlugin() || type.isDynamicLibrary()) + { makefileIsDLL = true; + if (type.isDynamicLibrary()) + makefileTargetSuffix = ".so"; + } } protected: @@ -228,12 +229,12 @@ private: out << " JUCE_CPPFLAGS := $(DEPFLAGS)"; writeDefineFlags (out, config); writeHeaderPathFlags (out, config); - out << newLine; + out << " $(CPPFLAGS)" << newLine; } void writeLinkerFlags (OutputStream& out, const BuildConfiguration& config) const { - out << " JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR)"; + out << " JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR)"; { StringArray flags (makefileExtraLinkerFlags); @@ -278,7 +279,7 @@ private: out << " -l" << replacePreprocessorTokens (config, libraries.joinIntoString (" -l")).trim(); out << " " << replacePreprocessorTokens (config, getExtraLinkerFlagsString()).trim() - << newLine; + << " $(LDFLAGS)" << newLine; } void writeConfig (OutputStream& out, const BuildConfiguration& config) const @@ -306,7 +307,7 @@ private: writeCppFlags (out, config); - out << " JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH)"; + out << " JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH)"; if (config.isDebug()) out << " -g -ggdb"; @@ -316,16 +317,15 @@ private: out << " -O" << config.getGCCOptimisationFlag() << (" " + replacePreprocessorTokens (config, getExtraCompilerFlagsString())).trimEnd() - << newLine; + << " $(CFLAGS)" << newLine; String cppStandardToUse (getCppStandardString()); if (cppStandardToUse.isEmpty()) cppStandardToUse = "-std=c++11"; - out << " JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) " - << cppStandardToUse - << newLine; + out << " JUCE_CXXFLAGS += $(JUCE_CFLAGS) " + << cppStandardToUse << " $(CXXFLAGS)" << newLine; writeLinkerFlags (out, config); @@ -367,6 +367,14 @@ private: << "# Don't edit this file! Your changes will be overwritten when you re-save the Projucer project!" << newLine << newLine; + out << "# build with \"V=1\" for verbose builds" << newLine + << "ifeq ($(V), 1)" << newLine + << "V_AT =" << newLine + << "else" << newLine + << "V_AT = @" << newLine + << "endif" << newLine + << newLine; + out << "# (this disables dependency generation if multiple architectures are set)" << newLine << "DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)" << newLine << newLine; @@ -407,7 +415,7 @@ private: << "\t-@mkdir -p $(JUCE_BINDIR)" << newLine << "\t-@mkdir -p $(JUCE_LIBDIR)" << newLine << "\t-@mkdir -p $(JUCE_OUTDIR)" << newLine - << "\t@$(BLDCMD)" << newLine + << "\t$(V_AT)$(BLDCMD)" << newLine << newLine; if (useLinuxPackages) @@ -429,7 +437,7 @@ private: out << "clean:" << newLine << "\t@echo Cleaning " << projectName << newLine - << "\t@$(CLEANCMD)" << newLine + << "\t$(V_AT)$(CLEANCMD)" << newLine << newLine; out << "strip:" << newLine @@ -447,8 +455,8 @@ private: << ": " << escapeSpaces (files.getReference(i).toUnixStyle()) << newLine << "\t-@mkdir -p $(JUCE_OBJDIR)" << newLine << "\t@echo \"Compiling " << files.getReference(i).getFileName() << "\"" << newLine - << (files.getReference(i).hasFileExtension ("c;s;S") ? "\t@$(CC) $(JUCE_CFLAGS) -o \"$@\" -c \"$<\"" - : "\t@$(CXX) $(JUCE_CXXFLAGS) -o \"$@\" -c \"$<\"") + << (files.getReference(i).hasFileExtension ("c;s;S") ? "\t$(V_AT)$(CC) $(JUCE_CFLAGS) -o \"$@\" -c \"$<\"" + : "\t$(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o \"$@\" -c \"$<\"") << newLine << newLine; } } diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h index 3d0c40d487..b7399d8f80 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_XCode.h @@ -30,6 +30,7 @@ namespace const char* const osxVersionDefault = "default"; const int oldestSDKVersion = 5; const int currentSDKVersion = 12; + const int minimumAUv3SDKVersion = 11; const char* const osxArch_Default = "default"; const char* const osxArch_Native = "Native"; @@ -203,6 +204,9 @@ public: "The Development Team ID to be used for setting up code-signing your iOS app. This is a ten-character " "string (for example, \"S7B6T5XJ2Q\") that describes the distribution certificate Apple issued to you. " "You can find this string in the OS X app Keychain Access under \"Certificates\"."); + + props.add (new BooleanPropertyComponent (getSetting ("keepCustomXcodeSchemes"), "Keep custom Xcode schemes", "Enabled"), + "Enable this to keep any Xcode schemes you have created for debugging or running, e.g. to launch a plug-in in various hosts. If disabled, all schemes are replaced by a default set."); } bool launchProject() override @@ -966,7 +970,9 @@ public: // if the user doesn't set it, then use the last known version that works well with JUCE String deploymentTarget = "10.11"; - for (int ver = oldestSDKVersion; ver <= currentSDKVersion; ++ver) + int oldestAllowedSDKVersion = (type == AudioUnitv3PlugIn || type == StandalonePlugIn) ? minimumAUv3SDKVersion : oldestSDKVersion; + + for (int ver = oldestAllowedSDKVersion; ver <= currentSDKVersion; ++ver) { if (sdk == getSDKName (ver)) s.add ("SDKROOT = macosx10." + String (ver)); if (sdkCompat == getSDKName (ver)) deploymentTarget = "10." + String (ver); @@ -1013,8 +1019,8 @@ public: { String libPaths ("LIBRARY_SEARCH_PATHS = (\"$(inherited)\""); - for (int i = 0; i < librarySearchPaths.size(); ++i) - libPaths += ", \"\\\"" + librarySearchPaths[i] + "\\\"\""; + for (auto& p : librarySearchPaths) + libPaths += ", \"\\\"" + p + "\\\"\""; s.add (libPaths + ")"); } @@ -1072,7 +1078,7 @@ public: String def (defines.getAllKeys()[i]); const String value (defines.getAllValues()[i]); if (value.isNotEmpty()) - def << "=" << value.replace ("\"", "\\\""); + def << "=" << value.replace ("\"", "\\\\\\\""); defsList.add ("\"" + def + "\""); } @@ -1132,8 +1138,8 @@ public: StringArray libs (owner.xcodeLibs); libs.addArray (xcodeLibs); - for (int i = 0; i < libs.size(); ++i) - flags.add (getLinkerFlagForLib (libs[i])); + for (auto& l : libs) + flags.add (getLinkerFlagForLib (l)); flags = getCleanedStringArray (flags); } @@ -1193,9 +1199,8 @@ public: XmlElement* dict2 = dict->createNewChildElement ("array")->createNewChildElement ("dict"); XmlElement* arrayTag = nullptr; - for (int i = 0; i < documentExtensions.size(); ++i) + for (String ex : documentExtensions) { - String ex (documentExtensions[i]); if (ex.startsWithChar ('.')) ex = ex.substring (1); @@ -1230,8 +1235,8 @@ public: addIosBackgroundModes (dict); } - for (int i = 0; i < xcodeExtraPListEntries.size(); ++i) - dict->addChildElement (new XmlElement (xcodeExtraPListEntries.getReference(i))); + for (auto& e : xcodeExtraPListEntries) + dict->addChildElement (new XmlElement (e)); MemoryOutputStream mo; plist->writeToStream (mo, ""); @@ -1268,8 +1273,8 @@ public: dict->createNewChildElement ("key")->addTextElement (arrayKey); XmlElement* plistStringArray = dict->createNewChildElement ("array"); - for (int i = 0; i < arrayElements.size(); ++i) - plistStringArray->createNewChildElement ("string")->addTextElement (arrayElements[i]); + for (auto& e : arrayElements) + plistStringArray->createNewChildElement ("string")->addTextElement (e); } //============================================================================== @@ -1281,9 +1286,9 @@ public: v.setProperty (Ids::name, phaseName, nullptr); v.setProperty ("shellPath", "/bin/sh", nullptr); v.setProperty ("shellScript", script.replace ("\\", "\\\\") - .replace ("\"", "\\\"") - .replace ("\r\n", "\\n") - .replace ("\n", "\\n"), nullptr); + .replace ("\"", "\\\"") + .replace ("\r\n", "\\n") + .replace ("\n", "\\n"), nullptr); } } @@ -1299,8 +1304,8 @@ public: void addExtraAudioUnitTargetSettings() { xcodeOtherRezFlags = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64" - " -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" - " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\""; + " -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" + " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\""; xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); @@ -1322,7 +1327,7 @@ public: } addPlistDictionaryKey (dict, "name", owner.project.getPluginManufacturer().toString() - + ": " + owner.project.getPluginName().toString()); + + ": " + owner.project.getPluginName().toString()); addPlistDictionaryKey (dict, "description", owner.project.getPluginDesc().toString()); addPlistDictionaryKey (dict, "factoryFunction", owner.project.getPluginAUExportPrefix().toString() + "Factory"); addPlistDictionaryKey (dict, "manufacturer", pluginManufacturerCode); @@ -1357,7 +1362,7 @@ public: XmlElement* componentDict = componentArray->createNewChildElement ("dict"); addPlistDictionaryKey (componentDict, "name", owner.project.getPluginManufacturer().toString() - + ": " + owner.project.getPluginName().toString()); + + ": " + owner.project.getPluginName().toString()); addPlistDictionaryKey (componentDict, "description", owner.project.getPluginDesc().toString()); addPlistDictionaryKey (componentDict, "factoryFunction",owner.project. getPluginAUExportPrefix().toString() + "FactoryAUv3"); addPlistDictionaryKey (componentDict, "manufacturer", owner.project.getPluginManufacturerCode().toString().trim().substring (0, 4)); @@ -1369,7 +1374,8 @@ public: componentDict->createNewChildElement ("key")->addTextElement ("tags"); XmlElement* tagsArray = componentDict->createNewChildElement ("array"); - tagsArray->createNewChildElement ("string")->addTextElement (static_cast (owner.project.getPluginIsSynth().getValue()) ? "Synth" : "Effects"); + tagsArray->createNewChildElement ("string") + ->addTextElement (static_cast (owner.project.getPluginIsSynth().getValue()) ? "Synth" : "Effects"); xcodeExtraPListEntries.add (plistKey); xcodeExtraPListEntries.add (plistEntry); @@ -1377,7 +1383,7 @@ public: void addExtraAAXTargetSettings() { - const RelativePath aaxLibsFolder = RelativePath (owner.getAAXPathValue().toString(), RelativePath::projectFolder).getChildFile ("Libs"); + auto aaxLibsFolder = RelativePath (owner.getAAXPathValue().toString(), RelativePath::projectFolder).getChildFile ("Libs"); xcodeExtraLibrariesDebug.add (aaxLibsFolder.getChildFile ("Debug/libAAXLibrary.a")); xcodeExtraLibrariesRelease.add (aaxLibsFolder.getChildFile ("Release/libAAXLibrary.a")); @@ -1463,16 +1469,14 @@ private: void prepareTargets() const { - for (int targetIdx = 0; targetIdx < targets.size(); ++targetIdx) + for (auto* target : targets) { - Target& target = *targets[targetIdx]; - - if (target.type == Target::AggregateTarget) + if (target->type == Target::AggregateTarget) continue; - target.addMainBuildProduct(); + target->addMainBuildProduct(); - String targetName = target.getName(); + String targetName = target->getName(); String fileID (createID (targetName + String ("__targetbuildref"))); String fileRefID (createID (String ("__productFileID") + targetName)); @@ -1480,30 +1484,27 @@ private: v->setProperty ("isa", "PBXBuildFile", nullptr); v->setProperty ("fileRef", fileRefID, nullptr); - target.mainBuildProductID = fileID; + target->mainBuildProductID = fileID; pbxBuildFiles.add (v); - target.addDependency(); + target->addDependency(); } } void addPlistFileReferences() const { - for (int targetIdx = 0; targetIdx < targets.size(); ++targetIdx) + for (auto* target : targets) { - Target& target = *targets[targetIdx]; - - if (target.type == Target::AggregateTarget) + if (target->type == Target::AggregateTarget) continue; - if (target.xcodeCreatePList) + if (target->xcodeCreatePList) { - RelativePath plistPath (target.infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder); + RelativePath plistPath (target->infoPlistFile, getTargetFolder(), RelativePath::buildTargetFolder); addFileReference (plistPath.toUnixStyle()); resourceFileRefs.add (createFileRefID (plistPath)); } } - } void addNibFiles() const @@ -1544,13 +1545,9 @@ private: if (! isiOS() && project.getProjectType().isAudioPlugin()) topLevelGroupIDs.add (addEntitlementsFile()); - for (int i = 0; i < getAllGroups().size(); ++i) - { - const Project::Item& group = getAllGroups().getReference(i); - + for (auto& group : getAllGroups()) if (group.getNumChildren() > 0) topLevelGroupIDs.add (addProjectItem (group)); - } } void addExtraGroupsToProject (StringArray& topLevelGroupIDs) const @@ -1577,63 +1574,61 @@ private: void addBuildPhases() const { // add build phases - for (int i = 0; i < targets.size(); ++i) + for (auto* target : targets) { - Target& target = *targets[i]; - - if (target.type != Target::AggregateTarget) - buildProducts.add (createID (String ("__productFileID") + String (target.getName()))); + if (target->type != Target::AggregateTarget) + buildProducts.add (createID (String ("__productFileID") + String (target->getName()))); for (ConstConfigIterator config (*this); config.next();) { const XcodeBuildConfiguration& xcodeConfig = dynamic_cast (*config); - target.addTargetConfig (config->getName(), target.getTargetSettings (xcodeConfig)); + target->addTargetConfig (config->getName(), target->getTargetSettings (xcodeConfig)); } - addConfigList (target, targetConfigs, createID (String ("__configList") + target.getName())); + addConfigList (*target, targetConfigs, createID (String ("__configList") + target->getName())); - target.addShellScriptBuildPhase ("Pre-build script", getPreBuildScript()); + target->addShellScriptBuildPhase ("Pre-build script", getPreBuildScript()); - if (target.type != Target::AggregateTarget) + if (target->type != Target::AggregateTarget) { // TODO: ideally resources wouldn't be copied into the AUv3 bundle as well. // However, fixing this requires supporting App groups -> TODO: add app groups - if (! projectType.isStaticLibrary() && target.type != Target::SharedCodeTarget) - target.addBuildPhase ("PBXResourcesBuildPhase", resourceIDs); + if (! projectType.isStaticLibrary() && target->type != Target::SharedCodeTarget) + target->addBuildPhase ("PBXResourcesBuildPhase", resourceIDs); StringArray rezFiles (rezFileIDs); - rezFiles.addArray (target.rezFileIDs); + rezFiles.addArray (target->rezFileIDs); if (rezFiles.size() > 0) - target.addBuildPhase ("PBXRezBuildPhase", rezFiles); + target->addBuildPhase ("PBXRezBuildPhase", rezFiles); - StringArray sourceFiles (target.sourceIDs); + StringArray sourceFiles (target->sourceIDs); - if (target.type == Target::SharedCodeTarget + if (target->type == Target::SharedCodeTarget || (! project.getProjectType().isAudioPlugin())) sourceFiles.addArray (sourceIDs); - target.addBuildPhase ("PBXSourcesBuildPhase", sourceFiles); + target->addBuildPhase ("PBXSourcesBuildPhase", sourceFiles); - if (! projectType.isStaticLibrary() && target.type != Target::SharedCodeTarget) - target.addBuildPhase ("PBXFrameworksBuildPhase", target.frameworkIDs); + if (! projectType.isStaticLibrary() && target->type != Target::SharedCodeTarget) + target->addBuildPhase ("PBXFrameworksBuildPhase", target->frameworkIDs); } - target.addShellScriptBuildPhase ("Post-build script", getPostBuildScript()); + target->addShellScriptBuildPhase ("Post-build script", getPostBuildScript()); if (project.getProjectType().isAudioPlugin() && project.shouldBuildAUv3().getValue() - && project.shouldBuildStandalone().getValue() && target.type == Target::StandalonePlugIn) + && project.shouldBuildStandalone().getValue() && target->type == Target::StandalonePlugIn) embedAppExtension(); - addTargetObject (target); + addTargetObject (*target); } } void embedAppExtension() const { - if (Target* standaloneTarget = getTargetOfType (Target::StandalonePlugIn)) + if (auto* standaloneTarget = getTargetOfType (Target::StandalonePlugIn)) { - if (Target* auv3Target = getTargetOfType (Target::AudioUnitv3PlugIn)) + if (auto* auv3Target = getTargetOfType (Target::AudioUnitv3PlugIn)) { StringArray files; files.add (auv3Target->mainBuildProductID); @@ -1651,16 +1646,16 @@ private: int bestSize = 16; - for (int i = 0; i < numElementsInArray (validSizes); ++i) + for (int size : validSizes) { - if (w == h && w == validSizes[i]) + if (w == h && w == size) { bestSize = w; break; } - if (jmax (w, h) > validSizes[i]) - bestSize = validSizes[i]; + if (jmax (w, h) > size) + bestSize = size; } return rescaleImageForIcon (image, bestSize); @@ -1834,17 +1829,14 @@ private: void createiOSIconFiles (File appIconSet) const { - const Array types (getiOSAppIconTypes()); - OwnedArray images; getIconImages (images); if (images.size() > 0) { - for (int i = 0; i < types.size(); ++i) + for (auto& type : getiOSAppIconTypes()) { - const AppIconType type = types.getUnchecked(i); - const Image image (rescaleImageForIcon (*images.getFirst(), type.size)); + auto image = rescaleImageForIcon (*images.getFirst(), type.size); MemoryOutputStream pngData; PNGImageFormat pngFormat; @@ -1901,10 +1893,8 @@ private: paths = getCleanedStringArray (paths); - for (int i = 0; i < paths.size(); ++i) + for (auto& s : paths) { - String& s = paths.getReference(i); - s = replacePreprocessorTokens (config, s); if (s.containsChar (' ')) @@ -2022,13 +2012,13 @@ private: s.removeDuplicates (true); s.sort (true); - for (int i = 0; i < s.size(); ++i) + for (auto& framework : s) { - String frameworkID = addFramework (s[i]); + String frameworkID = addFramework (framework); // find all the targets that are referring to this object for (auto& target : targets) - if (xcodeFrameworks.contains (s[i]) || target->xcodeFrameworks.contains (s[i])) + if (xcodeFrameworks.contains (framework) || target->xcodeFrameworks.contains (framework)) target->frameworkIDs.add (frameworkID); } } @@ -2036,13 +2026,13 @@ private: void addCustomResourceFolders() const { - StringArray crf; + StringArray folders; - crf.addTokens (getCustomResourceFoldersString(), ":", ""); - crf.trim(); + folders.addTokens (getCustomResourceFoldersString(), ":", ""); + folders.trim(); - for (int i = 0; i < crf.size(); ++i) - addCustomResourceFolder (crf[i]); + for (auto& crf : folders) + addCustomResourceFolder (crf); } void addXcassets() const @@ -2086,15 +2076,14 @@ private: objects.addArray (projectConfigs); objects.addArray (misc); - for (int i = 0; i < objects.size(); ++i) + for (auto* o : objects) { - ValueTree& o = *objects.getUnchecked(i); - output << "\t\t" << o.getType().toString() << " = {"; + output << "\t\t" << o->getType().toString() << " = {"; - for (int j = 0; j < o.getNumProperties(); ++j) + for (int j = 0; j < o->getNumProperties(); ++j) { - const Identifier propertyName (o.getPropertyName(j)); - String val (o.getProperty (propertyName).toString()); + const Identifier propertyName (o->getPropertyName(j)); + String val (o->getProperty (propertyName).toString()); if (val.isEmpty() || (val.containsAnyOf (" \t;<>()=,&+-_@~\r\n\\#%^`*") && ! (val.trimStart().startsWithChar ('(') @@ -2368,33 +2357,33 @@ private: projectConfigs.add (v); } - void addConfigList (Target& target, const OwnedArray & configsToUse, const String& listID) const + void addConfigList (Target& target, const OwnedArray& configsToUse, const String& listID) const { ValueTree* v = new ValueTree (listID); v->setProperty ("isa", "XCConfigurationList", nullptr); v->setProperty ("buildConfigurations", indentParenthesisedList (target.configIDs), nullptr); v->setProperty ("defaultConfigurationIsVisible", (int) 0, nullptr); - if (configsToUse[0] != nullptr) - v->setProperty ("defaultConfigurationName", configsToUse[0]->getProperty (Ids::name), nullptr); + if (auto* first = configsToUse.getFirst()) + v->setProperty ("defaultConfigurationName", first->getProperty (Ids::name), nullptr); misc.add (v); } - void addProjectConfigList (const OwnedArray & configsToUse, const String& listID) const + void addProjectConfigList (const OwnedArray& configsToUse, const String& listID) const { StringArray configIDs; - for (int i = 0; i < configsToUse.size(); ++i) - configIDs.add (configsToUse[i]->getType().toString()); + for (auto* c : configsToUse) + configIDs.add (c->getType().toString()); ValueTree* v = new ValueTree (listID); v->setProperty ("isa", "XCConfigurationList", nullptr); v->setProperty ("buildConfigurations", indentParenthesisedList (configIDs), nullptr); v->setProperty ("defaultConfigurationIsVisible", (int) 0, nullptr); - if (configsToUse[0] != nullptr) - v->setProperty ("defaultConfigurationName", configsToUse[0]->getProperty (Ids::name), nullptr); + if (auto* first = configsToUse.getFirst()) + v->setProperty ("defaultConfigurationName", first->getProperty (Ids::name), nullptr); misc.add (v); } @@ -2432,6 +2421,9 @@ private: //============================================================================== void removeMismatchedXcuserdata() const { + if (settings ["keepCustomXcodeSchemes"]) + return; + File xcuserdata = getProjectBundle().getChildFile ("xcuserdata"); if (! xcuserdata.exists()) @@ -2544,19 +2536,16 @@ private: static String getiOSAppIconContents() { - const Array types (getiOSAppIconTypes()); var images; - for (int i = 0; i < types.size(); ++i) + for (auto& type : getiOSAppIconTypes()) { - AppIconType type = types.getUnchecked(i); - DynamicObject::Ptr d = new DynamicObject(); d->setProperty ("idiom", type.idiom); d->setProperty ("size", type.sizeString); d->setProperty ("filename", type.filename); d->setProperty ("scale", type.scale); - images.append (var (d)); + images.append (var (d.get())); } return getiOSAssetContents (images); @@ -2613,13 +2602,10 @@ private: static String getiOSLaunchImageContents() { - const Array types (getiOSLaunchImageTypes()); var images; - for (int i = 0; i < types.size(); ++i) + for (auto& type : getiOSLaunchImageTypes()) { - const ImageType& type = types.getReference(i); - DynamicObject::Ptr d = new DynamicObject(); d->setProperty ("orientation", type.orientation); d->setProperty ("idiom", type.idiom); @@ -2631,7 +2617,7 @@ private: if (type.subtype != nullptr) d->setProperty ("subtype", type.subtype); - images.append (var (d)); + images.append (var (d.get())); } return getiOSAssetContents (images); @@ -2639,12 +2625,8 @@ private: static void createiOSLaunchImageFiles (const File& launchImageSet) { - const Array types (getiOSLaunchImageTypes()); - - for (int i = 0; i < types.size(); ++i) + for (auto& type : getiOSLaunchImageTypes()) { - const ImageType& type = types.getReference(i); - Image image (Image::ARGB, type.width, type.height, true); // (empty black image) image.clear (image.getBounds(), Colours::black); @@ -2667,7 +2649,7 @@ private: v->setProperty ("images", images); v->setProperty ("info", info); - return JSON::toString (var (v)); + return JSON::toString (var (v.get())); } void createXcassetsFolderFromIcons() const @@ -2787,8 +2769,8 @@ private: RelativePath rtasFolder (getRTASPathValue().toString(), RelativePath::projectFolder); - for (int i = 0; i < numElementsInArray (p); ++i) - addToExtraSearchPaths (rtasFolder.getChildFile (p[i])); + for (auto* path : p) + addToExtraSearchPaths (rtasFolder.getChildFile (path)); } JUCE_DECLARE_NON_COPYABLE (XCodeProjectExporter) diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h b/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h index 9af082e737..7565f4839e 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectSaver.h @@ -554,7 +554,11 @@ private: if (resourceFile.getNumFiles() > 0) { - resourceFile.setClassName ("BinaryData"); + auto dataNamespace = project.binaryDataNamespace().toString().trim(); + if (dataNamespace.isEmpty()) + dataNamespace = "BinaryData"; + + resourceFile.setClassName (dataNamespace); Array binaryDataFiles; diff --git a/extras/Projucer/Source/Project/jucer_ConfigTree_Modules.h b/extras/Projucer/Source/Project/jucer_ConfigTree_Modules.h index bfadbf1fb2..04f299d674 100644 --- a/extras/Projucer/Source/Project/jucer_ConfigTree_Modules.h +++ b/extras/Projucer/Source/Project/jucer_ConfigTree_Modules.h @@ -37,10 +37,23 @@ public: String getRenamingName() const override { return getDisplayName(); } void setName (const String&) override {} bool isMissing() override { return hasMissingDependencies(); } - Icon getIcon() const override { return Icon (getIcons().jigsaw, getContrastingColour (Colours::red, 0.5f)); } void showDocument() override { showSettingsPage (new ModuleSettingsPanel (project, moduleID)); } void deleteItem() override { project.getModules().removeModule (moduleID); } + Icon getIcon() const override + { + auto iconColour = Colours::yellow; + auto info = project.getModules().getModuleInfo (moduleID); + if (info.isValid() && info.getVendor() == "juce") + { + if (info.getLicense() == "ISC") + iconColour = Colours::lightblue; + else if (info.getLicense() == "GPL/Commercial") + iconColour = Colours::orange; + } + return Icon (getIcons().jigsaw, getContrastingColour (iconColour, 0.5f)); + } + void showPopupMenu() override { PopupMenu menu; @@ -303,7 +316,7 @@ public: String getDisplayName() const override { return "Modules"; } void setName (const String&) override {} bool isMissing() override { return false; } - Icon getIcon() const override { return Icon (getIcons().graph, getContrastingColour (Colours::red, 0.5f)); } + Icon getIcon() const override { return Icon (getIcons().graph, getContrastingColour (Colours::orange, 0.5f)); } void showDocument() override { diff --git a/extras/Projucer/Source/Project/jucer_DependencyPathPropertyComponent.h b/extras/Projucer/Source/Project/jucer_DependencyPathPropertyComponent.h index 582e7c8dd9..e88db2fe2a 100644 --- a/extras/Projucer/Source/Project/jucer_DependencyPathPropertyComponent.h +++ b/extras/Projucer/Source/Project/jucer_DependencyPathPropertyComponent.h @@ -46,10 +46,10 @@ public: var getValue() const override { if (isUsingProjectSettings()) - return projectSettingsValue; + return projectSettingsValue.getValue(); if (isUsingGlobalSettings()) - return globalSettingsValue; + return globalSettingsValue.getValue(); return fallbackValue; } diff --git a/extras/Projucer/Source/Project/jucer_ModulesPanel.h b/extras/Projucer/Source/Project/jucer_ModulesPanel.h index 42036cfd36..c6197e7195 100644 --- a/extras/Projucer/Source/Project/jucer_ModulesPanel.h +++ b/extras/Projucer/Source/Project/jucer_ModulesPanel.h @@ -44,6 +44,7 @@ public: addAndMakeVisible (table); table.updateContent(); table.setRowHeight (20); + table.setMultipleSelectionEnabled (true); addAndMakeVisible (setCopyModeButton); addAndMakeVisible (copyPathButton); @@ -154,6 +155,7 @@ private: ValueTree modulesValueTree; TableListBox table; TextButton setCopyModeButton, copyPathButton; + std::map modulePathClipboard; void valueTreePropertyChanged (ValueTree&, const Identifier&) override { itemChanged(); } void valueTreeChildAdded (ValueTree&, ValueTree&) override { itemChanged(); } @@ -182,30 +184,56 @@ private: void showSetPathsMenu() { - EnabledModuleList& moduleList = project.getModules(); + enum + { + copyPathsToAllModulesID = 1, + copyPathsID, + pastePathsID + }; - const String moduleToCopy (moduleList.getModuleID (table.getSelectedRow())); + auto& moduleList = project.getModules(); + auto moduleToCopy = moduleList.getModuleID (table.getSelectedRow()); if (moduleToCopy.isNotEmpty()) { PopupMenu m; - m.addItem (1, "Copy the paths from the module '" + moduleToCopy + "' to all other modules"); + m.addItem (copyPathsToAllModulesID, "Copy the paths from the module '" + moduleToCopy + "' to all other modules"); + m.addItem (copyPathsID, "Copy paths from selected module", table.getNumSelectedRows() == 1); + m.addItem (pastePathsID, "Paste paths to selected modules", ! modulePathClipboard.empty()); int res = m.showAt (©PathButton); - if (res != 0) + if (res == copyPathsToAllModulesID) { for (Project::ExporterIterator exporter (project); exporter.next();) { for (int i = 0; i < moduleList.getNumModules(); ++i) { - String modID = moduleList.getModuleID (i); + auto modID = moduleList.getModuleID (i); if (modID != moduleToCopy) exporter->getPathForModuleValue (modID) = exporter->getPathForModuleValue (moduleToCopy).getValue(); } } } + else if (res == copyPathsID) + { + modulePathClipboard.clear(); + + for (Project::ExporterIterator exporter (project); exporter.next();) + modulePathClipboard[exporter->getName()] = exporter->getPathForModuleValue (moduleToCopy).getValue(); + } + else if (res == pastePathsID) + { + for (int selectionId = 0; selectionId < table.getNumSelectedRows(); ++selectionId) + { + auto rowNumber = table.getSelectedRow (selectionId); + auto modID = moduleList.getModuleID (rowNumber); + + for (Project::ExporterIterator exporter (project); exporter.next();) + exporter->getPathForModuleValue (modID) = modulePathClipboard[exporter->getName()]; + } + } table.repaint(); } diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index 9ad61e4a19..b3b09ba4a3 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -380,14 +380,11 @@ void Project::valueTreeParentChanged (ValueTree&) {} bool Project::hasProjectBeenModified() { Time newModificationTime = getFile().getLastModificationTime(); + Time oldModificationTime = modificationTime; - if (newModificationTime != modificationTime) - { - modificationTime = newModificationTime; - return true; - } + modificationTime = newModificationTime; - return false; + return (newModificationTime.toMilliseconds() > (oldModificationTime.toMilliseconds() + 1000LL)); } //============================================================================== @@ -505,6 +502,9 @@ void Project::createPropertyEditors (PropertyListBuilder& props) props.add (new BooleanPropertyComponent (shouldIncludeBinaryInAppConfig(), "Include Binary", "Include BinaryData.h in the AppConfig.h file")); + props.add (new TextPropertyComponent (binaryDataNamespace(), "BinaryData Namespace", 256, false), + "The namespace containing the binary assests. If left empty this defaults to \"BinaryData\"."); + props.add (new TextPropertyComponent (getProjectPreprocessorDefs(), "Preprocessor definitions", 32768, true), "Global preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace, commas, or " "new-lines to separate the items - to include a space or comma in a definition, precede it with a backslash."); diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h index 520c5cf6ae..f78b008aca 100644 --- a/extras/Projucer/Source/Project/jucer_Project.h +++ b/extras/Projucer/Source/Project/jucer_Project.h @@ -113,6 +113,7 @@ public: File getBinaryDataHeaderFile() const { return getBinaryDataCppFile (0).withFileExtension (".h"); } Value getMaxBinaryFileSize() { return getProjectValue (Ids::maxBinaryFileSize); } Value shouldIncludeBinaryInAppConfig() { return getProjectValue (Ids::includeBinaryInAppConfig); } + Value binaryDataNamespace() { return getProjectValue (Ids::binaryDataNamespace); } //============================================================================== String getAppConfigFilename() const { return "AppConfig.h"; } diff --git a/extras/Projucer/Source/Utility/jucer_MiscUtilities.cpp b/extras/Projucer/Source/Utility/jucer_MiscUtilities.cpp index 5a0303451c..3931d0b1a0 100644 --- a/extras/Projucer/Source/Utility/jucer_MiscUtilities.cpp +++ b/extras/Projucer/Source/Utility/jucer_MiscUtilities.cpp @@ -175,7 +175,6 @@ StringArray getCleanedStringArray (StringArray s) { s.trim(); s.removeEmptyStrings(); - s.removeDuplicates (false); return s; } diff --git a/extras/Projucer/Source/Utility/jucer_PresetIDs.h b/extras/Projucer/Source/Utility/jucer_PresetIDs.h index b65beff8ad..e2885c2103 100644 --- a/extras/Projucer/Source/Utility/jucer_PresetIDs.h +++ b/extras/Projucer/Source/Utility/jucer_PresetIDs.h @@ -182,6 +182,7 @@ namespace Ids DECLARE_ID (userNotes); DECLARE_ID (maxBinaryFileSize); DECLARE_ID (includeBinaryInAppConfig); + DECLARE_ID (binaryDataNamespace); DECLARE_ID (characterSet); DECLARE_ID (JUCERPROJECT); DECLARE_ID (MAINGROUP); diff --git a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile index 99761d265c..cb94c2233a 100644 --- a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile +++ b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile @@ -1,6 +1,13 @@ # Automatically generated makefile, created by the Projucer # Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + # (this disables dependency generation if multiple architectures are set) DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) @@ -26,10 +33,10 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := UnitTestRunner BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -46,10 +53,10 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := -march=native endif - JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules - JUCE_CFLAGS += $(CFLAGS) $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 - JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++11 - JUCE_LDFLAGS += $(LDFLAGS) $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCE_UNIT_TESTS=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++11 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama) -lGL -ldl -lpthread -lrt $(LDFLAGS) TARGET := UnitTestRunner BLDCMD = $(CXX) -o $(JUCE_OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) @@ -80,7 +87,7 @@ $(JUCE_OUTDIR)/$(TARGET): check-pkg-config $(OBJECTS) $(RESOURCES) -@mkdir -p $(JUCE_BINDIR) -@mkdir -p $(JUCE_LIBDIR) -@mkdir -p $(JUCE_OUTDIR) - @$(BLDCMD) + $(V_AT)$(BLDCMD) check-pkg-config: @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -88,7 +95,7 @@ check-pkg-config: clean: @echo Cleaning UnitTestRunner - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping UnitTestRunner @@ -97,76 +104,76 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_basics_6b797ca1.o: ../../JuceLibraryCode/juce_audio_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_devices_a742c38b.o: ../../JuceLibraryCode/juce_audio_devices.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_formats_5a29c68a.o: ../../JuceLibraryCode/juce_audio_formats.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_audio_processors_dea3173d.o: ../../JuceLibraryCode/juce_audio_processors.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_cryptography_6de2ebff.o: ../../JuceLibraryCode/juce_cryptography.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_data_structures_72d3da2c.o: ../../JuceLibraryCode/juce_data_structures.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_events_d2be882c.o: ../../JuceLibraryCode/juce_events.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_events.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_graphics_9c18891e.o: ../../JuceLibraryCode/juce_graphics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_graphics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_basics_8a6da59c.o: ../../JuceLibraryCode/juce_gui_basics.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_gui_extra_4a026f23.o: ../../JuceLibraryCode/juce_gui_extra.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_opengl_cd70b4c2.o: ../../JuceLibraryCode/juce_opengl.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_opengl.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_osc_be4cee16.o: ../../JuceLibraryCode/juce_osc.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_osc.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_video_f128c512.o: ../../JuceLibraryCode/juce_video.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_video.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj index 8000aa60ec..04839b2ee3 100644 --- a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj +++ b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj @@ -666,6 +666,7 @@ 8B82A4BC6FD1213D4F8362A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; 8BC70216CA528960C3D89C21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; 8C449538B266A891147103D6 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 8C44D513A4249D237764C7FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; 8C73C4A7B108C27F4BA2EE99 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; 8C8A49AE954E8C36615536F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; 8CA840D1B9A30A6DAD191A89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -824,6 +825,7 @@ AEAF4C0697F7F0432E27CE06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; AF16C128B552466521C62D2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; AF4B30AA495E1A0992ADD15F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + AF58E9641B22519EF924B2BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; AFA1BDF610AF9BC8BD6EF244 = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "changes to libjpeg for JUCE.txt"; path = "../../../../modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt"; sourceTree = "SOURCE_ROOT"; }; AFDCC7ACFE5015F424E32A3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../JuceLibraryCode/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; AFEE3F9C7669EE074A1D4AF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -1080,6 +1082,7 @@ E5F7384BF7C987FE5EACA732 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlexBox.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_FlexBox.cpp"; sourceTree = "SOURCE_ROOT"; }; E61E0DA3871788BA6154F2E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; E674FC044530BA5A4171B4D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../../../modules/juce_graphics/image_formats/jpglib/jidctfst.c"; sourceTree = "SOURCE_ROOT"; }; + E6773DD1EA37481EBC79D24F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; E7153B9DA221B856B57005B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; E7166DE51677CAE75A0815D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; E784585D3D9174B3A41224E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = "../../../../modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1604,6 +1607,7 @@ BF83F16E220BF09C26FD7DA6, 2411D0D847DF2DE2AF49BC66, CF3820AA8410AD172AA37534, + E6773DD1EA37481EBC79D24F, 4133F4E19E3941A35D074636, 2774E2BDE32DACD545775C1D, 982DBDC6C0F14B2A8A6569FD, @@ -1718,7 +1722,9 @@ 92EA44F4FBD5ACA590CD1EC4, 318BCD40258102F2A6EBF436, DC5EA4452816840FCFD62DE2, - 59543077224E7229AB9215C2, ); name = network; sourceTree = ""; }; + 59543077224E7229AB9215C2, + AF58E9641B22519EF924B2BE, + 8C44D513A4249D237764C7FF, ); name = network; sourceTree = ""; }; 8F0CABC1D5BC6230095B7ED9 = {isa = PBXGroup; children = ( AFEE3F9C7669EE074A1D4AF5, ECFAC92088E5DBDDE006B9C4, diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj index 4643ca64f3..93997d99f3 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj @@ -39,8 +39,10 @@ <_ProjectFileVersion>10.0.30319.1 UnitTestRunner + .exe true UnitTestRunner + .exe true v140 @@ -511,6 +513,9 @@ true + + true + true @@ -646,6 +651,9 @@ true + + true + true @@ -1931,6 +1939,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters index e4bcc85c73..e01d776b4b 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters @@ -757,6 +757,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -907,6 +910,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2790,6 +2796,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/extras/UnitTestRunner/UnitTestRunner.jucer b/extras/UnitTestRunner/UnitTestRunner.jucer index a08a615e97..80fc549ff3 100644 --- a/extras/UnitTestRunner/UnitTestRunner.jucer +++ b/extras/UnitTestRunner/UnitTestRunner.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1" defines="JUCE_UNIT_TESTS=1"> diff --git a/extras/binarybuilder/BinaryBuilder.jucer b/extras/binarybuilder/BinaryBuilder.jucer index 18d964e1bc..f8fce0962b 100644 --- a/extras/binarybuilder/BinaryBuilder.jucer +++ b/extras/binarybuilder/BinaryBuilder.jucer @@ -1,7 +1,7 @@ /dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } @@ -75,7 +82,7 @@ check-pkg-config: clean: @echo Cleaning BinaryBuilder - @$(CLEANCMD) + $(V_AT)$(CLEANCMD) strip: @echo Stripping BinaryBuilder @@ -84,11 +91,11 @@ strip: $(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling Main.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" $(JUCE_OBJDIR)/juce_core_75b14332.o: ../../JuceLibraryCode/juce_core.cpp -@mkdir -p $(JUCE_OBJDIR) @echo "Compiling juce_core.cpp" - @$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$@" -c "$<" -include $(OBJECTS:%.o=%.d) diff --git a/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj b/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj index 212400352e..aa4a4120e7 100644 --- a/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj +++ b/extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj @@ -44,6 +44,7 @@ 2CABCBBC0306C649739EB0E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; 2D0CC061BF40931BC88D5DB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; 31CA33ED0082255CC0849423 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 32727E9284BCDE9A08ECCE8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListenerList.cpp"; path = "../../../../modules/juce_core/containers/juce_ListenerList.cpp"; sourceTree = "SOURCE_ROOT"; }; 33A39DE96B690694A19AD8C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; 3456971F540274F9AB31C7BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; 357D4D6B382A11D598CCE0F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../../../modules/juce_core/zip/zlib/infback.c"; sourceTree = "SOURCE_ROOT"; }; @@ -122,6 +123,7 @@ 8B89932ACFC6EAAD6A23D2A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; 8B9C80797EAB35C4E9D54E69 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; 8BF3ACB02CA957E05FE0D2FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = "../../../../modules/juce_core/zip/zlib/zconf.h"; sourceTree = "SOURCE_ROOT"; }; + 8C327A909D98F1AEA3DD5ADF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WebInputStream.cpp"; path = "../../../../modules/juce_core/network/juce_WebInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; 8CA5DE757A9A2C0E9A0AD4E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; 8CEB435E98CC7EB0F0C4EF13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; 8D1215F04E8191D74F58DEBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; @@ -165,6 +167,7 @@ B5EAE325889A07821BBD00A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; B734E98856A69BC74F4DA8F7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; B87992272A4EA96816AA6967 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + B955FBB26DAA5D7EB497440F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebInputStream.h"; path = "../../../../modules/juce_core/network/juce_WebInputStream.h"; sourceTree = "SOURCE_ROOT"; }; BD88E5FB088ED71A23952819 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; BD90DD39414F4A5D3AC4EA12 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; BE65CEEF9055FC7A7096C1CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_core.cpp"; path = "../../../../modules/juce_core/juce_core.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -260,6 +263,7 @@ B734E98856A69BC74F4DA8F7, E567893A13638D89E587A05F, E3B1579618AA4A6CD82AD926, + 32727E9284BCDE9A08ECCE8A, F2C836619EA63DC291987074, 0AB0A0C4BEE70A4F6C0311E3, 39ED61F0DADF05D9388872D8, @@ -374,7 +378,9 @@ C2712806918D1A2AEAEE25C1, 33A39DE96B690694A19AD8C4, 0473DA0261621F0A71DB8E52, - 6DE40A37D8B2E9767808F2DF, ); name = network; sourceTree = ""; }; + 6DE40A37D8B2E9767808F2DF, + 8C327A909D98F1AEA3DD5ADF, + B955FBB26DAA5D7EB497440F, ); name = network; sourceTree = ""; }; C366A1D80B8C33A238EDBE42 = {isa = PBXGroup; children = ( CBFB5F3CD583D9A711BAA04A, DF0F3756D5FFB55A778A31B6, diff --git a/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj b/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj index 466a82a8f8..efccf6f4c9 100644 --- a/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj +++ b/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 BinaryBuilder + .exe true BinaryBuilder + .exe true @@ -130,6 +132,9 @@ true + + true + true @@ -265,6 +270,9 @@ true + + true + true @@ -464,6 +472,7 @@ + diff --git a/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj.filters b/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj.filters index cc65e9290a..1e9f7d108a 100644 --- a/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj.filters +++ b/extras/binarybuilder/Builds/VisualStudio2010/BinaryBuilder.vcxproj.filters @@ -82,6 +82,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -232,6 +235,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -564,6 +570,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj b/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj index 8aab87710c..49b90b3e64 100644 --- a/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj +++ b/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj @@ -34,8 +34,10 @@ <_ProjectFileVersion>10.0.30319.1 juce_dll + .lib true juce_dll + .lib true @@ -552,6 +554,9 @@ true + + true + true @@ -687,6 +692,9 @@ true + + true + true @@ -1959,6 +1967,7 @@ + diff --git a/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj.filters b/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj.filters index 362f0cc818..5e574c01a8 100644 --- a/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj.filters +++ b/extras/windows dll/Builds/VisualStudio2010/juce_dll.vcxproj.filters @@ -826,6 +826,9 @@ Juce Modules\juce_core\containers + + Juce Modules\juce_core\containers + Juce Modules\juce_core\containers @@ -976,6 +979,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams @@ -2874,6 +2880,9 @@ Juce Modules\juce_core\network + + Juce Modules\juce_core\network + Juce Modules\juce_core\streams diff --git a/extras/windows dll/jucedll.jucer b/extras/windows dll/jucedll.jucer index 7026f3db07..642ac56295 100644 --- a/extras/windows dll/jucedll.jucer +++ b/extras/windows dll/jucedll.jucer @@ -2,7 +2,7 @@ + jucerVersion="4.3.1" defines="JUCE_DLL_BUILD=1" includeBinaryInAppConfig="1"> diff --git a/modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp b/modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp index 8cfaa300b9..932c43cd29 100644 --- a/modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp +++ b/modules/juce_audio_basics/buffers/juce_AudioChannelSet.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -108,6 +114,43 @@ String AudioChannelSet::getAbbreviatedChannelTypeName (AudioChannelSet::ChannelT return ""; } +AudioChannelSet::ChannelType AudioChannelSet::getChannelTypeFromAbbreviation (const String& abbr) +{ + if (abbr.length() > 0 && (abbr[0] >= '0' && abbr[0] <= '9')) + return static_cast (static_cast (discreteChannel0) + + abbr.getIntValue() + 1); + + if (abbr == "L") return left; + else if (abbr == "R") return right; + else if (abbr == "C") return centre; + else if (abbr == "Lfe") return LFE; + else if (abbr == "Ls") return leftSurround; + else if (abbr == "Rs") return rightSurround; + else if (abbr == "Lc") return leftCentre; + else if (abbr == "Rc") return rightCentre; + else if (abbr == "Cs") return centreSurround; + else if (abbr == "Lrs") return leftSurroundRear; + else if (abbr == "Rrs") return rightSurroundRear; + else if (abbr == "Tm") return topMiddle; + else if (abbr == "Tfl") return topFrontLeft; + else if (abbr == "Tfc") return topFrontCentre; + else if (abbr == "Tfr") return topFrontRight; + else if (abbr == "Trl") return topRearLeft; + else if (abbr == "Trc") return topRearCentre; + else if (abbr == "Trr") return topRearRight; + else if (abbr == "Wl") return wideLeft; + else if (abbr == "Wr") return wideRight; + else if (abbr == "Lfe2") return LFE2; + else if (abbr == "Lss") return leftSurroundSide; + else if (abbr == "Rss") return rightSurroundSide; + else if (abbr == "W") return ambisonicW; + else if (abbr == "X") return ambisonicX; + else if (abbr == "Y") return ambisonicY; + else if (abbr == "Z") return ambisonicZ; + + return unknown; +} + String AudioChannelSet::getSpeakerArrangementAsString() const { StringArray speakerTypes; @@ -124,6 +167,22 @@ String AudioChannelSet::getSpeakerArrangementAsString() const return speakerTypes.joinIntoString (" "); } +AudioChannelSet AudioChannelSet::fromAbbreviatedString (const String& str) +{ + StringArray abbr = StringArray::fromTokens(str, true); + AudioChannelSet set; + + for (int i = 0; i < abbr.size(); ++i) + { + AudioChannelSet::ChannelType type = getChannelTypeFromAbbreviation (abbr[i]); + + if (type != unknown) + set.addChannel (type); + } + + return set; +} + String AudioChannelSet::getDescription() const { if (isDiscreteLayout()) return String ("Discrete #") + String (size()); diff --git a/modules/juce_audio_basics/buffers/juce_AudioChannelSet.h b/modules/juce_audio_basics/buffers/juce_AudioChannelSet.h index c4c9274cc8..40f5209a2d 100644 --- a/modules/juce_audio_basics/buffers/juce_AudioChannelSet.h +++ b/modules/juce_audio_basics/buffers/juce_AudioChannelSet.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -302,6 +308,9 @@ public: /** Returns the abbreviated name of a channel type. For example, this method may return "Ls". */ static String getAbbreviatedChannelTypeName (ChannelType); + /** Returns the channel type from an abbreviated name. */ + static ChannelType getChannelTypeFromAbbreviation (const String& abbreviation); + //============================================================================== enum { @@ -336,6 +345,11 @@ public: the returned string will be empty.*/ String getSpeakerArrangementAsString() const; + /** Returns an AudioChannelSet from a string returned by getSpeakerArrangementAsString + + @see getSpeakerArrangementAsString */ + static AudioChannelSet fromAbbreviatedString (const String& set); + /** Returns the description of the current layout. For example, this method may return "Quadraphonic". Note that the returned string may not be unique. */ String getDescription() const; diff --git a/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp b/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp index 196d50b226..9288ee0b3e 100644 --- a/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp +++ b/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h b/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h index af9332ae38..ad6250586e 100644 --- a/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h +++ b/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h index 05c47832bf..0d17f25cfb 100644 --- a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h +++ b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -184,6 +190,39 @@ public: */ ~AudioBuffer() noexcept {} + #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS + /** Move constructor */ + AudioBuffer (AudioBuffer&& other) noexcept + : numChannels (other.numChannels), + size (other.size), + allocatedBytes (other.allocatedBytes), + channels (other.channels), + allocatedData (static_cast&&> (other.allocatedData)), + isClear (other.isClear) + { + memcpy (preallocatedChannelSpace, other.preallocatedChannelSpace, sizeof (preallocatedChannelSpace)); + other.numChannels = 0; + other.size = 0; + other.allocatedBytes = 0; + } + + /** Move assignment */ + AudioBuffer& operator= (AudioBuffer&& other) noexcept + { + numChannels = other.numChannels; + size = other.size; + allocatedBytes = other.allocatedBytes; + channels = other.channels; + allocatedData = static_cast&&> (other.allocatedData); + isClear = other.isClear; + memcpy (preallocatedChannelSpace, other.preallocatedChannelSpace, sizeof (preallocatedChannelSpace)); + other.numChannels = 0; + other.size = 0; + other.allocatedBytes = 0; + return *this; + } + #endif + //============================================================================== /** Returns the number of channels of audio data that this buffer contains. @see getSampleData diff --git a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp index 0d60e3e87c..c0f0ef542a 100644 --- a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp +++ b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h index b22e3a1877..e15db4360d 100644 --- a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h +++ b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp b/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp index 8823b426f5..8fe801c070 100644 --- a/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp +++ b/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h b/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h index 1e2ca396e3..36dcbb8880 100644 --- a/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h +++ b/modules/juce_audio_basics/effects/juce_CatmullRomInterpolator.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_Decibels.h b/modules/juce_audio_basics/effects/juce_Decibels.h index 6e039e3bef..db2bf10bdb 100644 --- a/modules/juce_audio_basics/effects/juce_Decibels.h +++ b/modules/juce_audio_basics/effects/juce_Decibels.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_FFT.cpp b/modules/juce_audio_basics/effects/juce_FFT.cpp index 93b91ccbde..8ccb23f8b4 100644 --- a/modules/juce_audio_basics/effects/juce_FFT.cpp +++ b/modules/juce_audio_basics/effects/juce_FFT.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_FFT.h b/modules/juce_audio_basics/effects/juce_FFT.h index 7ac8393076..e245fd4957 100644 --- a/modules/juce_audio_basics/effects/juce_FFT.h +++ b/modules/juce_audio_basics/effects/juce_FFT.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_IIRFilter.cpp b/modules/juce_audio_basics/effects/juce_IIRFilter.cpp index 15c644c216..b30ae3c936 100644 --- a/modules/juce_audio_basics/effects/juce_IIRFilter.cpp +++ b/modules/juce_audio_basics/effects/juce_IIRFilter.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_IIRFilter.h b/modules/juce_audio_basics/effects/juce_IIRFilter.h index a715066736..aa85aa7111 100644 --- a/modules/juce_audio_basics/effects/juce_IIRFilter.h +++ b/modules/juce_audio_basics/effects/juce_IIRFilter.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp b/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp index 03e5680254..900b446b45 100644 --- a/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp +++ b/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h b/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h index c33294a1e6..139d893c66 100644 --- a/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h +++ b/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h b/modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h index fc7490e9e9..18a1ef1059 100644 --- a/modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h +++ b/modules/juce_audio_basics/effects/juce_LinearSmoothedValue.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/effects/juce_Reverb.h b/modules/juce_audio_basics/effects/juce_Reverb.h index f3dc7d3421..f01c8aba17 100644 --- a/modules/juce_audio_basics/effects/juce_Reverb.h +++ b/modules/juce_audio_basics/effects/juce_Reverb.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/juce_audio_basics.cpp b/modules/juce_audio_basics/juce_audio_basics.cpp index a0d839fa4b..78086b179b 100644 --- a/modules/juce_audio_basics/juce_audio_basics.cpp +++ b/modules/juce_audio_basics/juce_audio_basics.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/juce_audio_basics.h b/modules/juce_audio_basics/juce_audio_basics.h index aec18a1443..19dd815eee 100644 --- a/modules/juce_audio_basics/juce_audio_basics.h +++ b/modules/juce_audio_basics/juce_audio_basics.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -33,11 +39,11 @@ ID: juce_audio_basics vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE audio and MIDI data classes description: Classes for audio buffer manipulation, midi message handling, synthesis, etc. website: http://www.juce.com/juce - license: GPL/Commercial + license: ISC dependencies: juce_core OSXFrameworks: Accelerate diff --git a/modules/juce_audio_basics/juce_audio_basics.mm b/modules/juce_audio_basics/juce_audio_basics.mm index 33bccab709..6183df3dcb 100644 --- a/modules/juce_audio_basics/juce_audio_basics.mm +++ b/modules/juce_audio_basics/juce_audio_basics.mm @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp b/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp index 4fc1eb7622..b1ce34473a 100644 --- a/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiBuffer.h b/modules/juce_audio_basics/midi/juce_MidiBuffer.h index d93ab52482..36dde82f62 100644 --- a/modules/juce_audio_basics/midi/juce_MidiBuffer.h +++ b/modules/juce_audio_basics/midi/juce_MidiBuffer.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiFile.cpp b/modules/juce_audio_basics/midi/juce_MidiFile.cpp index fe5937b2c9..5145cc0baf 100644 --- a/modules/juce_audio_basics/midi/juce_MidiFile.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiFile.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -178,6 +184,21 @@ MidiFile::~MidiFile() { } +MidiFile::MidiFile (const MidiFile& other) + : timeFormat (other.timeFormat) +{ + tracks.addCopiesOf (other.tracks); +} + +MidiFile& MidiFile::operator= (const MidiFile& other) +{ + timeFormat = other.timeFormat; + tracks.clear(); + tracks.addCopiesOf (other.tracks); + + return *this; +} + void MidiFile::clear() { tracks.clear(); @@ -354,20 +375,21 @@ bool MidiFile::writeTo (OutputStream& out, int midiFileType) { jassert (midiFileType >= 0 && midiFileType <= 2); - out.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MThd")); - out.writeIntBigEndian (6); - out.writeShortBigEndian ((short) midiFileType); - out.writeShortBigEndian ((short) tracks.size()); - out.writeShortBigEndian (timeFormat); + if (! out.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MThd"))) return false; + if (! out.writeIntBigEndian (6)) return false; + if (! out.writeShortBigEndian ((short) midiFileType)) return false; + if (! out.writeShortBigEndian ((short) tracks.size())) return false; + if (! out.writeShortBigEndian (timeFormat)) return false; for (int i = 0; i < tracks.size(); ++i) - writeTrack (out, i); + if (! writeTrack (out, i)) + return false; out.flush(); return true; } -void MidiFile::writeTrack (OutputStream& mainOut, const int trackNum) +bool MidiFile::writeTrack (OutputStream& mainOut, const int trackNum) { MemoryOutputStream out; const MidiMessageSequence& ms = *tracks.getUnchecked (trackNum); @@ -422,7 +444,10 @@ void MidiFile::writeTrack (OutputStream& mainOut, const int trackNum) out.write (m.getRawData(), (size_t) m.getRawDataSize()); } - mainOut.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MTrk")); - mainOut.writeIntBigEndian ((int) out.getDataSize()); + if (! mainOut.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MTrk"))) return false; + if (! mainOut.writeIntBigEndian ((int) out.getDataSize())) return false; + mainOut << out; + + return true; } diff --git a/modules/juce_audio_basics/midi/juce_MidiFile.h b/modules/juce_audio_basics/midi/juce_MidiFile.h index 7f98fc3217..5d2134f32c 100644 --- a/modules/juce_audio_basics/midi/juce_MidiFile.h +++ b/modules/juce_audio_basics/midi/juce_MidiFile.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -50,6 +56,12 @@ public: /** Destructor. */ ~MidiFile(); + /** Creates a copy of another MidiFile. */ + MidiFile (const MidiFile& other); + + /** Copies from another MidiFile object */ + MidiFile& operator= (const MidiFile& other); + //============================================================================== /** Returns the number of tracks in the file. @see getTrack, addTrack @@ -171,9 +183,9 @@ private: short timeFormat; void readNextTrack (const uint8*, int size); - void writeTrack (OutputStream&, int trackNum); + bool writeTrack (OutputStream&, int trackNum); - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiFile) + JUCE_LEAK_DETECTOR (MidiFile) }; diff --git a/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp b/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp index ef6e97e56d..79f95a31ed 100644 --- a/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h b/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h index 8ac030ce10..95f469aefc 100644 --- a/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h +++ b/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiMessage.cpp b/modules/juce_audio_basics/midi/juce_MidiMessage.cpp index 556c2d84b2..2c683516cf 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessage.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiMessage.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiMessage.h b/modules/juce_audio_basics/midi/juce_MidiMessage.h index bfaaa02610..d091154125 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessage.h +++ b/modules/juce_audio_basics/midi/juce_MidiMessage.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp b/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp index 4d6e436fa3..2de57df3c2 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h b/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h index dd6b01517d..92e38db88b 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h +++ b/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiRPN.cpp b/modules/juce_audio_basics/midi/juce_MidiRPN.cpp index fe3c51ea0e..53cc15d31d 100644 --- a/modules/juce_audio_basics/midi/juce_MidiRPN.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiRPN.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/midi/juce_MidiRPN.h b/modules/juce_audio_basics/midi/juce_MidiRPN.h index e8f7376a43..d6447c0647 100644 --- a/modules/juce_audio_basics/midi/juce_MidiRPN.h +++ b/modules/juce_audio_basics/midi/juce_MidiRPN.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp b/modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp index df7ff80474..93e2c357dd 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEInstrument.h b/modules/juce_audio_basics/mpe/juce_MPEInstrument.h index 6303f22c98..037ebaae7a 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEInstrument.h +++ b/modules/juce_audio_basics/mpe/juce_MPEInstrument.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEMessages.cpp b/modules/juce_audio_basics/mpe/juce_MPEMessages.cpp index 9759678df4..b8d64c4cf3 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEMessages.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPEMessages.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEMessages.h b/modules/juce_audio_basics/mpe/juce_MPEMessages.h index f051cd8677..d8e27d84e0 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEMessages.h +++ b/modules/juce_audio_basics/mpe/juce_MPEMessages.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPENote.cpp b/modules/juce_audio_basics/mpe/juce_MPENote.cpp index 9b62cc8921..a1fcbbcef5 100644 --- a/modules/juce_audio_basics/mpe/juce_MPENote.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPENote.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPENote.h b/modules/juce_audio_basics/mpe/juce_MPENote.h index 7887e5ae08..26bf42a251 100644 --- a/modules/juce_audio_basics/mpe/juce_MPENote.h +++ b/modules/juce_audio_basics/mpe/juce_MPENote.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp b/modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp index 58c85c3b6a..74730f2507 100644 --- a/modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPESynthesiser.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPESynthesiser.h b/modules/juce_audio_basics/mpe/juce_MPESynthesiser.h index 151b21a529..90108eb18c 100644 --- a/modules/juce_audio_basics/mpe/juce_MPESynthesiser.h +++ b/modules/juce_audio_basics/mpe/juce_MPESynthesiser.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp b/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp index 30e2411a25..a2ba5892f6 100644 --- a/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -82,6 +88,22 @@ void MPESynthesiserBase::setLegacyModePitchbendRange (int pitchbendRange) instrument->setLegacyModePitchbendRange (pitchbendRange); } +//============================================================================== +void MPESynthesiserBase::setPressureTrackingMode (TrackingMode modeToUse) +{ + instrument->setPressureTrackingMode (modeToUse); +} + +void MPESynthesiserBase::setPitchbendTrackingMode (TrackingMode modeToUse) +{ + instrument->setPitchbendTrackingMode (modeToUse); +} + +void MPESynthesiserBase::setTimbreTrackingMode (TrackingMode modeToUse) +{ + instrument->setTimbreTrackingMode (modeToUse); +} + //============================================================================== void MPESynthesiserBase::handleMidiEvent (const MidiMessage& m) { diff --git a/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h b/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h index d85a9a4324..e485ccf1c1 100644 --- a/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h +++ b/modules/juce_audio_basics/mpe/juce_MPESynthesiserBase.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -165,6 +171,18 @@ public: /** Re-sets the pitchbend range in semitones (0-96) to be used for notes when in legacy mode. */ void setLegacyModePitchbendRange (int pitchbendRange); + //============================================================================== + typedef MPEInstrument::TrackingMode TrackingMode; + + /** Set the MPE tracking mode for the pressure dimension. */ + void setPressureTrackingMode (TrackingMode modeToUse); + + /** Set the MPE tracking mode for the pitchbend dimension. */ + void setPitchbendTrackingMode (TrackingMode modeToUse); + + /** Set the MPE tracking mode for the timbre dimension. */ + void setTimbreTrackingMode (TrackingMode modeToUse); + protected: //============================================================================== /** Implement this method to render your audio inside. diff --git a/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp b/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp index bb03399c81..3e2108bad9 100644 --- a/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h b/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h index ce3149af2e..f03e8f8f7d 100644 --- a/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h +++ b/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEValue.cpp b/modules/juce_audio_basics/mpe/juce_MPEValue.cpp index c6cc0efbe7..54af0a16bd 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEValue.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPEValue.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEValue.h b/modules/juce_audio_basics/mpe/juce_MPEValue.h index fc6304fca9..540de65c83 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEValue.h +++ b/modules/juce_audio_basics/mpe/juce_MPEValue.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEZone.cpp b/modules/juce_audio_basics/mpe/juce_MPEZone.cpp index ec8e00fbfc..4d661bea0c 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEZone.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPEZone.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEZone.h b/modules/juce_audio_basics/mpe/juce_MPEZone.h index c677d3c43a..6daac1001c 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEZone.h +++ b/modules/juce_audio_basics/mpe/juce_MPEZone.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp b/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp index 7228a1e551..e2eb5b84dc 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp +++ b/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h b/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h index 3a331d315f..40bfdeaad5 100644 --- a/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h +++ b/modules/juce_audio_basics/mpe/juce_MPEZoneLayout.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_AudioSource.h b/modules/juce_audio_basics/sources/juce_AudioSource.h index 9708530d2d..bf50c30a40 100644 --- a/modules/juce_audio_basics/sources/juce_AudioSource.h +++ b/modules/juce_audio_basics/sources/juce_AudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp b/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp index 3443e149de..b560c4873b 100644 --- a/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -167,10 +173,13 @@ bool BufferingAudioSource::waitForNextAudioBlockReady (const AudioSourceChannelI if (! isLooping() && nextPlayPos > getTotalLength()) return true; - const uint32 endTime = Time::getMillisecondCounter() + timeout; uint32 now = Time::getMillisecondCounter(); + const uint32 startTime = now; - while (now < endTime) + uint32 elapsed = (now >= startTime ? now - startTime + : (std::numeric_limits::max() - startTime) + now); + + while (elapsed <= timeout) { { const ScopedLock sl (bufferStartPosLock); @@ -182,10 +191,14 @@ bool BufferingAudioSource::waitForNextAudioBlockReady (const AudioSourceChannelI return true; } - if (! bufferReadyEvent.wait (static_cast (endTime - now))) + + + if (elapsed < timeout && (! bufferReadyEvent.wait (static_cast (timeout - elapsed)))) return false; now = Time::getMillisecondCounter(); + elapsed = (now >= startTime ? now - startTime + : (std::numeric_limits::max() - startTime) + now); } return false; diff --git a/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h b/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h index 717e35d5db..7f6de2ab21 100644 --- a/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp b/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp index ac06074c0a..a5570d76e8 100644 --- a/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h b/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h index 1c44aa43ce..fb42dd2641 100644 --- a/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp b/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp index 4305a393c0..fc2a3fa9ba 100644 --- a/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h b/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h index ef3da93529..bce56e5522 100644 --- a/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp b/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp index 14a3f87576..91a6ba35dc 100644 --- a/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_MixerAudioSource.h b/modules/juce_audio_basics/sources/juce_MixerAudioSource.h index 98269c532a..082438549a 100644 --- a/modules/juce_audio_basics/sources/juce_MixerAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_MixerAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h b/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h index f69e6d569c..a7ed8086ba 100644 --- a/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp b/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp index d4b68e3c22..8fec9cd381 100644 --- a/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h b/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h index 0f38358e71..9f90ca0af9 100644 --- a/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp b/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp index 470185552e..5b00c5083b 100644 --- a/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h b/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h index 547a44e8a7..7161a78d8f 100644 --- a/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp b/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp index 05ec2559cf..628ae3671a 100644 --- a/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h b/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h index c45143da49..df9d7de7f5 100644 --- a/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h +++ b/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp b/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp index 38c51e1a68..92c0c24216 100644 --- a/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp +++ b/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -78,9 +84,9 @@ void SynthesiserVoice::renderNextBlock (AudioBuffer& outputBuffer, outputBuffer.getNumChannels(), startSample, numSamples); - tempBuffer.makeCopyOf (subBuffer); + tempBuffer.makeCopyOf (subBuffer, true); renderNextBlock (tempBuffer, 0, numSamples); - subBuffer.makeCopyOf (tempBuffer); + subBuffer.makeCopyOf (tempBuffer, true); } //============================================================================== diff --git a/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h b/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h index 9cb2f053dc..be140db20c 100644 --- a/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h +++ b/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp index cea7b9beb2..450d99d165 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -381,7 +387,7 @@ AudioIODeviceType* AudioDeviceManager::findType (const String& inputName, const return nullptr; } -void AudioDeviceManager::getAudioDeviceSetup (AudioDeviceSetup& setup) +void AudioDeviceManager::getAudioDeviceSetup (AudioDeviceSetup& setup) const { setup = currentSetup; } diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h index 9d90f5beb6..5889a4ae4b 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -211,7 +217,7 @@ public: /** Returns the current device properties that are in use. @see setAudioDeviceSetup */ - void getAudioDeviceSetup (AudioDeviceSetup& result); + void getAudioDeviceSetup (AudioDeviceSetup& result) const; /** Changes the current device or its settings. diff --git a/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp b/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp index 990550e87f..fe027c8ada 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/audio_io/juce_AudioIODevice.h b/modules/juce_audio_devices/audio_io/juce_AudioIODevice.h index 921c57dad6..6038cef62a 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioIODevice.h +++ b/modules/juce_audio_devices/audio_io/juce_AudioIODevice.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp b/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp index 0df87ebad9..c00fb56b4d 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h b/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h index 73b8afcf63..cad0095bab 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h +++ b/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h b/modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h index 50889767d9..baaceb4858 100644 --- a/modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h +++ b/modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/juce_audio_devices.cpp b/modules/juce_audio_devices/juce_audio_devices.cpp index 972f221415..f9c99bd800 100644 --- a/modules/juce_audio_devices/juce_audio_devices.cpp +++ b/modules/juce_audio_devices/juce_audio_devices.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/juce_audio_devices.h b/modules/juce_audio_devices/juce_audio_devices.h index 0fe52979ba..6c223e043c 100644 --- a/modules/juce_audio_devices/juce_audio_devices.h +++ b/modules/juce_audio_devices/juce_audio_devices.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -33,11 +39,11 @@ ID: juce_audio_devices vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE audio and MIDI I/O device classes description: Classes to play and record from audio and MIDI I/O devices website: http://www.juce.com/juce - license: GPL/Commercial + license: ISC dependencies: juce_audio_basics, juce_events OSXFrameworks: CoreAudio CoreMIDI AudioToolbox diff --git a/modules/juce_audio_devices/juce_audio_devices.mm b/modules/juce_audio_devices/juce_audio_devices.mm index b49480db24..dca0b57f13 100644 --- a/modules/juce_audio_devices/juce_audio_devices.mm +++ b/modules/juce_audio_devices/juce_audio_devices.mm @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/midi_io/juce_MidiInput.h b/modules/juce_audio_devices/midi_io/juce_MidiInput.h index 65c51a75e0..f1c457ecec 100644 --- a/modules/juce_audio_devices/midi_io/juce_MidiInput.h +++ b/modules/juce_audio_devices/midi_io/juce_MidiInput.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp b/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp index 11b4dd94a1..5deea43240 100644 --- a/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp +++ b/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h b/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h index 75bcc81ff6..d18fcc6d50 100644 --- a/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h +++ b/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp b/modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp index e09ed0825f..c9be2a9861 100644 --- a/modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp +++ b/modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/midi_io/juce_MidiOutput.h b/modules/juce_audio_devices/midi_io/juce_MidiOutput.h index b744477735..de6599fb29 100644 --- a/modules/juce_audio_devices/midi_io/juce_MidiOutput.h +++ b/modules/juce_audio_devices/midi_io/juce_MidiOutput.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_MidiDataConcatenator.h b/modules/juce_audio_devices/native/juce_MidiDataConcatenator.h index 28ba6672a1..58a7d48fae 100644 --- a/modules/juce_audio_devices/native/juce_MidiDataConcatenator.h +++ b/modules/juce_audio_devices/native/juce_MidiDataConcatenator.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_android_Audio.cpp b/modules/juce_audio_devices/native/juce_android_Audio.cpp index 5714d62358..dd4e5a452e 100644 --- a/modules/juce_audio_devices/native/juce_android_Audio.cpp +++ b/modules/juce_audio_devices/native/juce_android_Audio.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_android_Midi.cpp b/modules/juce_audio_devices/native/juce_android_Midi.cpp index dc972c9257..a1f73a9979 100644 --- a/modules/juce_audio_devices/native/juce_android_Midi.cpp +++ b/modules/juce_audio_devices/native/juce_android_Midi.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp index 989552bba7..60446f1017 100644 --- a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp +++ b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_ios_Audio.cpp b/modules/juce_audio_devices/native/juce_ios_Audio.cpp index fc782c9f1d..e39b80cb7d 100644 --- a/modules/juce_audio_devices/native/juce_ios_Audio.cpp +++ b/modules/juce_audio_devices/native/juce_ios_Audio.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -86,7 +92,7 @@ bool getNotificationValueForKey (NSNotification* notification, NSString* key, NS - (id) init: (juce::AudioSessionHolder*) holder; - (void) dealloc; -- (void) audioSessionDidChangeInterruptionType: (NSNotification*) notification; +- (void) audioSessionChangedInterruptionType: (NSNotification*) notification; - (void) handleMediaServicesReset; - (void) handleMediaServicesLost; - (void) handleRouteChange: (NSNotification*) notification; @@ -106,7 +112,7 @@ bool getNotificationValueForKey (NSNotification* notification, NSString* key, NS auto centre = [NSNotificationCenter defaultCenter]; [centre addObserver: self - selector: @selector (audioSessionDidChangeInterruptionType:) + selector: @selector (audioSessionChangedInterruptionType:) name: AVAudioSessionInterruptionNotification object: session]; @@ -139,7 +145,7 @@ bool getNotificationValueForKey (NSNotification* notification, NSString* key, NS [super dealloc]; } -- (void) audioSessionDidChangeInterruptionType: (NSNotification*) notification +- (void) audioSessionChangedInterruptionType: (NSNotification*) notification { NSUInteger value; @@ -257,6 +263,11 @@ public: // depending on whether the headphones are plugged in or not! setAudioSessionActive (true); + AudioUnitRemovePropertyListenerWithUserData (audioUnit, + kAudioUnitProperty_StreamFormat, + handleStreamFormatChangeCallback, + this); + const double lowestRate = trySampleRate (4000); const double highestRate = trySampleRate (192000); @@ -268,6 +279,13 @@ public: rate = jmax (rate, supportedRate); } + trySampleRate (getCurrentSampleRate()); + + AudioUnitAddPropertyListener (audioUnit, + kAudioUnitProperty_StreamFormat, + handleStreamFormatChangeCallback, + this); + for (auto r : rates) { ignoreUnused (r); @@ -281,7 +299,7 @@ public: { Array r; - for (int i = 6; i < 12; ++i) + for (int i = 6; i < 13; ++i) r.add (1 << i); return r; @@ -479,7 +497,10 @@ public: } if (callback != nullptr) + { + callback->audioDeviceStopped(); callback->audioDeviceAboutToStart (this); + } } } @@ -610,7 +631,8 @@ private: actualBufferSize = roundToInt (sampleRate * session.IOBufferDuration); JUCE_IOS_AUDIO_LOG ("AVAudioSession: sampleRate: " << sampleRate - << "Hz, audioInputAvailable: " << (int) audioInputIsAvailable); + << " Hz, audioInputAvailable: " << (int) audioInputIsAvailable + << ", buffer size: " << actualBufferSize); } void updateCurrentBufferSize() @@ -695,18 +717,17 @@ private: AudioUnitInitialize (audioUnit); - AudioUnitSetProperty (audioUnit, kAudioUnitProperty_MaximumFramesPerSlice, - kAudioUnitScope_Global, 0, &actualBufferSize, sizeof (actualBufferSize)); - + updateCurrentBufferSize(); if (AudioUnitGetProperty (audioUnit, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, &framesPerSlice, &dataSize) == noErr && dataSize == sizeof (framesPerSlice) && static_cast (framesPerSlice) != actualBufferSize) { - actualBufferSize = static_cast (framesPerSlice); - prepareFloatBuffers (actualBufferSize); + prepareFloatBuffers (static_cast (framesPerSlice)); } + AudioUnitAddPropertyListener (audioUnit, kAudioUnitProperty_StreamFormat, handleStreamFormatChangeCallback, this); + return true; } @@ -736,6 +757,39 @@ private: } } + void handleStreamFormatChange() + { + AudioStreamBasicDescription desc; + zerostruct (desc); + UInt32 dataSize = sizeof (desc); + AudioUnitGetProperty(audioUnit, + kAudioUnitProperty_StreamFormat, + kAudioUnitScope_Output, + 0, + &desc, + &dataSize); + if (desc.mSampleRate != getCurrentSampleRate()) + { + updateSampleRateAndAudioInput(); + const ScopedLock sl (callbackLock); + if (callback != nullptr) + { + callback->audioDeviceStopped(); + callback->audioDeviceAboutToStart (this); + } + } + } + + static void handleStreamFormatChangeCallback (void* device, + AudioUnit, + AudioUnitPropertyID, + AudioUnitScope scope, + AudioUnitElement element) + { + if (scope == kAudioUnitScope_Output && element == 0) + static_cast (device)->handleStreamFormatChange(); + } + JUCE_DECLARE_NON_COPYABLE (iOSAudioIODevice) }; diff --git a/modules/juce_audio_devices/native/juce_linux_ALSA.cpp b/modules/juce_audio_devices/native/juce_linux_ALSA.cpp index 3fb5505a1a..a790835a76 100644 --- a/modules/juce_audio_devices/native/juce_linux_ALSA.cpp +++ b/modules/juce_audio_devices/native/juce_linux_ALSA.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp b/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp index 0285726b02..8cbb8f40e7 100644 --- a/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp +++ b/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_linux_Midi.cpp b/modules/juce_audio_devices/native/juce_linux_Midi.cpp index 1bea000bb5..ea0f838a32 100644 --- a/modules/juce_audio_devices/native/juce_linux_Midi.cpp +++ b/modules/juce_audio_devices/native/juce_linux_Midi.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp b/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp index adbdd7050d..d6f9c55804 100644 --- a/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp +++ b/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -34,7 +40,8 @@ // The AudioHardwareService stuff was deprecated in 10.11 but there's no replacement yet, // so we'll have to silence the warnings here and revisit it in a future OS version.. - #if defined (MAC_OS_X_VERSION_10_11) && MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_11 + #if ((defined (MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_12) \ + || (defined (MAC_OS_X_VERSION_10_11) && MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_11)) #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif #endif @@ -156,20 +163,11 @@ class CoreAudioIODevice; class CoreAudioInternal : private Timer { public: - CoreAudioInternal (CoreAudioIODevice& d, AudioDeviceID id) + CoreAudioInternal (CoreAudioIODevice& d, AudioDeviceID id, bool input, bool output) : owner (d), - inputLatency (0), - outputLatency (0), - bitDepth (32), - callback (nullptr), - audioProcID (0), deviceID (id), - started (false), - sampleRate (0), - bufferSize (512), - numInputChans (0), - numOutputChans (0), - callbacksAllowed (true) + isInputDevice (input), + isOutputDevice (output) { jassert (deviceID != 0); @@ -332,7 +330,7 @@ public: { newBufferSizes.add ((int) (ranges[0].mMinimum + 15) & ~15); - for (int i = 32; i < 2048; i += 32) + for (int i = 32; i <= 2048; i += 32) { for (int j = size / (int) sizeof (AudioValueRange); --j >= 0;) { @@ -436,11 +434,11 @@ public: const int newOutputLatency = getLatencyFromDevice (kAudioDevicePropertyScopeOutput); Array newInChans, newOutChans; - StringArray newInNames (getChannelInfo (true, newInChans)); - StringArray newOutNames (getChannelInfo (false, newOutChans)); + auto newInNames = isInputDevice ? getChannelInfo (true, newInChans) : StringArray(); + auto newOutNames = isOutputDevice ? getChannelInfo (false, newOutChans) : StringArray(); - const int newBitDepth = jmax (getBitDepthFromDevice (kAudioDevicePropertyScopeInput), - getBitDepthFromDevice (kAudioDevicePropertyScopeOutput)); + const int newBitDepth = jmax (getBitDepthFromDevice (kAudioDevicePropertyScopeInput), + getBitDepthFromDevice (kAudioDevicePropertyScopeOutput)); { const ScopedLock sl (callbackLock); @@ -798,24 +796,27 @@ public: //============================================================================== CoreAudioIODevice& owner; - int inputLatency, outputLatency; - int bitDepth; + int inputLatency = 0; + int outputLatency = 0; + int bitDepth = 32; BigInteger activeInputChans, activeOutputChans; StringArray inChanNames, outChanNames; Array sampleRates; Array bufferSizes; - AudioIODeviceCallback* callback; - AudioDeviceIOProcID audioProcID; + AudioIODeviceCallback* callback = nullptr; + AudioDeviceIOProcID audioProcID = 0; private: CriticalSection callbackLock; AudioDeviceID deviceID; - bool started; - double sampleRate; - int bufferSize; + bool started = false; + double sampleRate = 0; + int bufferSize = 512; HeapBlock audioBuffer; - int numInputChans, numOutputChans; - bool callbacksAllowed; + int numInputChans = 0; + int numOutputChans = 0; + bool callbacksAllowed = true; + const bool isInputDevice, isOutputDevice; Array inputChannelInfo, outputChannelInfo; HeapBlock tempInputBuffers, tempOutputBuffers; @@ -924,11 +925,11 @@ public: if (outputDeviceId == 0 || outputDeviceId == inputDeviceId) { jassert (inputDeviceId != 0); - device = new CoreAudioInternal (*this, inputDeviceId); + device = new CoreAudioInternal (*this, inputDeviceId, true, outputDeviceId != 0); } else { - device = new CoreAudioInternal (*this, outputDeviceId); + device = new CoreAudioInternal (*this, outputDeviceId, false, true); } internal = device; diff --git a/modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp b/modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp index 310de94f9a..5391f23f94 100644 --- a/modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp +++ b/modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp index 542b3dbc13..81f24cbf0c 100644 --- a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp +++ b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -341,6 +347,8 @@ public: insideControlPanelModalLoop (false), shouldUsePreferredSize (false) { + ::CoInitialize (nullptr); + name = devName; inBuffers.calloc (4); outBuffers.calloc (4); diff --git a/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp b/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp index 410e98062e..4b09c943f4 100644 --- a/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp +++ b/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_win32_Midi.cpp b/modules/juce_audio_devices/native/juce_win32_Midi.cpp index 97e4b722fb..7189ff48af 100644 --- a/modules/juce_audio_devices/native/juce_win32_Midi.cpp +++ b/modules/juce_audio_devices/native/juce_win32_Midi.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp index 708538f31f..c2115fa48a 100644 --- a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp +++ b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp b/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp index 2e231d7c56..58139bf468 100644 --- a/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp +++ b/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h b/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h index 02e4449494..0995632332 100644 --- a/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h +++ b/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp b/modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp index 9e013ef56c..03b4adf50d 100644 --- a/modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp +++ b/modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_devices/sources/juce_AudioTransportSource.h b/modules/juce_audio_devices/sources/juce_AudioTransportSource.h index 459881a308..8d61ccb6ae 100644 --- a/modules/juce_audio_devices/sources/juce_AudioTransportSource.h +++ b/modules/juce_audio_devices/sources/juce_AudioTransportSource.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp index 186ed1ad0e..0d6a748e7c 100644 --- a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp @@ -983,12 +983,17 @@ AudioFormatReader* AiffAudioFormat::createReaderFor (InputStream* sourceStream, MemoryMappedAudioFormatReader* AiffAudioFormat::createMemoryMappedReader (const File& file) { - if (FileInputStream* fin = file.createInputStream()) + return createMemoryMappedReader (file.createInputStream()); +} + +MemoryMappedAudioFormatReader* AiffAudioFormat::createMemoryMappedReader (FileInputStream* fin) +{ + if (fin != nullptr) { AiffAudioFormatReader reader (fin); if (reader.lengthInSamples > 0) - return new MemoryMappedAiffReader (file, reader); + return new MemoryMappedAiffReader (fin->getFile(), reader); } return nullptr; diff --git a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h index fe475e31e9..9895d1b6e9 100644 --- a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h +++ b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h @@ -70,7 +70,8 @@ public: AudioFormatReader* createReaderFor (InputStream* sourceStream, bool deleteStreamIfOpeningFails) override; - MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override; + MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override; + MemoryMappedAudioFormatReader* createMemoryMappedReader (FileInputStream*) override; AudioFormatWriter* createWriterFor (OutputStream* streamToWriteTo, double sampleRateToUse, diff --git a/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp index 4921ec0892..680933a0cd 100644 --- a/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp @@ -2020,7 +2020,7 @@ private: for (int i = 0; i < jsbound; ++i) { const int16 step = allocTable->bits; - allocTable += (1 << step); + allocTable += (static_cast (1) << step); si.allocation[i][0] = getBitsUint8 (step); si.allocation[i][1] = getBitsUint8 (step); } @@ -2029,7 +2029,7 @@ private: { const int16 step = allocTable->bits; const uint8 b0 = getBitsUint8 (step); - allocTable += (1 << step); + allocTable += (static_cast (1) << step); si.allocation[i][0] = b0; si.allocation[i][1] = b0; } @@ -2045,7 +2045,7 @@ private: for (int i = 0; i < sblimit; ++i) { const int16 step = allocTable->bits; - allocTable += (1 << step); + allocTable += (static_cast (1) << step); si.allocation[i][0] = getBitsUint8 (step); } @@ -2131,7 +2131,7 @@ private: } } - allocTable += (1 << step); + allocTable += (static_cast (1) << step); } for (int i = jsbound; i < frame.layer2SubBandLimit; ++i) @@ -2182,7 +2182,7 @@ private: fraction[0][0][i] = fraction[0][1][i] = fraction[0][2][i] = 0; fraction[1][0][i] = fraction[1][1][i] = fraction[1][2][i] = 0; } - allocTable += (1 << step); + allocTable += (static_cast (1) << step); } for (int ch = 0; ch < frame.numChannels; ++ch) diff --git a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp index 52535970f2..d8e75f242a 100644 --- a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp @@ -1595,12 +1595,17 @@ AudioFormatReader* WavAudioFormat::createReaderFor (InputStream* sourceStream, MemoryMappedAudioFormatReader* WavAudioFormat::createMemoryMappedReader (const File& file) { - if (FileInputStream* fin = file.createInputStream()) + return createMemoryMappedReader (file.createInputStream()); +} + +MemoryMappedAudioFormatReader* WavAudioFormat::createMemoryMappedReader (FileInputStream* fin) +{ + if (fin != nullptr) { WavAudioFormatReader reader (fin); if (reader.lengthInSamples > 0) - return new MemoryMappedWavReader (file, reader); + return new MemoryMappedWavReader (fin->getFile(), reader); } return nullptr; diff --git a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.h b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.h index 5b63f283e7..479e58bb0c 100644 --- a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.h +++ b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.h @@ -183,7 +183,8 @@ public: AudioFormatReader* createReaderFor (InputStream* sourceStream, bool deleteStreamIfOpeningFails) override; - MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override; + MemoryMappedAudioFormatReader* createMemoryMappedReader (const File&) override; + MemoryMappedAudioFormatReader* createMemoryMappedReader (FileInputStream*) override; AudioFormatWriter* createWriterFor (OutputStream* streamToWriteTo, double sampleRateToUse, diff --git a/modules/juce_audio_formats/format/juce_AudioFormat.cpp b/modules/juce_audio_formats/format/juce_AudioFormat.cpp index fc3f9ff178..0bbc6e5209 100644 --- a/modules/juce_audio_formats/format/juce_AudioFormat.cpp +++ b/modules/juce_audio_formats/format/juce_AudioFormat.cpp @@ -54,3 +54,9 @@ MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (const File { return nullptr; } + +MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (FileInputStream* fin) +{ + delete fin; + return nullptr; +} diff --git a/modules/juce_audio_formats/format/juce_AudioFormat.h b/modules/juce_audio_formats/format/juce_AudioFormat.h index fee1e06797..4eb34535ca 100644 --- a/modules/juce_audio_formats/format/juce_AudioFormat.h +++ b/modules/juce_audio_formats/format/juce_AudioFormat.h @@ -112,6 +112,7 @@ public: If the format does not support this, the method will return nullptr; */ virtual MemoryMappedAudioFormatReader* createMemoryMappedReader (const File& file); + virtual MemoryMappedAudioFormatReader* createMemoryMappedReader (FileInputStream* fin); /** Tries to create an object that can write to a stream with this audio format. diff --git a/modules/juce_audio_formats/juce_audio_formats.h b/modules/juce_audio_formats/juce_audio_formats.h index b675a01148..18d5963289 100644 --- a/modules/juce_audio_formats/juce_audio_formats.h +++ b/modules/juce_audio_formats/juce_audio_formats.h @@ -33,7 +33,7 @@ ID: juce_audio_formats vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE audio file format codecs description: Classes for reading and writing various audio file formats. website: http://www.juce.com/juce diff --git a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp index 3e7263d7f3..41900139d9 100644 --- a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp @@ -299,29 +299,33 @@ namespace AAXClasses PluginInstanceInfo* pluginInstance; int32_t* isPrepared; int32_t* sideChainBuffers; + + float* const* meterTapBuffers; }; struct JUCEAlgorithmIDs { enum { - inputChannels = AAX_FIELD_INDEX (JUCEAlgorithmContext, inputChannels), - outputChannels = AAX_FIELD_INDEX (JUCEAlgorithmContext, outputChannels), - bufferSize = AAX_FIELD_INDEX (JUCEAlgorithmContext, bufferSize), - bypass = AAX_FIELD_INDEX (JUCEAlgorithmContext, bypass), + inputChannels = AAX_FIELD_INDEX (JUCEAlgorithmContext, inputChannels), + outputChannels = AAX_FIELD_INDEX (JUCEAlgorithmContext, outputChannels), + bufferSize = AAX_FIELD_INDEX (JUCEAlgorithmContext, bufferSize), + bypass = AAX_FIELD_INDEX (JUCEAlgorithmContext, bypass), #if JucePlugin_WantsMidiInput || JucePlugin_IsMidiEffect - midiNodeIn = AAX_FIELD_INDEX (JUCEAlgorithmContext, midiNodeIn), + midiNodeIn = AAX_FIELD_INDEX (JUCEAlgorithmContext, midiNodeIn), #endif #if JucePlugin_ProducesMidiOutput || JucePlugin_IsSynth || JucePlugin_IsMidiEffect - midiNodeOut = AAX_FIELD_INDEX (JUCEAlgorithmContext, midiNodeOut), + midiNodeOut = AAX_FIELD_INDEX (JUCEAlgorithmContext, midiNodeOut), #endif - pluginInstance = AAX_FIELD_INDEX (JUCEAlgorithmContext, pluginInstance), - preparedFlag = AAX_FIELD_INDEX (JUCEAlgorithmContext, isPrepared), + pluginInstance = AAX_FIELD_INDEX (JUCEAlgorithmContext, pluginInstance), + preparedFlag = AAX_FIELD_INDEX (JUCEAlgorithmContext, isPrepared), - sideChainBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, sideChainBuffers) + sideChainBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, sideChainBuffers), + + meterTapBuffers = AAX_FIELD_INDEX (JUCEAlgorithmContext, meterTapBuffers) }; }; @@ -533,13 +537,15 @@ namespace AAXClasses //============================================================================== class JuceAAX_Processor : public AAX_CEffectParameters, public juce::AudioPlayHead, - public AudioProcessorListener + public AudioProcessorListener, + private AsyncUpdater { public: JuceAAX_Processor() : pluginInstance (createPluginFilterOfType (AudioProcessor::wrapperType_AAX)), isPrepared (false), - sampleRate (0), lastBufferSize (1024), maxBufferSize (1024) + sampleRate (0), lastBufferSize (1024), maxBufferSize (1024), + hasSidechain (false), canDisableSidechain (false) { pluginInstance->setPlayHead (this); pluginInstance->addListener (this); @@ -557,9 +563,13 @@ namespace AAXClasses AAX_Result Uninitialize() override { + cancelPendingUpdate(); + if (isPrepared && pluginInstance != nullptr) { isPrepared = false; + processingSidechainChange.set (0); + pluginInstance->releaseResources(); } @@ -568,9 +578,13 @@ namespace AAXClasses AAX_Result EffectInit() override { + cancelPendingUpdate(); + AAX_Result err; check (Controller()->GetSampleRate (&sampleRate)); + processingSidechainChange.set (0); + if ((err = preparePlugin()) != AAX_SUCCESS) return err; @@ -655,7 +669,8 @@ namespace AAXClasses const int numParameters = pluginInstance->getNumParameters(); for (int i = 0; i < numParameters; ++i) - SetParameterNormalizedValue (getAAXParamIDFromJuceIndex (i), (double) pluginInstance->getParameter(i)); + if (AAX_CParamID paramID = getAAXParamIDFromJuceIndex(i)) + SetParameterNormalizedValue (paramID, (double) pluginInstance->getParameter(i)); return AAX_SUCCESS; } @@ -893,7 +908,8 @@ namespace AAXClasses void audioProcessorParameterChanged (AudioProcessor* /*processor*/, int parameterIndex, float newValue) override { - SetParameterNormalizedValue (getAAXParamIDFromJuceIndex (parameterIndex), (double) newValue); + if (AAX_CParamID paramID = getAAXParamIDFromJuceIndex (parameterIndex)) + SetParameterNormalizedValue (paramID, (double) newValue); } void audioProcessorChanged (AudioProcessor* processor) override @@ -904,12 +920,14 @@ namespace AAXClasses void audioProcessorParameterChangeGestureBegin (AudioProcessor* /*processor*/, int parameterIndex) override { - TouchParameter (getAAXParamIDFromJuceIndex (parameterIndex)); + if (AAX_CParamID paramID = getAAXParamIDFromJuceIndex (parameterIndex)) + TouchParameter (paramID); } void audioProcessorParameterChangeGestureEnd (AudioProcessor* /*processor*/, int parameterIndex) override { - ReleaseParameter (getAAXParamIDFromJuceIndex (parameterIndex)); + if (AAX_CParamID paramID = getAAXParamIDFromJuceIndex (parameterIndex)) + ReleaseParameter (paramID); } AAX_Result NotificationReceived (AAX_CTypeID type, const void* data, uint32_t size) override @@ -932,15 +950,37 @@ namespace AAXClasses void process (const float* const* inputs, float* const* outputs, const int sideChainBufferIdx, const int bufferSize, const bool bypass, - AAX_IMIDINode* midiNodeIn, AAX_IMIDINode* midiNodesOut) + AAX_IMIDINode* midiNodeIn, AAX_IMIDINode* midiNodesOut, + float* const meterBuffers) { - const int numIns = pluginInstance->getTotalNumInputChannels(); - const int numOuts = pluginInstance->getTotalNumOutputChannels(); + const int numIns = pluginInstance->getTotalNumInputChannels(); + const int numOuts = pluginInstance->getTotalNumOutputChannels(); + const int numMeters = aaxMeters.size(); - if (pluginInstance->isSuspended()) + const bool processWantsSidechain = (sideChainBufferIdx != -1); + bool isSuspended = pluginInstance->isSuspended(); + + if (processingSidechainChange.get() == 0) + { + if (hasSidechain && canDisableSidechain + && (sidechainDesired.get() != 0) != processWantsSidechain) + { + isSuspended = true; + sidechainDesired.set (processWantsSidechain ? 1 : 0); + processingSidechainChange.set (1); + triggerAsyncUpdate(); + } + } + else + isSuspended = true; + + if (isSuspended) { for (int i = 0; i < numOuts; ++i) FloatVectorOperations::clear (outputs[i], bufferSize); + + if (meterBuffers != nullptr) + FloatVectorOperations::clear (meterBuffers, numMeters); } else { @@ -981,6 +1021,12 @@ namespace AAXClasses process (channels, numIns, bufferSize, bypass, midiNodeIn, midiNodesOut); } + + if (meterBuffers != nullptr) + { + for (int i = 0; i < numMeters; ++i) + meterBuffers[i] = pluginInstance->getParameter (aaxMeters[i]); + } } } @@ -988,38 +1034,39 @@ namespace AAXClasses // In aax, the format of the aux and sidechain buses need to be fully determined // by the format on the main buses. This function tried to provide such a mapping. // Returns false if the in/out main layout is not supported - static bool fullBusesLayoutFromMainLayout (AudioProcessor& p, + static bool fullBusesLayoutFromMainLayout (const AudioProcessor& p, const AudioChannelSet& mainInput, const AudioChannelSet& mainOutput, AudioProcessor::BusesLayout& fullLayout) { - bool success = p.setBusesLayout (getDefaultLayout (p, true)); + AudioProcessor::BusesLayout currentLayout = getDefaultLayout (p, true); + bool success = p.checkBusesLayoutSupported (currentLayout); jassert (success); ignoreUnused (success); const int numInputBuses = p.getBusCount (true); const int numOutputBuses = p.getBusCount (false); - if (AudioProcessor::Bus* bus = p.getBus (true, 0)) - if (! bus->setCurrentLayout (mainInput)) + if (const AudioProcessor::Bus* bus = p.getBus (true, 0)) + if (! bus->isLayoutSupported (mainInput, ¤tLayout)) return false; - if (AudioProcessor::Bus* bus = p.getBus (false, 0)) - if (! bus->setCurrentLayout (mainOutput)) + if (const AudioProcessor::Bus* bus = p.getBus (false, 0)) + if (! bus->isLayoutSupported (mainOutput, ¤tLayout)) return false; // did this change the input again - if (numInputBuses > 0 && p.getChannelLayoutOfBus (true, 0) != mainInput) + if (numInputBuses > 0 && currentLayout.inputBuses.getReference (0) != mainInput) return false; #ifdef JucePlugin_PreferredChannelConfigurations short configs[][2] = {JucePlugin_PreferredChannelConfigurations}; - if (! AudioProcessor::containsLayout (p.getBusesLayout(), configs)) + if (! AudioProcessor::containsLayout (currentLayout, configs)) return false; #endif bool foundValid = false; { - AudioProcessor::BusesLayout onlyMains = p.getBusesLayout(); + AudioProcessor::BusesLayout onlyMains = currentLayout; for (int i = 1; i < numInputBuses; ++i) onlyMains.inputBuses.getReference (i) = AudioChannelSet::disabled(); @@ -1037,43 +1084,43 @@ namespace AAXClasses if (numInputBuses > 1) { // can the first bus be a sidechain or disabled, if not then we can't use this layout combination - if (AudioProcessor::Bus* bus = p.getBus (true, 1)) - if (! bus->setCurrentLayout (AudioChannelSet::mono()) && ! bus->setCurrentLayout (AudioChannelSet::disabled())) + if (const AudioProcessor::Bus* bus = p.getBus (true, 1)) + if (! bus->isLayoutSupported (AudioChannelSet::mono(), ¤tLayout) && ! bus->isLayoutSupported (AudioChannelSet::disabled(), ¤tLayout)) return foundValid; // can all the other inputs be disabled, if not then we can't use this layout combination for (int i = 2; i < numInputBuses; ++i) - if (AudioProcessor::Bus* bus = p.getBus (true, i)) - if (! bus->setCurrentLayout (AudioChannelSet::disabled())) + if (const AudioProcessor::Bus* bus = p.getBus (true, i)) + if (! bus->isLayoutSupported (AudioChannelSet::disabled(), ¤tLayout)) return foundValid; - if (AudioProcessor::Bus* bus = p.getBus (true, 0)) - if (! bus->setCurrentLayout (mainInput)) + if (const AudioProcessor::Bus* bus = p.getBus (true, 0)) + if (! bus->isLayoutSupported (mainInput, ¤tLayout)) return foundValid; - if (AudioProcessor::Bus* bus = p.getBus (false, 0)) - if (! bus->setCurrentLayout (mainOutput)) + if (const AudioProcessor::Bus* bus = p.getBus (false, 0)) + if (! bus->isLayoutSupported (mainOutput, ¤tLayout)) return foundValid; // recheck if the format is correct - if ((numInputBuses > 0 && p.getChannelLayoutOfBus (true, 0) != mainInput) - || (numOutputBuses > 0 && p.getChannelLayoutOfBus (false, 0) != mainOutput)) + if ((numInputBuses > 0 && currentLayout.inputBuses .getReference (0) != mainInput) + || (numOutputBuses > 0 && currentLayout.outputBuses.getReference (0) != mainOutput)) return foundValid; - const AudioChannelSet& sidechainBus = p.getChannelLayoutOfBus (true, 1); + const AudioChannelSet& sidechainBus = currentLayout.inputBuses.getReference (1); if (sidechainBus != AudioChannelSet::mono() && sidechainBus != AudioChannelSet::disabled()) return foundValid; for (int i = 2; i < numInputBuses; ++i) - if (p.getChannelLayoutOfBus (true, i) != AudioChannelSet::disabled()) + if (currentLayout.outputBuses.getReference (i) != AudioChannelSet::disabled()) return foundValid; } - const bool hasSidechain = (numInputBuses > 1 && p.getChannelLayoutOfBus (true, 1) == AudioChannelSet::mono()); + const bool hasSidechain = (numInputBuses > 1 && currentLayout.inputBuses.getReference (1) == AudioChannelSet::mono()); if (hasSidechain) { - AudioProcessor::BusesLayout onlyMainsAndSidechain = p.getBusesLayout(); + AudioProcessor::BusesLayout onlyMainsAndSidechain = currentLayout; for (int i = 1; i < numOutputBuses; ++i) onlyMainsAndSidechain.outputBuses.getReference (i) = AudioChannelSet::disabled(); @@ -1087,7 +1134,7 @@ namespace AAXClasses if (numOutputBuses > 1) { - AudioProcessor::BusesLayout copy = p.getBusesLayout(); + AudioProcessor::BusesLayout copy = currentLayout; int maxAuxBuses = jmin (16, numOutputBuses); for (int i = 1; i < maxAuxBuses; ++i) @@ -1104,38 +1151,38 @@ namespace AAXClasses else { for (int i = 1; i < maxAuxBuses; ++i) - if (p.getChannelLayoutOfBus (false, i).isDisabled()) + if (currentLayout.outputBuses.getReference (i).isDisabled()) return foundValid; for (int i = maxAuxBuses; i < numOutputBuses; ++i) - if (AudioProcessor::Bus* bus = p.getBus (false, i)) - if (! bus->setCurrentLayout (AudioChannelSet::disabled())) + if (const AudioProcessor::Bus* bus = p.getBus (false, i)) + if (! bus->isLayoutSupported (AudioChannelSet::disabled(), ¤tLayout)) return foundValid; - if (AudioProcessor::Bus* bus = p.getBus (true, 0)) - if (! bus->setCurrentLayout (mainInput)) + if (const AudioProcessor::Bus* bus = p.getBus (true, 0)) + if (! bus->isLayoutSupported (mainInput, ¤tLayout)) return foundValid; - if (AudioProcessor::Bus* bus = p.getBus (false, 0)) - if (! bus->setCurrentLayout (mainOutput)) + if (const AudioProcessor::Bus* bus = p.getBus (false, 0)) + if (! bus->isLayoutSupported (mainOutput, ¤tLayout)) return foundValid; - if ((numInputBuses > 0 && p.getChannelLayoutOfBus (true, 0) != mainInput) - || (numOutputBuses > 0 && p.getChannelLayoutOfBus (false, 0) != mainOutput)) + if ((numInputBuses > 0 && currentLayout.inputBuses .getReference (0) != mainInput) + || (numOutputBuses > 0 && currentLayout.outputBuses.getReference (0) != mainOutput)) return foundValid; - if (numInputBuses > 1 ) + if (numInputBuses > 1) { - const AudioChannelSet& sidechainBus = p.getChannelLayoutOfBus (true, 1); + const AudioChannelSet& sidechainBus = currentLayout.inputBuses.getReference (1); if (sidechainBus != AudioChannelSet::mono() && sidechainBus != AudioChannelSet::disabled()) return foundValid; } for (int i = maxAuxBuses; i < numOutputBuses; ++i) - if (! p.getChannelLayoutOfBus (false, i).isDisabled()) + if (! currentLayout.outputBuses.getReference (i).isDisabled()) return foundValid; - fullLayout = p.getBusesLayout(); + fullLayout = currentLayout; foundValid = true; } } @@ -1253,6 +1300,8 @@ namespace AAXClasses for (int parameterIndex = 0; parameterIndex < numParameters; ++parameterIndex) { + const AudioProcessorParameter::Category category = audioProcessor.getParameterCategory (parameterIndex); + aaxParamIDs.add (usingManagedParameters ? audioProcessor.getParameterID (parameterIndex) : String (parameterIndex)); @@ -1261,6 +1310,13 @@ namespace AAXClasses paramMap.set (AAXClasses::getAAXParamHash (paramID), parameterIndex); + // is this a meter? + if (((category & 0xffff0000) >> 16) == 2) + { + aaxMeters.add (parameterIndex); + continue; + } + AAX_IParameter* parameter = new AAX_CParameter (paramID, paramName, @@ -1355,6 +1411,23 @@ namespace AAXClasses return AAX_ERROR_UNIMPLEMENTED; } + hasSidechain = (newLayout.getNumChannels (true, 1) == 1); + if (hasSidechain) + { + sidechainDesired.set (1); + + AudioProcessor::BusesLayout disabledSidechainLayout (newLayout); + disabledSidechainLayout.inputBuses.getReference (1) = AudioChannelSet::disabled(); + + canDisableSidechain = audioProcessor.checkBusesLayoutSupported (disabledSidechainLayout); + + if (canDisableSidechain) + { + sidechainDesired.set (0); + newLayout = disabledSidechainLayout; + } + } + const bool layoutChanged = (oldLayout != newLayout); if (layoutChanged) @@ -1384,10 +1457,8 @@ namespace AAXClasses audioProcessor.setRateAndBufferSizeDetails (sampleRate, lastBufferSize); audioProcessor.prepareToPlay (sampleRate, lastBufferSize); maxBufferSize = lastBufferSize; - hasSidechain = audioProcessor.getChannelLayoutOfBus (true, 1) == AudioChannelSet::mono(); - if (hasSidechain) - sideChainBuffer.calloc (static_cast (maxBufferSize)); + sideChainBuffer.calloc (static_cast (maxBufferSize)); } check (Controller()->SetSignalLatency (audioProcessor.getLatencySamples())); @@ -1441,11 +1512,41 @@ namespace AAXClasses if (sideChainBufferIdx <= 0) sideChainBufferIdx = -1; + float* const meterTapBuffers = (i.meterTapBuffers != nullptr ? *i.meterTapBuffers : nullptr); + i.pluginInstance->parameters.process (i.inputChannels, i.outputChannels, sideChainBufferIdx, *(i.bufferSize), *(i.bypass) != 0, - getMidiNodeIn(i), getMidiNodeOut(i)); + getMidiNodeIn(i), getMidiNodeOut(i), + meterTapBuffers); } } + //============================================================================== + void handleAsyncUpdate() override + { + if (processingSidechainChange.get() == 0) + return; + + AudioProcessor& audioProcessor = getPluginInstance(); + + const bool sidechainActual = (audioProcessor.getChannelCountOfBus (true, 1) > 0); + if (hasSidechain && canDisableSidechain && (sidechainDesired.get() != 0) != sidechainActual) + { + if (isPrepared) + { + isPrepared = false; + audioProcessor.releaseResources(); + } + + if (AudioProcessor::Bus* bus = audioProcessor.getBus (true, 1)) + bus->setCurrentLayout (sidechainDesired.get() != 0 ? AudioChannelSet::mono() : AudioChannelSet::disabled()); + + audioProcessor.prepareToPlay (audioProcessor.getSampleRate(), audioProcessor.getBlockSize()); + + isPrepared = true; + } + + processingSidechainChange.set (0); + } //============================================================================== inline int getParamIndexFromID (AAX_CParamID paramID) const noexcept @@ -1461,7 +1562,7 @@ namespace AAXClasses } //============================================================================== - static AudioProcessor::BusesLayout getDefaultLayout (AudioProcessor& p, bool enableAll) + static AudioProcessor::BusesLayout getDefaultLayout (const AudioProcessor& p, bool enableAll) { AudioProcessor::BusesLayout defaultLayout; @@ -1472,7 +1573,7 @@ namespace AAXClasses Array& layouts = (isInput ? defaultLayout.inputBuses : defaultLayout.outputBuses); for (int i = 0; i < n; ++i) - if (AudioProcessor::Bus* bus = p.getBus (isInput, i)) + if (const AudioProcessor::Bus* bus = p.getBus (isInput, i)) layouts.add (enableAll || bus->isEnabledByDefault() ? bus->getDefaultLayout() : AudioChannelSet()); } @@ -1504,13 +1605,18 @@ namespace AAXClasses int32_t juceChunkIndex; AAX_CSampleRate sampleRate; int lastBufferSize, maxBufferSize; - bool hasSidechain; + bool hasSidechain, canDisableSidechain; + + Atomic processingSidechainChange, sidechainDesired; + HeapBlock sideChainBuffer; Array inputLayoutMap, outputLayoutMap; Array aaxParamIDs; HashMap paramMap; + Array aaxMeters; + struct ChunkMemoryBlock : public ReferenceCountedObject { juce::MemoryBlock data; @@ -1547,7 +1653,7 @@ namespace AAXClasses if (const JuceAAX_Processor* params = dynamic_cast (GetEffectParameters())) return params->getParamIndexFromID (paramID); - return -1; + return -1; } AAX_CParamID JuceAAX_GUI::getAAXParamIDFromJuceIndex (int index) const noexcept @@ -1555,7 +1661,7 @@ namespace AAXClasses if (const JuceAAX_Processor* params = dynamic_cast (GetEffectParameters())) return params->getAAXParamIDFromJuceIndex (index); - return nullptr; + return nullptr; } //============================================================================== @@ -1578,7 +1684,57 @@ namespace AAXClasses }; //============================================================================== - static void createDescriptor (AAX_IComponentDescriptor& desc, int configIndex, const AudioProcessor::BusesLayout& fullLayout, AudioProcessor& processor) + static int addAAXMeters (AudioProcessor& p, AAX_IEffectDescriptor& descriptor) + { + const int n = p.getNumParameters(); + + int meterIdx = 0; + for (int i = 0; i < n; ++i) + { + const AudioProcessorParameter::Category category = p.getParameterCategory (i); + + // is this a meter? + if (((category & 0xffff0000) >> 16) == 2) + { + if (AAX_IPropertyMap* meterProperties = descriptor.NewPropertyMap()) + { + AAX_EMeterType aaxMeterType; + + switch (category) + { + case AudioProcessorParameter::inputMeter: + aaxMeterType = AAX_eMeterType_Input; + break; + case AudioProcessorParameter::outputMeter: + aaxMeterType = AAX_eMeterType_Output; + break; + case AudioProcessorParameter::compressorLimiterGainReductionMeter: + aaxMeterType = AAX_eMeterType_CLGain; + break; + case AudioProcessorParameter::expanderGateGainReductionMeter: + aaxMeterType = AAX_eMeterType_EGGain; + break; + case AudioProcessorParameter::analysisMeter: + aaxMeterType = AAX_eMeterType_Analysis; + break; + default: + aaxMeterType = AAX_eMeterType_Other; + } + + meterProperties->AddProperty (AAX_eProperty_Meter_Type, aaxMeterType); + meterProperties->AddProperty (AAX_eProperty_Meter_Orientation, AAX_eMeterOrientation_TopRight); + descriptor.AddMeterDescription ('Metr' + static_cast (meterIdx++), + p.getParameterName (i).toRawUTF8(), meterProperties); + } + } + } + + return meterIdx; + } + + static void createDescriptor (AAX_IComponentDescriptor& desc, int configIndex, + const AudioProcessor::BusesLayout& fullLayout, AudioProcessor& processor, + const int numMeters) { AAX_EStemFormat aaxInputFormat = getFormatForAudioChannelSet (fullLayout.getMainInputChannelSet(), false); AAX_EStemFormat aaxOutputFormat = getFormatForAudioChannelSet (fullLayout.getMainOutputChannelSet(), false); @@ -1611,6 +1767,16 @@ namespace AAXClasses check (desc.AddPrivateData (JUCEAlgorithmIDs::pluginInstance, sizeof (PluginInstanceInfo))); check (desc.AddPrivateData (JUCEAlgorithmIDs::preparedFlag, sizeof (int32_t))); + if (numMeters > 0) + { + HeapBlock meterIDs (static_cast (numMeters)); + + for (int i = 0; i < numMeters; ++i) + meterIDs[i] = 'Metr' + static_cast (i); + + check (desc.AddMeters (JUCEAlgorithmIDs::meterTapBuffers, meterIDs.getData(), static_cast (numMeters))); + } + // Create a property map AAX_IPropertyMap* const properties = desc.NewPropertyMap(); jassert (properties != nullptr); @@ -1657,7 +1823,6 @@ namespace AAXClasses const int maxAuxBuses = jmax (0, jmin (15, fullLayout.outputBuses.size() - 1)); - // add the output buses // This is incrdibly dumb: the output bus format must be well defined // for every main bus in/out format pair. This means that there cannot @@ -1690,6 +1855,8 @@ namespace AAXClasses descriptor.AddName (JucePlugin_Name); descriptor.AddCategory (JucePlugin_AAXCategory); + const int numMeters = addAAXMeters (*plugin, descriptor); + #ifdef JucePlugin_AAXPageTableFile // optional page table setting - define this macro in your project if you want // to set this value - see Avid documentation for details about its format. @@ -1705,7 +1872,7 @@ namespace AAXClasses if (AAX_IComponentDescriptor* const desc = descriptor.NewComponentDescriptor()) { - createDescriptor (*desc, 0, plugin->getBusesLayout(), *plugin); + createDescriptor (*desc, 0, plugin->getBusesLayout(), *plugin, numMeters); check (descriptor.AddComponent (desc)); } @@ -1731,7 +1898,7 @@ namespace AAXClasses if (AAX_IComponentDescriptor* const desc = descriptor.NewComponentDescriptor()) { - createDescriptor (*desc, configIndex++, fullLayout, *plugin); + createDescriptor (*desc, configIndex++, fullLayout, *plugin, numMeters); check (descriptor.AddComponent (desc)); } } diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index 2180ab1741..5953f3238e 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -117,7 +117,9 @@ class JuceAU : public AudioProcessorHolder, public: JuceAU (AudioUnit component) : AudioProcessorHolder(activePlugins.size() + activeUIs.size() == 0), - MusicDeviceBase (component, (UInt32) juceFilter->getBusCount (true), (UInt32) juceFilter->getBusCount (false)), + MusicDeviceBase (component, + (UInt32) AudioUnitHelpers::getBusCount (juceFilter, true), + (UInt32) AudioUnitHelpers::getBusCount (juceFilter, false)), isBypassed (false), mapper (*juceFilter) { @@ -189,7 +191,7 @@ public: return err; mapper.alloc(); - pulledSucceeded.calloc (static_cast (juceFilter->getBusCount (true))); + pulledSucceeded.calloc (static_cast (AudioUnitHelpers::getBusCount (juceFilter, true))); prepareToPlay(); @@ -263,6 +265,11 @@ public: //============================================================================== bool BusCountWritable (AudioUnitScope scope) override { + #ifdef JucePlugin_PreferredChannelConfigurations + ignoreUnused (scope); + + return false; + #else bool isInput; if (scopeToDirection (scope, isInput) != noErr) @@ -274,8 +281,9 @@ public: if (isInput) return false; #endif - const int busCount = juceFilter->getBusCount (isInput); + const int busCount = AudioUnitHelpers::getBusCount (juceFilter, isInput); return (juceFilter->canAddBus (isInput) || (busCount > 0 && juceFilter->canRemoveBus (isInput))); + #endif } OSStatus SetBusCount (AudioUnitScope scope, UInt32 count) override @@ -286,9 +294,12 @@ public: if ((err = scopeToDirection (scope, isInput)) != noErr) return err; - if (count != (UInt32) juceFilter->getBusCount (isInput)) + if (count != (UInt32) AudioUnitHelpers::getBusCount (juceFilter, isInput)) { - const int busCount = juceFilter->getBusCount (isInput); + #ifdef JucePlugin_PreferredChannelConfigurations + return kAudioUnitErr_PropertyNotWritable; + #else + const int busCount = AudioUnitHelpers::getBusCount (juceFilter, isInput); if ((! juceFilter->canAddBus (isInput)) && ((busCount == 0) || (! juceFilter->canRemoveBus (isInput)))) return kAudioUnitErr_PropertyNotWritable; @@ -328,7 +339,7 @@ public: if (err != noErr) { // restore bus state - const int newBusCount = juceFilter->getBusCount (isInput); + const int newBusCount = AudioUnitHelpers::getBusCount (juceFilter, isInput); for (int i = newBusCount; i != busCount; i += (busCount > newBusCount ? 1 : -1)) { if (busCount > newBusCount) @@ -346,6 +357,7 @@ public: if (err != noErr) return err; + #endif } return noErr; @@ -788,6 +800,7 @@ public: && juceFilter != nullptr && index < juceFilter->getNumParameters()) { + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.flags = (UInt32) (kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable | kAudioUnitParameterFlag_HasCFNameString @@ -806,6 +819,14 @@ public: if (juceFilter->isMetaParameter (index)) outParameterInfo.flags |= kAudioUnitParameterFlag_IsGlobalMeta; + // is this a meter? + if (((juceFilter->getParameterCategory (index) & 0xffff0000) >> 16) == 2) + { + outParameterInfo.flags &= ~kAudioUnitParameterFlag_IsWritable; + outParameterInfo.flags |= kAudioUnitParameterFlag_MeterReadOnly | kAudioUnitParameterFlag_DisplayLogarithmic; + outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain; + } + MusicDeviceBase::FillInParameterName (outParameterInfo, name.toCFString(), true); outParameterInfo.minValue = 0.0f; @@ -813,7 +834,6 @@ public: outParameterInfo.defaultValue = juceFilter->getParameterDefaultValue (index); jassert (outParameterInfo.defaultValue >= outParameterInfo.minValue && outParameterInfo.defaultValue <= outParameterInfo.maxValue); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; return noErr; } @@ -862,7 +882,7 @@ public: ComponentResult Version() override { return JucePlugin_VersionCode; } bool SupportsTail() override { return true; } Float64 GetTailTime() override { return juceFilter->getTailLengthSeconds(); } - double getSampleRate() { return juceFilter->getBusCount (false) > 0 ? GetOutput(0)->GetStreamFormat().mSampleRate : 44100.0; } + double getSampleRate() { return AudioUnitHelpers::getBusCount (juceFilter, false) > 0 ? GetOutput(0)->GetStreamFormat().mSampleRate : 44100.0; } Float64 GetLatency() override { @@ -998,6 +1018,11 @@ public: bool isInput; int busNr; + // DSP Quattro incorrectly uses global scope for the ValidFormat call + if (scope == kAudioUnitScope_Global) + return ValidFormat (kAudioUnitScope_Input, element, format) + || ValidFormat (kAudioUnitScope_Output, element, format); + if (elementToBusIdx (scope, element, isInput, busNr) != noErr) return false; @@ -1647,7 +1672,7 @@ private: busIdx = static_cast (element); if ((err = scopeToDirection (scope, isInput)) != noErr) return err; - if (isPositiveAndBelow (busIdx, juceFilter->getBusCount (isInput))) return noErr; + if (isPositiveAndBelow (busIdx, AudioUnitHelpers::getBusCount (juceFilter, isInput))) return noErr; return kAudioUnitErr_InvalidElement; } @@ -1698,7 +1723,15 @@ private: if (isPositiveAndBelow (paramIndex, n)) { const String& juceParamID = juceFilter->getParameterID (paramIndex); - return usingManagedParameter ? static_cast (juceParamID.hashCode()) + + AudioUnitParameterID paramHash = static_cast (juceParamID.hashCode()); + + #if JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + // studio one doesn't like negative parameters + paramHash &= ~(1 << (sizeof (AudioUnitParameterID) * 8 - 1)); + #endif + + return usingManagedParameter ? paramHash : static_cast (juceParamID.getIntValue()); } @@ -1723,8 +1756,8 @@ private: OSStatus syncAudioUnitWithProcessor() { OSStatus err = noErr; - const int enabledInputs = juceFilter->getBusCount (true); - const int enabledOutputs = juceFilter->getBusCount (false); + const int enabledInputs = AudioUnitHelpers::getBusCount (juceFilter, true); + const int enabledOutputs = AudioUnitHelpers::getBusCount (juceFilter, false); if ((err = MusicDeviceBase::SetBusCount (kAudioUnitScope_Input, static_cast (enabledInputs))) != noErr) return err; @@ -1745,8 +1778,8 @@ private: OSStatus syncProcessorWithAudioUnit() { - const int numInputBuses = juceFilter->getBusCount (true); - const int numOutputBuses = juceFilter->getBusCount (false); + const int numInputBuses = AudioUnitHelpers::getBusCount (juceFilter, true); + const int numOutputBuses = AudioUnitHelpers::getBusCount (juceFilter, false); const int numInputElements = static_cast (GetScope(kAudioUnitScope_Input). GetNumberOfElements()); const int numOutputElements = static_cast (GetScope(kAudioUnitScope_Output).GetNumberOfElements()); @@ -1781,7 +1814,7 @@ private: return kAudioUnitErr_FormatNotSupported; #endif - if (! juceFilter->setBusesLayout (requestedLayouts)) + if (! AudioUnitHelpers::setBusesLayout (juceFilter, requestedLayouts)) return kAudioUnitErr_FormatNotSupported; // update total channel count @@ -1885,7 +1918,7 @@ private: Array >& layouts = isInput ? supportedInputLayouts : supportedOutputLayouts; layouts.clear(); - const int numBuses = juceFilter->getBusCount (isInput); + const int numBuses = AudioUnitHelpers::getBusCount (juceFilter, isInput); for (int busNr = 0; busNr < numBuses; ++busNr) { Array busLayouts; @@ -1899,8 +1932,8 @@ private: { currentInputLayout.clear(); currentOutputLayout.clear(); - currentInputLayout. resize (juceFilter->getBusCount (true)); - currentOutputLayout.resize (juceFilter->getBusCount (false)); + currentInputLayout. resize (AudioUnitHelpers::getBusCount (juceFilter, true)); + currentOutputLayout.resize (AudioUnitHelpers::getBusCount (juceFilter, false)); addSupportedLayoutTagsForDirection (true); addSupportedLayoutTagsForDirection (false); diff --git a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm index 60a58b1604..ca0d8ae5a4 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm @@ -542,7 +542,7 @@ public: for (int dir = 0; dir < 2; ++dir) { const bool isInput = (dir == 0); - const int n = processor.getBusCount (isInput); + const int n = AudioUnitHelpers::getBusCount (&processor, isInput); Array& channelSets = (isInput ? layouts.inputBuses : layouts.outputBuses); AUAudioUnitBusArray* auBuses = (isInput ? [getAudioUnit() inputBusses] : [getAudioUnit() outputBusses]); @@ -578,7 +578,7 @@ public: } #endif - if (! processor.setBusesLayout (layouts)) + if (! AudioUnitHelpers::setBusesLayout (&getAudioProcessor(), layouts)) { if (outError != nullptr) *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:kAudioUnitErr_FormatNotSupported userInfo:nullptr]; @@ -596,7 +596,7 @@ public: audioBuffer.prepare (totalInChannels, totalOutChannels, static_cast (maxFrames)); - double sampleRate = (jmax (processor.getBusCount (true), processor.getBusCount (false)) > 0 ? + double sampleRate = (jmax (AudioUnitHelpers::getBusCount (&processor, true), AudioUnitHelpers::getBusCount (&processor, false)) > 0 ? [[[([inputBusses count] > 0 ? inputBusses : outputBusses) objectAtIndexedSubscript: 0] format] sampleRate] : 44100.0); processor.setRateAndBufferSizeDetails (sampleRate, static_cast (maxFrames)); @@ -869,7 +869,7 @@ private: { ScopedPointer > array = [[NSMutableArray alloc] init]; AudioProcessor& processor = getAudioProcessor(); - const int n = processor.getBusCount (isInput); + const int n = AudioUnitHelpers::getBusCount (&processor, isInput); for (int i = 0; i < n; ++i) { @@ -913,6 +913,7 @@ private: const String identifier (idx); const String name = processor.getParameterName (idx); + AudioUnitParameterUnit unit = kAudioUnitParameterUnit_Generic; AudioUnitParameterOptions flags = (UInt32) (kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable | kAudioUnitParameterFlag_HasCFNameString @@ -929,6 +930,14 @@ private: if (processor.isMetaParameter (idx)) flags |= kAudioUnitParameterFlag_IsGlobalMeta; + // is this a meter? + if (((processor.getParameterCategory (idx) & 0xffff0000) >> 16) == 2) + { + flags &= ~kAudioUnitParameterFlag_IsWritable; + flags |= kAudioUnitParameterFlag_MeterReadOnly | kAudioUnitParameterFlag_DisplayLogarithmic; + unit = kAudioUnitParameterUnit_LinearGain; + } + #if JUCE_FORCE_USE_LEGACY_PARAM_IDS AUParameterAddress address = static_cast (idx); #else @@ -996,7 +1005,7 @@ private: OwnedArray& busBuffers = isInput ? inBusBuffers : outBusBuffers; busBuffers.clear(); - const int n = getAudioProcessor().getBusCount (isInput); + const int n = AudioUnitHelpers::getBusCount (&getAudioProcessor(), isInput); const AUAudioFrameCount maxFrames = [getAudioUnit() maximumFramesToRender]; for (int busIdx = 0; busIdx < n; ++busIdx) diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp index 37f4f3f551..584aade710 100644 --- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp @@ -59,15 +59,6 @@ #include "../../juce_audio_processors/format_types/juce_VSTInterface.h" -#ifndef JUCE_VST3_CAN_REPLACE_VST2 - #define JUCE_VST3_CAN_REPLACE_VST2 1 -#endif - -#if JucePlugin_Build_VST3 && JUCE_VST3_CAN_REPLACE_VST2 - #include - namespace juce { extern Steinberg::FUID getJuceVST3ComponentIID(); } -#endif - #ifdef _MSC_VER #pragma warning (pop) #endif @@ -113,6 +104,8 @@ namespace juce #if JUCE_LINUX extern Display* display; #endif + + extern JUCE_API pointer_sized_int handleManufacturerSpecificVST2Opcode (int32, pointer_sized_int, void*, float); } @@ -210,6 +203,21 @@ juce_ImplementSingleton (SharedMessageThread) static Array activePlugins; +//============================================================================== +// Ableton Live host specific commands +struct AbletonLiveHostSpecific +{ + enum + { + KCantBeSuspended = (1 << 2) + }; + + uint32 magic; // 'AbLi' + int cmd; // 5 = realtime properties + size_t commandSize; // sizeof (int) + int flags; // KCantBeSuspended = (1 << 2) +}; + //============================================================================== /** This is an AudioEffectX object that holds and wraps our AudioProcessor... @@ -578,6 +586,18 @@ public: hostCallback (&vstEffect, hostOpcodePlugInWantsMidi, 0, 1, 0, 0); } + if (getHostType().isAbletonLive() && filter->getTailLengthSeconds() == DBL_MAX && hostCallback != nullptr) + { + AbletonLiveHostSpecific hostCmd; + + hostCmd.magic = 0x41624c69; // 'AbLi' + hostCmd.cmd = 5; + hostCmd.commandSize = sizeof (int); + hostCmd.flags = AbletonLiveHostSpecific::KCantBeSuspended; + + hostCallback (&vstEffect, hostOpcodeManufacturerSpecific, 0, 0, &hostCmd, 0.0f); + } + #if JucePlugin_ProducesMidiOutput || JucePlugin_IsMidiEffect outgoingEvents.ensureSize (512); #endif @@ -1133,7 +1153,7 @@ public: case plugInOpcodeGetManufacturerProductName: return handleGetPlugInName (args); case plugInOpcodeGetManufacturerName: return handleGetManufacturerName (args); case plugInOpcodeGetManufacturerVersion: return handleGetManufacturerVersion (args); - case plugInOpcodeManufacturerSpecific: return handleManufacturerSpecific (args); + case plugInOpcodeManufacturerSpecific: return handleManufacturerSpecificVST2Opcode (args.index, args.value, args.ptr, args.opt); case plugInOpcodeCanPlugInDo: return handleCanPlugInDo (args); case plugInOpcodeGetTailSize: return handleGetTailSize (args); case plugInOpcodeKeyboardFocusRequired: return handleKeyboardFocusRequired (args); @@ -1317,7 +1337,11 @@ public: #if ! JUCE_LINUX // setSize() on linux causes renoise and energyxt to fail. setSize (cw, ch); #else - XResizeWindow (display, (Window) getWindowHandle(), (unsigned int) cw, (unsigned int) ch); + const double scale = Desktop::getInstance().getDisplays().getDisplayContaining (getScreenBounds().getCentre()).scale; + Rectangle childBounds (child->getWidth(), child->getHeight()); + childBounds *= scale; + + XResizeWindow (display, (Window) getWindowHandle(), childBounds.getWidth(), childBounds.getHeight()); #endif #if JUCE_MAC @@ -1453,9 +1477,14 @@ private: //============================================================================== void findMaxTotalChannels (int& maxTotalIns, int& maxTotalOuts) { - #if defined (JucePlugin_MaxNumInputChannels) && defined (JucePlugin_MaxNumOutputChannels) - maxTotalIns = JucePlugin_MaxNumInputChannels; - maxTotalOuts = JucePlugin_MaxNumOutputChannels; + #ifdef JucePlugin_PreferredChannelConfigurations + int configs[][2] = {JucePlugin_PreferredChannelConfigurations}; + maxTotalIns = maxTotalOuts = 0; + for (auto& config : configs) + { + maxTotalIns = jmax (maxTotalIns, config[0]); + maxTotalOuts = jmax (maxTotalOuts, config[1]); + } #else const int numInputBuses = filter->getBusCount (true); const int numOutputBuses = filter->getBusCount (false); @@ -1472,8 +1501,8 @@ private: } else { - maxTotalIns = numInputBuses > 0 ? filter->getBus (true, 0)->getMaxSupportedChannels() : 0; - maxTotalOuts = numOutputBuses > 0 ? filter->getBus (false, 0)->getMaxSupportedChannels() : 0; + maxTotalIns = numInputBuses > 0 ? filter->getBus (true, 0)->getMaxSupportedChannels (64) : 0; + maxTotalOuts = numOutputBuses > 0 ? filter->getBus (false, 0)->getMaxSupportedChannels (64) : 0; } #endif } @@ -1714,7 +1743,11 @@ private: pointer_sized_int handleIsParameterAutomatable (VstOpCodeArguments args) { - return (filter != nullptr && filter->isParameterAutomatable (args.index)) ? 1 : 0; + if (filter == nullptr) + return 0; + + const bool isMeter = (((filter->getParameterCategory (args.index) & 0xffff0000) >> 16) == 2); + return (filter->isParameterAutomatable (args.index) && (! isMeter) ? 1 : 0); } pointer_sized_int handleParameterValueForText (VstOpCodeArguments args) @@ -1764,7 +1797,7 @@ private: VstSpeakerConfiguration* pluginInput = reinterpret_cast (args.value); VstSpeakerConfiguration* pluginOutput = reinterpret_cast (args.ptr); - if (pluginHasSidechainsOrAuxs() || filter->isMidiEffect()) + if (filter->isMidiEffect()) return 0; const int numIns = filter->getBusCount (true); @@ -1790,20 +1823,6 @@ private: if (pluginOutput != nullptr && pluginOutput->numberOfChannels > 0 && numOuts == 0) return 0; - if (pluginInput != nullptr && pluginInput->type >= 0) - { - // inconsistent request? - if (SpeakerMappings::vstArrangementTypeToChannelSet (*pluginInput).size() != pluginInput->numberOfChannels) - return 0; - } - - if (pluginOutput != nullptr && pluginOutput->type >= 0) - { - // inconsistent request? - if (SpeakerMappings::vstArrangementTypeToChannelSet (*pluginOutput).size() != pluginOutput->numberOfChannels) - return 0; - } - AudioProcessor::BusesLayout layouts = filter->getBusesLayout(); if (pluginInput != nullptr && pluginInput-> numberOfChannels >= 0 && numIns > 0) @@ -1844,20 +1863,6 @@ private: return convertHexVersionToDecimal (JucePlugin_VersionCode); } - pointer_sized_int handleManufacturerSpecific (VstOpCodeArguments args) - { - #if JucePlugin_Build_VST3 && JUCE_VST3_CAN_REPLACE_VST2 - if ((args.index == 'stCA' || args.index == 'stCa') && args.value == 'FUID' && args.ptr != nullptr) - { - memcpy (args.ptr, getJuceVST3ComponentIID(), 16); - return 1; - } - #else - ignoreUnused (args); - #endif - return 0; - } - pointer_sized_int handleCanPlugInDo (VstOpCodeArguments args) { char* text = (char*) args.ptr; diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp index b77822315b..f00f57b6ff 100644 --- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp @@ -32,6 +32,15 @@ #define JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY 1 #endif +#if (_WIN32 || _WIN64) + #if (_MSC_VER <= 1500) + // old VS2008 needs this to include the VST3 SDK + #ifndef nullptr + #define nullptr (0) + #endif + #endif +#endif + #include "../../juce_audio_processors/format_types/juce_VST3Headers.h" #undef JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY @@ -212,7 +221,12 @@ public: info.defaultNormalizedValue = p.getParameterDefaultValue (index); jassert (info.defaultNormalizedValue >= 0 && info.defaultNormalizedValue <= 1.0f); info.unitId = Vst::kRootUnitId; - info.flags = p.isParameterAutomatable (index) ? Vst::ParameterInfo::kCanAutomate : 0; + + // is this a meter? + if (((p.getParameterCategory (index) & 0xffff0000) >> 16) == 2) + info.flags = Vst::ParameterInfo::kIsReadOnly; + else + info.flags = p.isParameterAutomatable (index) ? Vst::ParameterInfo::kCanAutomate : 0; } virtual ~Param() {} @@ -683,7 +697,14 @@ private: if (isPositiveAndBelow (paramIndex, n)) { const String& juceParamID = pluginFilter->getParameterID (paramIndex); - return managedParameter ? static_cast (juceParamID.hashCode()) + + Vst::ParamID paramHash = static_cast (juceParamID.hashCode()); + #if JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + // studio one doesn't like negative parameters + paramHash &= ~(1 << (sizeof (Vst::ParamID) * 8 - 1)); + #endif + + return managedParameter ? paramHash : static_cast (juceParamID.getIntValue()); } @@ -698,7 +719,7 @@ private: #endif //============================================================================== - class JuceVST3Editor : public Vst::EditorView + class JuceVST3Editor : public Vst::EditorView, private Timer { public: JuceVST3Editor (JuceVST3EditController& ec, AudioProcessor& p) @@ -750,6 +771,10 @@ private: systemWindow = parent; attachedToParent(); + // Life's too short to faff around with wave lab + if (getHostType().isWavelab()) + startTimer (200); + return kResultTrue; } @@ -780,7 +805,11 @@ private: rect = *newSize; if (component != nullptr) + { component->setSize (rect.getWidth(), rect.getHeight()); + if (ComponentPeer* const peer = component->getPeer()) + peer->updateBounds(); + } return kResultTrue; } @@ -832,6 +861,15 @@ private: } private: + void timerCallback() override + { + stopTimer (); + + ViewRect viewRect; + getSize (&viewRect); + onSize (&viewRect); + } + //============================================================================== class ContentWrapperComponent : public Component { @@ -950,6 +988,10 @@ namespace template struct AudioBusPointerHelper {}; template <> struct AudioBusPointerHelper { static inline float** impl (Vst::AudioBusBuffers& data) noexcept { return data.channelBuffers32; } }; template <> struct AudioBusPointerHelper { static inline double** impl (Vst::AudioBusBuffers& data) noexcept { return data.channelBuffers64; } }; + + template struct ChooseBufferHelper {}; + template <> struct ChooseBufferHelper { static inline AudioBuffer& impl (AudioBuffer& f, AudioBuffer& ) noexcept { return f; } }; + template <> struct ChooseBufferHelper { static inline AudioBuffer& impl (AudioBuffer& , AudioBuffer& d) noexcept { return d; } }; } @@ -1109,6 +1151,9 @@ public: if (! state) { getPluginInstance().releaseResources(); + + deallocateChannelListAndBuffers (channelListFloat, emptyBufferFloat); + deallocateChannelListAndBuffers (channelListDouble, emptyBufferDouble); } else { @@ -1123,8 +1168,8 @@ public: ? (int) processSetup.maxSamplesPerBlock : bufferSize; - allocateChannelLists (channelListFloat); - allocateChannelLists (channelListDouble); + allocateChannelListAndBuffers (channelListFloat, emptyBufferFloat); + allocateChannelListAndBuffers (channelListDouble, emptyBufferDouble); preparePlugin (sampleRate, bufferSize); } @@ -1361,8 +1406,12 @@ public: FUnknownPtr stateRefHolder (state); // just in case the caller hasn't properly ref-counted the stream object if (state->seek (0, IBStream::kIBSeekSet, nullptr) == kResultTrue) - if (readFromMemoryStream (state) || readFromUnknownStream (state)) + { + if (! getHostType().isFruityLoops() && readFromMemoryStream (state)) return kResultTrue; + if (readFromUnknownStream (state)) + return kResultTrue; + } return kResultFalse; } @@ -1538,11 +1587,32 @@ public: return true; } + //============================================================================== + int getNumAudioBuses (bool isInput) const + { + int busCount = pluginInstance->getBusCount (isInput); + + #ifdef JucePlugin_PreferredChannelConfigurations + short configs[][2] = {JucePlugin_PreferredChannelConfigurations}; + const int numConfigs = sizeof (configs) / sizeof (short[2]); + + bool hasOnlyZeroChannels = true; + + for (int i = 0; i < numConfigs && hasOnlyZeroChannels == true; ++i) + if (configs[i][isInput ? 0 : 1] != 0) + hasOnlyZeroChannels = false; + + busCount = jmin (busCount, hasOnlyZeroChannels ? 0 : 1); + #endif + + return busCount; + } + //============================================================================== Steinberg::int32 PLUGIN_API getBusCount (Vst::MediaType type, Vst::BusDirection dir) override { if (type == Vst::kAudio) - return pluginInstance->getBusCount (dir == Vst::kInput); + return getNumAudioBuses (dir == Vst::kInput); if (type == Vst::kEvent) { @@ -1561,6 +1631,9 @@ public: { if (type == Vst::kAudio) { + if (index < 0 || index >= getNumAudioBuses (dir == Vst::kInput)) + return kResultFalse; + if (const AudioProcessor::Bus* bus = pluginInstance->getBus (dir == Vst::kInput, index)) { info.mediaType = Vst::kAudio; @@ -1628,8 +1701,30 @@ public: } if (type == Vst::kAudio) + { + if (index < 0 || index >= getNumAudioBuses (dir == Vst::kInput)) + return kResultFalse; + if (AudioProcessor::Bus* bus = pluginInstance->getBus (dir == Vst::kInput, index)) + { + #ifdef JucePlugin_PreferredChannelConfigurations + AudioProcessor::BusesLayout newLayout = pluginInstance->getBusesLayout(); + AudioChannelSet targetLayout + = (state != 0 ? bus->getLastEnabledLayout() : AudioChannelSet::disabled()); + + (dir == Vst::kInput ? newLayout.inputBuses : newLayout.outputBuses).getReference (index) = targetLayout; + + short configs[][2] = {JucePlugin_PreferredChannelConfigurations}; + AudioProcessor::BusesLayout compLayout + = pluginInstance->getNextBestLayoutInLayoutList (newLayout, configs); + + if ((dir == Vst::kInput ? compLayout.inputBuses : compLayout.outputBuses).getReference (index) != targetLayout) + return kResultFalse; + #endif + return (bus->enable (state != 0) ? kResultTrue : kResultFalse); + } + } return kResultFalse; } @@ -1864,6 +1959,9 @@ private: Array channelListFloat; Array channelListDouble; + AudioBuffer emptyBufferFloat; + AudioBuffer emptyBufferDouble; + bool isMidiInputBusEnabled, isMidiOutputBusEnabled; ScopedJuceInitialiser_GUI libraryInitialiser; @@ -1882,52 +1980,110 @@ private: void processAudio (Vst::ProcessData& data, Array& channelList) { int totalInputChans = 0; + bool tmpBufferNeedsClearing = false; const int plugInInputChannels = pluginInstance->getTotalNumInputChannels(); const int plugInOutputChannels = pluginInstance->getTotalNumOutputChannels(); - if (data.inputs != nullptr) + // Wavelab workaround: wave-lab lies on the number of inputs/outputs so re-count here + int vstInputs; + for (vstInputs = 0; vstInputs < data.numInputs; ++vstInputs) + if (getPointerForAudioBus (data.inputs[vstInputs]) == nullptr) + break; + + int vstOutputs; + for (vstOutputs = 0; vstOutputs < data.numOutputs; ++vstOutputs) + if (getPointerForAudioBus (data.outputs[vstOutputs]) == nullptr) + break; + { - for (int bus = 0; bus < data.numInputs && totalInputChans < plugInInputChannels; ++bus) + const int n = jmax (vstInputs, getNumAudioBuses (true)); + + for (int bus = 0; bus < n && totalInputChans < plugInInputChannels; ++bus) { - if (FloatType** const busChannels = getPointerForAudioBus (data.inputs[bus])) + if (bus < vstInputs) { - const int numChans = jmin ((int) data.inputs[bus].numChannels, plugInInputChannels - totalInputChans); + if (FloatType** const busChannels = getPointerForAudioBus (data.inputs[bus])) + { + const int numChans = jmin ((int) data.inputs[bus].numChannels, plugInInputChannels - totalInputChans); + + for (int i = 0; i < numChans; ++i) + if (busChannels[i] != nullptr) + channelList.set (totalInputChans++, busChannels[i]); + } + } + else + { + const int numChans = jmin (pluginInstance->getChannelCountOfBus (true, bus), plugInInputChannels - totalInputChans); for (int i = 0; i < numChans; ++i) - if (busChannels[i] != nullptr) - channelList.set (totalInputChans++, busChannels[i]); + { + if (FloatType* tmpBuffer = getTmpBufferForChannel (totalInputChans, data.numSamples)) + { + tmpBufferNeedsClearing = true; + channelList.set (totalInputChans++, tmpBuffer); + } + else + return; + } } } } int totalOutputChans = 0; - if (data.outputs != nullptr) { - for (int bus = 0; bus < data.numOutputs && totalOutputChans < plugInOutputChannels; ++bus) + const int n = jmax (vstOutputs, getNumAudioBuses (false)); + + for (int bus = 0; bus < n && totalOutputChans < plugInOutputChannels; ++bus) { - if (FloatType** const busChannels = getPointerForAudioBus (data.outputs[bus])) + if (bus < vstOutputs) { - const int numChans = jmin ((int) data.outputs[bus].numChannels, plugInOutputChannels - totalOutputChans); + if (FloatType** const busChannels = getPointerForAudioBus (data.outputs[bus])) + { + const int numChans = jmin ((int) data.outputs[bus].numChannels, plugInOutputChannels - totalOutputChans); + + for (int i = 0; i < numChans; ++i) + { + if (busChannels[i] != nullptr) + { + if (totalOutputChans >= totalInputChans) + { + FloatVectorOperations::clear (busChannels[i], data.numSamples); + channelList.set (totalOutputChans, busChannels[i]); + } + + ++totalOutputChans; + } + } + } + } + else + { + const int numChans = jmin (pluginInstance->getChannelCountOfBus (false, bus), plugInOutputChannels - totalOutputChans); for (int i = 0; i < numChans; ++i) { - if (busChannels[i] != nullptr) + if (FloatType* tmpBuffer = getTmpBufferForChannel (totalOutputChans, data.numSamples)) { if (totalOutputChans >= totalInputChans) { - FloatVectorOperations::clear (busChannels[i], data.numSamples); - channelList.set (totalOutputChans, busChannels[i]); + tmpBufferNeedsClearing = true; + channelList.set (totalOutputChans, tmpBuffer); } ++totalOutputChans; } + else + return; } } } } + if (tmpBufferNeedsClearing) + ChooseBufferHelper::impl (emptyBufferFloat, emptyBufferDouble).clear(); + AudioBuffer buffer; if (int totalChans = jmax (totalOutputChans, totalInputChans)) @@ -2006,10 +2162,22 @@ private: //============================================================================== template - void allocateChannelLists (Array& channelList) + void allocateChannelListAndBuffers (Array& channelList, AudioBuffer& buffer) { channelList.clearQuick(); channelList.insertMultiple (0, nullptr, 128); + + const AudioProcessor& p = getPluginInstance(); + buffer.setSize (jmax (p.getTotalNumInputChannels(), p.getTotalNumOutputChannels()), p.getBlockSize() * 4); + buffer.clear(); + } + + template + void deallocateChannelListAndBuffers (Array& channelList, AudioBuffer& buffer) + { + channelList.clearQuick(); + channelList.resize (0); + buffer.setSize (0, 0); } template @@ -2018,6 +2186,19 @@ private: return AudioBusPointerHelper::impl (data); } + template + FloatType* getTmpBufferForChannel (int channel, int numSamples) noexcept + { + AudioBuffer& buffer = ChooseBufferHelper::impl (emptyBufferFloat, emptyBufferDouble); + + // we can't do anything if the host requests to render many more samples than the + // block size, we need to bail out + if (numSamples > buffer.getNumSamples() || channel >= buffer.getNumChannels()) + return nullptr; + + return buffer.getWritePointer (channel); + } + void preparePlugin (double sampleRate, int bufferSize) { AudioProcessor& p = getPluginInstance(); @@ -2069,11 +2250,6 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceVST3Component) }; -#if JucePlugin_Build_VST3 && JUCE_VST3_CAN_REPLACE_VST2 - Steinberg::FUID getJuceVST3ComponentIID(); - Steinberg::FUID getJuceVST3ComponentIID() { return JuceVST3Component::iid; } -#endif - const char* JuceVST3Component::kJucePrivateDataIdentifier = "JUCEPrivateData"; //============================================================================== @@ -2089,42 +2265,15 @@ DECLARE_CLASS_IID (JuceAudioProcessor, 0x0101ABAB, 0xABCDEF01, JucePlugin_Manufa DEF_CLASS_IID (JuceAudioProcessor) #if JUCE_VST3_CAN_REPLACE_VST2 - // NB: Nasty old-fashioned code in here because it's copied from the Steinberg example code. - static FUID getFUIDForVST2ID (bool forControllerUID) + FUID getFUIDForVST2ID (bool forControllerUID) { - char uidString[33]; - - const int vstfxid = (('V' << 16) | ('S' << 8) | (forControllerUID ? 'E' : 'T')); - char vstfxidStr[7] = { 0 }; - sprintf (vstfxidStr, "%06X", vstfxid); - strcpy (uidString, vstfxidStr); - - char uidStr[9] = { 0 }; - sprintf (uidStr, "%08X", JucePlugin_VSTUniqueID); - strcat (uidString, uidStr); - - char nameidStr[3] = { 0 }; - const size_t len = strlen (JucePlugin_Name); - - for (size_t i = 0; i <= 8; ++i) - { - juce::uint8 c = i < len ? static_cast (JucePlugin_Name[i]) : 0; - - if (c >= 'A' && c <= 'Z') - c += 'a' - 'A'; - - sprintf (nameidStr, "%02X", c); - strcat (uidString, nameidStr); - } - - FUID newOne; - newOne.fromString (uidString); - return newOne; + TUID uuid; + extern JUCE_API void getUUIDForVST2ID (bool, uint8[16]); + getUUIDForVST2ID (forControllerUID, (uint8*) uuid); + return FUID (uuid); } - const Steinberg::FUID JuceVST3Component ::iid (getFUIDForVST2ID (false)); const Steinberg::FUID JuceVST3EditController::iid (getFUIDForVST2ID (true)); - #else DECLARE_CLASS_IID (JuceVST3EditController, 0xABCDEF01, 0x1234ABCD, JucePlugin_ManufacturerCode, JucePlugin_PluginCode) DEF_CLASS_IID (JuceVST3EditController) diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h index 4b015e6ab9..b59ae1160c 100644 --- a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h +++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h @@ -33,7 +33,7 @@ ID: juce_audio_plugin_client vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE audio plugin wrapper classes description: Classes for building VST, VST3, AudioUnit, AAX and RTAS plugins. website: http://www.juce.com/juce @@ -64,6 +64,19 @@ #define JUCE_FORCE_USE_LEGACY_PARAM_IDS 0 #endif +/** Config: JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + + Enable this if you want JUCE to use parameter ids which are compatible + to Studio One. Studio One ignores any parameter ids which are negative. + Enabling this option will make JUCE generate only positive parameter ids. + Note that if you have already released a plug-in prio to JUCE 4.3.0 then + enabling this will change your parameter ids making your plug-in + incompatible to old automation data. + */ +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + #define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS 1 +#endif + namespace juce { #include "utility/juce_PluginHostType.h" diff --git a/modules/juce_audio_plugin_client/utility/juce_PluginHostType.h b/modules/juce_audio_plugin_client/utility/juce_PluginHostType.h index b779bf1d3f..ebca44b1a7 100644 --- a/modules/juce_audio_plugin_client/utility/juce_PluginHostType.h +++ b/modules/juce_audio_plugin_client/utility/juce_PluginHostType.h @@ -43,6 +43,7 @@ public: AdobePremierePro, AppleLogic, Ardour, + BitwigStudio, CakewalkSonar8, CakewalkSonarGeneric, DaVinciResolve, @@ -85,6 +86,7 @@ public: bool isAbletonLive() const noexcept { return type == AbletonLive6 || type == AbletonLive7 || type == AbletonLive8 || type == AbletonLiveGeneric; } bool isAdobeAudition() const noexcept { return type == AdobeAudition; } bool isArdour() const noexcept { return type == Ardour; } + bool isBitwigStudio() const noexcept { return type == BitwigStudio; } bool isCubase() const noexcept { return type == SteinbergCubase4 || type == SteinbergCubase5 || type == SteinbergCubase5Bridged || type == SteinbergCubase6 || type == SteinbergCubase7 || type == SteinbergCubase8 || type == SteinbergCubaseGeneric; } bool isCubase7orLater() const noexcept { return isCubase() && ! (type == SteinbergCubase4 || type == SteinbergCubase5 || type == SteinbergCubase6); } bool isCubaseBridged() const noexcept { return type == SteinbergCubase5Bridged; } @@ -123,6 +125,7 @@ public: case AdobeAudition: return "Adobe Audition"; case AdobePremierePro: return "Adobe Premiere"; case AppleLogic: return "Apple Logic"; + case BitwigStudio: return "Bitwig Studio"; case CakewalkSonar8: return "Cakewalk Sonar 8"; case CakewalkSonarGeneric: return "Cakewalk Sonar"; case DaVinciResolve: return "DaVinci Resolve"; @@ -224,6 +227,7 @@ private: if (hostFilename.containsIgnoreCase ("Tracktion")) return TracktionGeneric; if (hostFilename.containsIgnoreCase ("Renoise")) return Renoise; if (hostFilename.containsIgnoreCase ("Resolve")) return DaVinciResolve; + if (hostFilename.startsWith ("Bitwig")) return BitwigStudio; #elif JUCE_WINDOWS if (hostFilename.containsIgnoreCase ("Live 6.")) return AbletonLive6; @@ -263,9 +267,12 @@ private: if (hostFilename.startsWithIgnoreCase ("Sam")) return MagixSamplitude; if (hostFilename.containsIgnoreCase ("Renoise")) return Renoise; if (hostFilename.containsIgnoreCase ("Resolve")) return DaVinciResolve; + if (hostPath.containsIgnoreCase ("Bitwig Studio")) return BitwigStudio; #elif JUCE_LINUX if (hostFilename.containsIgnoreCase ("Ardour")) return Ardour; + if (hostFilename.startsWith ("Bitwig")) return BitwigStudio; + #elif JUCE_IOS #else #error diff --git a/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp b/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp index f9f4a2f297..8bba466064 100644 --- a/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp +++ b/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp @@ -62,6 +62,114 @@ extern "C" BOOL WINAPI DllMain (HINSTANCE instance, DWORD reason, LPVOID reserve #endif +//============================================================================== +namespace juce +{ +#ifndef JUCE_VST3_CAN_REPLACE_VST2 + #define JUCE_VST3_CAN_REPLACE_VST2 1 +#endif + +#if JucePlugin_Build_VST3 && (__APPLE_CPP__ || __APPLE_CC__ || _WIN32 || _WIN64) && JUCE_VST3_CAN_REPLACE_VST2 +#define VST3_REPLACEMENT_AVAILABLE 1 + +// NB: Nasty old-fashioned code in here because it's copied from the Steinberg example code. +void JUCE_API getUUIDForVST2ID (bool forControllerUID, uint8 uuid[16]) +{ + char uidString[33]; + + const int vstfxid = (('V' << 16) | ('S' << 8) | (forControllerUID ? 'E' : 'T')); + char vstfxidStr[7] = { 0 }; + sprintf (vstfxidStr, "%06X", vstfxid); + + strcpy (uidString, vstfxidStr); + + char uidStr[9] = { 0 }; + sprintf (uidStr, "%08X", JucePlugin_VSTUniqueID); + strcat (uidString, uidStr); + + char nameidStr[3] = { 0 }; + const size_t len = strlen (JucePlugin_Name); + + for (size_t i = 0; i <= 8; ++i) + { + juce::uint8 c = i < len ? static_cast (JucePlugin_Name[i]) : 0; + + if (c >= 'A' && c <= 'Z') + c += 'a' - 'A'; + + sprintf (nameidStr, "%02X", c); + strcat (uidString, nameidStr); + } + + unsigned long p0; + unsigned int p1, p2; + unsigned int p3[8]; + + #ifndef _MSC_VER + sscanf + #else + sscanf_s + #endif + (uidString, "%08lX%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X", + &p0, &p1, &p2, &p3[0], &p3[1], &p3[2], &p3[3], &p3[4], &p3[5], &p3[6], &p3[7]); + + union q0_u { + uint32 word; + uint8 bytes[4]; + } q0; + + union q1_u { + uint16 half; + uint8 bytes[2]; + } q1, q2; + + q0.word = static_cast (p0); + q1.half = static_cast (p1); + q2.half = static_cast (p2); + + // VST3 doesn't use COM compatible UUIDs on non windows platforms + #ifndef _WIN32 + q0.word = ByteOrder::swap (q0.word); + q1.half = ByteOrder::swap (q1.half); + q2.half = ByteOrder::swap (q2.half); + #endif + + for (int i = 0; i < 4; ++i) + uuid[i+0] = q0.bytes[i]; + + for (int i = 0; i < 2; ++i) + uuid[i+4] = q1.bytes[i]; + + for (int i = 0; i < 2; ++i) + uuid[i+6] = q2.bytes[i]; + + for (int i = 0; i < 8; ++i) + uuid[i+8] = static_cast (p3[i]); +} +#else +#define VST3_REPLACEMENT_AVAILABLE 0 +#endif + +#if JucePlugin_Build_VST +pointer_sized_int JUCE_API handleManufacturerSpecificVST2Opcode (int32 index, pointer_sized_int value, void* ptr, float) +{ + #if VST3_REPLACEMENT_AVAILABLE + if ((index == 'stCA' || index == 'stCa') && value == 'FUID' && ptr != nullptr) + { + uint8 fuid[16]; + getUUIDForVST2ID (false, fuid); + ::memcpy (ptr, fuid, 16); + return 1; + } + #else + ignoreUnused (index, value, ptr); + #endif + return 0; +} +#endif + +} // namespace juce + //============================================================================== /** Somewhere in the codebase of your plugin, you need to implement this function and make it return a new instance of the filter subclass that you're building. diff --git a/modules/juce_audio_processors/format_types/juce_AU_Shared.h b/modules/juce_audio_processors/format_types/juce_AU_Shared.h index 5ef785780d..1b56028199 100644 --- a/modules/juce_audio_processors/format_types/juce_AU_Shared.h +++ b/modules/juce_audio_processors/format_types/juce_AU_Shared.h @@ -324,8 +324,8 @@ struct AudioUnitHelpers void alloc() { - const int numInputBuses = processor.getBusCount (true); - const int numOutputBuses = processor.getBusCount (false); + const int numInputBuses = AudioUnitHelpers::getBusCount (&processor, true); + const int numOutputBuses = AudioUnitHelpers::getBusCount (&processor, false); initializeChannelMapArray (true, numInputBuses); initializeChannelMapArray (false, numOutputBuses); @@ -611,10 +611,10 @@ struct AudioUnitHelpers { Array channelInfo; - const bool hasMainInputBus = (processor.getBusCount (true) > 0); - const bool hasMainOutputBus = (processor.getBusCount (false) > 0); + const bool hasMainInputBus = (AudioUnitHelpers::getBusCount (&processor, true) > 0); + const bool hasMainOutputBus = (AudioUnitHelpers::getBusCount (&processor, false) > 0); - if ((! hasMainInputBus) && (! hasMainOutputBus)) + if ((! hasMainInputBus) && (! hasMainOutputBus)) { // midi effect plug-in: no audio AUChannelInfo info; @@ -743,6 +743,73 @@ struct AudioUnitHelpers return channelInfo; } + + //============================================================================== + static int getBusCount (const AudioProcessor* juceFilter, bool isInput) + { + int busCount = juceFilter->getBusCount (isInput); + + #ifdef JucePlugin_PreferredChannelConfigurations + short configs[][2] = {JucePlugin_PreferredChannelConfigurations}; + const int numConfigs = sizeof (configs) / sizeof (short[2]); + + bool hasOnlyZeroChannels = true; + + for (int i = 0; i < numConfigs && hasOnlyZeroChannels == true; ++i) + if (configs[i][isInput ? 0 : 1] != 0) + hasOnlyZeroChannels = false; + + busCount = jmin (busCount, hasOnlyZeroChannels ? 0 : 1); + #endif + + return busCount; + } + + static bool setBusesLayout (AudioProcessor* juceFilter, const AudioProcessor::BusesLayout& requestedLayouts) + { + #ifdef JucePlugin_PreferredChannelConfigurations + AudioProcessor::BusesLayout copy (requestedLayouts); + + for (int dir = 0; dir < 2; ++dir) + { + const bool isInput = (dir == 0); + + const int actualBuses = juceFilter->getBusCount (isInput); + const int auNumBuses = getBusCount (juceFilter, isInput); + Array& buses = (isInput ? copy.inputBuses : copy.outputBuses); + + for (int i = auNumBuses; i < actualBuses; ++i) + buses.add (AudioChannelSet::disabled()); + } + + return juceFilter->setBusesLayout (copy); + #else + return juceFilter->setBusesLayout (requestedLayouts); + #endif + } + + static AudioProcessor::BusesLayout getBusesLayout (const AudioProcessor* juceFilter) + { + #ifdef JucePlugin_PreferredChannelConfigurations + AudioProcessor::BusesLayout layout = juceFilter->getBusesLayout(); + + for (int dir = 0; dir < 2; ++dir) + { + const bool isInput = (dir == 0); + + const int actualBuses = juceFilter->getBusCount (isInput); + const int auNumBuses = getBusCount (juceFilter, isInput); + Array& buses = (isInput ? layout.inputBuses : layout.outputBuses); + + for (int i = auNumBuses; i < actualBuses; ++i) + buses.removeLast(); + } + + return layout; + #else + return juceFilter->getBusesLayout(); + #endif + } }; AudioUnitHelpers::AUChannelStreamOrder AudioUnitHelpers::StreamOrder::auChannelStreamOrder[] = diff --git a/modules/juce_audio_processors/format_types/juce_VST3Headers.h b/modules/juce_audio_processors/format_types/juce_VST3Headers.h index 49dc270b66..52ab3e5537 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3Headers.h +++ b/modules/juce_audio_processors/format_types/juce_VST3Headers.h @@ -45,6 +45,7 @@ #pragma clang diagnostic ignored "-Wsign-conversion" #pragma clang diagnostic ignored "-Wsign-compare" #pragma clang diagnostic ignored "-Wdelete-non-virtual-dtor" + #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif #undef DEVELOPMENT diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index 3b3851ac61..f3a985721f 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -1139,11 +1139,11 @@ struct DLLHandle #else if (bundleRef != nullptr) { + releaseFactory(); + if (ExitModuleFn exitFn = (ExitModuleFn) getFunction ("bundleExit")) exitFn(); - releaseFactory(); - CFRelease (bundleRef); bundleRef = nullptr; } @@ -1721,6 +1721,8 @@ struct VST3ComponentHolder info, info2, infoW, totalNumInputChannels, totalNumOutputChannels); + + return; } jassertfalse; @@ -2285,20 +2287,24 @@ public: if (head != nullptr) { - ComSmartPtr s (createMemoryStreamForState (*head, "IComponent")); + ComSmartPtr componentStream (createMemoryStreamForState (*head, "IComponent")); - if (s != nullptr && holder->component != nullptr) - holder->component->setState (s); + if (componentStream != nullptr && holder->component != nullptr) + holder->component->setState (componentStream); if (editController != nullptr) { - if (s != nullptr) - editController->setComponentState (s); + if (componentStream != nullptr) + { + int64 result; + componentStream->seek (0, IBStream::kIBSeekSet, &result); + editController->setComponentState (componentStream); + } - s = createMemoryStreamForState (*head, "IEditController"); + ComSmartPtr controllerStream = createMemoryStreamForState (*head, "IEditController"); - if (s != nullptr) - editController->setState (s); + if (controllerStream != nullptr) + editController->setState (controllerStream); } } } diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp index d381031c7c..9e5418e0fa 100644 --- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp @@ -39,11 +39,13 @@ #define __cdecl #endif -namespace +namespace Vst2 { #include "juce_VSTInterface.h" } +using namespace Vst2; + #include "juce_VSTCommon.h" #if JUCE_MSVC @@ -1125,75 +1127,28 @@ public: { switch (opcode) { - case hostOpcodeParameterChanged: sendParamChangeMessageToListeners (index, opt); break; - case hostOpcodePreAudioProcessingEvents: handleMidiFromPlugin ((const VstEventBlock*) ptr); break; + case hostOpcodeParameterChanged: sendParamChangeMessageToListeners (index, opt); break; + case hostOpcodePreAudioProcessingEvents: handleMidiFromPlugin ((const VstEventBlock*) ptr); break; + case hostOpcodeGetTimingInfo: return getVSTTime(); + case hostOpcodeIdle: handleIdle(); break; + case hostOpcodeWindowSize: setWindowSize (index, (int) value); return 1; + case hostOpcodeUpdateView: triggerAsyncUpdate(); break; + case hostOpcodeIOModified: setLatencySamples (vstEffect->latency); break; + case hostOpcodeNeedsIdle: startTimer (50); break; - #if JUCE_MSVC - #pragma warning (push) - #pragma warning (disable: 4311) - #endif - case hostOpcodeGetTimingInfo: return (pointer_sized_int) &vstHostTime; - #if JUCE_MSVC - #pragma warning (pop) - #endif + case hostOpcodeGetSampleRate: return (pointer_sized_int) (getSampleRate() > 0 ? getSampleRate() : defaultVSTSampleRateValue); + case hostOpcodeGetBlockSize: return (pointer_sized_int) (getBlockSize() > 0 ? getBlockSize() : defaultVSTBlockSizeValue); + case hostOpcodePlugInWantsMidi: wantsMidiMessages = true; break; + case hostOpcodeGetDirectory: return getVstDirectory(); - case hostOpcodeIdle: - if (insideVSTCallback == 0 && MessageManager::getInstance()->isThisTheMessageThread()) - { - const IdleCallRecursionPreventer icrp; + case hostOpcodeTempoAt: return (pointer_sized_int) (extraFunctions != nullptr ? extraFunctions->getTempoAt ((int64) value) : 0); + case hostOpcodeGetAutomationState: return (pointer_sized_int) (extraFunctions != nullptr ? extraFunctions->getAutomationState() : 0); - #if JUCE_MAC - if (getActiveEditor() != nullptr) - dispatch (plugInOpcodeEditorIdle, 0, 0, 0, 0); - #endif + case hostOpcodeParameterChangeGestureBegin: beginParameterChangeGesture (index); break; + case hostOpcodeParameterChangeGestureEnd: endParameterChangeGesture (index); break; - Timer::callPendingTimersSynchronously(); - - handleUpdateNowIfNeeded(); - - for (int i = ComponentPeer::getNumPeers(); --i >= 0;) - if (ComponentPeer* p = ComponentPeer::getPeer(i)) - p->performAnyPendingRepaintsNow(); - } - break; - - case hostOpcodeWindowSize: - if (AudioProcessorEditor* ed = getActiveEditor()) - { - #if JUCE_LINUX - const MessageManagerLock mmLock; - #endif - ed->setSize (index, (int) value); - } - - return 1; - - case hostOpcodeUpdateView: triggerAsyncUpdate(); break; - case hostOpcodeIOModified: setLatencySamples (vstEffect->latency); break; - case hostOpcodeNeedsIdle: startTimer (50); break; - - case hostOpcodeGetSampleRate: return (pointer_sized_int) (getSampleRate() > 0 ? getSampleRate() : defaultVSTSampleRateValue); - case hostOpcodeGetBlockSize: return (pointer_sized_int) (getBlockSize() > 0 ? getBlockSize() : defaultVSTBlockSizeValue); - case hostOpcodePlugInWantsMidi: wantsMidiMessages = true; break; - case hostOpcodeGetDirectory: return getVstDirectory(); - - case hostOpcodeTempoAt: - if (extraFunctions != nullptr) - return (pointer_sized_int) extraFunctions->getTempoAt ((int64) value); - - break; - - case hostOpcodeGetAutomationState: - if (extraFunctions != nullptr) - return (pointer_sized_int) extraFunctions->getAutomationState(); - - break; - - case hostOpcodePinConnected: - return isValidChannel (index, value == 0) ? 0 : 1; // (yes, 0 = true) - - case hostOpcodeGetCurrentAudioProcessingLevel: - return isNonRealtime() ? 4 : 0; + case hostOpcodePinConnected: return isValidChannel (index, value == 0) ? 0 : 1; // (yes, 0 = true) + case hostOpcodeGetCurrentAudioProcessingLevel: return isNonRealtime() ? 4 : 0; // none of these are handled (yet)... case hostOpcodeSetTime: @@ -1214,8 +1169,6 @@ public: case hostOpcodeGetLanguage: case hostOpcodeOpenEditorWindow: case hostOpcodeCloseEditorWindow: - case hostOpcodeParameterChangeGestureBegin: - case hostOpcodeParameterChangeGestureEnd: break; default: @@ -1226,50 +1179,23 @@ public: } // handles non plugin-specific callbacks.. - static pointer_sized_int handleGeneralCallback (int32 opcode, int32 /*index*/, pointer_sized_int /*value*/, void *ptr, float /*opt*/) + static pointer_sized_int handleGeneralCallback (int32 opcode, int32 /*index*/, pointer_sized_int /*value*/, void* ptr, float /*opt*/) { switch (opcode) { - case hostOpcodeCanHostDo: - { - static const char* canDos[] = { "supplyIdle", - "sendVstEvents", - "sendVstMidiEvent", - "sendVstTimeInfo", - "receiveVstEvents", - "receiveVstMidiEvent", - "supportShell", - "sizeWindow", - "shellCategory" }; - - for (int i = 0; i < numElementsInArray (canDos); ++i) - if (strcmp (canDos[i], (const char*) ptr) == 0) - return 1; - - return 0; - } - - case hostOpcodeVstVersion: return 2400; - case hostOpcodeCurrentId: return shellUIDToCreate; - case hostOpcodeGetNumberOfAutomatableParameters: return 0; - case hostOpcodeGetAutomationState: return 1; - case hostOpcodeGetManufacturerVersion: return 0x0101; + case hostOpcodeCanHostDo: return handleCanDo ((const char*) ptr); + case hostOpcodeVstVersion: return 2400; + case hostOpcodeCurrentId: return shellUIDToCreate; + case hostOpcodeGetNumberOfAutomatableParameters: return 0; + case hostOpcodeGetAutomationState: return 1; + case hostOpcodeGetManufacturerVersion: return 0x0101; case hostOpcodeGetManufacturerName: - case hostOpcodeGetProductName: - { - String hostName ("Juce VST Host"); + case hostOpcodeGetProductName: return getHostName ((char*) ptr); - if (JUCEApplicationBase* app = JUCEApplicationBase::getInstance()) - hostName = app->getApplicationName(); - - hostName.copyToUTF8 ((char*) ptr, (size_t) jmin (vstMaxManufacturerStringLength, vstMaxPlugInNameStringLength) - 1); - break; - } - - case hostOpcodeGetSampleRate: return (pointer_sized_int) defaultVSTSampleRateValue; - case hostOpcodeGetBlockSize: return (pointer_sized_int) defaultVSTBlockSizeValue; - case hostOpcodeSetOutputSampleRate: return 0; + case hostOpcodeGetSampleRate: return (pointer_sized_int) defaultVSTSampleRateValue; + case hostOpcodeGetBlockSize: return (pointer_sized_int) defaultVSTBlockSizeValue; + case hostOpcodeSetOutputSampleRate: return 0; default: DBG ("*** Unhandled VST Callback: " + String ((int) opcode)); @@ -1553,8 +1479,83 @@ private: VSTMidiEventList midiEventsToSend; VstTimingInformation vstHostTime; + static pointer_sized_int handleCanDo (const char* name) + { + static const char* canDos[] = { "supplyIdle", + "sendVstEvents", + "sendVstMidiEvent", + "sendVstTimeInfo", + "receiveVstEvents", + "receiveVstMidiEvent", + "supportShell", + "sizeWindow", + "shellCategory" }; + + for (int i = 0; i < numElementsInArray (canDos); ++i) + if (strcmp (canDos[i], name) == 0) + return 1; + + return 0; + } + + static pointer_sized_int getHostName (char* name) + { + String hostName ("Juce VST Host"); + + if (JUCEApplicationBase* app = JUCEApplicationBase::getInstance()) + hostName = app->getApplicationName(); + + hostName.copyToUTF8 (name, (size_t) jmin (vstMaxManufacturerStringLength, vstMaxPlugInNameStringLength) - 1); + return 1; + } + + pointer_sized_int getVSTTime() noexcept + { + #if JUCE_MSVC + #pragma warning (push) + #pragma warning (disable: 4311) + #endif + + return (pointer_sized_int) &vstHostTime; + + #if JUCE_MSVC + #pragma warning (pop) + #endif + } + + void handleIdle() + { + if (insideVSTCallback == 0 && MessageManager::getInstance()->isThisTheMessageThread()) + { + const IdleCallRecursionPreventer icrp; + + #if JUCE_MAC + if (getActiveEditor() != nullptr) + dispatch (plugInOpcodeEditorIdle, 0, 0, 0, 0); + #endif + + Timer::callPendingTimersSynchronously(); + handleUpdateNowIfNeeded(); + + for (int i = ComponentPeer::getNumPeers(); --i >= 0;) + if (ComponentPeer* p = ComponentPeer::getPeer(i)) + p->performAnyPendingRepaintsNow(); + } + } + + void setWindowSize (int width, int height) + { + if (AudioProcessorEditor* ed = getActiveEditor()) + { + #if JUCE_LINUX + const MessageManagerLock mmLock; + #endif + ed->setSize (width, height); + } + } + //============================================================================== - static VstEffectInterface* constructEffect(const ModuleHandle::Ptr& module) + static VstEffectInterface* constructEffect (const ModuleHandle::Ptr& module) { VstEffectInterface* effect = nullptr; try diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h index fb27cfc1b9..118752a9ff 100644 --- a/modules/juce_audio_processors/juce_audio_processors.h +++ b/modules/juce_audio_processors/juce_audio_processors.h @@ -33,7 +33,7 @@ ID: juce_audio_processors vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE audio processor classes description: Classes for loading and playing VST, AU, or internally-generated audio processors. website: http://www.juce.com/juce diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp index 4151a19f59..d19a72b4c5 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp @@ -251,17 +251,21 @@ bool AudioProcessor::checkBusesLayoutSupported (const BusesLayout& layouts) cons return false; } -AudioProcessor::BusesLayout AudioProcessor::getNextBestLayout (const BusesLayout& layouts) const +void AudioProcessor::getNextBestLayout (const BusesLayout& desiredLayout, BusesLayout& actualLayouts) const { // if you are hitting this assertion then you are requesting a next // best layout which does not have the same number of buses as the // audio processor. - jassert (layouts.inputBuses. size() == getBusCount (true) - && layouts.outputBuses.size() == getBusCount (false)); + jassert (desiredLayout.inputBuses. size() == getBusCount (true) + && desiredLayout.outputBuses.size() == getBusCount (false)); - if (checkBusesLayoutSupported (layouts)) return layouts; + if (checkBusesLayoutSupported (desiredLayout)) + { + actualLayouts = desiredLayout; + return; + } - BusesLayout originalState = getBusesLayout(); + BusesLayout originalState = actualLayouts; BusesLayout currentState = originalState; BusesLayout bestSupported = currentState; @@ -271,7 +275,7 @@ AudioProcessor::BusesLayout AudioProcessor::getNextBestLayout (const BusesLayout Array& currentLayouts = (isInput ? currentState.inputBuses : currentState.outputBuses); const Array& bestLayouts = (isInput ? bestSupported.inputBuses : bestSupported.outputBuses); - const Array& requestedLayouts = (isInput ? layouts.inputBuses : layouts.outputBuses); + const Array& requestedLayouts = (isInput ? desiredLayout.inputBuses : desiredLayout.outputBuses); const Array& originalLayouts = (isInput ? originalState.inputBuses : originalState.outputBuses); for (int busIdx = 0; busIdx < requestedLayouts.size(); ++busIdx) @@ -347,7 +351,7 @@ AudioProcessor::BusesLayout AudioProcessor::getNextBestLayout (const BusesLayout } } - return bestSupported; + actualLayouts = bestSupported; } //============================================================================== @@ -648,6 +652,14 @@ bool AudioProcessor::isMetaParameter (int index) const return false; } +AudioProcessorParameter::Category AudioProcessor::getParameterCategory (int index) const +{ + if (AudioProcessorParameter* p = managedParameters[index]) + return p->getCategory(); + + return AudioProcessorParameter::genericParameter; +} + AudioProcessorParameter* AudioProcessor::getParamChecked (int index) const noexcept { AudioProcessorParameter* p = managedParameters[index]; @@ -755,7 +767,7 @@ AudioProcessor::BusesProperties AudioProcessor::busesPropertiesFromLayoutArray ( } AudioProcessor::BusesLayout AudioProcessor::getNextBestLayoutInList (const BusesLayout& layouts, - const Array& legacyLayouts) const + const Array& legacyLayouts) const { const int numChannelConfigs = legacyLayouts.size(); jassert (numChannelConfigs > 0); @@ -769,7 +781,10 @@ AudioProcessor::BusesLayout AudioProcessor::getNextBestLayoutInList (const Buses hasInputs = true; break; } + } + for (int i = 0; i < numChannelConfigs; ++i) + { if (legacyLayouts[i].outChannels > 0) { hasOutputs = true; @@ -1143,14 +1158,52 @@ int AudioProcessor::Bus::getMaxSupportedChannels (int limit) const return (isMain() && isLayoutSupported (AudioChannelSet::disabled())) ? 0 : -1; } -bool AudioProcessor::Bus::isLayoutSupported (const AudioChannelSet& set) const +bool AudioProcessor::Bus::isLayoutSupported (const AudioChannelSet& set, BusesLayout* ioLayout) const { bool isInputBus; int busIdx; busDirAndIndex (isInputBus, busIdx); - BusesLayout layouts = getBusesLayoutForLayoutChangeOfBus (set); - return (layouts.getChannelSet (isInputBus, busIdx) == set); + // check that supplied ioLayout is actually valid + if (ioLayout != nullptr) + { + bool suppliedCurrentSupported = owner.checkBusesLayoutSupported (*ioLayout); + + if (! suppliedCurrentSupported) + { + *ioLayout = owner.getBusesLayout(); + + // the current layout you supplied is not a valid layout + jassertfalse; + } + } + + BusesLayout currentLayout = (ioLayout != nullptr ? *ioLayout : owner.getBusesLayout()); + const Array& actualBuses = + (isInputBus ? currentLayout.inputBuses : currentLayout.outputBuses); + + if (actualBuses.getReference (busIdx) == set) + return true; + + BusesLayout desiredLayout = currentLayout; + { + Array& desiredBuses = + (isInputBus ? desiredLayout.inputBuses : desiredLayout.outputBuses); + + desiredBuses.getReference (busIdx) = set; + } + + owner.getNextBestLayout (desiredLayout, currentLayout); + + if (ioLayout != nullptr) + *ioLayout = currentLayout; + + // Nearest layout has a different number of buses. JUCE plug-ins MUST + // have fixed number of buses. + jassert (currentLayout.inputBuses. size() == owner.getBusCount (true) + && currentLayout.outputBuses.size() == owner.getBusCount (false)); + + return (actualBuses.getReference (busIdx) == set); } bool AudioProcessor::Bus::isNumberOfChannelsSupported (int channels) const @@ -1194,23 +1247,10 @@ AudioProcessor::BusesLayout AudioProcessor::Bus::getBusesLayoutForLayoutChangeOf int busIdx; busDirAndIndex (isInputBus, busIdx); - BusesLayout currentLayout = owner.getBusesLayout(); - Array& potentialBusLayout = - (isInputBus ? currentLayout.inputBuses : currentLayout.outputBuses); + BusesLayout layouts = owner.getBusesLayout(); + isLayoutSupported (set, &layouts); - if (potentialBusLayout.getReference (busIdx) == set) - return currentLayout; - - potentialBusLayout.getReference (busIdx) = set; - - BusesLayout nearest = owner.getNextBestLayout (currentLayout); - - // Nearest layout has a different number of buses. JUCE plug-ins MUST - // have fixed number of buses. - jassert (currentLayout.inputBuses. size() == owner.getBusCount (true) - && currentLayout.outputBuses.size() == owner.getBusCount (false)); - - return nearest; + return layouts; } int AudioProcessor::Bus::getChannelIndexInProcessBlockBuffer (int channelIndex) const noexcept @@ -1298,9 +1338,10 @@ void AudioProcessorParameter::endChangeGesture() processor->endParameterChangeGesture (parameterIndex); } -bool AudioProcessorParameter::isOrientationInverted() const { return false; } -bool AudioProcessorParameter::isAutomatable() const { return true; } -bool AudioProcessorParameter::isMetaParameter() const { return false; } +bool AudioProcessorParameter::isOrientationInverted() const { return false; } +bool AudioProcessorParameter::isAutomatable() const { return true; } +bool AudioProcessorParameter::isMetaParameter() const { return false; } +AudioProcessorParameter::Category AudioProcessorParameter::getCategory() const { return genericParameter; } int AudioProcessorParameter::getNumSteps() const { return AudioProcessor::getDefaultNumParameterSteps(); } String AudioProcessorParameter::getText (float value, int /*maximumStringLength*/) const diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h index 4e5a73f7ee..be78e3d90f 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h @@ -73,7 +73,7 @@ protected: } #else template - AudioProcessor (const short channelLayoutList[numLayouts][2]) + AudioProcessor (const short (&channelLayoutList) [numLayouts][2]) { initialise (busesPropertiesFromLayoutArray (layoutListToArray (channelLayoutList))); } @@ -290,40 +290,32 @@ public: int getNumChannels (bool isInput, int busIndex) const noexcept { const Array& bus = (isInput ? inputBuses : outputBuses); - return isPositiveAndBelow(busIndex, bus.size()) ? bus.getReference (busIndex).size() : 0; + return isPositiveAndBelow (busIndex, bus.size()) ? bus.getReference (busIndex).size() : 0; } /** Get the channel set of a particular bus */ AudioChannelSet& getChannelSet (bool isInput, int busIndex) { - Array& sets = isInput ? inputBuses : outputBuses; - jassert (isPositiveAndBelow (busIndex, sets.size())); - - return sets.getReference (busIndex); + return (isInput ? inputBuses : outputBuses).getReference (busIndex); } /** Get the channel set of a particular bus */ AudioChannelSet getChannelSet (bool isInput, int busIndex) const noexcept { - const Array& sets = isInput ? inputBuses : outputBuses; - - if (isPositiveAndBelow (busIndex, sets.size())) - return sets.getReference (busIndex); - else - return AudioChannelSet(); + return (isInput ? inputBuses : outputBuses) [busIndex]; } /** Get the input channel layout on the main bus. */ - AudioChannelSet getMainInputChannelSet() const noexcept { return getChannelSet (true, 0); } + AudioChannelSet getMainInputChannelSet() const noexcept { return getChannelSet (true, 0); } /** Get the output channel layout on the main bus. */ - AudioChannelSet getMainOutputChannelSet() const noexcept { return getChannelSet (false, 0); } + AudioChannelSet getMainOutputChannelSet() const noexcept { return getChannelSet (false, 0); } /** Get the number of input channels on the main bus. */ - int getMainInputChannels() const noexcept { return getNumChannels (true, 0); } + int getMainInputChannels() const noexcept { return getNumChannels (true, 0); } /** Get the number of output channels on the main bus. */ - int getMainOutputChannels() const noexcept { return getNumChannels (false, 0); } + int getMainOutputChannels() const noexcept { return getNumChannels (false, 0); } bool operator== (const BusesLayout& other) const noexcept { return inputBuses == other.inputBuses && outputBuses == other.outputBuses; } bool operator!= (const BusesLayout& other) const noexcept { return inputBuses != other.inputBuses || outputBuses != other.outputBuses; } @@ -346,39 +338,35 @@ public: int getBusIndex() const; /** Returns true if the current bus is the main input or output bus. */ - bool isMain() const { return getBusIndex() == 0; } + bool isMain() const { return getBusIndex() == 0; } //============================================================================== /** The bus's name. */ - const String &getName() const noexcept { return name; } + const String &getName() const noexcept { return name; } /** Get the default layout of this bus. - @see AudioChannelSet - */ - const AudioChannelSet& getDefaultLayout() const noexcept { return dfltLayout; } + */ + const AudioChannelSet& getDefaultLayout() const noexcept { return dfltLayout; } //============================================================================== /** The bus's current layout. This will be AudioChannelSet::disabled() if the current layout is dfisabled. @see AudioChannelSet - */ - const AudioChannelSet& getCurrentLayout() const noexcept { return layout; } + */ + const AudioChannelSet& getCurrentLayout() const noexcept { return layout; } /** Return the bus's last active channel layout. - If the bus is currently enabled then the result will be identical to getCurrentLayout otherwise it will return the last enabled layout. @see AudioChannelSet - */ - const AudioChannelSet& getLastEnabledLayout() const noexcept { return lastLayout; } + */ + const AudioChannelSet& getLastEnabledLayout() const noexcept { return lastLayout; } /** Sets the bus's current layout. - If the AudioProcessor does not support this layout then this will return false. - @see AudioChannelSet */ bool setCurrentLayout (const AudioChannelSet& layout); @@ -392,19 +380,26 @@ public: bool setCurrentLayoutWithoutEnabling (const AudioChannelSet& layout); /** Return the number of channels of the current bus. */ - inline int getNumberOfChannels() const noexcept { return cachedChannelCount; } + inline int getNumberOfChannels() const noexcept { return cachedChannelCount; } /** Set the number of channles of this bus. This will return false if the AudioProcessor - does not support this layout. */ + does not support this layout. + */ bool setNumberOfChannels (int channels); //============================================================================== /** Checks if a particular layout is supported. - @param set The AudioChannelSet which is to be probed. + @param set The AudioChannelSet which is to be probed. + @param currentLayout If non-null, pretend that the current layout of the AudioProcessor is + currentLayout. On exit, currentLayout will be modified to + to represent the buses layouts of the AudioProcessor as if the layout + of the reciever had been succesfully changed. This is useful as changing + the layout of the reciever may change the bus layout of other buses. + @see AudioChannelSet - */ - bool isLayoutSupported (const AudioChannelSet& set) const; + */ + bool isLayoutSupported (const AudioChannelSet& set, BusesLayout* currentLayout = nullptr) const; /** Checks if this bus can support a given number of channels. */ bool isNumberOfChannelsSupported (int channels) const; @@ -414,7 +409,7 @@ public: /** Returns the maximum number of channels that this bus can support. @param limit The maximum value to return. - */ + */ int getMaxSupportedChannels (int limit = AudioChannelSet::maxChannelsOfNamedLayout) const; /** Returns the resulting layouts of all buses after changing the layout of this bus. @@ -442,14 +437,14 @@ public: /** Returns the position of a bus's channels within the processBlock buffer. This can be called in processBlock to figure out which channel of the master AudioSampleBuffer maps onto a specific bus's channel. - */ + */ int getChannelIndexInProcessBlockBuffer (int channelIndex) const noexcept; /** Returns an AudioBuffer containing a set of channel pointers for a specific bus. This can be called in processBlock to get a buffer containing a sub-group of the master AudioSampleBuffer which contains all the plugin channels. - */ + */ template AudioBuffer getBusBuffer (AudioBuffer& processBlockBuffer) const { @@ -458,6 +453,7 @@ public: busDirAndIndex (isIn, busIdx); return owner.getBusBuffer (processBlockBuffer, isIn, busIdx); } + private: friend class AudioProcessor; Bus (AudioProcessor&, const String&, const AudioChannelSet&, bool); @@ -470,24 +466,24 @@ public: bool enabledByDefault; int cachedChannelCount; - JUCE_DECLARE_NON_COPYABLE (Bus); + JUCE_DECLARE_NON_COPYABLE (Bus) }; //============================================================================== /** Returns the number of buses on the input or output side */ - int getBusCount (bool isInput) const noexcept { return (isInput ? inputBuses : outputBuses).size(); } + int getBusCount (bool isInput) const noexcept { return (isInput ? inputBuses : outputBuses).size(); } /** Returns the audio bus with a given index and direction. If busIdx is invalid then this method will return a nullptr. */ - Bus* getBus (bool isInput, int busIdx) noexcept { return (isInput ? inputBuses : outputBuses)[busIdx]; } + Bus* getBus (bool isInput, int busIdx) noexcept { return (isInput ? inputBuses : outputBuses)[busIdx]; } /** Returns the audio bus with a given index and direction. If busIdx is invalid then this method will return a nullptr. */ - const Bus* getBus (bool isInput, int busIdx) const noexcept { return const_cast (this)->getBus (isInput, busIdx); } + const Bus* getBus (bool isInput, int busIdx) const noexcept { return const_cast (this)->getBus (isInput, busIdx); } //============================================================================== /** Callback to query if a bus can currently be added. @@ -499,8 +495,8 @@ public: The default implementation will always return false. @see addBus - */ - virtual bool canAddBus (bool /*inputBus*/) const { return false; } + */ + virtual bool canAddBus (bool isInput) const { ignoreUnused (isInput); return false; } /** Callback to query if the last bus can currently be removed. @@ -512,8 +508,8 @@ public: and delete the bus. The default implementation will always return false. - */ - virtual bool canRemoveBus (bool /*inputBus*/) const { return false; } + */ + virtual bool canRemoveBus (bool isInput) const { ignoreUnused (isInput); return false; } /** Dynamically request an additional bus. @@ -546,7 +542,7 @@ public: a bus can currently be removed and, if yes, will go ahead and remove it. @see addBus, canRemoveBus - */ + */ bool removeBus (bool isInput); //============================================================================== @@ -556,18 +552,17 @@ public: this method will return false. You can use the checkBusesLayoutSupported and getNextBestLayout methods to probe which layouts this audio processor supports. - */ - bool setBusesLayout (const BusesLayout& arr); + */ + bool setBusesLayout (const BusesLayout&); /** Set the channel layouts of this audio processor without changing the enablement state of the buses. If the layout is not supported by this audio processor then this method will return false. You can use the checkBusesLayoutSupported - and getNextBestLayout methods to probe which layouts this audio - processor supports. + methods to probe which layouts this audio processor supports. */ - bool setBusesLayoutWithoutEnabling (const BusesLayout& arr); + bool setBusesLayoutWithoutEnabling (const BusesLayout&); /** Provides the current channel layouts of this audio processor. */ BusesLayout getBusesLayout() const; @@ -576,20 +571,20 @@ public: If the index, direction combination is invalid then this will return an AudioChannelSet with no channels. - */ - AudioChannelSet getChannelLayoutOfBus (bool isInput, int busIdx) const noexcept; + */ + AudioChannelSet getChannelLayoutOfBus (bool isInput, int busIndex) const noexcept; /** Set the channel layout of the bus with a given index and direction. If the index, direction combination is invalid or the layout is not supported by the audio processor then this method will return false. - */ + */ bool setChannelLayoutOfBus (bool isInput, int busIdx, const AudioChannelSet& layout); /** Provides the number of channels of the bus with a given index and direction. If the index, direction combination is invalid then this will return zero. - */ + */ inline int getChannelCountOfBus (bool isInput, int busIdx) const noexcept { if (const Bus* bus = getBus (isInput, busIdx)) @@ -635,10 +630,9 @@ public: //============================================================================== /** Returns true if the Audio processor is likely to support a given layout. - This can be called regardless if the processor is currently running. */ - bool checkBusesLayoutSupported (const BusesLayout& layouts) const; + bool checkBusesLayoutSupported (const BusesLayout&) const; //============================================================================== /** Returns true if the Audio processor supports double precision floating point processing. @@ -675,7 +669,7 @@ public: @see getProcessingPrecision, supportsDoublePrecisionProcessing */ - void setProcessingPrecision (ProcessingPrecision precision) noexcept; + void setProcessingPrecision (ProcessingPrecision newPrecision) noexcept; //============================================================================== /** Returns the current AudioPlayHead object that should be used to find @@ -708,7 +702,7 @@ public: getMainBusNumInputChannels if your processor does not have any sidechains or aux buses. */ - int getTotalNumInputChannels() const noexcept { return cachedTotalIns; } + int getTotalNumInputChannels() const noexcept { return cachedTotalIns; } /** Returns the total number of output channels. @@ -722,13 +716,13 @@ public: getMainBusNumOutputChannels if your processor does not have any sidechains or aux buses. */ - int getTotalNumOutputChannels() const noexcept { return cachedTotalOuts; } + int getTotalNumOutputChannels() const noexcept { return cachedTotalOuts; } /** Returns the number of input channels on the main bus. */ - inline int getMainBusNumInputChannels() const noexcept { return getChannelCountOfBus (true, 0); } + inline int getMainBusNumInputChannels() const noexcept { return getChannelCountOfBus (true, 0); } /** Returns the number of output channels on the main bus. */ - inline int getMainBusNumOutputChannels() const noexcept { return getChannelCountOfBus (false, 0); } + inline int getMainBusNumOutputChannels() const noexcept { return getChannelCountOfBus (false, 0); } //============================================================================== /** Returns true if the channel layout map contains a certain layout. @@ -749,6 +743,7 @@ public: return containsLayout (layouts, layoutListToArray (channelLayoutList)); } #endif + template static bool containsLayout (const BusesLayout& layouts, const short (&channelLayoutList) [numLayouts][2]) { @@ -1109,6 +1104,14 @@ public: */ virtual bool isMetaParameter (int parameterIndex) const; + /** Should return the parameter's category. + By default, this returns the "generic" category. + + NOTE! This method will eventually be deprecated! It's recommended that you use + AudioProcessorParameter::isMetaParameter() instead. + */ + virtual AudioProcessorParameter::Category getParameterCategory (int parameterIndex) const; + /** Sends a signal to the host to tell it that the user is about to start changing this parameter. @@ -1347,7 +1350,7 @@ protected: @see checkBusesLayoutSupported */ - virtual bool isBusesLayoutSupported (const BusesLayout& /*layouts*/) const { return true; } + virtual bool isBusesLayoutSupported (const BusesLayout&) const { return true; } /** Callback to check if a certain bus layout can now be applied @@ -1404,10 +1407,10 @@ protected: /** The layouts of the output buses */ Array outputLayouts; - void addBus (bool isInput, const String& name, const AudioChannelSet& dfltLayout, bool isActivatedByDefault = true); + void addBus (bool isInput, const String& name, const AudioChannelSet& defaultLayout, bool isActivatedByDefault = true); - BusesProperties withInput (const String& name, const AudioChannelSet& dfltLayout, bool isActivatedByDefault = true) const; - BusesProperties withOutput (const String& name, const AudioChannelSet& dfltLayout, bool isActivatedByDefault = true) const; + BusesProperties withInput (const String& name, const AudioChannelSet& defaultLayout, bool isActivatedByDefault = true) const; + BusesProperties withOutput (const String& name, const AudioChannelSet& defaultLayout, bool isActivatedByDefault = true) const; }; /** Callback to query if adding/removing buses currently possible. @@ -1433,7 +1436,7 @@ protected: "Input #busIdx" for input buses and "Output #busIdx" for output buses where busIdx is the index for newly created buses. The default layout in this case will be the layout of the previous bus of the same direction. - */ + */ virtual bool canApplyBusCountChange (bool isInput, bool isAddingBuses, BusProperties& outNewBusProperties); @@ -1452,16 +1455,16 @@ private: { int16 inChannels, outChannels; - InOutChannelPair() noexcept : inChannels (0), outChannels (0) {} - InOutChannelPair (short inCh, short outCh) noexcept : inChannels (inCh), outChannels (outCh) {} + InOutChannelPair() noexcept : inChannels (0), outChannels (0) {} InOutChannelPair (const InOutChannelPair& o) noexcept : inChannels (o.inChannels), outChannels (o.outChannels) {} - InOutChannelPair (const short (&config)[2]) noexcept : inChannels (config[0]), outChannels (config[1]) {} + InOutChannelPair (int16 inCh, int16 outCh) noexcept : inChannels (inCh), outChannels (outCh) {} + InOutChannelPair (const int16 (&config)[2]) noexcept : inChannels (config[0]), outChannels (config[1]) {} - InOutChannelPair& operator= (const InOutChannelPair& o) { inChannels = o.inChannels; outChannels = o.outChannels; return *this; } + InOutChannelPair& operator= (const InOutChannelPair& o) noexcept { inChannels = o.inChannels; outChannels = o.outChannels; return *this; } bool operator== (const InOutChannelPair& other) const noexcept { - return (other.inChannels == inChannels && other.outChannels == outChannels); + return other.inChannels == inChannels && other.outChannels == outChannels; } }; @@ -1498,14 +1501,12 @@ private: //============================================================================== static BusesProperties busesPropertiesFromLayoutArray (const Array&); - //============================================================================== - BusesLayout getNextBestLayoutInList (const BusesLayout& layouts, - const Array& channelLayouts) const; - static bool containsLayout (const BusesLayout& layouts, const Array& channelLayouts); + BusesLayout getNextBestLayoutInList (const BusesLayout&, const Array&) const; + static bool containsLayout (const BusesLayout&, const Array&); //============================================================================== - void initialise (const BusesProperties& ioLayouts); - void createBus (bool inputBus, const BusProperties&); + void initialise (const BusesProperties&); + void createBus (bool isInput, const BusProperties&); //============================================================================== Array listeners; @@ -1520,8 +1521,7 @@ private: CriticalSection callbackLock, listenerLock; friend class Bus; - mutable OwnedArray inputBuses; - mutable OwnedArray outputBuses; + mutable OwnedArray inputBuses, outputBuses; String cachedInputSpeakerArrString; String cachedOutputSpeakerArrString; @@ -1537,9 +1537,9 @@ private: AudioProcessorListener* getListenerLocked (int) const noexcept; void updateSpeakerFormatStrings(); - bool applyBusLayouts (const BusesLayout& arr); + bool applyBusLayouts (const BusesLayout&); void audioIOChanged (bool busNumberChanged, bool channelNumChanged); - BusesLayout getNextBestLayout (const BusesLayout& layouts) const; + void getNextBestLayout (const BusesLayout&, BusesLayout&) const; template void processBypassed (AudioBuffer&, MidiBuffer&); diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index 74f4db4a88..53612b60b9 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -293,9 +293,9 @@ struct ProcessBufferOp : public AudioGraphRenderingOp // precision then we need to convert between buffer formats. Note, that // this will only happen if the processor does not support double // precision processing. - tempBuffer.makeCopyOf (buffer); + tempBuffer.makeCopyOf (buffer, true); processor->processBlock (tempBuffer, midiMessages); - buffer.makeCopyOf (tempBuffer); + buffer.makeCopyOf (tempBuffer, true); } } diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h b/modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h index 0140faf57b..e9ce5c8b07 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h @@ -143,6 +143,28 @@ public: */ virtual bool isMetaParameter() const; + enum Category + { + genericParameter = (0 << 16) | 0, /** If your parameter is not a meter then you should use this category */ + + inputGain = (1 << 16) | 0, /** Currently not used */ + outputGain = (1 << 16) | 1, + + /** The following categories tell the host that this parameter is a meter level value + and therefore read-only. Most hosts will display these type of parameters as + a meter in the generic view of your plug-in. Pro-Tools will also show the meter + in the mixer view. */ + inputMeter = (2 << 16) | 0, + outputMeter = (2 << 16) | 1, + compressorLimiterGainReductionMeter = (2 << 16) | 2, + expanderGateGainReductionMeter = (2 << 16) | 3, + analysisMeter = (2 << 16) | 4, + otherMeter = (2 << 16) | 5 + }; + + /** Returns the parameter's category. */ + virtual Category getCategory() const; + /** Returns the index of this parameter in its parent processor's parameter list. */ int getParameterIndex() const noexcept { return parameterIndex; } diff --git a/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp index a8918a7318..3733d3f07f 100644 --- a/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp +++ b/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp @@ -83,12 +83,15 @@ private: ParamSlider (AudioProcessor& p, int paramIndex) : owner (p), index (paramIndex) { const int steps = owner.getParameterNumSteps (index); + const AudioProcessorParameter::Category category = p.getParameterCategory (index); + const bool isLevelMeter = (((category & 0xffff0000) >> 16) == 2); if (steps > 1 && steps < 0x7fffffff) setRange (0.0, 1.0, 1.0 / (steps - 1.0)); else setRange (0.0, 1.0); + setEnabled (! isLevelMeter); setSliderStyle (Slider::LinearBar); setTextBoxIsEditable (false); setScrollWheelEnabled (true); diff --git a/modules/juce_audio_processors/utilities/juce_AudioParameterBool.h b/modules/juce_audio_processors/utilities/juce_AudioParameterBool.h index 5989ab0124..92a2fb20ba 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioParameterBool.h +++ b/modules/juce_audio_processors/utilities/juce_AudioParameterBool.h @@ -33,7 +33,8 @@ public: /** Creates a AudioParameterBool with an ID and name. On creation, its value is set to the default value. */ - AudioParameterBool (String parameterID, String name, bool defaultValue); + AudioParameterBool (const String& parameterID, const String& name, bool defaultValue, + const String& label = String()); /** Destructor. */ ~AudioParameterBool(); diff --git a/modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h b/modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h index 09c1faa224..aaefd10827 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h +++ b/modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h @@ -34,9 +34,10 @@ public: /** Creates a AudioParameterChoice with an ID, name, and list of items. On creation, its value is set to the default index. */ - AudioParameterChoice (String parameterID, String name, + AudioParameterChoice (const String& parameterID, const String& name, const StringArray& choices, - int defaultItemIndex); + int defaultItemIndex, + const String& label = String()); /** Destructor. */ ~AudioParameterChoice(); diff --git a/modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h b/modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h index 519defdbbe..345952dcd2 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h +++ b/modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h @@ -34,9 +34,11 @@ public: /** Creates a AudioParameterFloat with an ID, name, and range. On creation, its value is set to the default value. */ - AudioParameterFloat (String parameterID, String name, + AudioParameterFloat (const String& parameterID, const String& name, NormalisableRange normalisableRange, - float defaultValue); + float defaultValue, + const String& label = String(), + Category category = AudioProcessorParameter::genericParameter); /** Creates a AudioParameterFloat with an ID, name, and range. On creation, its value is set to the default value. diff --git a/modules/juce_audio_processors/utilities/juce_AudioParameterInt.h b/modules/juce_audio_processors/utilities/juce_AudioParameterInt.h index 8e13e7d127..e1c0e14972 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioParameterInt.h +++ b/modules/juce_audio_processors/utilities/juce_AudioParameterInt.h @@ -35,9 +35,10 @@ public: Note that the min and max range values are inclusive. On creation, its value is set to the default value. */ - AudioParameterInt (String parameterID, String name, + AudioParameterInt (const String& parameterID, const String& name, int minValue, int maxValue, - int defaultValue); + int defaultValue, + const String& label = String()); /** Destructor. */ ~AudioParameterInt(); diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h index 8fd62d1a98..f7a6e4165a 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h @@ -33,7 +33,10 @@ public: /** Creation of this object requires providing a name and ID which will be constant for its lifetime. */ - AudioProcessorParameterWithID (String parameterID, String name); + AudioProcessorParameterWithID (const String& parameterID, + const String& name, + const String& label = String(), + Category category = AudioProcessorParameter::genericParameter); /** Destructor. */ ~AudioProcessorParameterWithID(); @@ -47,9 +50,13 @@ public: /** Provides access to the parameter's label. */ const String label; + /** Provides access to the parameter's category. */ + const Category category; + private: String getName (int) const override; String getLabel() const override; + Category getCategory() const override; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioProcessorParameterWithID) }; diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp index 9e5c67911c..b44ca779cd 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp @@ -25,16 +25,24 @@ // This file contains the implementations of the various AudioParameter[XYZ] classes.. -AudioProcessorParameterWithID::AudioProcessorParameterWithID (String pid, String nm) : paramID (pid), name (nm) {} +AudioProcessorParameterWithID::AudioProcessorParameterWithID (const String& idToUse, + const String& nameToUse, + const String& labelToUse, + AudioProcessorParameter::Category categoryToUse) + : paramID (idToUse), name (nameToUse), label (labelToUse), category (categoryToUse) {} AudioProcessorParameterWithID::~AudioProcessorParameterWithID() {} -String AudioProcessorParameterWithID::getName (int maximumStringLength) const { return name.substring (0, maximumStringLength); } -String AudioProcessorParameterWithID::getLabel() const { return label; } +String AudioProcessorParameterWithID::getName (int maximumStringLength) const { return name.substring (0, maximumStringLength); } +String AudioProcessorParameterWithID::getLabel() const { return label; } +AudioProcessorParameter::Category AudioProcessorParameterWithID::getCategory() const { return category; } //============================================================================== -AudioParameterFloat::AudioParameterFloat (String pid, String nm, NormalisableRange r, float def) - : AudioProcessorParameterWithID (pid, nm), range (r), value (def), defaultValue (def) +AudioParameterFloat::AudioParameterFloat (const String& idToUse, const String& nameToUse, + NormalisableRange r, float def, + const String& labelToUse, Category categoryToUse) + : AudioProcessorParameterWithID (idToUse, nameToUse, labelToUse, categoryToUse), + range (r), value (def), defaultValue (def) { } @@ -66,8 +74,10 @@ AudioParameterFloat& AudioParameterFloat::operator= (float newValue) } //============================================================================== -AudioParameterInt::AudioParameterInt (String pid, String nm, int mn, int mx, int def) - : AudioProcessorParameterWithID (pid, nm), +AudioParameterInt::AudioParameterInt (const String& idToUse, const String& nameToUse, + int mn, int mx, int def, + const String& labelToUse) + : AudioProcessorParameterWithID (idToUse, nameToUse, labelToUse), minValue (mn), maxValue (mx), value ((float) def), defaultValue (convertTo0to1 (def)) @@ -98,8 +108,9 @@ AudioParameterInt& AudioParameterInt::operator= (int newValue) //============================================================================== -AudioParameterBool::AudioParameterBool (String pid, String nm, bool def) - : AudioProcessorParameterWithID (pid, nm), +AudioParameterBool::AudioParameterBool (const String& idToUse, const String& nameToUse, + bool def, const String& labelToUse) + : AudioProcessorParameterWithID (idToUse, nameToUse, labelToUse), value (def ? 1.0f : 0.0f), defaultValue (value) { @@ -124,8 +135,9 @@ AudioParameterBool& AudioParameterBool::operator= (bool newValue) //============================================================================== -AudioParameterChoice::AudioParameterChoice (String pid, String nm, const StringArray& c, int def) - : AudioProcessorParameterWithID (pid, nm), choices (c), +AudioParameterChoice::AudioParameterChoice (const String& idToUse, const String& nameToUse, + const StringArray& c, int def, const String& labelToUse) + : AudioProcessorParameterWithID (idToUse, nameToUse, labelToUse), choices (c), value ((float) def), defaultValue (convertTo0to1 (def)) { diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp index 79e1379f0f..7506b42eb0 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp @@ -29,14 +29,12 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete private ValueTree::Listener { Parameter (AudioProcessorValueTreeState& s, - String parameterID, String paramName, String labelText, + const String& parameterID, const String& paramName, const String& labelText, NormalisableRange r, float defaultVal, std::function valueToText, std::function textToValue) - : AudioProcessorParameterWithID (parameterID, paramName), - owner (s), label (labelText), - valueToTextFunction (valueToText), - textToValueFunction (textToValue), + : AudioProcessorParameterWithID (parameterID, paramName, labelText), + owner (s), valueToTextFunction (valueToText), textToValueFunction (textToValue), range (r), value (defaultVal), defaultValue (defaultVal), listenersNeedCalling (true) { @@ -52,7 +50,6 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete float getValue() const override { return range.convertTo0to1 (value); } float getDefaultValue() const override { return range.convertTo0to1 (defaultValue); } - String getLabel() const override { return label; } float getValueForText (const String& text) const override { @@ -112,7 +109,7 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete void copyValueToValueTree() { if (state.isValid()) - state.setProperty (owner.valuePropertyID, value, owner.undoManager); + state.setPropertyExcludingListener (this, owner.valuePropertyID, value, owner.undoManager); } void valueTreePropertyChanged (ValueTree&, const Identifier& property) override @@ -149,7 +146,6 @@ struct AudioProcessorValueTreeState::Parameter : public AudioProcessorParamete AudioProcessorValueTreeState& owner; ValueTree state; - String label; ListenerList listeners; std::function valueToTextFunction; std::function textToValueFunction; @@ -176,14 +172,16 @@ AudioProcessorValueTreeState::AudioProcessorValueTreeState (AudioProcessor& p, U AudioProcessorValueTreeState::~AudioProcessorValueTreeState() {} -AudioProcessorParameter* AudioProcessorValueTreeState::createAndAddParameter (String paramID, String paramName, String labelText, - NormalisableRange r, float defaultVal, - std::function valueToTextFunction, +AudioProcessorParameter* AudioProcessorValueTreeState::createAndAddParameter (const String& paramID, const String& paramName, + const String& labelText, NormalisableRange r, + float defaultVal, std::function valueToTextFunction, std::function textToValueFunction) { // All parameters must be created before giving this manager a ValueTree state! jassert (! state.isValid()); + #if ! JUCE_LINUX jassert (MessageManager::getInstance()->isThisTheMessageThread()); + #endif Parameter* p = new Parameter (*this, paramID, paramName, labelText, r, defaultVal, valueToTextFunction, textToValueFunction); @@ -397,7 +395,7 @@ struct AudioProcessorValueTreeState::SliderAttachment::Pimpl : private Attached private Slider::Listener { Pimpl (AudioProcessorValueTreeState& s, const String& p, Slider& sl) - : AttachedControlBase (s, p), slider (sl) + : AttachedControlBase (s, p), slider (sl), ignoreCallbacks (false) { NormalisableRange range (s.getParameterRange (paramID)); slider.setRange (range.start, range.end, range.interval); @@ -418,12 +416,19 @@ struct AudioProcessorValueTreeState::SliderAttachment::Pimpl : private Attached void setValue (float newValue) override { - slider.setValue (newValue, sendNotificationSync); + const ScopedLock selfCallbackLock (selfCallbackMutex); + + { + ScopedValueSetter svs (ignoreCallbacks, true); + slider.setValue (newValue, sendNotificationSync); + } } void sliderValueChanged (Slider* s) override { - if (! ModifierKeys::getCurrentModifiers().isRightButtonDown()) + const ScopedLock selfCallbackLock (selfCallbackMutex); + + if ((! ignoreCallbacks) && (! ModifierKeys::getCurrentModifiers().isRightButtonDown())) setNewUnnormalisedValue ((float) s->getValue()); } @@ -431,6 +436,8 @@ struct AudioProcessorValueTreeState::SliderAttachment::Pimpl : private Attached void sliderDragEnded (Slider*) override { endParameterChange(); } Slider& slider; + bool ignoreCallbacks; + CriticalSection selfCallbackMutex; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; @@ -447,7 +454,7 @@ struct AudioProcessorValueTreeState::ComboBoxAttachment::Pimpl : private Attach private ComboBox::Listener { Pimpl (AudioProcessorValueTreeState& s, const String& p, ComboBox& c) - : AttachedControlBase (s, p), combo (c) + : AttachedControlBase (s, p), combo (c), ignoreCallbacks (false) { sendInitialUpdate(); combo.addListener (this); @@ -461,17 +468,29 @@ struct AudioProcessorValueTreeState::ComboBoxAttachment::Pimpl : private Attach void setValue (float newValue) override { - combo.setSelectedItemIndex (roundToInt (newValue), sendNotificationSync); + const ScopedLock selfCallbackLock (selfCallbackMutex); + + { + ScopedValueSetter svs (ignoreCallbacks, true); + combo.setSelectedItemIndex (roundToInt (newValue), sendNotificationSync); + } } void comboBoxChanged (ComboBox* comboBox) override { - beginParameterChange(); - setNewUnnormalisedValue ((float) comboBox->getSelectedId() - 1.0f); - endParameterChange(); + const ScopedLock selfCallbackLock (selfCallbackMutex); + + if (! ignoreCallbacks) + { + beginParameterChange(); + setNewUnnormalisedValue ((float) comboBox->getSelectedId() - 1.0f); + endParameterChange(); + } } ComboBox& combo; + bool ignoreCallbacks; + CriticalSection selfCallbackMutex; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; @@ -488,7 +507,7 @@ struct AudioProcessorValueTreeState::ButtonAttachment::Pimpl : private Attached private Button::Listener { Pimpl (AudioProcessorValueTreeState& s, const String& p, Button& b) - : AttachedControlBase (s, p), button (b) + : AttachedControlBase (s, p), button (b), ignoreCallbacks (false) { sendInitialUpdate(); button.addListener (this); @@ -502,17 +521,29 @@ struct AudioProcessorValueTreeState::ButtonAttachment::Pimpl : private Attached void setValue (float newValue) override { - button.setToggleState (newValue >= 0.5f, sendNotificationSync); + const ScopedLock selfCallbackLock (selfCallbackMutex); + + { + ScopedValueSetter svs (ignoreCallbacks, true); + button.setToggleState (newValue >= 0.5f, sendNotificationSync); + } } void buttonClicked (Button* b) override { - beginParameterChange(); - setNewUnnormalisedValue (b->getToggleState() ? 1.0f : 0.0f); - endParameterChange(); + const ScopedLock selfCallbackLock (selfCallbackMutex); + + if (! ignoreCallbacks) + { + beginParameterChange(); + setNewUnnormalisedValue (b->getToggleState() ? 1.0f : 0.0f); + endParameterChange(); + } } Button& button; + bool ignoreCallbacks; + CriticalSection selfCallbackMutex; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h index 92f7abc2e3..d6ec1d3034 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h @@ -33,14 +33,15 @@ It has its own internal class of parameter object which are linked to values within its ValueTree, and which are each identified by a string ID. - To use: Create a AudioProcessorValueTreeState, and give it some parameters - using createParameter(). - You can get access to the underlying ValueTree object via the state member variable, so you can add extra properties to it as necessary. It also provides some utility child classes for connecting parameters directly to GUI controls like sliders. + + To use: + 1) Create an AudioProcessorValueTreeState, and give it some parameters using createParameter(). + 2) Initialise the state member variable with a type name. */ class JUCE_API AudioProcessorValueTreeState : private Timer, private ValueTree::Listener @@ -77,9 +78,9 @@ public: @param textToValueFunction The inverse of valueToTextFunction @returns the parameter object that was created */ - AudioProcessorParameter* createAndAddParameter (String parameterID, - String parameterName, - String labelText, + AudioProcessorParameter* createAndAddParameter (const String& parameterID, + const String& parameterName, + const String& labelText, NormalisableRange valueRange, float defaultValue, std::function valueToTextFunction, @@ -121,6 +122,8 @@ public: AudioProcessor& processor; /** The state of the whole processor. + + This must be initialised after all calls to createAndAddParameter(). You can replace this with your own ValueTree object, and can add properties and children to the tree. This class will automatically add children for each of the parameter objects that are created by createParameter(). diff --git a/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h b/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h index d6a3e946ad..a53773f903 100644 --- a/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h +++ b/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h @@ -48,9 +48,13 @@ public: /** Opens the Bluetooth MIDI pairing dialogue, if it is available. + @param exitCallback A callback which will be called when the modal + bluetooth dialog is closed. @return true if the dialogue was opened, false on error. + + @see ModalComponentManager::Callback */ - static bool open(); + static bool open (ModalComponentManager::Callback* exitCallback = nullptr); /** Checks if a Bluetooth MIDI pairing dialogue is available on this platform. diff --git a/modules/juce_audio_utils/juce_audio_utils.h b/modules/juce_audio_utils/juce_audio_utils.h index ab15a3a448..cc99346e2d 100644 --- a/modules/juce_audio_utils/juce_audio_utils.h +++ b/modules/juce_audio_utils/juce_audio_utils.h @@ -33,7 +33,7 @@ ID: juce_audio_utils vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE extra audio utility classes description: Classes for audio-related GUI and miscellaneous tasks. website: http://www.juce.com/juce diff --git a/modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp b/modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp index d3d5831397..fa99ff2331 100644 --- a/modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp +++ b/modules/juce_audio_utils/native/juce_android_BluetoothMidiDevicePairingDialogue.cpp @@ -362,8 +362,10 @@ private: class BluetoothMidiSelectorOverlay : public Component { public: - BluetoothMidiSelectorOverlay() + BluetoothMidiSelectorOverlay (ModalComponentManager::Callback* exitCallbackToUse) { + ScopedPointer exitCallback (exitCallbackToUse); + setAlwaysOnTop (true); setVisible (true); addToDesktop (ComponentPeer::windowHasDropShadow); @@ -371,7 +373,7 @@ public: toFront (true); addAndMakeVisible (bluetoothDevicesList); - enterModalState (true, nullptr, true); + enterModalState (true, exitCallback.release(), true); } void paint (Graphics& g) override @@ -424,8 +426,10 @@ private: }; //============================================================================== -bool BluetoothMidiDevicePairingDialogue::open() +bool BluetoothMidiDevicePairingDialogue::open (ModalComponentManager::Callback* exitCallbackPtr) { + ScopedPointer exitCallback (exitCallbackPtr); + if (! RuntimePermissions::isGranted (RuntimePermissions::bluetoothMidi)) { // If you hit this assert, you probably forgot to get RuntimePermissions::bluetoothMidi. @@ -435,7 +439,7 @@ bool BluetoothMidiDevicePairingDialogue::open() return false; } - BluetoothMidiSelectorOverlay* overlay = new BluetoothMidiSelectorOverlay; + BluetoothMidiSelectorOverlay* overlay = new BluetoothMidiSelectorOverlay (exitCallback.release()); return true; } diff --git a/modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm b/modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm index 760ae78c1a..138858a54e 100644 --- a/modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm +++ b/modules/juce_audio_utils/native/juce_ios_BluetoothMidiDevicePairingDialogue.mm @@ -40,8 +40,10 @@ namespace juce class BluetoothMidiSelectorOverlay : public Component { public: - BluetoothMidiSelectorOverlay() + BluetoothMidiSelectorOverlay (ModalComponentManager::Callback* exitCallbackToUse) { + ScopedPointer exitCallback (exitCallbackToUse); + setAlwaysOnTop (true); setVisible (true); addToDesktop (ComponentPeer::windowHasDropShadow); @@ -53,7 +55,7 @@ public: addAndMakeVisible (nativeSelectorComponent); - enterModalState (true, nullptr, true); + enterModalState (true, exitCallback.release(), true); } ~BluetoothMidiSelectorOverlay() @@ -96,11 +98,13 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BluetoothMidiSelectorOverlay) }; -bool BluetoothMidiDevicePairingDialogue::open() +bool BluetoothMidiDevicePairingDialogue::open (ModalComponentManager::Callback* exitCallback) { + ScopedPointer cb (exitCallback); + if (isAvailable()) { - new BluetoothMidiSelectorOverlay(); + new BluetoothMidiSelectorOverlay (cb.release()); return true; } @@ -115,7 +119,11 @@ bool BluetoothMidiDevicePairingDialogue::isAvailable() //============================================================================== #else -bool BluetoothMidiDevicePairingDialogue::open() { return false; } -bool BluetoothMidiDevicePairingDialogue::isAvailable() { return false; } +bool BluetoothMidiDevicePairingDialogue::open (ModalComponentManager::Callback* exitCallback) +{ + ScopedPointer cb (exitCallback); + return false; +} +bool BluetoothMidiDevicePairingDialogue::isAvailable() { return false; } #endif diff --git a/modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp b/modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp index 0d85e0b772..1fbed75cea 100644 --- a/modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp +++ b/modules/juce_audio_utils/native/juce_linux_BluetoothMidiDevicePairingDialogue.cpp @@ -22,8 +22,9 @@ ============================================================================== */ -bool BluetoothMidiDevicePairingDialogue::open() +bool BluetoothMidiDevicePairingDialogue::open (ModalComponentManager::Callback* exitCallback) { + ScopedPointer cb (exitCallback); // not implemented on Linux yet! // You should check whether the dialogue is available on your system // using isAvailable() before calling open(). diff --git a/modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm b/modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm index 50dfe3b0bd..6542d9cb14 100644 --- a/modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm +++ b/modules/juce_audio_utils/native/juce_mac_BluetoothMidiDevicePairingDialogue.mm @@ -22,8 +22,9 @@ ============================================================================== */ -bool BluetoothMidiDevicePairingDialogue::open() +bool BluetoothMidiDevicePairingDialogue::open (ModalComponentManager::Callback* exitCallback) { + ScopedPointer cb (exitCallback); // Do not call this on OSX. Instead, you should pair Bluetooth MIDI devices // using the "Audio MIDI Setup" app (located in /Applications/Utilities). jassertfalse; diff --git a/modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp b/modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp index 117f982c75..ece22d8bfd 100644 --- a/modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp +++ b/modules/juce_audio_utils/native/juce_win_BluetoothMidiDevicePairingDialogue.cpp @@ -22,8 +22,9 @@ ============================================================================== */ -bool BluetoothMidiDevicePairingDialogue::open() +bool BluetoothMidiDevicePairingDialogue::open (ModalComponentManager::Callback* exitCallback) { + ScopedPointer cb (exitCallback); // not implemented on Windows yet! // You should check whether the dialogue is available on your system // using isAvailable() before calling open(). diff --git a/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp b/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp index 3455df5ca7..caf10c36d1 100644 --- a/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp +++ b/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp @@ -156,9 +156,9 @@ void AudioProcessorPlayer::audioDeviceIOCallback (const float** const inputChann { if (processor->isUsingDoublePrecision()) { - conversionBuffer.makeCopyOf (buffer); + conversionBuffer.makeCopyOf (buffer, true); processor->processBlock (conversionBuffer, incomingMidi); - buffer.makeCopyOf (conversionBuffer); + buffer.makeCopyOf (conversionBuffer, true); } else { diff --git a/modules/juce_blocks_basics/blocks/juce_Block.cpp b/modules/juce_blocks_basics/blocks/juce_Block.cpp index 5d11f1f75c..e518049bc0 100644 --- a/modules/juce_blocks_basics/blocks/juce_Block.cpp +++ b/modules/juce_blocks_basics/blocks/juce_Block.cpp @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/blocks/juce_Block.h b/modules/juce_blocks_basics/blocks/juce_Block.h index 0dedfe48b1..a38dbe7ba8 100644 --- a/modules/juce_blocks_basics/blocks/juce_Block.h +++ b/modules/juce_blocks_basics/blocks/juce_Block.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -43,7 +49,8 @@ public: lightPadBlock, liveBlock, loopBlock, - developerControlBlock + developerControlBlock, + seaboardBlock // on-screen seaboard view }; /** The Block class is reference-counted, so always use a Block::Ptr when diff --git a/modules/juce_blocks_basics/blocks/juce_ControlButton.h b/modules/juce_blocks_basics/blocks/juce_ControlButton.h index acde3c3229..13561cdb5b 100644 --- a/modules/juce_blocks_basics/blocks/juce_ControlButton.h +++ b/modules/juce_blocks_basics/blocks/juce_ControlButton.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/blocks/juce_LEDGrid.h b/modules/juce_blocks_basics/blocks/juce_LEDGrid.h index a93772ffcc..0c5cc5b4d0 100644 --- a/modules/juce_blocks_basics/blocks/juce_LEDGrid.h +++ b/modules/juce_blocks_basics/blocks/juce_LEDGrid.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -132,6 +138,9 @@ public: /** Gets a byte from the heap. */ virtual uint8 getDataByte (size_t offset) = 0; + /** Sets the current program as the block's default state. */ + virtual void saveProgramAsDefault() = 0; + //============================================================================== struct Renderer { diff --git a/modules/juce_blocks_basics/blocks/juce_LEDRow.h b/modules/juce_blocks_basics/blocks/juce_LEDRow.h index c845d4d0e5..15404561f3 100644 --- a/modules/juce_blocks_basics/blocks/juce_LEDRow.h +++ b/modules/juce_blocks_basics/blocks/juce_LEDRow.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/blocks/juce_StatusLight.h b/modules/juce_blocks_basics/blocks/juce_StatusLight.h index a64a119d27..d5062b78dc 100644 --- a/modules/juce_blocks_basics/blocks/juce_StatusLight.h +++ b/modules/juce_blocks_basics/blocks/juce_StatusLight.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/blocks/juce_TouchList.h b/modules/juce_blocks_basics/blocks/juce_TouchList.h index 175ad31c55..e6a0b4eb25 100644 --- a/modules/juce_blocks_basics/blocks/juce_TouchList.h +++ b/modules/juce_blocks_basics/blocks/juce_TouchList.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/blocks/juce_TouchSurface.h b/modules/juce_blocks_basics/blocks/juce_TouchSurface.h index 62c6fadcdb..b2b137ef66 100644 --- a/modules/juce_blocks_basics/blocks/juce_TouchSurface.h +++ b/modules/juce_blocks_basics/blocks/juce_TouchSurface.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -96,6 +102,10 @@ public: /** Forces a touch-off message for all active touches. */ virtual void cancelAllActiveTouches() noexcept = 0; + /** For the on-screen seaboard view, this will return the number of keys. + For other types of touch-surface, it will return 0. */ + virtual int getNumberOfKeywaves() const = 0; + //============================================================================== /** Receives callbacks when a touch moves or changes pressure. */ struct Listener diff --git a/modules/juce_blocks_basics/juce_blocks_basics.cpp b/modules/juce_blocks_basics/juce_blocks_basics.cpp index 1a36c321f4..1ce754c0d8 100644 --- a/modules/juce_blocks_basics/juce_blocks_basics.cpp +++ b/modules/juce_blocks_basics/juce_blocks_basics.cpp @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/juce_blocks_basics.h b/modules/juce_blocks_basics/juce_blocks_basics.h index 48431b5e25..749eee4fe4 100644 --- a/modules/juce_blocks_basics/juce_blocks_basics.h +++ b/modules/juce_blocks_basics/juce_blocks_basics.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -32,12 +38,12 @@ BEGIN_JUCE_MODULE_DECLARATION ID: juce_blocks_basics - vendor: ROLI - version: 4.3.0 + vendor: juce + version: 4.3.1 name: Provides low-level control over ROLI BLOCKS devices description: JUCE wrapper for low-level control over ROLI BLOCKS devices. website: http://developer.roli.com - license: GPL/Commercial + license: ISC dependencies: juce_events juce_audio_devices diff --git a/modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h b/modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h index aee13c498c..230551050f 100644 --- a/modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h +++ b/modules/juce_blocks_basics/littlefoot/juce_LittleFootCompiler.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -498,7 +504,7 @@ private: { auto lhs = parseLogicOperator(); - if (matchIf (Token::question)) return parseTerneryOperator (lhs); + if (matchIf (Token::question)) return parseTernaryOperator (lhs); if (matchIf (Token::plusEquals)) return parseInPlaceOpExpression (lhs, Token::plus); if (matchIf (Token::minusEquals)) return parseInPlaceOpExpression (lhs, Token::minus); if (matchIf (Token::timesEquals)) return parseInPlaceOpExpression (lhs, Token::times); @@ -516,9 +522,9 @@ private: return lhs; } - ExpPtr parseTerneryOperator (ExpPtr condition) + ExpPtr parseTernaryOperator (ExpPtr condition) { - auto e = allocate (location, blockBeingParsed); + auto e = allocate (location, blockBeingParsed); e->condition = condition; e->trueBranch = parseExpression(); match (Token::colon); @@ -985,10 +991,16 @@ private: //============================================================================== struct Statement : public AllocatedObject { + struct Visitor + { + virtual ~Visitor() {} + virtual void operator()(StatementPtr) = 0; + }; + Statement (const CodeLocation& l, BlockPtr parent) noexcept : location (l), parentBlock (parent) {} virtual void emit (CodeGenerator&, Type, int /*stackDepth*/) const {} virtual bool alwaysReturns() const { return false; } - virtual void visitSubStatements (std::function) const {} + virtual void visitSubStatements (Visitor&) const {} virtual Statement* simplify (SyntaxTreeBuilder&) { return this; } CodeLocation location; @@ -1077,15 +1089,25 @@ private: static int countMaxNumLocalVariables (StatementPtr s) noexcept { - int num = 0; + struct Counter : Statement::Visitor + { + void operator() (StatementPtr sub) override + { + num = jmax (num, countMaxNumLocalVariables (sub)); + } + + int num = 0; + }; + + Counter counter; if (s != nullptr) - s->visitSubStatements ([&] (StatementPtr sub) { num = jmax (num, countMaxNumLocalVariables (sub)); }); + s->visitSubStatements (counter); if (auto block = dynamic_cast (s)) - num += block->variables.size(); + counter.num += block->variables.size(); - return num; + return counter.num; } }; @@ -1109,7 +1131,7 @@ private: return ! statements.isEmpty() && statements.getLast()->alwaysReturns(); } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { for (auto s : statements) visit (s); @@ -1234,7 +1256,7 @@ private: return trueBranch->alwaysReturns() && falseBranch != nullptr && falseBranch->alwaysReturns(); } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (condition); visit (trueBranch); visit (falseBranch); } @@ -1255,9 +1277,9 @@ private: StatementPtr trueBranch, falseBranch; }; - struct TerneryOp : public Expression + struct TernaryOp : public Expression { - TerneryOp (const CodeLocation& l, BlockPtr parent) : Expression (l, parent) {} + TernaryOp (const CodeLocation& l, BlockPtr parent) : Expression (l, parent) {} void emit (CodeGenerator& cg, Type requiredType, int stackDepth) const override { @@ -1276,13 +1298,13 @@ private: { auto type = trueBranch->getType (cg); - if (type == Type::void_) location.throwError ("The ternery operator cannot take void arguments"); - if (type != falseBranch->getType (cg)) location.throwError ("Expected both branches of this ternery operator to have the same type"); + if (type == Type::void_) location.throwError ("The ternary operator cannot take void arguments"); + if (type != falseBranch->getType (cg)) location.throwError ("Expected both branches of this ternary operator to have the same type"); return type; } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (condition); visit (trueBranch); visit (falseBranch); } @@ -1340,7 +1362,7 @@ private: cg.continueTarget = oldContinueTarget; } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (condition); visit (initialiser); visit (iterator); visit (body); } @@ -1374,7 +1396,7 @@ private: bool alwaysReturns() const override { return true; } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (returnValue); } @@ -1508,7 +1530,7 @@ private: return Type::int_; } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (source); } @@ -1627,7 +1649,7 @@ private: return getResultType (lhs->getType (cg), rhs->getType (cg)); } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (lhs); visit (rhs); } @@ -1748,7 +1770,7 @@ private: return parentBlock->getVariableType (target, location); } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (newValue); } @@ -1896,7 +1918,7 @@ private: location.throwError ("Cannot find matching function: " + desc.quoted()); } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { for (auto& arg : arguments) visit (arg); @@ -1915,7 +1937,7 @@ private: location.throwError ("Arrays are not implemented yet!"); } - void visitSubStatements (std::function visit) const override + void visitSubStatements (Statement::Visitor& visit) const override { visit (object); visit (index); } diff --git a/modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h b/modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h index 64857070de..3307f8505c 100644 --- a/modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h +++ b/modules/juce_blocks_basics/littlefoot/juce_LittleFootRemoteHeap.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h b/modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h index 123fdc28ee..e640d8ca2e 100644 --- a/modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h +++ b/modules/juce_blocks_basics/littlefoot/juce_LittleFootRunner.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -345,10 +351,10 @@ struct Program static int32 floatToInt (float value) noexcept { int32 v; copyFloatMem (&v, &value); return v; } static int16 readInt16 (const uint8* d) noexcept { return (int16) (d[0] + (((uint16) d[1]) << 8)); } - static int32 readInt32 (const uint8* d) noexcept { return (int32) ((uint32) readInt16 (d) + (((uint32) readInt16 (d + 2)) << 16)); } + static int32 readInt32 (const uint8* d) noexcept { return (int32) ((uint32) (uint16) readInt16 (d) + (((uint32) (uint16) readInt16 (d + 2)) << 16)); } - static void writeInt16 (uint8* d, int16 v) noexcept { d[0] = v & 0xff; d[1] = (uint8) (v >> 8); } - static void writeInt32 (uint8* d, int32 v) noexcept { writeInt16 (d, (int16) (v & 0xffff)); writeInt16 (d + 2, (int16) (v >> 16)); } + static void writeInt16 (uint8* d, int16 v) noexcept { d[0] = (uint8) v; d[1] = (uint8) (v >> 8); } + static void writeInt32 (uint8* d, int32 v) noexcept { d[0] = (uint8) v; d[1] = (uint8) (v >> 8); d[2] = (uint8) (v >> 16); d[3] = (uint8) (v >> 24); } //============================================================================== static constexpr uint32 programHeaderSize = 10; @@ -458,6 +464,9 @@ struct Runner /** */ uint16 getProgramHeapSize() const noexcept { return heapSize; } + /** */ + bool isProgramValid() const noexcept { return heapStart != nullptr; } + /** */ void setDataByte (uint32 index, uint8 value) noexcept { @@ -501,7 +510,7 @@ struct Runner /** */ int32 setHeapInt (uint32 byteOffset, uint32 value) noexcept { - if (byteOffset < (uint32) (getProgramHeapSize() - 3)) + if (byteOffset + 3 < getProgramHeapSize()) Program::writeInt32 (getProgramHeapStart() + byteOffset, (int32) value); return 0; @@ -510,7 +519,7 @@ struct Runner /** */ int32 getHeapInt (uint32 byteOffset) const noexcept { - return byteOffset < getProgramHeapSize() - 3 ? Program::readInt32 (getProgramHeapStart() + byteOffset) : 0; + return byteOffset + 3 < getProgramHeapSize() ? Program::readInt32 (getProgramHeapStart() + byteOffset) : 0; } //============================================================================== @@ -630,7 +639,7 @@ struct Runner int32 tos; // top of stack ErrorCode error; - template void pushArguments (Type1 arg1, Args... args) noexcept { pushArguments (args...); push32 (arg1); } + template void pushArguments (Type1 arg1, Args... args) noexcept { pushArguments (args...); pushArguments (arg1); } void pushArguments (int32 arg1) noexcept { push32 (arg1); } void pushArguments (float arg1) noexcept { push32 (Program::floatToInt (arg1)); } diff --git a/modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h b/modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h index 7005f18f63..803ed2d26a 100644 --- a/modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h +++ b/modules/juce_blocks_basics/protocol/juce_BitPackingUtilities.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/protocol/juce_BlockModels.h b/modules/juce_blocks_basics/protocol/juce_BlockModels.h index c794dbb0bd..05d14fa33c 100644 --- a/modules/juce_blocks_basics/protocol/juce_BlockModels.h +++ b/modules/juce_blocks_basics/protocol/juce_BlockModels.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -206,17 +212,23 @@ private: void addPorts (int numNorth, int numEast, int numSouth, int numWest) { - addPorts (Block::ConnectionPort::DeviceEdge::north, numNorth); - addPorts (Block::ConnectionPort::DeviceEdge::east, numEast); - addPorts (Block::ConnectionPort::DeviceEdge::south, numSouth); - addPorts (Block::ConnectionPort::DeviceEdge::west, numWest); + addPortsNE (Block::ConnectionPort::DeviceEdge::north, numNorth); + addPortsNE (Block::ConnectionPort::DeviceEdge::east, numEast); + addPortsSW (Block::ConnectionPort::DeviceEdge::south, numSouth); + addPortsSW (Block::ConnectionPort::DeviceEdge::west, numWest); } - void addPorts (Block::ConnectionPort::DeviceEdge edge, int num) + void addPortsNE (Block::ConnectionPort::DeviceEdge edge, int num) { for (int i = 0; i < num; ++i) ports.add ({ edge, i}); } + + void addPortsSW (Block::ConnectionPort::DeviceEdge edge, int num) + { + for (int i = 0; i < num; ++i) + ports.add ({ edge, num - i - 1}); + } }; //============================================================================== diff --git a/modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h b/modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h index abfbd532b4..ab827c83b7 100644 --- a/modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h +++ b/modules/juce_blocks_basics/protocol/juce_BlocksProtocolDefinitions.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -183,7 +189,8 @@ enum DeviceCommands requestTopologyMessage = 0x01, endAPIMode = 0x02, ping = 0x03, - debugMode = 0x04 + debugMode = 0x04, + saveProgramAsDefault = 0x05 }; using DeviceCommand = IntegerWithBitSize<9>; @@ -256,6 +263,13 @@ static constexpr const char* ledProgramLittleFootFunctions[] = "setLED/viii", "blendLED/viii", "fillRect/viiiii", + "blendRect/viiiii", + "sendMIDI/vi", + "sendMIDI/vii", + "sendMIDI/viii", + "addPressurePoint/vifff", + "drawPressureMap/v", + "fadePressureMap/v", "enableDebug/viii", nullptr }; diff --git a/modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h b/modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h index 51286440f7..5744684ca4 100644 --- a/modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h +++ b/modules/juce_blocks_basics/protocol/juce_HostPacketBuilder.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h b/modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h index 461c723d0b..11cfd26785 100644 --- a/modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h +++ b/modules/juce_blocks_basics/protocol/juce_HostPacketDecoder.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp index 0d9e337076..03ae2b718a 100644 --- a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp +++ b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -1162,6 +1168,11 @@ struct PhysicalTopologySource::Internal } } + void saveProgramAsDefault() + { + sendCommandMessage (BlocksProtocol::saveProgramAsDefault); + } + void handleSharedDataACK (uint32 packetCounter) noexcept { pingFromDevice(); @@ -1639,6 +1650,7 @@ struct PhysicalTopologySource::Internal Program* getProgram() const override { return program.get(); } void sendProgramEvent (const ProgramEventMessage& m) override { blockImpl.sendProgramEvent (m); } + void saveProgramAsDefault() override { blockImpl.saveProgramAsDefault(); } void setDataByte (size_t offset, uint8 value) override { blockImpl.setDataByte (offset, value); } void setDataBytes (size_t offset, const void* data, size_t num) override { blockImpl.setDataBytes (offset, data, num); } void setDataBits (uint32 startBit, uint32 numBits, uint32 value) override { blockImpl.setDataBits (startBit, numBits, value); } diff --git a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h index e7691e3c47..96d89301a4 100644 --- a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h +++ b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp b/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp index f6856afe7d..a4efbd42d0 100644 --- a/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp +++ b/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.cpp @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h b/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h index 46a540e9cb..29242584d3 100644 --- a/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h +++ b/modules/juce_blocks_basics/topology/juce_RuleBasedTopologySource.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/topology/juce_Topology.h b/modules/juce_blocks_basics/topology/juce_Topology.h index 3227d4ae6d..33a2c2be13 100644 --- a/modules/juce_blocks_basics/topology/juce_Topology.h +++ b/modules/juce_blocks_basics/topology/juce_Topology.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/topology/juce_TopologySource.h b/modules/juce_blocks_basics/topology/juce_TopologySource.h index 221828e125..2971aaab41 100644 --- a/modules/juce_blocks_basics/topology/juce_TopologySource.h +++ b/modules/juce_blocks_basics/topology/juce_TopologySource.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp b/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp index 868f60efe5..540be69fd5 100644 --- a/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp +++ b/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.cpp @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h b/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h index a62001e14a..653f24ee07 100644 --- a/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h +++ b/modules/juce_blocks_basics/visualisers/juce_BitmapLEDProgram.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp b/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp index 138bcf20cc..3e26498d06 100644 --- a/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp +++ b/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.cpp @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h b/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h index 6c26226e4e..c9b501259c 100644 --- a/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h +++ b/modules/juce_blocks_basics/visualisers/juce_DrumPadLEDProgram.h @@ -4,20 +4,26 @@ This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_box2d/juce_box2d.h b/modules/juce_box2d/juce_box2d.h index 45d81ea436..9670d987a6 100644 --- a/modules/juce_box2d/juce_box2d.h +++ b/modules/juce_box2d/juce_box2d.h @@ -33,7 +33,7 @@ ID: juce_box2d vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE wrapper for the Box2D physics engine description: The Box2D physics engine and some utility classes. website: http://www.juce.com/juce diff --git a/modules/juce_core/containers/juce_AbstractFifo.cpp b/modules/juce_core/containers/juce_AbstractFifo.cpp index d608fcd1f4..0b6cd020f3 100644 --- a/modules/juce_core/containers/juce_AbstractFifo.cpp +++ b/modules/juce_core/containers/juce_AbstractFifo.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_AbstractFifo.h b/modules/juce_core/containers/juce_AbstractFifo.h index 251a8c2ea5..edf5464e89 100644 --- a/modules/juce_core/containers/juce_AbstractFifo.h +++ b/modules/juce_core/containers/juce_AbstractFifo.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_Array.h b/modules/juce_core/containers/juce_Array.h index 3b673c2019..8d778e37c7 100644 --- a/modules/juce_core/containers/juce_Array.h +++ b/modules/juce_core/containers/juce_Array.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_ArrayAllocationBase.h b/modules/juce_core/containers/juce_ArrayAllocationBase.h index 837e6df9aa..40b33a0268 100644 --- a/modules/juce_core/containers/juce_ArrayAllocationBase.h +++ b/modules/juce_core/containers/juce_ArrayAllocationBase.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_DynamicObject.cpp b/modules/juce_core/containers/juce_DynamicObject.cpp index 5a4cae7b8e..56d5a83be9 100644 --- a/modules/juce_core/containers/juce_DynamicObject.cpp +++ b/modules/juce_core/containers/juce_DynamicObject.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_DynamicObject.h b/modules/juce_core/containers/juce_DynamicObject.h index aaf80b640b..e76ecdbf1c 100644 --- a/modules/juce_core/containers/juce_DynamicObject.h +++ b/modules/juce_core/containers/juce_DynamicObject.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_ElementComparator.h b/modules/juce_core/containers/juce_ElementComparator.h index 2cca3f510a..5cfd1f0287 100644 --- a/modules/juce_core/containers/juce_ElementComparator.h +++ b/modules/juce_core/containers/juce_ElementComparator.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_HashMap.h b/modules/juce_core/containers/juce_HashMap.h index 80eb79f20f..acea1a59ef 100644 --- a/modules/juce_core/containers/juce_HashMap.h +++ b/modules/juce_core/containers/juce_HashMap.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -380,19 +382,21 @@ public: @see HashMap */ - class Iterator + struct Iterator { - public: - //============================================================================== - Iterator (const HashMap& hashMapToIterate) + Iterator (const HashMap& hashMapToIterate) noexcept : hashMap (hashMapToIterate), entry (nullptr), index (0) {} + Iterator (const Iterator& other) noexcept + : hashMap (other.hashMap), entry (other.entry), index (other.index) + {} + /** Moves to the next item, if one is available. When this returns true, you can get the item's key and value using getKey() and getValue(). If it returns false, the iteration has finished and you should stop. */ - bool next() + bool next() noexcept { if (entry != nullptr) entry = entry->nextEntry; @@ -431,19 +435,30 @@ public: index = 0; } + Iterator& operator++() noexcept { next(); return *this; } + ValueType operator*() const { return getValue(); } + bool operator!= (const Iterator& other) const noexcept { return entry != other.entry || index != other.index; } + void resetToEnd() noexcept { index = hashMap.getNumSlots(); } + private: //============================================================================== const HashMap& hashMap; HashEntry* entry; int index; - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Iterator) + JUCE_LEAK_DETECTOR (Iterator) }; + /** Returns a start iterator for the values in this tree. */ + Iterator begin() const noexcept { Iterator i (*this); i.next(); return i; } + + /** Returns an end iterator for the values in this tree. */ + Iterator end() const noexcept { Iterator i (*this); i.resetToEnd(); return i; } + private: //============================================================================== enum { defaultHashTableSize = 101 }; - friend class Iterator; + friend struct Iterator; HashFunctionType hashFunctionToUse; Array hashSlots; diff --git a/modules/juce_core/containers/juce_LinkedListPointer.h b/modules/juce_core/containers/juce_LinkedListPointer.h index 53b89b5d75..9581992af3 100644 --- a/modules/juce_core/containers/juce_LinkedListPointer.h +++ b/modules/juce_core/containers/juce_LinkedListPointer.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_ListenerList.cpp b/modules/juce_core/containers/juce_ListenerList.cpp new file mode 100644 index 0000000000..bc2f5edc28 --- /dev/null +++ b/modules/juce_core/containers/juce_ListenerList.cpp @@ -0,0 +1,178 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. + + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + ----------------------------------------------------------------------------- + + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. + + ============================================================================== +*/ + +#if JUCE_UNIT_TESTS + +struct ListenerBase +{ + ListenerBase (int& counter) : c (counter) {} + virtual ~ListenerBase () {} + + virtual void f () = 0; + virtual void f (void*) = 0; + virtual void f (void*, void*) = 0; + virtual void f (void*, void*, void*) = 0; + virtual void f (void*, void*, void*, void*) = 0; + virtual void f (void*, void*, void*, void*, void*) = 0; + virtual void f (void*, void*, void*, void*, void*, void*) = 0; + + int& c; +}; + +struct Listener1 : public ListenerBase +{ + Listener1 (int& counter) : ListenerBase (counter) {} + + void f () override { c += 1; } + void f (void*) override { c += 2; } + void f (void*, void*) override { c += 3; } + void f (void*, void*, void*) override { c += 4; } + void f (void*, void*, void*, void*) override { c += 5; } + void f (void*, void*, void*, void*, void*) override { c += 6; } + void f (void*, void*, void*, void*, void*, void*) override { c += 7; } +}; + +struct Listener2 : public ListenerBase +{ + Listener2 (int& counter) : ListenerBase (counter) {} + + void f () override { c -= 2; } + void f (void*) override { c -= 4; } + void f (void*, void*) override { c -= 6; } + void f (void*, void*, void*) override { c -= 8; } + void f (void*, void*, void*, void*) override { c -= 10; } + void f (void*, void*, void*, void*, void*) override { c -= 12; } + void f (void*, void*, void*, void*, void*, void*) override { c -= 14; } +}; + +class ListenerListTests : public UnitTest +{ +public: + ListenerListTests() : UnitTest ("ListenerList") {} + + template + void callHelper (std::vector& expectedCounterValues) + { + counter = 0; + listeners.call (&ListenerBase::f); + expect (counter == expectedCounterValues[0]); + + ListenerList::DummyBailOutChecker boc; + + counter = 0; + listeners.callChecked (boc, &ListenerBase::f); + expect (counter == expectedCounterValues[0]); + } + + template + void callHelper (std::vector& expectedCounterValues, T first, Args... args) + { + const int expected = expectedCounterValues[sizeof... (args) + 1]; + + counter = 0; + listeners.call (&ListenerBase::f, first, args...); + expect (counter == expected); + + ListenerList::DummyBailOutChecker boc; + counter = 0; + listeners.callChecked (boc, &ListenerBase::f, first, args...); + expect (counter == expected); + + callHelper (expectedCounterValues, args...); + } + + template + void callExcludingHelper (ListenerBase& listenerToExclude, + std::vector& expectedCounterValues) + { + counter = 0; + listeners.callExcluding (listenerToExclude, &ListenerBase::f); + expect (counter == expectedCounterValues[0]); + + ListenerList::DummyBailOutChecker boc; + + counter = 0; + listeners.callCheckedExcluding (listenerToExclude, boc, &ListenerBase::f); + expect (counter == expectedCounterValues[0]); + } + + template + void callExcludingHelper (ListenerBase& listenerToExclude, + std::vector& expectedCounterValues, T first, Args... args) + { + const int expected = expectedCounterValues[sizeof... (args) + 1]; + + counter = 0; + listeners.callExcluding (listenerToExclude, &ListenerBase::f, first, args...); + expect (counter == expected); + + ListenerList::DummyBailOutChecker boc; + counter = 0; + listeners.callCheckedExcluding (listenerToExclude, boc, &ListenerBase::f, first, args...); + expect (counter == expected); + + callExcludingHelper (listenerToExclude, expectedCounterValues, args...); + } + + void runTest() override + { + beginTest ("Call single listener"); + listeners.add (&listener1); + std::vector expectedCounterValues; + for (int i = 1; i < 8; ++i) + expectedCounterValues.push_back (i); + + callHelper (expectedCounterValues, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); + + beginTest ("Call multiple listeners"); + listeners.add (&listener2); + expectedCounterValues.clear(); + for (int i = 1; i < 8; ++i) + expectedCounterValues.push_back (-i); + + callHelper (expectedCounterValues, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); + + beginTest ("Call listeners excluding"); + expectedCounterValues.clear(); + for (int i = 1; i < 8; ++i) + expectedCounterValues.push_back (i); + + callExcludingHelper (listener2, expectedCounterValues, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); + } + + int counter = 0; + ListenerList listeners; + Listener1 listener1 {counter}; + Listener2 listener2 {counter}; +}; + +static ListenerListTests listenerListTests; + +#endif diff --git a/modules/juce_core/containers/juce_ListenerList.h b/modules/juce_core/containers/juce_ListenerList.h index 405ddc8770..6712e95039 100644 --- a/modules/juce_core/containers/juce_ListenerList.h +++ b/modules/juce_core/containers/juce_ListenerList.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -152,8 +154,18 @@ public: callChecked (static_cast (DummyBailOutChecker()), callbackFunction); } + /** Calls a member function, with no parameters, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + void callExcluding (ListenerClass& listenerToExclude, void (ListenerClass::*callbackFunction) ()) + { + callCheckedExcluding (listenerToExclude, + static_cast (DummyBailOutChecker()), callbackFunction); + } + /** Calls a member function on each listener in the list, with no parameters and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) ()) @@ -162,6 +174,20 @@ public: (iter.getListener()->*callbackFunction) (); } + /** Calls a member function on all but the specified listener in the list with a bail-out-checker. + This can be useful if the caller is also a listener and needs to exclude itself. See the class + description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) ()) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (); + } + //============================================================================== /** Calls a member function on each listener in the list, with 1 parameter. */ template @@ -171,8 +197,21 @@ public: (iter.getListener()->*callbackFunction) (param1); } - /** Calls a member function on each listener in the list, with one parameter and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + /** Calls a member function, with 1 parameter, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + template + void callExcluding (ListenerClass& listenerToExclude, + void (ListenerClass::*callbackFunction) (P1), LL_PARAM(1)) + { + for (Iterator iter (*this); iter.next();) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1); + } + + /** Calls a member function on each listener in the list, with 1 parameter and a bail-out-checker. + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) (P1), @@ -182,6 +221,21 @@ public: (iter.getListener()->*callbackFunction) (param1); } + /** Calls a member function, with 1 parameter, on all but the specified listener in the list + with a bail-out-checker. This can be useful if the caller is also a listener and needs to + exclude itself. See the class description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) (P1), + LL_PARAM(1)) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1); + } + //============================================================================== /** Calls a member function on each listener in the list, with 2 parameters. */ template @@ -192,8 +246,22 @@ public: (iter.getListener()->*callbackFunction) (param1, param2); } + /** Calls a member function, with 2 parameters, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + template + void callExcluding (ListenerClass& listenerToExclude, + void (ListenerClass::*callbackFunction) (P1, P2), + LL_PARAM(1), LL_PARAM(2)) + { + for (Iterator iter (*this); iter.next();) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2); + } + /** Calls a member function on each listener in the list, with 2 parameters and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) (P1, P2), @@ -203,6 +271,21 @@ public: (iter.getListener()->*callbackFunction) (param1, param2); } + /** Calls a member function, with 2 parameters, on all but the specified listener in the list + with a bail-out-checker. This can be useful if the caller is also a listener and needs to + exclude itself. See the class description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) (P1, P2), + LL_PARAM(1), LL_PARAM(2)) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2); + } + //============================================================================== /** Calls a member function on each listener in the list, with 3 parameters. */ template @@ -213,8 +296,22 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3); } + /** Calls a member function, with 3 parameters, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + template + void callExcluding (ListenerClass& listenerToExclude, + void (ListenerClass::*callbackFunction) (P1, P2, P3), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3)) + { + for (Iterator iter (*this); iter.next();) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3); + } + /** Calls a member function on each listener in the list, with 3 parameters and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) (P1, P2, P3), @@ -224,6 +321,21 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3); } + /** Calls a member function, with 3 parameters, on all but the specified listener in the list + with a bail-out-checker. This can be useful if the caller is also a listener and needs to + exclude itself. See the class description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) (P1, P2, P3), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3)) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3); + } + //============================================================================== /** Calls a member function on each listener in the list, with 4 parameters. */ template @@ -234,8 +346,22 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3, param4); } + /** Calls a member function, with 4 parameters, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + template + void callExcluding (ListenerClass& listenerToExclude, + void (ListenerClass::*callbackFunction) (P1, P2, P3, P4), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4)) + { + for (Iterator iter (*this); iter.next();) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3, param4); + } + /** Calls a member function on each listener in the list, with 4 parameters and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) (P1, P2, P3, P4), @@ -245,6 +371,21 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3, param4); } + /** Calls a member function, with 4 parameters, on all but the specified listener in the list + with a bail-out-checker. This can be useful if the caller is also a listener and needs to + exclude itself. See the class description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) (P1, P2, P3, P4), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4)) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3, param4); + } + //============================================================================== /** Calls a member function on each listener in the list, with 5 parameters. */ template @@ -255,8 +396,22 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5); } + /** Calls a member function, with 5 parameters, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + template + void callExcluding (ListenerClass& listenerToExclude, + void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5)) + { + for (Iterator iter (*this); iter.next();) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5); + } + /** Calls a member function on each listener in the list, with 5 parameters and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5), @@ -266,8 +421,23 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5); } + /** Calls a member function, with 5 parameters, on all but the specified listener in the list + with a bail-out-checker. This can be useful if the caller is also a listener and needs to + exclude itself. See the class description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5)) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5); + } + //============================================================================== - /** Calls a member function on each listener in the list, with 5 parameters. */ + /** Calls a member function on each listener in the list, with 6 parameters. */ template void call (void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5, P6), LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5), LL_PARAM(6)) @@ -276,8 +446,22 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5, param6); } - /** Calls a member function on each listener in the list, with 5 parameters and a bail-out-checker. - See the class description for info about writing a bail-out checker. */ + /** Calls a member function, with 6 parameters, on all but the specified listener in the list. + This can be useful if the caller is also a listener and needs to exclude itself. + */ + template + void callExcluding (ListenerClass& listenerToExclude, + void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5, P6), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5), LL_PARAM(6)) + { + for (Iterator iter (*this); iter.next();) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5, param6); + } + + /** Calls a member function on each listener in the list, with 6 parameters and a bail-out-checker. + See the class description for info about writing a bail-out checker. + */ template void callChecked (const BailOutCheckerType& bailOutChecker, void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5, P6), @@ -287,6 +471,20 @@ public: (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5, param6); } + /** Calls a member function, with 5 parameters, on all but the specified listener in the list + with a bail-out-checker. This can be useful if the caller is also a listener and needs to + exclude itself. See the class description for info about writing a bail-out checker. + */ + template + void callCheckedExcluding (ListenerClass& listenerToExclude, + const BailOutCheckerType& bailOutChecker, + void (ListenerClass::*callbackFunction) (P1, P2, P3, P4, P5, P6), + LL_PARAM(1), LL_PARAM(2), LL_PARAM(3), LL_PARAM(4), LL_PARAM(5), LL_PARAM(6)) + { + for (Iterator iter (*this); iter.next (bailOutChecker);) + if (iter.getListener() != &listenerToExclude) + (iter.getListener()->*callbackFunction) (param1, param2, param3, param4, param5, param6); + } //============================================================================== /** A dummy bail-out checker that always returns false. diff --git a/modules/juce_core/containers/juce_NamedValueSet.cpp b/modules/juce_core/containers/juce_NamedValueSet.cpp index 68afddde8d..e539437938 100644 --- a/modules/juce_core/containers/juce_NamedValueSet.cpp +++ b/modules/juce_core/containers/juce_NamedValueSet.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_NamedValueSet.h b/modules/juce_core/containers/juce_NamedValueSet.h index a62ffc23b2..87dec87a4e 100644 --- a/modules/juce_core/containers/juce_NamedValueSet.h +++ b/modules/juce_core/containers/juce_NamedValueSet.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_OwnedArray.h b/modules/juce_core/containers/juce_OwnedArray.h index a64c9cbed7..a677ae5d94 100644 --- a/modules/juce_core/containers/juce_OwnedArray.h +++ b/modules/juce_core/containers/juce_OwnedArray.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_PropertySet.cpp b/modules/juce_core/containers/juce_PropertySet.cpp index 057ae872a1..a44f39b48a 100644 --- a/modules/juce_core/containers/juce_PropertySet.cpp +++ b/modules/juce_core/containers/juce_PropertySet.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_PropertySet.h b/modules/juce_core/containers/juce_PropertySet.h index 310810f7e6..fdd5ad917a 100644 --- a/modules/juce_core/containers/juce_PropertySet.h +++ b/modules/juce_core/containers/juce_PropertySet.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_ReferenceCountedArray.h b/modules/juce_core/containers/juce_ReferenceCountedArray.h index e5dfe965e6..8702bdbd4d 100644 --- a/modules/juce_core/containers/juce_ReferenceCountedArray.h +++ b/modules/juce_core/containers/juce_ReferenceCountedArray.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_ScopedValueSetter.h b/modules/juce_core/containers/juce_ScopedValueSetter.h index 840ca91b3c..c7240045d5 100644 --- a/modules/juce_core/containers/juce_ScopedValueSetter.h +++ b/modules/juce_core/containers/juce_ScopedValueSetter.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_SortedSet.h b/modules/juce_core/containers/juce_SortedSet.h index 207c65ee49..5b592c2929 100644 --- a/modules/juce_core/containers/juce_SortedSet.h +++ b/modules/juce_core/containers/juce_SortedSet.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_SparseSet.h b/modules/juce_core/containers/juce_SparseSet.h index 573975ab44..7f88f267e6 100644 --- a/modules/juce_core/containers/juce_SparseSet.h +++ b/modules/juce_core/containers/juce_SparseSet.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/containers/juce_Variant.cpp b/modules/juce_core/containers/juce_Variant.cpp index 52a8e81afd..04a82f8c4e 100644 --- a/modules/juce_core/containers/juce_Variant.cpp +++ b/modules/juce_core/containers/juce_Variant.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -399,6 +401,9 @@ public: VariantType_Method() noexcept {} static const VariantType_Method instance; + void cleanUp (ValueUnion& data) const noexcept override { if (data.methodValue != nullptr ) delete data.methodValue; } + void createCopy (ValueUnion& dest, const ValueUnion& source) const override { dest.methodValue = new NativeFunction (*source.methodValue); } + String toString (const ValueUnion&) const override { return "Method"; } bool toBool (const ValueUnion& data) const noexcept override { return data.methodValue != nullptr; } bool isMethod() const noexcept override { return true; } @@ -448,7 +453,7 @@ var::var (const int v) noexcept : type (&VariantType_Int::instance) { v var::var (const int64 v) noexcept : type (&VariantType_Int64::instance) { value.int64Value = v; } var::var (const bool v) noexcept : type (&VariantType_Bool::instance) { value.boolValue = v; } var::var (const double v) noexcept : type (&VariantType_Double::instance) { value.doubleValue = v; } -var::var (NativeFunction m) noexcept : type (&VariantType_Method::instance) { value.methodValue = m; } +var::var (NativeFunction m) noexcept : type (&VariantType_Method::instance) { value.methodValue = new NativeFunction (m); } var::var (const Array& v) : type (&VariantType_Array::instance) { value.objectValue = new VariantType_Array::RefCountedArray(v); } var::var (const String& v) : type (&VariantType_String::instance) { new (value.stringValue) String (v); } var::var (const char* const v) : type (&VariantType_String::instance) { new (value.stringValue) String (v); } @@ -456,6 +461,17 @@ var::var (const wchar_t* const v) : type (&VariantType_String::instance) { n var::var (const void* v, size_t sz) : type (&VariantType_Binary::instance) { value.binaryValue = new MemoryBlock (v, sz); } var::var (const MemoryBlock& v) : type (&VariantType_Binary::instance) { value.binaryValue = new MemoryBlock (v); } +var::var (const StringArray& v) : type (&VariantType_Array::instance) +{ + Array strings; + + const int n = v.size(); + for (int i = 0; i < n; ++i) + strings.add (var (v[i])); + + value.objectValue = new VariantType_Array::RefCountedArray(strings); +} + var::var (ReferenceCountedObject* const object) : type (&VariantType_Object::instance) { value.objectValue = object; @@ -602,7 +618,7 @@ var var::getProperty (const Identifier& propertyName, const var& defaultReturnVa var::NativeFunction var::getNativeFunction() const { - return isMethod() ? value.methodValue : nullptr; + return isMethod() && (value.methodValue != nullptr) ? *value.methodValue : nullptr; } var var::invoke (const Identifier& method, const var* arguments, int numArguments) const diff --git a/modules/juce_core/containers/juce_Variant.h b/modules/juce_core/containers/juce_Variant.h index f5c77cb644..071f0a45ad 100644 --- a/modules/juce_core/containers/juce_Variant.h +++ b/modules/juce_core/containers/juce_Variant.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -61,7 +63,11 @@ public: JUCE_DECLARE_NON_COPYABLE (NativeFunctionArgs) }; + #if JUCE_COMPILER_SUPPORTS_LAMBDAS + using NativeFunction = std::function; + #else typedef var (*NativeFunction) (const NativeFunctionArgs&); + #endif //============================================================================== /** Creates a void variant. */ @@ -84,6 +90,7 @@ public: var (const wchar_t* value); var (const String& value); var (const Array& value); + var (const StringArray& value); var (ReferenceCountedObject* object); var (NativeFunction method) noexcept; var (const void* binaryData, size_t dataSize); @@ -306,7 +313,7 @@ private: char stringValue [sizeof (String)]; ReferenceCountedObject* objectValue; MemoryBlock* binaryValue; - NativeFunction methodValue; + NativeFunction* methodValue; }; const VariantType* type; @@ -317,13 +324,13 @@ private: }; /** Compares the values of two var objects, using the var::equals() comparison. */ -bool operator== (const var&, const var&) noexcept; +JUCE_API bool operator== (const var&, const var&) noexcept; /** Compares the values of two var objects, using the var::equals() comparison. */ -bool operator!= (const var&, const var&) noexcept; -bool operator== (const var&, const String&); -bool operator!= (const var&, const String&); -bool operator== (const var&, const char*); -bool operator!= (const var&, const char*); +JUCE_API bool operator!= (const var&, const var&) noexcept; +JUCE_API bool operator== (const var&, const String&); +JUCE_API bool operator!= (const var&, const String&); +JUCE_API bool operator== (const var&, const char*); +JUCE_API bool operator!= (const var&, const char*); //============================================================================== /** This template-overloaded class can be used to convert between var and custom types. */ diff --git a/modules/juce_core/files/juce_DirectoryIterator.cpp b/modules/juce_core/files/juce_DirectoryIterator.cpp index 76b503b059..8a11692902 100644 --- a/modules/juce_core/files/juce_DirectoryIterator.cpp +++ b/modules/juce_core/files/juce_DirectoryIterator.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_DirectoryIterator.h b/modules/juce_core/files/juce_DirectoryIterator.h index bd71697cb1..c1ed9cb234 100644 --- a/modules/juce_core/files/juce_DirectoryIterator.h +++ b/modules/juce_core/files/juce_DirectoryIterator.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_File.cpp b/modules/juce_core/files/juce_File.cpp index e2a23beb95..9b99a95c36 100644 --- a/modules/juce_core/files/juce_File.cpp +++ b/modules/juce_core/files/juce_File.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -625,18 +627,21 @@ File File::getNonexistentChildFile (const String& suggestedPrefix, } } - // also use brackets if it ends in a digit. - putNumbersInBrackets = putNumbersInBrackets - || CharacterFunctions::isDigit (prefix.getLastCharacter()); - do { String newName (prefix); if (putNumbersInBrackets) + { newName << '(' << ++number << ')'; + } else + { + if (CharacterFunctions::isDigit (prefix.getLastCharacter())) + newName << '_'; // pad with an underscore if the name already ends in a digit + newName << ++number; + } f = getChildFile (newName + suffix); diff --git a/modules/juce_core/files/juce_File.h b/modules/juce_core/files/juce_File.h index dbe01c5a97..f469124edb 100644 --- a/modules/juce_core/files/juce_File.h +++ b/modules/juce_core/files/juce_File.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -434,6 +436,9 @@ public: If it already exists or is a directory, this method will do nothing. + If the parent directories of the File do not exist then this method will + recursively create the parent directories. + @returns a result to indicate whether the file was created successfully, or an error message if it failed. @see createDirectory @@ -988,6 +993,26 @@ public: void addToDock() const; #endif + //============================================================================== + struct NaturalFileComparator + { + NaturalFileComparator (bool shouldPutFoldersFirst) noexcept : foldersFirst (shouldPutFoldersFirst) {} + + int compareElements (const File& firstFile, const File& secondFile) const + { + if (foldersFirst && (firstFile.isDirectory() != secondFile.isDirectory())) + return firstFile.isDirectory() ? -1 : 1; + + #if NAMES_ARE_CASE_SENSITIVE + return firstFile.getFullPathName().compareNatural (secondFile.getFullPathName(), true); + #else + return firstFile.getFullPathName().compareNatural (secondFile.getFullPathName(), false); + #endif + } + + bool foldersFirst; + }; + private: //============================================================================== String fullPath; diff --git a/modules/juce_core/files/juce_FileFilter.cpp b/modules/juce_core/files/juce_FileFilter.cpp index 118c321b64..24b656c2a4 100644 --- a/modules/juce_core/files/juce_FileFilter.cpp +++ b/modules/juce_core/files/juce_FileFilter.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_FileFilter.h b/modules/juce_core/files/juce_FileFilter.h index 9dae801eac..98847bc7f3 100644 --- a/modules/juce_core/files/juce_FileFilter.h +++ b/modules/juce_core/files/juce_FileFilter.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_FileInputStream.cpp b/modules/juce_core/files/juce_FileInputStream.cpp index c6ed3d65d3..9ec77881ce 100644 --- a/modules/juce_core/files/juce_FileInputStream.cpp +++ b/modules/juce_core/files/juce_FileInputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_FileInputStream.h b/modules/juce_core/files/juce_FileInputStream.h index 7c31568c0b..3f7caa27b8 100644 --- a/modules/juce_core/files/juce_FileInputStream.h +++ b/modules/juce_core/files/juce_FileInputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_FileOutputStream.cpp b/modules/juce_core/files/juce_FileOutputStream.cpp index d5c25e70ed..c5ef0d5e04 100644 --- a/modules/juce_core/files/juce_FileOutputStream.cpp +++ b/modules/juce_core/files/juce_FileOutputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_FileOutputStream.h b/modules/juce_core/files/juce_FileOutputStream.h index b72c7c83b5..0eee43d6d0 100644 --- a/modules/juce_core/files/juce_FileOutputStream.h +++ b/modules/juce_core/files/juce_FileOutputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -43,10 +45,10 @@ public: /** Creates a FileOutputStream. If the file doesn't exist, it will first be created. If the file can't be - created or opened, the failedToOpen() method will return - true. + created or opened (for example, because the parent directory of the file + does not exist), the failedToOpen() method will return true. - If the file already exists when opened, the stream's write-postion will + If the file already exists when opened, the stream's write-position will be set to the end of the file. To overwrite an existing file, use File::deleteFile() before opening the stream, or use setPosition(0) after it's opened (although this won't truncate the file). diff --git a/modules/juce_core/files/juce_FileSearchPath.cpp b/modules/juce_core/files/juce_FileSearchPath.cpp index 629ac60495..2040936eac 100644 --- a/modules/juce_core/files/juce_FileSearchPath.cpp +++ b/modules/juce_core/files/juce_FileSearchPath.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_FileSearchPath.h b/modules/juce_core/files/juce_FileSearchPath.h index 1089c8b195..3572072c23 100644 --- a/modules/juce_core/files/juce_FileSearchPath.h +++ b/modules/juce_core/files/juce_FileSearchPath.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_MemoryMappedFile.h b/modules/juce_core/files/juce_MemoryMappedFile.h index fdfae68934..2c1b5a432c 100644 --- a/modules/juce_core/files/juce_MemoryMappedFile.h +++ b/modules/juce_core/files/juce_MemoryMappedFile.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_TemporaryFile.cpp b/modules/juce_core/files/juce_TemporaryFile.cpp index 337f7f3b2e..41ea4dcef3 100644 --- a/modules/juce_core/files/juce_TemporaryFile.cpp +++ b/modules/juce_core/files/juce_TemporaryFile.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_TemporaryFile.h b/modules/juce_core/files/juce_TemporaryFile.h index 64ea9903cc..408b8bfe21 100644 --- a/modules/juce_core/files/juce_TemporaryFile.h +++ b/modules/juce_core/files/juce_TemporaryFile.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_WildcardFileFilter.cpp b/modules/juce_core/files/juce_WildcardFileFilter.cpp index 8e51da77d9..f581a58f4b 100644 --- a/modules/juce_core/files/juce_WildcardFileFilter.cpp +++ b/modules/juce_core/files/juce_WildcardFileFilter.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/files/juce_WildcardFileFilter.h b/modules/juce_core/files/juce_WildcardFileFilter.h index ada6850686..b7a1453696 100644 --- a/modules/juce_core/files/juce_WildcardFileFilter.h +++ b/modules/juce_core/files/juce_WildcardFileFilter.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/javascript/juce_JSON.cpp b/modules/juce_core/javascript/juce_JSON.cpp index 4a4e134457..6fa8ec1983 100644 --- a/modules/juce_core/javascript/juce_JSON.cpp +++ b/modules/juce_core/javascript/juce_JSON.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/javascript/juce_JSON.h b/modules/juce_core/javascript/juce_JSON.h index 5224950527..879c90f7d0 100644 --- a/modules/juce_core/javascript/juce_JSON.h +++ b/modules/juce_core/javascript/juce_JSON.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/javascript/juce_Javascript.cpp b/modules/juce_core/javascript/juce_Javascript.cpp index 13d572c30d..719c2b47c8 100644 --- a/modules/juce_core/javascript/juce_Javascript.cpp +++ b/modules/juce_core/javascript/juce_Javascript.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -104,7 +106,7 @@ struct JavascriptEngine::RootObject : public DynamicObject static bool isFunction (const var& v) noexcept { return dynamic_cast (v.getObject()) != nullptr; } static bool isNumeric (const var& v) noexcept { return v.isInt() || v.isDouble() || v.isInt64() || v.isBool(); } static bool isNumericOrUndefined (const var& v) noexcept { return isNumeric (v) || v.isUndefined(); } - static int64 getOctalValue (const String& s) { BigInteger b; b.parseString (s, 8); return b.toInt64(); } + static int64 getOctalValue (const String& s) { BigInteger b; b.parseString (s.initialSectionContainingOnly ("01234567"), 8); return b.toInt64(); } static Identifier getPrototypeIdentifier() { static const Identifier i ("prototype"); return i; } static var* getPropertyPointer (DynamicObject* o, const Identifier& i) noexcept { return o->getProperties().getVarPointer (i); } @@ -712,7 +714,7 @@ struct JavascriptEngine::RootObject : public DynamicObject } var function (object->getResult (s)); - return invokeFunction (s, function, var (s.scope)); + return invokeFunction (s, function, var (s.scope.get())); } var invokeFunction (const Scope& s, const var& function, const var& thisObject) const @@ -1070,7 +1072,7 @@ struct JavascriptEngine::RootObject : public DynamicObject { ExpPtr lhs (parseLogicOperator()); - if (matchIf (TokenTypes::question)) return parseTerneryOperator (lhs); + if (matchIf (TokenTypes::question)) return parseTernaryOperator (lhs); if (matchIf (TokenTypes::assign)) { ExpPtr rhs (parseExpression()); return new Assignment (location, lhs, rhs); } if (matchIf (TokenTypes::plusEquals)) return parseInPlaceOpExpression (lhs); if (matchIf (TokenTypes::minusEquals)) return parseInPlaceOpExpression (lhs); @@ -1483,7 +1485,7 @@ struct JavascriptEngine::RootObject : public DynamicObject return a.release(); } - Expression* parseTerneryOperator (ExpPtr& condition) + Expression* parseTernaryOperator (ExpPtr& condition) { ScopedPointer e (new ConditionalOp (location)); e->condition = condition; diff --git a/modules/juce_core/javascript/juce_Javascript.h b/modules/juce_core/javascript/juce_Javascript.h index 0de35aeff6..de605f074a 100644 --- a/modules/juce_core/javascript/juce_Javascript.h +++ b/modules/juce_core/javascript/juce_Javascript.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/juce_core.cpp b/modules/juce_core/juce_core.cpp index 370e7d7507..17b7157718 100644 --- a/modules/juce_core/juce_core.cpp +++ b/modules/juce_core/juce_core.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -129,6 +131,7 @@ namespace juce #include "containers/juce_AbstractFifo.cpp" #include "containers/juce_NamedValueSet.cpp" +#include "containers/juce_ListenerList.cpp" #include "containers/juce_PropertySet.cpp" #include "containers/juce_Variant.cpp" #include "files/juce_DirectoryIterator.cpp" @@ -238,6 +241,7 @@ namespace juce #include "threads/juce_ChildProcess.cpp" #include "threads/juce_HighResolutionTimer.cpp" #include "network/juce_URL.cpp" +#include "network/juce_WebInputStream.cpp" //============================================================================== /* diff --git a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h index 1dd7e0cbfd..a6c976d3e4 100644 --- a/modules/juce_core/juce_core.h +++ b/modules/juce_core/juce_core.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -38,11 +40,11 @@ ID: juce_core vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE core classes description: The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality. website: http://www.juce.com/juce - license: GPL/Commercial + license: ISC dependencies: OSXFrameworks: Cocoa IOKit @@ -305,6 +307,7 @@ extern JUCE_API void JUCE_CALLTYPE logAssertion (const char* file, int line) noe #include "network/juce_NamedPipe.h" #include "network/juce_Socket.h" #include "network/juce_URL.h" +#include "network/juce_WebInputStream.h" #include "time/juce_PerformanceCounter.h" #include "unit_tests/juce_UnitTest.h" #include "xml/juce_XmlDocument.h" diff --git a/modules/juce_core/juce_core.mm b/modules/juce_core/juce_core.mm index 4f48e15096..1c52e07c0c 100644 --- a/modules/juce_core/juce_core.mm +++ b/modules/juce_core/juce_core.mm @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/logging/juce_FileLogger.cpp b/modules/juce_core/logging/juce_FileLogger.cpp index 55db2afb8c..e07de60cf7 100644 --- a/modules/juce_core/logging/juce_FileLogger.cpp +++ b/modules/juce_core/logging/juce_FileLogger.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/logging/juce_FileLogger.h b/modules/juce_core/logging/juce_FileLogger.h index 7f82360413..5102c67433 100644 --- a/modules/juce_core/logging/juce_FileLogger.h +++ b/modules/juce_core/logging/juce_FileLogger.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/logging/juce_Logger.cpp b/modules/juce_core/logging/juce_Logger.cpp index 00dec72a1c..7877e5115e 100644 --- a/modules/juce_core/logging/juce_Logger.cpp +++ b/modules/juce_core/logging/juce_Logger.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/logging/juce_Logger.h b/modules/juce_core/logging/juce_Logger.h index 1af9eb5889..f3b845a6d2 100644 --- a/modules/juce_core/logging/juce_Logger.h +++ b/modules/juce_core/logging/juce_Logger.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -54,12 +56,12 @@ public: Note that the object passed in will not be owned or deleted by the logger, so the caller must make sure that it is not deleted while still being used. - A null pointer can be passed-in to disable any logging. + A null pointer can be passed-in to reset the system to the default logger. */ static void JUCE_CALLTYPE setCurrentLogger (Logger* newLogger) noexcept; - /** Returns the current logger, or nullptr if none has been set. */ - static Logger* getCurrentLogger() noexcept; + /** Returns the current logger, or nullptr if no custom logger has been set. */ + static Logger* JUCE_CALLTYPE getCurrentLogger() noexcept; /** Writes a string to the current logger. diff --git a/modules/juce_core/maths/juce_BigInteger.cpp b/modules/juce_core/maths/juce_BigInteger.cpp index 44b9d68f1d..fa973a4be6 100644 --- a/modules/juce_core/maths/juce_BigInteger.cpp +++ b/modules/juce_core/maths/juce_BigInteger.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -31,26 +33,26 @@ namespace inline uint32 bitToMask (const int bit) noexcept { return (uint32) 1 << (bit & 31); } inline size_t bitToIndex (const int bit) noexcept { return (size_t) (bit >> 5); } inline size_t sizeNeededToHold (int highestBit) noexcept { return (size_t) (highestBit >> 5) + 1; } +} - inline int highestBitInInt (uint32 n) noexcept - { - jassert (n != 0); // (the built-in functions may not work for n = 0) +int findHighestSetBit (uint32 n) noexcept +{ + jassert (n != 0); // (the built-in functions may not work for n = 0) - #if JUCE_GCC || JUCE_CLANG - return 31 - __builtin_clz (n); - #elif JUCE_MSVC - unsigned long highest; - _BitScanReverse (&highest, n); - return (int) highest; - #else - n |= (n >> 1); - n |= (n >> 2); - n |= (n >> 4); - n |= (n >> 8); - n |= (n >> 16); - return countBitsInInt32 (n >> 1); - #endif - } + #if JUCE_GCC || JUCE_CLANG + return 31 - __builtin_clz (n); + #elif JUCE_MSVC + unsigned long highest; + _BitScanReverse (&highest, n); + return (int) highest; + #else + n |= (n >> 1); + n |= (n >> 2); + n |= (n >> 4); + n |= (n >> 8); + n |= (n >> 16); + return countNumberOfBits (n >> 1); + #endif } //============================================================================== @@ -391,7 +393,7 @@ int BigInteger::getHighestBit() const noexcept for (int i = (int) bitToIndex (highestBit); i >= 0; --i) if (uint32 n = values[i]) - return highestBitInInt (n) + (i << 5); + return findHighestSetBit (n) + (i << 5); return -1; } diff --git a/modules/juce_core/maths/juce_BigInteger.h b/modules/juce_core/maths/juce_BigInteger.h index 4a663317bb..e832377c0f 100644 --- a/modules/juce_core/maths/juce_BigInteger.h +++ b/modules/juce_core/maths/juce_BigInteger.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_Expression.cpp b/modules/juce_core/maths/juce_Expression.cpp index 97a15a50f2..1f190f1631 100644 --- a/modules/juce_core/maths/juce_Expression.cpp +++ b/modules/juce_core/maths/juce_Expression.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_Expression.h b/modules/juce_core/maths/juce_Expression.h index 208e543f8b..a79a3e716a 100644 --- a/modules/juce_core/maths/juce_Expression.h +++ b/modules/juce_core/maths/juce_Expression.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_MathsFunctions.h b/modules/juce_core/maths/juce_MathsFunctions.h index 7de74a3166..dd416aeeb9 100644 --- a/modules/juce_core/maths/juce_MathsFunctions.h +++ b/modules/juce_core/maths/juce_MathsFunctions.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -450,7 +452,7 @@ inline int roundToInt (int value) noexcept This is a slightly slower and slightly more accurate version of roundDoubleToInt(). It works fine for values above zero, but negative numbers are rounded the wrong way. */ -inline int roundToIntAccurate (const double value) noexcept +inline int roundToIntAccurate (double value) noexcept { #ifdef __INTEL_COMPILER #pragma float_control (pop) @@ -470,7 +472,7 @@ inline int roundToIntAccurate (const double value) noexcept even numbers will be rounded up or down differently. For a more accurate conversion, see roundDoubleToIntAccurate(). */ -inline int roundDoubleToInt (const double value) noexcept +inline int roundDoubleToInt (double value) noexcept { return roundToInt (value); } @@ -485,7 +487,7 @@ inline int roundDoubleToInt (const double value) noexcept rounding values whose floating point component is exactly 0.5, odd numbers and even numbers will be rounded up or down differently. */ -inline int roundFloatToInt (const float value) noexcept +inline int roundFloatToInt (float value) noexcept { return roundToInt (value); } @@ -510,6 +512,12 @@ inline int nextPowerOfTwo (int n) noexcept return n + 1; } +/** Returns the index of the highest set bit in a (non-zero) number. + So for n=3 this would return 1, for n=7 it returns 2, etc. + An input value of 0 is illegal! +*/ +int findHighestSetBit (uint32 n) noexcept; + /** Returns the number of bits in a 32-bit integer. */ inline int countNumberOfBits (uint32 n) noexcept { diff --git a/modules/juce_core/maths/juce_NormalisableRange.h b/modules/juce_core/maths/juce_NormalisableRange.h index 694a83e866..c12b64b764 100644 --- a/modules/juce_core/maths/juce_NormalisableRange.h +++ b/modules/juce_core/maths/juce_NormalisableRange.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_Random.cpp b/modules/juce_core/maths/juce_Random.cpp index cb1156283f..ccca0b571e 100644 --- a/modules/juce_core/maths/juce_Random.cpp +++ b/modules/juce_core/maths/juce_Random.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_Random.h b/modules/juce_core/maths/juce_Random.h index 09462e3682..9aed3fcd0a 100644 --- a/modules/juce_core/maths/juce_Random.h +++ b/modules/juce_core/maths/juce_Random.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_Range.h b/modules/juce_core/maths/juce_Range.h index 5f9d409e47..619240ff2c 100644 --- a/modules/juce_core/maths/juce_Range.h +++ b/modules/juce_core/maths/juce_Range.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/maths/juce_StatisticsAccumulator.h b/modules/juce_core/maths/juce_StatisticsAccumulator.h index 43eba3e775..e90a6aa6be 100644 --- a/modules/juce_core/maths/juce_StatisticsAccumulator.h +++ b/modules/juce_core/maths/juce_StatisticsAccumulator.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. + This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_Atomic.h b/modules/juce_core/memory/juce_Atomic.h index b392171fb7..5a51f6cf44 100644 --- a/modules/juce_core/memory/juce_Atomic.h +++ b/modules/juce_core/memory/juce_Atomic.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_ByteOrder.h b/modules/juce_core/memory/juce_ByteOrder.h index c11763ffc7..0440ad2f5e 100644 --- a/modules/juce_core/memory/juce_ByteOrder.h +++ b/modules/juce_core/memory/juce_ByteOrder.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_ContainerDeletePolicy.h b/modules/juce_core/memory/juce_ContainerDeletePolicy.h index 7ea28844c5..5c2aaec02e 100644 --- a/modules/juce_core/memory/juce_ContainerDeletePolicy.h +++ b/modules/juce_core/memory/juce_ContainerDeletePolicy.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_HeapBlock.h b/modules/juce_core/memory/juce_HeapBlock.h index 5045c4a590..5f3a423a88 100644 --- a/modules/juce_core/memory/juce_HeapBlock.h +++ b/modules/juce_core/memory/juce_HeapBlock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_LeakedObjectDetector.h b/modules/juce_core/memory/juce_LeakedObjectDetector.h index 9a12e93ad7..0c4a438d01 100644 --- a/modules/juce_core/memory/juce_LeakedObjectDetector.h +++ b/modules/juce_core/memory/juce_LeakedObjectDetector.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_Memory.h b/modules/juce_core/memory/juce_Memory.h index 61c77310b6..db8d825abc 100644 --- a/modules/juce_core/memory/juce_Memory.h +++ b/modules/juce_core/memory/juce_Memory.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_MemoryBlock.cpp b/modules/juce_core/memory/juce_MemoryBlock.cpp index 0efd21bcf5..93b0255854 100644 --- a/modules/juce_core/memory/juce_MemoryBlock.cpp +++ b/modules/juce_core/memory/juce_MemoryBlock.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_MemoryBlock.h b/modules/juce_core/memory/juce_MemoryBlock.h index 1bf964e9ed..73426569fb 100644 --- a/modules/juce_core/memory/juce_MemoryBlock.h +++ b/modules/juce_core/memory/juce_MemoryBlock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_OptionalScopedPointer.h b/modules/juce_core/memory/juce_OptionalScopedPointer.h index 46fa34cd50..bd3972e106 100644 --- a/modules/juce_core/memory/juce_OptionalScopedPointer.h +++ b/modules/juce_core/memory/juce_OptionalScopedPointer.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_ReferenceCountedObject.h b/modules/juce_core/memory/juce_ReferenceCountedObject.h index cf60756ff3..485fed90bf 100644 --- a/modules/juce_core/memory/juce_ReferenceCountedObject.h +++ b/modules/juce_core/memory/juce_ReferenceCountedObject.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_ScopedPointer.h b/modules/juce_core/memory/juce_ScopedPointer.h index 581471b518..2dda066c3f 100644 --- a/modules/juce_core/memory/juce_ScopedPointer.h +++ b/modules/juce_core/memory/juce_ScopedPointer.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_SharedResourcePointer.h b/modules/juce_core/memory/juce_SharedResourcePointer.h index 12a63ba4bf..4ec69b6a2e 100644 --- a/modules/juce_core/memory/juce_SharedResourcePointer.h +++ b/modules/juce_core/memory/juce_SharedResourcePointer.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_Singleton.h b/modules/juce_core/memory/juce_Singleton.h index d424784e03..deb9c599eb 100644 --- a/modules/juce_core/memory/juce_Singleton.h +++ b/modules/juce_core/memory/juce_Singleton.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/memory/juce_WeakReference.h b/modules/juce_core/memory/juce_WeakReference.h index ca3dd1fb27..37e92d31ff 100644 --- a/modules/juce_core/memory/juce_WeakReference.h +++ b/modules/juce_core/memory/juce_WeakReference.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_Result.cpp b/modules/juce_core/misc/juce_Result.cpp index e2a1c13015..243f2d1c5f 100644 --- a/modules/juce_core/misc/juce_Result.cpp +++ b/modules/juce_core/misc/juce_Result.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_Result.h b/modules/juce_core/misc/juce_Result.h index 218ffb65f7..4d047dd630 100644 --- a/modules/juce_core/misc/juce_Result.h +++ b/modules/juce_core/misc/juce_Result.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_RuntimePermissions.cpp b/modules/juce_core/misc/juce_RuntimePermissions.cpp index c9e38ea0ed..ffa17c0680 100644 --- a/modules/juce_core/misc/juce_RuntimePermissions.cpp +++ b/modules/juce_core/misc/juce_RuntimePermissions.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. + This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_RuntimePermissions.h b/modules/juce_core/misc/juce_RuntimePermissions.h index c40a413ce7..5ad3ccff96 100644 --- a/modules/juce_core/misc/juce_RuntimePermissions.h +++ b/modules/juce_core/misc/juce_RuntimePermissions.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. + This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_Uuid.cpp b/modules/juce_core/misc/juce_Uuid.cpp index e0d0c1550d..01b0b011a5 100644 --- a/modules/juce_core/misc/juce_Uuid.cpp +++ b/modules/juce_core/misc/juce_Uuid.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_Uuid.h b/modules/juce_core/misc/juce_Uuid.h index 2a0ff054ac..bf5f8c21dd 100644 --- a/modules/juce_core/misc/juce_Uuid.h +++ b/modules/juce_core/misc/juce_Uuid.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/misc/juce_WindowsRegistry.h b/modules/juce_core/misc/juce_WindowsRegistry.h index 2840e1892d..460164b017 100644 --- a/modules/juce_core/misc/juce_WindowsRegistry.h +++ b/modules/juce_core/misc/juce_WindowsRegistry.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/java/JuceAppActivity.java b/modules/juce_core/native/java/JuceAppActivity.java index bb6b2079c2..46337f2708 100644 --- a/modules/juce_core/native/java/JuceAppActivity.java +++ b/modules/juce_core/native/java/JuceAppActivity.java @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_BasicNativeHeaders.h b/modules/juce_core/native/juce_BasicNativeHeaders.h index 6b05033551..8184318704 100644 --- a/modules/juce_core/native/juce_BasicNativeHeaders.h +++ b/modules/juce_core/native/juce_BasicNativeHeaders.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -42,6 +44,46 @@ #include #else #import + #if (! defined MAC_OS_X_VERSION_10_12) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12 + #define NSEventModifierFlagCommand NSCommandKeyMask + #define NSEventModifierFlagControl NSControlKeyMask + #define NSEventModifierFlagHelp NSHelpKeyMask + #define NSEventModifierFlagNumericPad NSNumericPadKeyMask + #define NSEventModifierFlagOption NSAlternateKeyMask + #define NSEventModifierFlagShift NSShiftKeyMask + #define NSCompositingOperationSourceOver NSCompositeSourceOver + #define NSEventMaskApplicationDefined NSApplicationDefinedMask + #define NSEventTypeApplicationDefined NSApplicationDefined + #define NSEventTypeCursorUpdate NSCursorUpdate + #define NSEventTypeMouseMoved NSMouseMoved + #define NSEventTypeLeftMouseDown NSLeftMouseDown + #define NSEventTypeRightMouseDown NSRightMouseDown + #define NSEventTypeOtherMouseDown NSOtherMouseDown + #define NSEventTypeLeftMouseUp NSLeftMouseUp + #define NSEventTypeRightMouseUp NSRightMouseUp + #define NSEventTypeOtherMouseUp NSOtherMouseUp + #define NSEventTypeLeftMouseDragged NSLeftMouseDragged + #define NSEventTypeRightMouseDragged NSRightMouseDragged + #define NSEventTypeOtherMouseDragged NSOtherMouseDragged + #define NSEventTypeScrollWheel NSScrollWheel + #define NSEventTypeKeyDown NSKeyDown + #define NSEventTypeKeyUp NSKeyUp + #define NSEventTypeFlagsChanged NSFlagsChanged + #define NSEventMaskAny NSAnyEventMask + #define NSWindowStyleMaskBorderless NSBorderlessWindowMask + #define NSWindowStyleMaskClosable NSClosableWindowMask + #define NSWindowStyleMaskFullScreen NSFullScreenWindowMask + #define NSWindowStyleMaskMiniaturizable NSMiniaturizableWindowMask + #define NSWindowStyleMaskResizable NSResizableWindowMask + #define NSWindowStyleMaskTitled NSTitledWindowMask + #define NSAlertStyleCritical NSCriticalAlertStyle + #define NSControlSizeRegular NSRegularControlSize + #define NSEventTypeMouseEntered NSMouseEntered + #define NSEventTypeMouseExited NSMouseExited + #define NSAlertStyleInformational NSInformationalAlertStyle + #define NSEventTypeTabletPoint NSTabletPoint + #define NSEventTypeTabletProximity NSTabletProximity + #endif #import #include #endif @@ -78,12 +120,14 @@ #pragma warning (push, 0) // disable all warnings whilst including system headers #endif + #define NOMINMAX + #define STRICT 1 #define WIN32_LEAN_AND_MEAN 1 #if JUCE_MINGW #define _WIN32_WINNT 0x0501 #else - #define _WIN32_WINNT 0x0600 + #define _WIN32_WINNT 0x0602 #endif #define _UNICODE 1 #define UNICODE 1 diff --git a/modules/juce_core/native/juce_android_Files.cpp b/modules/juce_core/native/juce_android_Files.cpp index 81701fe78e..6d5890c0e8 100644 --- a/modules/juce_core/native/juce_android_Files.cpp +++ b/modules/juce_core/native/juce_android_Files.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_android_JNIHelpers.h b/modules/juce_core/native/juce_android_JNIHelpers.h index ca3f056105..dfb637c547 100644 --- a/modules/juce_core/native/juce_android_JNIHelpers.h +++ b/modules/juce_core/native/juce_android_JNIHelpers.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_android_Misc.cpp b/modules/juce_core/native/juce_android_Misc.cpp index 3333112ebc..e49118437e 100644 --- a/modules/juce_core/native/juce_android_Misc.cpp +++ b/modules/juce_core/native/juce_android_Misc.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_android_Network.cpp b/modules/juce_core/native/juce_android_Network.cpp index ef7a3c75d2..83ba4dc9e4 100644 --- a/modules/juce_core/native/juce_android_Network.cpp +++ b/modules/juce_core/native/juce_android_Network.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -63,20 +65,47 @@ JUCE_API bool JUCE_CALLTYPE Process::openEmailWithAttachments (const String& tar return false; } +/* Pimpl (String address, bool isPost, const MemoryBlock& postData, + URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, + const String& headers, int timeOutMs, StringPairArray* responseHeaders, + const int numRedirectsToFollow, const String& httpRequest) + : statusCode (0) +*/ //============================================================================== -class WebInputStream : public InputStream +class WebInputStream::Pimpl { public: - WebInputStream (String address, bool isPost, const MemoryBlock& postData, - URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, - const String& headers, int timeOutMs, StringPairArray* responseHeaders, - const int numRedirectsToFollow, const String& httpRequest) - : statusCode (0) + Pimpl (WebInputStream& pimplOwner, const URL& urlToCopy, bool shouldBePost) + : statusCode (0), owner (pimplOwner), url (urlToCopy), isPost (shouldBePost), + numRedirectsToFollow (5), timeOutMs (0), httpRequest (isPost ? "POST" : "GET") + {} + + ~Pimpl() { + cancel(); + } + + void cancel() + { + if (stream != 0) + { + stream.callVoidMethod (HTTPStream.release); + stream.clear(); + } + } + + bool connect (WebInputStream::Listener* listener) + { + String address = url.toString (! isPost); + if (! address.contains ("://")) address = "http://" + address; + MemoryBlock postData; + if (isPost) + WebInputStream::createHeadersAndPostData (url, headers, postData); + JNIEnv* env = getEnv(); jbyteArray postDataArray = 0; @@ -126,36 +155,51 @@ public: headerLines.addLines (juceString (env, headersString)); } - if (responseHeaders != 0) + for (int i = 0; i < headerLines.size(); ++i) { - for (int i = 0; i < headerLines.size(); ++i) - { - const String& header = headerLines[i]; - const String key (header.upToFirstOccurrenceOf (": ", false, false)); - const String value (header.fromFirstOccurrenceOf (": ", false, false)); - const String previousValue ((*responseHeaders) [key]); + const String& header = headerLines[i]; + const String key (header.upToFirstOccurrenceOf (": ", false, false)); + const String value (header.fromFirstOccurrenceOf (": ", false, false)); + const String previousValue (responseHeaders[key]); - responseHeaders->set (key, previousValue.isEmpty() ? value : (previousValue + "," + value)); - } + responseHeaders.set (key, previousValue.isEmpty() ? value : (previousValue + "," + value)); } + + return true; } + + return false; } - ~WebInputStream() + //============================================================================== + // WebInputStream methods + void withExtraHeaders (const String& extraHeaders) { - if (stream != 0) - stream.callVoidMethod (HTTPStream.release); + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + + headers << extraHeaders; + + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; } + void withCustomRequestCommand (const String& customRequestCommand) { httpRequest = customRequestCommand; } + void withConnectionTimeout (int timeoutInMs) { timeOutMs = timeoutInMs; } + void withNumRedirectsToFollow (int maxRedirectsToFollow) { numRedirectsToFollow = maxRedirectsToFollow; } + StringPairArray getRequestHeaders() const { return WebInputStream::parseHttpHeaders (headers); } + StringPairArray getResponseHeaders() const { return responseHeaders; } + int getStatusCode() const { return statusCode; } + //============================================================================== bool isError() const { return stream == nullptr; } - bool isExhausted() override { return stream != nullptr && stream.callBooleanMethod (HTTPStream.isExhausted); } - int64 getTotalLength() override { return stream != nullptr ? stream.callLongMethod (HTTPStream.getTotalLength) : 0; } - int64 getPosition() override { return stream != nullptr ? stream.callLongMethod (HTTPStream.getPosition) : 0; } - bool setPosition (int64 wantedPos) override { return stream != nullptr && stream.callBooleanMethod (HTTPStream.setPosition, (jlong) wantedPos); } + bool isExhausted() { return stream != nullptr && stream.callBooleanMethod (HTTPStream.isExhausted); } + int64 getTotalLength() { return stream != nullptr ? stream.callLongMethod (HTTPStream.getTotalLength) : 0; } + int64 getPosition() { return stream != nullptr ? stream.callLongMethod (HTTPStream.getPosition) : 0; } + bool setPosition (int64 wantedPos) { return stream != nullptr && stream.callBooleanMethod (HTTPStream.setPosition, (jlong) wantedPos); } - int read (void* buffer, int bytesToRead) override + int read (void* buffer, int bytesToRead) { jassert (buffer != nullptr && bytesToRead >= 0); @@ -176,9 +220,21 @@ public: } //============================================================================== - GlobalRef stream; int statusCode; private: - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) + WebInputStream& owner; + const URL url; + bool isPost; + int numRedirectsToFollow, timeOutMs; + String httpRequest, headers; + StringPairArray responseHeaders; + + GlobalRef stream; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; + +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + return URL::DownloadTask::createFallbackDownloader (*this, targetLocation, extraHeaders, listener); +} diff --git a/modules/juce_core/native/juce_android_RuntimePermissions.cpp b/modules/juce_core/native/juce_android_RuntimePermissions.cpp index 4b75fbc7a2..403fdfaeb7 100644 --- a/modules/juce_core/native/juce_android_RuntimePermissions.cpp +++ b/modules/juce_core/native/juce_android_RuntimePermissions.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. + This file is part of the JUCE library. Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_android_SystemStats.cpp b/modules/juce_core/native/juce_android_SystemStats.cpp index 16e468bbc0..711f422a9d 100644 --- a/modules/juce_core/native/juce_android_SystemStats.cpp +++ b/modules/juce_core/native/juce_android_SystemStats.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_android_Threads.cpp b/modules/juce_core/native/juce_android_Threads.cpp index 0636fe5c48..1145dbc42b 100644 --- a/modules/juce_core/native/juce_android_Threads.cpp +++ b/modules/juce_core/native/juce_android_Threads.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_curl_Network.cpp b/modules/juce_core/native/juce_curl_Network.cpp index b32b4d1d0a..9b54feaf72 100644 --- a/modules/juce_core/native/juce_curl_Network.cpp +++ b/modules/juce_core/native/juce_curl_Network.cpp @@ -1,57 +1,50 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ -class WebInputStream : public InputStream +class WebInputStream::Pimpl { public: - WebInputStream (const String& address, bool isPost, const MemoryBlock& postData, - URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, - const String& headers, int timeOutMs, StringPairArray* responseHeaders, - const int maxRedirects, const String& httpRequest) - : multi (nullptr), curl (nullptr), headerList (nullptr), lastError (CURLE_OK), - contentLength (-1), streamPos (0), + Pimpl (WebInputStream& ownerStream, const URL& urlToCopy, bool shouldUsePost) + : owner (ownerStream), url (urlToCopy), + multi (nullptr), curl (nullptr), headerList (nullptr), lastError (CURLE_OK), + timeOutMs (0), maxRedirects (5), isPost (shouldUsePost), + httpRequest (isPost ? "POST" : "GET"), + contentLength (-1), streamPos (0), statusCode (-1), finished (false), skipBytes (0), - postBuffer (nullptr), postPosition (0) + postBuffer (nullptr), postPosition (0), listener (nullptr) { - statusCode = -1; - - if (init() && setOptions (address, timeOutMs, (responseHeaders != nullptr), - maxRedirects, headers, isPost, httpRequest, postData.getSize())) - { - connect (responseHeaders, isPost, postData, progressCallback, progressCallbackContext); - } - else - { + if (! init()) cleanup(); - } } - ~WebInputStream() + ~Pimpl() { cleanup(); } @@ -59,16 +52,16 @@ public: //============================================================================== // Input Stream overrides bool isError() const { return curl == nullptr || lastError != CURLE_OK; } - bool isExhausted() override { return (isError() || finished) && curlBuffer.getSize() == 0; } - int64 getPosition() override { return streamPos; } - int64 getTotalLength() override { return contentLength; } + bool isExhausted() { return (isError() || finished) && curlBuffer.getSize() == 0; } + int64 getPosition() { return streamPos; } + int64 getTotalLength() { return contentLength; } - int read (void* buffer, int bytesToRead) override + int read (void* buffer, int bytesToRead) { return readOrSkip (buffer, bytesToRead, false); } - bool setPosition (int64 wantedPos) override + bool setPosition (int64 wantedPos) { const int amountToSkip = static_cast (wantedPos - getPosition()); @@ -84,9 +77,25 @@ public: } //============================================================================== - int statusCode; + // WebInputStream methods + void withExtraHeaders (const String& extraHeaders) + { + if (! requestHeaders.endsWithChar ('\n') && requestHeaders.isNotEmpty()) + requestHeaders << "\r\n"; + + requestHeaders << extraHeaders; + + if (! requestHeaders.endsWithChar ('\n') && requestHeaders.isNotEmpty()) + requestHeaders << "\r\n"; + } + + void withCustomRequestCommand (const String& customRequestCommand) { httpRequest = customRequestCommand; } + void withConnectionTimeout (int timeoutInMs) { timeOutMs = timeoutInMs; } + void withNumRedirectsToFollow (int maxRedirectsToFollow) { maxRedirects = maxRedirectsToFollow; } + StringPairArray getRequestHeaders() const { return WebInputStream::parseHttpHeaders (requestHeaders); } + StringPairArray getResponseHeaders() const { return WebInputStream::parseHttpHeaders (responseHeaders); } + int getStatusCode() const { return statusCode; } -private: //============================================================================== bool init() { @@ -128,32 +137,45 @@ private: } } - //============================================================================== - bool setOptions (const String& address, int timeOutMs, bool wantsHeaders, - const int maxRedirects, const String& headers, - bool isPost, const String& httpRequest, size_t postSize) + void cancel() { + cleanup(); + } + + //============================================================================== + bool setOptions () + { + const String address = url.toString (! isPost); + curl_version_info_data* data = curl_version_info (CURLVERSION_NOW); jassert (data != nullptr); + if (! requestHeaders.endsWithChar ('\n')) + requestHeaders << "\r\n"; + + if (isPost) + WebInputStream::createHeadersAndPostData (url, requestHeaders, headersAndPostData); + + if (! requestHeaders.endsWithChar ('\n')) + requestHeaders << "\r\n"; + String userAgent = String ("curl/") + data->version; if (curl_easy_setopt (curl, CURLOPT_URL, address.toRawUTF8()) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_WRITEDATA, this) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, StaticCurlWrite) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_MAXREDIRS, static_cast (maxRedirects)) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_USERAGENT, userAgent.toRawUTF8()) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, (maxRedirects > 0 ? 1 : 0)) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_COOKIEFILE, "") == CURLE_OK) + && curl_easy_setopt (curl, CURLOPT_WRITEDATA, this) == CURLE_OK + && curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, StaticCurlWrite) == CURLE_OK + && curl_easy_setopt (curl, CURLOPT_MAXREDIRS, static_cast (maxRedirects)) == CURLE_OK + && curl_easy_setopt (curl, CURLOPT_USERAGENT, userAgent.toRawUTF8()) == CURLE_OK + && curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, (maxRedirects > 0 ? 1 : 0)) == CURLE_OK) { if (isPost) { if (curl_easy_setopt (curl, CURLOPT_READDATA, this) != CURLE_OK - || curl_easy_setopt (curl, CURLOPT_READFUNCTION, StaticCurlRead) != CURLE_OK) + || curl_easy_setopt (curl, CURLOPT_READFUNCTION, StaticCurlRead) != CURLE_OK) return false; if (curl_easy_setopt (curl, CURLOPT_POST, 1) != CURLE_OK - || curl_easy_setopt (curl, CURLOPT_POSTFIELDSIZE_LARGE, static_cast (postSize)) != CURLE_OK) + || curl_easy_setopt (curl, CURLOPT_POSTFIELDSIZE_LARGE, static_cast (headersAndPostData.getSize())) != CURLE_OK) return false; } @@ -165,39 +187,17 @@ private: return false; } - // do we want to parse the headers - if (wantsHeaders) - { - if (curl_easy_setopt (curl, CURLOPT_HEADERDATA, this) != CURLE_OK - || curl_easy_setopt (curl, CURLOPT_HEADERFUNCTION, StaticCurlHeader) != CURLE_OK) - return false; - } - - if (headers.isNotEmpty()) - { - const StringArray headerLines = StringArray::fromLines (headers); - - // fromLines will always return at least one line if the string is not empty - jassert (headerLines.size() > 0); - headerList = curl_slist_append (headerList, headerLines [0].toRawUTF8()); - - for (int i = 1; (i < headerLines.size() && headerList != nullptr); ++i) - headerList = curl_slist_append (headerList, headerLines [i].toRawUTF8()); - - if (headerList == nullptr) - return false; - - if (curl_easy_setopt (curl, CURLOPT_HTTPHEADER, headerList) != CURLE_OK) - return false; - } + if (curl_easy_setopt (curl, CURLOPT_HEADERDATA, this) != CURLE_OK + || curl_easy_setopt (curl, CURLOPT_HEADERFUNCTION, StaticCurlHeader) != CURLE_OK) + return false; if (timeOutMs > 0) { long timeOutSecs = ((long) timeOutMs + 999) / 1000; if (curl_easy_setopt (curl, CURLOPT_CONNECTTIMEOUT, timeOutSecs) != CURLE_OK - || curl_easy_setopt (curl, CURLOPT_LOW_SPEED_LIMIT, 100) != CURLE_OK - || curl_easy_setopt (curl, CURLOPT_LOW_SPEED_TIME, timeOutSecs) != CURLE_OK) + || curl_easy_setopt (curl, CURLOPT_LOW_SPEED_LIMIT, 100) != CURLE_OK + || curl_easy_setopt (curl, CURLOPT_LOW_SPEED_TIME, timeOutSecs) != CURLE_OK) return false; } @@ -207,11 +207,42 @@ private: return false; } - void connect (StringPairArray* responseHeaders, bool isPost, const MemoryBlock& postData, - URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext) + bool connect (WebInputStream::Listener* webInputListener) { + if (! setOptions ()) + { + cleanup(); + return false; + } + + listener = webInputListener; + + if (requestHeaders.isNotEmpty()) + { + const StringArray headerLines = StringArray::fromLines (requestHeaders); + + // fromLines will always return at least one line if the string is not empty + jassert (headerLines.size() > 0); + headerList = curl_slist_append (headerList, headerLines [0].toRawUTF8()); + + for (int i = 1; (i < headerLines.size() && headerList != nullptr); ++i) + headerList = curl_slist_append (headerList, headerLines [i].toRawUTF8()); + + if (headerList == nullptr) + { + cleanup(); + return false; + } + + if (curl_easy_setopt (curl, CURLOPT_HTTPHEADER, headerList) != CURLE_OK) + { + cleanup(); + return false; + } + } + if (isPost) - postBuffer = &postData; + postBuffer = &headersAndPostData; size_t lastPos = static_cast (-1); @@ -222,17 +253,15 @@ private: singleStep(); // call callbacks if this is a post request - if (isPost && progressCallback != nullptr && lastPos != postPosition) + if (isPost && listener != nullptr && lastPos != postPosition) { lastPos = postPosition; - if (! progressCallback (progressCallbackContext, - static_cast (lastPos), - static_cast (postData.getSize()))) + if (! listener->postDataSendProgress (owner, static_cast (lastPos), static_cast (headersAndPostData.getSize()))) { // user has decided to abort the transaction cleanup(); - return; + return false; } } } @@ -241,14 +270,12 @@ private: if (curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &responseCode) == CURLE_OK) statusCode = static_cast (responseCode); - // parse headers - if (responseHeaders != nullptr) - parseHttpHeaders (*responseHeaders); - // get content length size double curlLength; if (curl_easy_getinfo (curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &curlLength) == CURLE_OK) contentLength = static_cast (curlLength); + + return true; } void finish() @@ -380,28 +407,6 @@ private: return static_cast (pos); } - - //============================================================================== - void parseHttpHeaders (StringPairArray& responseHeaders) - { - StringArray headerLines = StringArray::fromLines (curlHeaders); - - // ignore the first line as this is the status line - for (int i = 1; i < headerLines.size(); ++i) - { - const String& headersEntry = headerLines[i]; - - if (headersEntry.isNotEmpty()) - { - const String key (headersEntry.upToFirstOccurrenceOf (": ", false, false)); - const String value (headersEntry.fromFirstOccurrenceOf (": ", false, false)); - const String previousValue (responseHeaders [key]); - responseHeaders.set (key, previousValue.isEmpty() ? value : (previousValue + "," + value)); - } - } - } - - //============================================================================== // CURL callbacks size_t curlWriteCallback (char* ptr, size_t size, size_t nmemb) @@ -445,9 +450,9 @@ private: String header (ptr, len); if (! header.contains (":") && header.startsWithIgnoreCase ("HTTP/")) - curlHeaders.clear(); + responseHeaders.clear(); else - curlHeaders += header; + responseHeaders += header; return len; } @@ -457,33 +462,49 @@ private: // Static method wrappers static size_t StaticCurlWrite (char* ptr, size_t size, size_t nmemb, void* userdata) { - WebInputStream* wi = reinterpret_cast (userdata); + WebInputStream::Pimpl* wi = reinterpret_cast (userdata); return wi->curlWriteCallback (ptr, size, nmemb); } static size_t StaticCurlRead (char* ptr, size_t size, size_t nmemb, void* userdata) { - WebInputStream* wi = reinterpret_cast (userdata); + WebInputStream::Pimpl* wi = reinterpret_cast (userdata); return wi->curlReadCallback (ptr, size, nmemb); } static size_t StaticCurlHeader (char* ptr, size_t size, size_t nmemb, void* userdata) { - WebInputStream* wi = reinterpret_cast (userdata); + WebInputStream::Pimpl* wi = reinterpret_cast (userdata); return wi->curlHeaderCallback (ptr, size, nmemb); } -private: + //============================================================================== + WebInputStream& owner; + const URL url; + + //============================================================================== + // curl stuff CURLM* multi; CURL* curl; struct curl_slist* headerList; int lastError; + //============================================================================== + // Options + int timeOutMs; + int maxRedirects; + const bool isPost; + String httpRequest; + //============================================================================== // internal buffers and buffer positions int64 contentLength, streamPos; MemoryBlock curlBuffer; - String curlHeaders; + MemoryBlock headersAndPostData; + String responseHeaders, requestHeaders; + int statusCode; + + //============================================================================== bool finished; size_t skipBytes; @@ -492,5 +513,14 @@ private: const MemoryBlock* postBuffer; size_t postPosition; - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) + //============================================================================== + WebInputStream::Listener* listener; + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; + +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + return URL::DownloadTask::createFallbackDownloader (*this, targetLocation, extraHeaders, listener); +} diff --git a/modules/juce_core/native/juce_linux_CommonFile.cpp b/modules/juce_core/native/juce_linux_CommonFile.cpp index 31117cd991..d230f6fc03 100644 --- a/modules/juce_core/native/juce_linux_CommonFile.cpp +++ b/modules/juce_core/native/juce_linux_CommonFile.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_linux_Files.cpp b/modules/juce_core/native/juce_linux_Files.cpp index 924966433f..ce6a764c1a 100644 --- a/modules/juce_core/native/juce_linux_Files.cpp +++ b/modules/juce_core/native/juce_linux_Files.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -202,9 +204,9 @@ bool Process::openDocument (const String& fileName, const String& parameters) String cmdString (fileName.replace (" ", "\\ ",false)); cmdString << " " << parameters; - if (URL::isProbablyAWebsiteURL (fileName) - || cmdString.startsWithIgnoreCase ("file:") - || URL::isProbablyAnEmailAddress (fileName) + if (/*URL::isProbablyAWebsiteURL (fileName) + ||*/ cmdString.startsWithIgnoreCase ("file:") + /*|| URL::isProbablyAnEmailAddress (fileName)*/ || File::createFileWithoutCheckingPath (fileName).isDirectory() || ! isFileExecutable (fileName)) { diff --git a/modules/juce_core/native/juce_linux_Network.cpp b/modules/juce_core/native/juce_linux_Network.cpp index 6401ca070a..916a0ec5dd 100644 --- a/modules/juce_core/native/juce_linux_Network.cpp +++ b/modules/juce_core/native/juce_linux_Network.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -69,45 +71,90 @@ bool JUCE_CALLTYPE Process::openEmailWithAttachments (const String& /* targetEma //============================================================================== #if ! JUCE_USE_CURL -class WebInputStream : public InputStream +class WebInputStream::Pimpl { public: - WebInputStream (const String& address_, bool isPost_, const MemoryBlock& postData_, + /* WebInputStream (const String& address_, bool isPost_, const MemoryBlock& postData_, URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, const String& headers_, int timeOutMs_, StringPairArray* responseHeaders, const int maxRedirects, const String& httpRequestCmd_) : statusCode (0), socketHandle (-1), levelsOfRedirection (0), address (address_), headers (headers_), postData (postData_), contentLength (-1), position (0), finished (false), isPost (isPost_), timeOutMs (timeOutMs_), numRedirectsToFollow (maxRedirects), - httpRequestCmd (httpRequestCmd_), chunkEnd (0), isChunked (false), readingChunk (false) - { - statusCode = createConnection (progressCallback, progressCallbackContext, numRedirectsToFollow); + httpRequestCmd (httpRequestCmd_), chunkEnd (0), isChunked (false), readingChunk (false)*/ + Pimpl (WebInputStream& pimplOwner, const URL& urlToCopy, const bool shouldUsePost) + : statusCode (0), owner (pimplOwner), url (urlToCopy), socketHandle (-1), levelsOfRedirection (0), + contentLength (-1), position (0), finished (false), isPost (shouldUsePost), timeOutMs (0), + numRedirectsToFollow (5), httpRequestCmd (shouldUsePost ? "POST" : "GET"), chunkEnd (0), + isChunked (false), readingChunk (false) + {} - if (responseHeaders != nullptr && ! isError()) + ~Pimpl() + { + closeSocket(); + } + + //============================================================================== + // WebInputStream methods + void withExtraHeaders (const String& extraHeaders) + { + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + + headers << extraHeaders; + + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + } + + void withCustomRequestCommand (const String& customRequestCommand) { httpRequestCmd = customRequestCommand; } + void withConnectionTimeout (int timeoutInMs) { timeOutMs = timeoutInMs; } + void withNumRedirectsToFollow (int maxRedirectsToFollow) { numRedirectsToFollow = maxRedirectsToFollow; } + StringPairArray getRequestHeaders() const { return WebInputStream::parseHttpHeaders (headers); } + + StringPairArray getResponseHeaders() const + { + StringPairArray responseHeaders; + if (! isError()) { for (int i = 0; i < headerLines.size(); ++i) { const String& headersEntry = headerLines[i]; const String key (headersEntry.upToFirstOccurrenceOf (": ", false, false)); const String value (headersEntry.fromFirstOccurrenceOf (": ", false, false)); - const String previousValue ((*responseHeaders) [key]); - responseHeaders->set (key, previousValue.isEmpty() ? value : (previousValue + "," + value)); + const String previousValue (responseHeaders [key]); + responseHeaders.set (key, previousValue.isEmpty() ? value : (previousValue + "," + value)); } } + + return responseHeaders; } - ~WebInputStream() + int getStatusCode() const { return statusCode; } + + bool connect (WebInputStream::Listener* listener) { + address = url.toString (! isPost); + statusCode = createConnection (listener, numRedirectsToFollow); + + return (statusCode != 0); + } + + void cancel() + { + statusCode = -1; + finished = true; + closeSocket(); } - //============================================================================== + //==============================================================================w bool isError() const { return socketHandle < 0; } - bool isExhausted() override { return finished; } - int64 getPosition() override { return position; } - int64 getTotalLength() override { return contentLength; } + bool isExhausted() { return finished; } + int64 getPosition() { return position; } + int64 getTotalLength() { return contentLength; } - int read (void* buffer, int bytesToRead) override + int read (void* buffer, int bytesToRead) { if (finished || isError()) return 0; @@ -183,7 +230,7 @@ public: return bytesRead; } - bool setPosition (int64 wantedPos) override + bool setPosition (int64 wantedPos) { if (isError()) return false; @@ -193,13 +240,14 @@ public: finished = false; if (wantedPos < position) - { - closeSocket(); - position = 0; - statusCode = createConnection (0, 0, numRedirectsToFollow); - } + return false; - skipNextBytes (wantedPos - position); + int64 numBytesToSkip = wantedPos - position; + const int skipBufferSize = (int) jmin (numBytesToSkip, (int64) 16384); + HeapBlock temp ((size_t) skipBufferSize); + + while (numBytesToSkip > 0 && ! isExhausted()) + numBytesToSkip -= read (temp, (int) jmin (numBytesToSkip, (int64) skipBufferSize)); } return true; @@ -209,6 +257,8 @@ public: int statusCode; private: + WebInputStream& owner; + URL url; int socketHandle, levelsOfRedirection; StringArray headerLines; String address, headers; @@ -216,8 +266,8 @@ private: int64 contentLength, position; bool finished; const bool isPost; - const int timeOutMs; - const int numRedirectsToFollow; + int timeOutMs; + int numRedirectsToFollow; String httpRequestCmd; int64 chunkEnd; bool isChunked, readingChunk; @@ -232,16 +282,19 @@ private: levelsOfRedirection = 0; } - int createConnection (URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, - const int numRedirects) + int createConnection (WebInputStream::Listener* listener, const int numRedirects) { closeSocket (false); + if (isPost) + WebInputStream::createHeadersAndPostData (url, headers, postData); + uint32 timeOutTime = Time::getMillisecondCounter(); if (timeOutMs == 0) - timeOutTime += 30000; - else if (timeOutMs < 0) + timeOutMs = 30000; + + if (timeOutMs < 0) timeOutTime = 0xffffffff; else timeOutTime += (uint32) timeOutMs; @@ -297,7 +350,7 @@ private: setsockopt (socketHandle, SOL_SOCKET, SO_NOSIGPIPE, 0, 0); #endif - if (connect (socketHandle, result->ai_addr, result->ai_addrlen) == -1) + if (::connect (socketHandle, result->ai_addr, result->ai_addrlen) == -1) { closeSocket(); freeaddrinfo (result); @@ -310,8 +363,7 @@ private: const MemoryBlock requestHeader (createRequestHeader (hostName, hostPort, proxyName, proxyPort, hostPath, address, headers, postData, isPost, httpRequestCmd)); - if (! sendHeader (socketHandle, requestHeader, timeOutTime, - progressCallback, progressCallbackContext)) + if (! sendHeader (socketHandle, requestHeader, timeOutTime, owner, listener)) { closeSocket(); return 0; @@ -346,7 +398,7 @@ private: } address = location; - return createConnection (progressCallback, progressCallbackContext, numRedirects); + return createConnection (listener, numRedirects); } String contentLengthString (findHeaderItem (headerLines, "Content-Length:")); @@ -443,7 +495,7 @@ private: } static bool sendHeader (int socketHandle, const MemoryBlock& requestHeader, const uint32 timeOutTime, - URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext) + WebInputStream& pimplOwner, WebInputStream::Listener* listener) { size_t totalHeaderSent = 0; @@ -459,7 +511,7 @@ private: totalHeaderSent += (size_t) numToSend; - if (progressCallback != nullptr && ! progressCallback (progressCallbackContext, (int) totalHeaderSent, (int) requestHeader.getSize())) + if (listener != nullptr && ! listener->postDataSendProgress (pimplOwner, (int) totalHeaderSent, (int) requestHeader.getSize())) return false; } @@ -512,6 +564,11 @@ private: return String(); } - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; + +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + return URL::DownloadTask::createFallbackDownloader (*this, targetLocation, extraHeaders, listener); +} #endif diff --git a/modules/juce_core/native/juce_linux_SystemStats.cpp b/modules/juce_core/native/juce_linux_SystemStats.cpp index b7665f825a..b21d1689fe 100644 --- a/modules/juce_core/native/juce_linux_SystemStats.cpp +++ b/modules/juce_core/native/juce_linux_SystemStats.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_linux_Threads.cpp b/modules/juce_core/native/juce_linux_Threads.cpp index 465acee8df..938f8af941 100644 --- a/modules/juce_core/native/juce_linux_Threads.cpp +++ b/modules/juce_core/native/juce_linux_Threads.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_mac_ClangBugWorkaround.h b/modules/juce_core/native/juce_mac_ClangBugWorkaround.h index 8f478e0490..c28184fade 100644 --- a/modules/juce_core/native/juce_mac_ClangBugWorkaround.h +++ b/modules/juce_core/native/juce_mac_ClangBugWorkaround.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_mac_Files.mm b/modules/juce_core/native/juce_mac_Files.mm index 35d8629fcc..91e3d1ede6 100644 --- a/modules/juce_core/native/juce_mac_Files.mm +++ b/modules/juce_core/native/juce_mac_Files.mm @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -58,7 +60,7 @@ void File::findFileSystemRoots (Array& destArray) //============================================================================== -namespace FileHelpers +namespace MacFileHelpers { static bool isFileOnDriveType (const File& f, const char* const* types) { @@ -134,14 +136,14 @@ bool File::isOnCDRomDrive() const { static const char* const cdTypes[] = { "cd9660", "cdfs", "cddafs", "udf", nullptr }; - return FileHelpers::isFileOnDriveType (*this, cdTypes); + return MacFileHelpers::isFileOnDriveType (*this, cdTypes); } bool File::isOnHardDisk() const { static const char* const nonHDTypes[] = { "nfs", "smbfs", "ramfs", nullptr }; - return ! (isOnCDRomDrive() || FileHelpers::isFileOnDriveType (*this, nonHDTypes)); + return ! (isOnCDRomDrive() || MacFileHelpers::isFileOnDriveType (*this, nonHDTypes)); } bool File::isOnRemovableDrive() const @@ -168,7 +170,7 @@ bool File::isOnRemovableDrive() const bool File::isHidden() const { - return FileHelpers::isHiddenFile (getFullPathName()); + return MacFileHelpers::isHiddenFile (getFullPathName()); } //============================================================================== @@ -186,12 +188,12 @@ File File::getSpecialLocation (const SpecialLocationType type) case userHomeDirectory: resultPath = nsStringToJuce (NSHomeDirectory()); break; #if JUCE_IOS - case userDocumentsDirectory: resultPath = FileHelpers::getIOSSystemLocation (NSDocumentDirectory); break; - case userDesktopDirectory: resultPath = FileHelpers::getIOSSystemLocation (NSDesktopDirectory); break; + case userDocumentsDirectory: resultPath = MacFileHelpers::getIOSSystemLocation (NSDocumentDirectory); break; + case userDesktopDirectory: resultPath = MacFileHelpers::getIOSSystemLocation (NSDesktopDirectory); break; case tempDirectory: { - File tmp (FileHelpers::getIOSSystemLocation (NSCachesDirectory)); + File tmp (MacFileHelpers::getIOSSystemLocation (NSCachesDirectory)); tmp = tmp.getChildFile (juce_getExecutableFile().getFileNameWithoutExtension()); tmp.createDirectory(); return tmp.getFullPathName(); @@ -360,7 +362,7 @@ public: updateStatInfoForFile (fullPath, isDir, fileSize, modTime, creationTime, isReadOnly); if (isHidden != nullptr) - *isHidden = FileHelpers::isHiddenFile (fullPath); + *isHidden = MacFileHelpers::isHiddenFile (fullPath); return true; } @@ -441,7 +443,7 @@ bool JUCE_CALLTYPE Process::openDocument (const String& fileName, const String& } if (file.exists()) - return FileHelpers::launchExecutable ("\"" + fileName + "\" " + parameters); + return MacFileHelpers::launchExecutable ("\"" + fileName + "\" " + parameters); return false; #endif diff --git a/modules/juce_core/native/juce_mac_Network.mm b/modules/juce_core/native/juce_mac_Network.mm index 7389427244..3b7b5b5f5f 100644 --- a/modules/juce_core/native/juce_mac_Network.mm +++ b/modules/juce_core/native/juce_mac_Network.mm @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -150,14 +152,20 @@ public: [data release]; } - bool start (URL::OpenStreamProgressCallback* callback, void* context) + void cancel() + { + signalThreadShouldExit(); + stopThread (10000); + } + + bool start (WebInputStream& inputStream, WebInputStream::Listener* listener) { startThread(); while (isThreadRunning() && ! initialised) { - if (callback != nullptr) - if (! callback (context, (int) latestTotalBytes, (int) [[request HTTPBody] length])) + if (listener != nullptr) + if (! listener->postDataSendProgress (inputStream, (int) latestTotalBytes, (int) [[request HTTPBody] length])) return false; Thread::sleep (1); @@ -369,6 +377,270 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (URLConnectionState) }; +//============================================================================== +#if JUCE_IOS +struct BackgroundDownloadTask : public URL::DownloadTask +{ + BackgroundDownloadTask (const URL& urlToUse, + const File& targetLocationToUse, + String extraHeadersToUse, + URL::DownloadTask::Listener* listenerToUse) + : targetLocation (targetLocationToUse), listener (listenerToUse), + delegate (nullptr), session (nullptr), downloadTask (nullptr), + connectFinished (false), hasBeenDestroyed (false), calledComplete (0), + uniqueIdentifier (String (urlToUse.toString (true).hashCode64()) + String (Random().nextInt64())) + { + downloaded = -1; + + static DelegateClass cls; + delegate = [cls.createInstance() init]; + DelegateClass::setState (delegate, this); + + activeSessions.set (uniqueIdentifier, this); + NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:juceStringToNS (urlToUse.toString (true))]]; + + StringArray headerLines; + headerLines.addLines (extraHeadersToUse); + headerLines.removeEmptyStrings (true); + + for (int i = 0; i < headerLines.size(); ++i) + { + String key = headerLines[i].upToFirstOccurrenceOf (":", false, false).trim(); + String value = headerLines[i].fromFirstOccurrenceOf (":", false, false).trim(); + + if (key.isNotEmpty() && value.isNotEmpty()) + [request addValue: juceStringToNS (value) forHTTPHeaderField: juceStringToNS (key)]; + } + + session = + [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:juceStringToNS (uniqueIdentifier)] + delegate:delegate + delegateQueue:nullptr]; + + if (session != nullptr) + downloadTask = [session downloadTaskWithRequest:request]; + + [request release]; + } + + ~BackgroundDownloadTask() + { + activeSessions.remove (uniqueIdentifier); + + if (httpCode != -1) + httpCode = 500; + + finished = true; + connectionEvent.signal(); + + [session invalidateAndCancel]; + while (! hasBeenDestroyed) + destroyEvent.wait(); + + [delegate release]; + } + + bool initOK() + { + return (downloadTask != nullptr); + } + + bool connect() + { + [downloadTask resume]; + while (downloaded == -1 && finished == false) + connectionEvent.wait(); + + connectFinished = true; + return ! error; + } + + //============================================================================== + File targetLocation; + URL::DownloadTask::Listener* listener; + NSObject* delegate; + NSURLSession* session; + NSURLSessionDownloadTask* downloadTask; + bool connectFinished, hasBeenDestroyed; + Atomic calledComplete; + WaitableEvent connectionEvent, destroyEvent; + String uniqueIdentifier; + + static HashMap activeSessions; + + void didWriteData (int64 totalBytesWritten, int64 totalBytesExpectedToWrite) + { + downloaded = totalBytesWritten; + + if (contentLength == -1) + contentLength = totalBytesExpectedToWrite; + + if (connectFinished && error == false && finished == false && listener != nullptr) + listener->progress (this, totalBytesWritten, contentLength); + + connectionEvent.signal(); + } + + void didFinishDownloadingToURL (NSURL* location) + { + NSFileManager* fileManager = [[NSFileManager alloc] init]; + error = ([fileManager moveItemAtURL:location + toURL:[NSURL fileURLWithPath:juceStringToNS (targetLocation.getFullPathName())] + error:nullptr] == NO); + httpCode = 200; + finished = true; + + connectionEvent.signal(); + + if (listener != nullptr && calledComplete.exchange (1) == 0) + { + if (contentLength > 0 && downloaded < contentLength) + { + downloaded = contentLength; + listener->progress (this, downloaded, contentLength); + } + + listener->finished (this, !error); + } + } + + void didCompleteWithError (NSError* nsError) + { + if (calledComplete.exchange (1) == 0) + { + httpCode = -1; + + if (nsError != nullptr) + { + // see https://developer.apple.com/reference/foundation/nsurlsessiondownloadtask?language=objc + switch ([nsError code]) + { + case NSURLErrorUserAuthenticationRequired: + httpCode = 401; + break; + case NSURLErrorNoPermissionsToReadFile: + httpCode = 403; + break; + case NSURLErrorFileDoesNotExist: + httpCode = 404; + break; + default: + httpCode = 500; + } + } + + error = true; + finished = true; + + if (listener != nullptr) + listener->finished (this, ! error); + } + + connectionEvent.signal(); + } + + void didBecomeInvalidWithError() + { + hasBeenDestroyed = true; + destroyEvent.signal(); + } + + //============================================================================== + void notify() + { + if (downloadTask == nullptr) return; + + if (NSError* error = [downloadTask error]) + { + didCompleteWithError (error); + } + else + { + const int64 contentLength = [downloadTask countOfBytesExpectedToReceive]; + + if ([downloadTask state] == NSURLSessionTaskStateCompleted) + didWriteData (contentLength, contentLength); + else + didWriteData ([downloadTask countOfBytesReceived], contentLength); + } + } + + static void invokeNotify (const String& identifier) + { + ScopedLock lock (activeSessions.getLock()); + + if (BackgroundDownloadTask* task = activeSessions[identifier]) + task->notify(); + } + + //============================================================================== + struct DelegateClass : public ObjCClass > + { + DelegateClass() : ObjCClass > ("JUCE_URLDelegate_") + { + addIvar ("state"); + + addMethod (@selector (URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:), + didWriteData, "v@:@@qqq"); + addMethod (@selector (URLSession:downloadTask:didFinishDownloadingToURL:), + didFinishDownloadingToURL, "v@:@@@"); + addMethod (@selector (URLSession:task:didCompleteWithError:), + didCompleteWithError, "v@:@@@"); + addMethod (@selector (URLSession:didBecomeInvalidWithError:), + didBecomeInvalidWithError, "v@:@@@"); + + registerClass(); + } + + static void setState (id self, BackgroundDownloadTask* state) { object_setInstanceVariable (self, "state", state); } + static BackgroundDownloadTask* getState (id self) { return getIvar (self, "state"); } + + private: + static void didWriteData (id self, SEL, NSURLSession*, NSURLSessionDownloadTask*, int64_t, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) + { + if (auto state = getState (self)) state->didWriteData (totalBytesWritten, totalBytesExpectedToWrite); + } + + static void didFinishDownloadingToURL (id self, SEL, NSURLSession*, NSURLSessionDownloadTask*, NSURL* location) + { + if (auto state = getState (self)) state->didFinishDownloadingToURL (location); + } + + static void didCompleteWithError (id self, SEL, NSURLSession*, NSURLSessionTask*, NSError* nsError) + { + if (auto state = getState (self)) state->didCompleteWithError (nsError); + } + + static void didBecomeInvalidWithError (id self, SEL, NSURLSession*, NSURLSessionTask*, NSError*) + { + if (auto state = getState (self)) state->didBecomeInvalidWithError (); + } + }; +}; + +HashMap BackgroundDownloadTask::activeSessions; + +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + ScopedPointer downloadTask = new BackgroundDownloadTask (*this, targetLocation, extraHeaders, listener); + + if (downloadTask->initOK() && downloadTask->connect()) + return downloadTask.release(); + + return nullptr; +} + +void URL::DownloadTask::juce_iosURLSessionNotify (const String& identifier) +{ + BackgroundDownloadTask::invokeNotify (identifier); +} +#else +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + return URL::DownloadTask::createFallbackDownloader (*this, targetLocation, extraHeaders, listener); +} +#endif + //============================================================================== #else @@ -415,14 +687,14 @@ public: [data release]; } - bool start (URL::OpenStreamProgressCallback* callback, void* context) + bool start (WebInputStream& inputStream, WebInputStream::Listener* listener) { startThread(); while (isThreadRunning() && ! initialised) { - if (callback != nullptr) - if (! callback (context, latestTotalBytes, (int) [[request HTTPBody] length])) + if (listener != nullptr) + if (! listener->postDataSendProgress (inputStream, latestTotalBytes, (int) [[request HTTPBody] length])) return false; Thread::sleep (1); @@ -441,6 +713,12 @@ public: stopThread (10000); } + void cancel() + { + hasFinished = hasFailed = true; + stop(); + } + int read (char* dest, int numBytes) { int numDone = 0; @@ -618,55 +896,96 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (URLConnectionState) }; +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + return URL::DownloadTask::createFallbackDownloader (*this, targetLocation, extraHeaders, listener); +} + #pragma clang diagnostic pop #endif //============================================================================== -class WebInputStream : public InputStream +class WebInputStream::Pimpl { public: - WebInputStream (const String& address_, bool isPost_, const MemoryBlock& postData_, - URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, - const String& headers_, int timeOutMs_, StringPairArray* responseHeaders, - const int numRedirectsToFollow_, const String& httpRequestCmd_) - : statusCode (0), address (address_), headers (headers_), postData (postData_), position (0), - finished (false), isPost (isPost_), timeOutMs (timeOutMs_), - numRedirectsToFollow (numRedirectsToFollow_), httpRequestCmd (httpRequestCmd_) + Pimpl (WebInputStream& pimplOwner, const URL& urlToUse, bool shouldBePost) + : statusCode (0), owner (pimplOwner), url (urlToUse), position (0), + finished (false), isPost (shouldBePost), timeOutMs (0), + numRedirectsToFollow (5), httpRequestCmd (shouldBePost ? "POST" : "GET") { - JUCE_AUTORELEASEPOOL - { - createConnection (progressCallback, progressCallbackContext); - - if (connection != nullptr && connection->headers != nil) - { - statusCode = connection->statusCode; - - if (responseHeaders != nullptr) - { - NSEnumerator* enumerator = [connection->headers keyEnumerator]; - - while (NSString* key = [enumerator nextObject]) - responseHeaders->set (nsStringToJuce (key), - nsStringToJuce ((NSString*) [connection->headers objectForKey: key])); - } - } - } } - ~WebInputStream() + ~Pimpl() { connection = nullptr; } + bool connect (WebInputStream::Listener* webInputListener, int numRetries = 0) + { + ignoreUnused (numRetries); + createConnection(); + + if (! connection->start (owner, webInputListener)) + { + // Workaround for deployment targets below 10.10 where HTTPS POST requests with keep-alive fail with the NSURLErrorNetworkConnectionLost error code. + #if ! (JUCE_IOS || (defined (__MAC_OS_X_VERSION_MIN_REQUIRED) && defined (__MAC_10_10) && __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10)) + if (numRetries == 0 && connection->nsUrlErrorCode == NSURLErrorNetworkConnectionLost) + { + connection = nullptr; + return connect (webInputListener, ++numRetries); + } + #endif + + connection = nullptr; + return false; + } + + if (connection != nullptr && connection->headers != nil) + { + statusCode = connection->statusCode; + + NSEnumerator* enumerator = [connection->headers keyEnumerator]; + + while (NSString* key = [enumerator nextObject]) + responseHeaders.set (nsStringToJuce (key), + nsStringToJuce ((NSString*) [connection->headers objectForKey: key])); + + return true; + } + + return false; + } + + //============================================================================== + // WebInputStream methods + void withExtraHeaders (const String& extraHeaders) + { + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + + headers << extraHeaders; + + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + } + + void withCustomRequestCommand (const String& customRequestCommand) { httpRequestCmd = customRequestCommand; } + void withConnectionTimeout (int timeoutInMs) { timeOutMs = timeoutInMs; } + void withNumRedirectsToFollow (int maxRedirectsToFollow) { numRedirectsToFollow = maxRedirectsToFollow; } + StringPairArray getRequestHeaders() const { return WebInputStream::parseHttpHeaders (headers); } + StringPairArray getResponseHeaders() const { return responseHeaders; } + int getStatusCode() const { return statusCode; } + + //============================================================================== bool isError() const { return (connection == nullptr || connection->headers == nullptr); } - int64 getTotalLength() override { return connection == nullptr ? -1 : connection->contentLength; } - bool isExhausted() override { return finished; } - int64 getPosition() override { return position; } + int64 getTotalLength() { return connection == nullptr ? -1 : connection->contentLength; } + bool isExhausted() { return finished; } + int64 getPosition() { return position; } - int read (void* buffer, int bytesToRead) override + int read (void* buffer, int bytesToRead) { jassert (buffer != nullptr && bytesToRead >= 0); @@ -685,48 +1004,67 @@ public: } } - bool setPosition (int64 wantedPos) override + bool setPosition (int64 wantedPos) { if (wantedPos != position) { finished = false; if (wantedPos < position) - { - connection = nullptr; - position = 0; - createConnection (0, 0); - } + return false; - skipNextBytes (wantedPos - position); + int64 numBytesToSkip = wantedPos - position; + const int skipBufferSize = (int) jmin (numBytesToSkip, (int64) 16384); + HeapBlock temp ((size_t) skipBufferSize); + + while (numBytesToSkip > 0 && ! isExhausted()) + numBytesToSkip -= read (temp, (int) jmin (numBytesToSkip, (int64) skipBufferSize)); } return true; } + void cancel() + { + if (connection != nullptr) + connection->cancel(); + } + int statusCode; private: + WebInputStream& owner; + const URL& url; ScopedPointer connection; - String address, headers; + String headers; MemoryBlock postData; int64 position; bool finished; const bool isPost; - const int timeOutMs; - const int numRedirectsToFollow; + int timeOutMs; + int numRedirectsToFollow; String httpRequestCmd; + StringPairArray responseHeaders; - void createConnection (URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext) + void createConnection() { jassert (connection == nullptr); - if (NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: juceStringToNS (address)] + if (NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: juceStringToNS (url.toString (! isPost))] cachePolicy: NSURLRequestReloadIgnoringLocalCacheData timeoutInterval: timeOutMs <= 0 ? 60.0 : (timeOutMs / 1000.0)]) { [req setHTTPMethod: [NSString stringWithUTF8String: httpRequestCmd.toRawUTF8()]]; + if (isPost) + { + WebInputStream::createHeadersAndPostData (url, headers, postData); + + if (postData.getSize() > 0) + [req setHTTPBody: [NSData dataWithBytes: postData.getData() + length: postData.getSize()]]; + } + StringArray headerLines; headerLines.addLines (headers); headerLines.removeEmptyStrings (true); @@ -740,29 +1078,9 @@ private: [req addValue: juceStringToNS (value) forHTTPHeaderField: juceStringToNS (key)]; } - if (isPost && postData.getSize() > 0) - [req setHTTPBody: [NSData dataWithBytes: postData.getData() - length: postData.getSize()]]; - connection = new URLConnectionState (req, numRedirectsToFollow); - - if (! connection->start (progressCallback, progressCallbackContext)) - { - // Workaround for deployment targets below 10.10 where HTTPS POST requests with keep-alive fail with the NSURLErrorNetworkConnectionLost error code - #if ! (JUCE_IOS || (defined (__MAC_OS_X_VERSION_MIN_REQUIRED) && defined (__MAC_10_10) && __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10)) - if (connection->nsUrlErrorCode == NSURLErrorNetworkConnectionLost) - { - connection = new URLConnectionState (req, numRedirectsToFollow); - - if (connection->start (progressCallback, progressCallbackContext)) - return; - } - #endif - - connection = nullptr; - } } } - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; diff --git a/modules/juce_core/native/juce_mac_Strings.mm b/modules/juce_core/native/juce_mac_Strings.mm index a104da671f..1dd39a516d 100644 --- a/modules/juce_core/native/juce_mac_Strings.mm +++ b/modules/juce_core/native/juce_mac_Strings.mm @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_mac_SystemStats.mm b/modules/juce_core/native/juce_mac_SystemStats.mm index daf3435f0e..e6bffb03cc 100644 --- a/modules/juce_core/native/juce_mac_SystemStats.mm +++ b/modules/juce_core/native/juce_mac_SystemStats.mm @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_mac_Threads.mm b/modules/juce_core/native/juce_mac_Threads.mm index f24ce0ab31..a762d9fb1b 100644 --- a/modules/juce_core/native/juce_mac_Threads.mm +++ b/modules/juce_core/native/juce_mac_Threads.mm @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_osx_ObjCHelpers.h b/modules/juce_core/native/juce_osx_ObjCHelpers.h index e0470ae5f7..c0688e62dd 100644 --- a/modules/juce_core/native/juce_osx_ObjCHelpers.h +++ b/modules/juce_core/native/juce_osx_ObjCHelpers.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_posix_NamedPipe.cpp b/modules/juce_core/native/juce_posix_NamedPipe.cpp index 9fb3fe5889..d76f5bbea3 100644 --- a/modules/juce_core/native/juce_posix_NamedPipe.cpp +++ b/modules/juce_core/native/juce_posix_NamedPipe.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h index e5b155e33f..118225257b 100644 --- a/modules/juce_core/native/juce_posix_SharedCode.h +++ b/modules/juce_core/native/juce_posix_SharedCode.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -1215,13 +1217,24 @@ bool ChildProcess::start (const StringArray& args, int streamFlags) #if ! JUCE_ANDROID struct HighResolutionTimer::Pimpl { - Pimpl (HighResolutionTimer& t) : owner (t), thread (0), shouldStop (false) + Pimpl (HighResolutionTimer& t) : owner (t), thread (0), destroyThread (false), isRunning (false) { + pthread_condattr_t attr; + pthread_condattr_init (&attr); + + #if ! (JUCE_MAC || JUCE_IOS) + pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); + #endif + + pthread_cond_init (&stopCond, &attr); + pthread_condattr_destroy (&attr); + pthread_mutex_init (&timerMutex, nullptr); } ~Pimpl() { - jassert (thread == 0); + jassert (! isRunning); + stop(); } void start (int newPeriod) @@ -1233,7 +1246,8 @@ struct HighResolutionTimer::Pimpl stop(); periodMs = newPeriod; - shouldStop = false; + destroyThread = false; + isRunning = true; if (pthread_create (&thread, nullptr, timerThread, this) == 0) setThreadToRealtime (thread, (uint64) newPeriod); @@ -1243,25 +1257,34 @@ struct HighResolutionTimer::Pimpl else { periodMs = newPeriod; - shouldStop = false; + isRunning = true; + destroyThread = false; } } } void stop() { - if (thread != 0) - { - shouldStop = true; + isRunning = false; - while (thread != 0 && thread != pthread_self()) - { - // if the timer callback itself calls startTimer then we need - // to override this - shouldStop = true; - Thread::yield(); - } + if (thread == 0) + return; + + if (thread == pthread_self()) + { + periodMs = 3600000; + return; } + + isRunning = false; + destroyThread = true; + + pthread_mutex_lock (&timerMutex); + pthread_cond_signal (&stopCond); + pthread_mutex_unlock (&timerMutex); + + pthread_join (thread, nullptr); + thread = 0; } HighResolutionTimer& owner; @@ -1269,7 +1292,11 @@ struct HighResolutionTimer::Pimpl private: pthread_t thread; - bool volatile shouldStop; + pthread_cond_t stopCond; + pthread_mutex_t timerMutex; + + bool volatile destroyThread; + bool volatile isRunning; static void* timerThread (void* param) { @@ -1289,14 +1316,18 @@ private: int lastPeriod = periodMs; Clock clock (lastPeriod); - while (! shouldStop) - { - clock.wait(); + pthread_mutex_lock (&timerMutex); - if (shouldStop) + while (! destroyThread) + { + clock.next(); + while (! destroyThread && clock.wait (stopCond, timerMutex)); + + if (destroyThread) break; - owner.hiResTimerCallback(); + if (isRunning) + owner.hiResTimerCallback(); if (lastPeriod != periodMs) { @@ -1306,7 +1337,9 @@ private: } periodMs = 0; - thread = 0; + + pthread_mutex_unlock (&timerMutex); + pthread_exit (nullptr); } struct Clock @@ -1314,21 +1347,41 @@ private: #if JUCE_MAC || JUCE_IOS Clock (double millis) noexcept { - mach_timebase_info_data_t timebase; (void) mach_timebase_info (&timebase); delta = (((uint64_t) (millis * 1000000.0)) * timebase.denom) / timebase.numer; time = mach_absolute_time(); } - void wait() noexcept + bool wait (pthread_cond_t& cond, pthread_mutex_t& mutex) noexcept { - time += delta; - mach_wait_until (time); + struct timespec left; + + if (! hasExpired (left)) + return (pthread_cond_timedwait_relative_np (&cond, &mutex, &left) != ETIMEDOUT); + + return false; } uint64_t time, delta; + mach_timebase_info_data_t timebase; - #else + bool hasExpired(struct timespec& time_left) noexcept + { + uint64_t now = mach_absolute_time(); + + if (now < time) + { + uint64_t left = time - now; + uint64_t nanos = (left * static_cast (timebase.numer)) / static_cast (timebase.denom); + time_left.tv_sec = static_cast<__darwin_time_t> (nanos / 1000000000ULL); + time_left.tv_nsec = static_cast (nanos - (static_cast (time_left.tv_sec) * 1000000000ULL)); + + return false; + } + + return true; + } + #else Clock (double millis) noexcept : delta ((uint64) (millis * 1000000)) { struct timespec t; @@ -1336,19 +1389,40 @@ private: time = (uint64) (1000000000 * (int64) t.tv_sec + (int64) t.tv_nsec); } - void wait() noexcept + bool wait (pthread_cond_t& cond, pthread_mutex_t& mutex) noexcept { - time += delta; + struct timespec absExpire; - struct timespec t; - t.tv_sec = (time_t) (time / 1000000000); - t.tv_nsec = (long) (time % 1000000000); + if (! hasExpired (absExpire)) + return (pthread_cond_timedwait (&cond, &mutex, &absExpire) != ETIMEDOUT); - clock_nanosleep (CLOCK_MONOTONIC, TIMER_ABSTIME, &t, nullptr); + return false; } uint64 time, delta; + + bool hasExpired(struct timespec& expiryTime) noexcept + { + struct timespec t; + clock_gettime (CLOCK_MONOTONIC, &t); + uint64 now = (uint64) (1000000000 * (int64) t.tv_sec + (int64) t.tv_nsec); + + if (now < time) + { + expiryTime.tv_sec = (time_t) (time / 1000000000); + expiryTime.tv_nsec = (long) (time % 1000000000); + + return false; + } + + return true; + } #endif + + void next() noexcept + { + time += delta; + } }; static bool setThreadToRealtime (pthread_t thread, uint64 periodMs) diff --git a/modules/juce_core/native/juce_win32_ComSmartPtr.h b/modules/juce_core/native/juce_win32_ComSmartPtr.h index d8c96c2c22..876a9350e2 100644 --- a/modules/juce_core/native/juce_win32_ComSmartPtr.h +++ b/modules/juce_core/native/juce_win32_ComSmartPtr.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_win32_Files.cpp b/modules/juce_core/native/juce_win32_Files.cpp index 5d09584f4b..50629ad072 100644 --- a/modules/juce_core/native/juce_win32_Files.cpp +++ b/modules/juce_core/native/juce_win32_Files.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_win32_Network.cpp b/modules/juce_core/native/juce_win32_Network.cpp index 3282a60090..58cc184489 100644 --- a/modules/juce_core/native/juce_win32_Network.cpp +++ b/modules/juce_core/native/juce_win32_Network.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -35,20 +37,48 @@ #endif //============================================================================== -class WebInputStream : public InputStream +class WebInputStream::Pimpl { public: - WebInputStream (const String& address_, bool isPost_, const MemoryBlock& postData_, - URL::OpenStreamProgressCallback* progressCallback, void* progressCallbackContext, - const String& headers_, int timeOutMs_, StringPairArray* responseHeaders, - int numRedirectsToFollow, const String& httpRequestCmd_) - : statusCode (0), connection (0), request (0), - address (address_), headers (headers_), postData (postData_), position (0), - finished (false), isPost (isPost_), timeOutMs (timeOutMs_), httpRequestCmd (httpRequestCmd_) + Pimpl (WebInputStream& pimplOwner, const URL& urlToCopy, bool shouldBePost) + : statusCode (0), owner (pimplOwner), url (urlToCopy), connection (0), request (0), + position (0), finished (false), isPost (shouldBePost), timeOutMs (0), + httpRequestCmd (isPost ? "POST" : "GET"), numRedirectsToFollow (5) + {} + + ~Pimpl() { + close(); + } + + //============================================================================== + // WebInputStream methods + void withExtraHeaders (const String& extraHeaders) + { + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + + headers << extraHeaders; + + if (! headers.endsWithChar ('\n') && headers.isNotEmpty()) + headers << "\r\n"; + } + + void withCustomRequestCommand (const String& customRequestCommand) { httpRequestCmd = customRequestCommand; } + void withConnectionTimeout (int timeoutInMs) { timeOutMs = timeoutInMs; } + void withNumRedirectsToFollow (int maxRedirectsToFollow) { numRedirectsToFollow = maxRedirectsToFollow; } + StringPairArray getRequestHeaders() const { return WebInputStream::parseHttpHeaders (headers); } + StringPairArray getResponseHeaders() const { return responseHeaders; } + int getStatusCode() const { return statusCode; } + + //============================================================================== + bool connect (WebInputStream::Listener* listener) + { + String address = url.toString (! isPost); + while (numRedirectsToFollow-- >= 0) { - createConnection (progressCallback, progressCallbackContext); + createConnection (address, listener); if (! isError()) { @@ -77,7 +107,7 @@ public: } if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) - break; + return false; bufferSizeBytes += 4096; } @@ -114,20 +144,15 @@ public: } } - if (responseHeaders != nullptr) - responseHeaders->addArray (dataHeaders); + responseHeaders.addArray (dataHeaders); } break; } + + return (request != 0); } - ~WebInputStream() - { - close(); - } - - //============================================================================== bool isError() const { return request == 0; } bool isExhausted() { return finished; } int64 getPosition() { return position; } @@ -162,6 +187,11 @@ public: return (int) bytesRead; } + void cancel() + { + close(); + } + bool setPosition (int64 wantedPos) { if (isError()) @@ -176,13 +206,14 @@ public: return true; if (wantedPos < position) - { - close(); - position = 0; - createConnection (0, 0); - } + return false; - skipNextBytes (wantedPos - position); + int64 numBytesToSkip = wantedPos - position; + const int skipBufferSize = (int) jmin (numBytesToSkip, (int64) 16384); + HeapBlock temp ((size_t) skipBufferSize); + + while (numBytesToSkip > 0 && ! isExhausted()) + numBytesToSkip -= read (temp, (int) jmin (numBytesToSkip, (int64) skipBufferSize)); } return true; @@ -192,22 +223,26 @@ public: private: //============================================================================== + WebInputStream& owner; + const URL url; HINTERNET connection, request; - String address, headers; + String headers; MemoryBlock postData; int64 position; bool finished; const bool isPost; int timeOutMs; String httpRequestCmd; + int numRedirectsToFollow; + StringPairArray responseHeaders; void close() { - if (request != 0) - { - InternetCloseHandle (request); - request = 0; - } + HINTERNET requestCopy = request; + + request = 0; + if (requestCopy != 0) + InternetCloseHandle (requestCopy); if (connection != 0) { @@ -216,8 +251,7 @@ private: } } - void createConnection (URL::OpenStreamProgressCallback* progressCallback, - void* progressCallbackContext) + void createConnection (const String& address, WebInputStream::Listener* listener) { static HINTERNET sessionHandle = InternetOpen (_T("juce"), INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0); @@ -244,14 +278,17 @@ private: uc.lpszPassword = password; uc.dwPasswordLength = passwordNumChars; + if (isPost) + WebInputStream::createHeadersAndPostData (url, headers, postData); + if (InternetCrackUrl (address.toWideCharPointer(), 0, 0, &uc)) - openConnection (uc, sessionHandle, progressCallback, progressCallbackContext); + openConnection (uc, sessionHandle, address, listener); } } void openConnection (URL_COMPONENTS& uc, HINTERNET sessionHandle, - URL::OpenStreamProgressCallback* progressCallback, - void* progressCallbackContext) + const String& address, + WebInputStream::Listener* listener) { int disable = 1; InternetSetOption (sessionHandle, INTERNET_OPTION_DISABLE_AUTODIAL, &disable, sizeof (disable)); @@ -280,7 +317,7 @@ private: request = FtpOpenFile (connection, uc.lpszUrlPath, GENERIC_READ, FTP_TRANSFER_TYPE_BINARY | INTERNET_FLAG_NEED_FILE, 0); else - openHTTPConnection (uc, progressCallback, progressCallbackContext); + openHTTPConnection (uc, address, listener); } } @@ -289,8 +326,7 @@ private: InternetSetOption (sessionHandle, option, &timeOutMs, sizeof (timeOutMs)); } - void openHTTPConnection (URL_COMPONENTS& uc, URL::OpenStreamProgressCallback* progressCallback, - void* progressCallbackContext) + void openHTTPConnection (URL_COMPONENTS& uc, const String& address, WebInputStream::Listener* listener) { const TCHAR* mimeTypes[] = { _T("*/*"), nullptr }; @@ -341,8 +377,8 @@ private: bytesSent += bytesDone; - if (progressCallback != nullptr - && ! progressCallback (progressCallbackContext, bytesSent, (int) postData.getSize())) + if (listener != nullptr + && ! listener->postDataSendProgress (owner, bytesSent, (int) postData.getSize())) break; } } @@ -359,7 +395,7 @@ private: InternetSetOption (request, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof (dwFlags)); } - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl) }; @@ -519,3 +555,8 @@ bool JUCE_CALLTYPE Process::openEmailWithAttachments (const String& targetEmailA return mapiSendMail (0, 0, &message, MAPI_DIALOG | MAPI_LOGON_UI, 0) == SUCCESS_SUCCESS; } + +URL::DownloadTask* URL::downloadToFile (const File& targetLocation, String extraHeaders, DownloadTask::Listener* listener) +{ + return URL::DownloadTask::createFallbackDownloader (*this, targetLocation, extraHeaders, listener); +} diff --git a/modules/juce_core/native/juce_win32_Registry.cpp b/modules/juce_core/native/juce_win32_Registry.cpp index caf71e5310..0f2864d573 100644 --- a/modules/juce_core/native/juce_win32_Registry.cpp +++ b/modules/juce_core/native/juce_win32_Registry.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/native/juce_win32_SystemStats.cpp b/modules/juce_core/native/juce_win32_SystemStats.cpp index beb8dcf43b..702fd7c03d 100644 --- a/modules/juce_core/native/juce_win32_SystemStats.cpp +++ b/modules/juce_core/native/juce_win32_SystemStats.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -367,8 +369,10 @@ bool Time::setSystemTimeToThisTime() const // do this twice because of daylight saving conversion problems - the // first one sets it up, the second one kicks it in. - return SetLocalTime (&st) != 0 - && SetLocalTime (&st) != 0; + // NB: the local variable is here to avoid analysers warning about having + // two identical sub-expressions in the return statement + bool firstCallToSetTimezone = SetLocalTime (&st) != 0; + return firstCallToSetTimezone && SetLocalTime (&st) != 0; } int SystemStats::getPageSize() diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp index 4bce47c08c..0bdc83e3ca 100644 --- a/modules/juce_core/native/juce_win32_Threads.cpp +++ b/modules/juce_core/native/juce_win32_Threads.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_IPAddress.cpp b/modules/juce_core/network/juce_IPAddress.cpp index 5f137fc9b6..5fcfd3f6d7 100644 --- a/modules/juce_core/network/juce_IPAddress.cpp +++ b/modules/juce_core/network/juce_IPAddress.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_IPAddress.h b/modules/juce_core/network/juce_IPAddress.h index eb82e3fe65..e1cb38709d 100644 --- a/modules/juce_core/network/juce_IPAddress.h +++ b/modules/juce_core/network/juce_IPAddress.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_MACAddress.cpp b/modules/juce_core/network/juce_MACAddress.cpp index 4b29f6011c..60a55589d4 100644 --- a/modules/juce_core/network/juce_MACAddress.cpp +++ b/modules/juce_core/network/juce_MACAddress.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_MACAddress.h b/modules/juce_core/network/juce_MACAddress.h index d2472b9621..3466c00d7f 100644 --- a/modules/juce_core/network/juce_MACAddress.h +++ b/modules/juce_core/network/juce_MACAddress.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_NamedPipe.cpp b/modules/juce_core/network/juce_NamedPipe.cpp index d498ed158e..5ca4f57f32 100644 --- a/modules/juce_core/network/juce_NamedPipe.cpp +++ b/modules/juce_core/network/juce_NamedPipe.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_NamedPipe.h b/modules/juce_core/network/juce_NamedPipe.h index b0973fcdf0..266d1df4df 100644 --- a/modules/juce_core/network/juce_NamedPipe.h +++ b/modules/juce_core/network/juce_NamedPipe.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_Socket.cpp b/modules/juce_core/network/juce_Socket.cpp index 836b1789e9..a3d1ad8517 100644 --- a/modules/juce_core/network/juce_Socket.cpp +++ b/modules/juce_core/network/juce_Socket.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -38,9 +40,11 @@ #if JUCE_WINDOWS typedef int juce_socklen_t; typedef SOCKET SocketHandle; + static const SocketHandle invalidSocket = INVALID_SOCKET; #else typedef socklen_t juce_socklen_t; typedef int SocketHandle; + static const SocketHandle invalidSocket = -1; #endif //============================================================================== @@ -169,6 +173,17 @@ namespace SocketHelpers return -1; } + static String getConnectedAddress (const SocketHandle handle) noexcept + { + struct sockaddr_in addr; + socklen_t len = sizeof (addr); + + if (getpeername (handle, (struct sockaddr*) &addr, &len) >= 0) + return inet_ntoa (addr.sin_addr); + + return String ("0.0.0.0"); + } + static int readSocket (const SocketHandle handle, void* const destBuffer, const int maxBytesToRead, bool volatile& connected, @@ -341,7 +356,7 @@ namespace SocketHelpers { const SocketHandle newHandle = socket (i->ai_family, i->ai_socktype, 0); - if (newHandle >= 0) + if (newHandle != invalidSocket) { setSocketBlockingState (newHandle, false); const int result = ::connect (newHandle, i->ai_addr, (socklen_t) i->ai_addrlen); @@ -576,7 +591,19 @@ StreamingSocket* StreamingSocket::waitForNextConnection() const bool StreamingSocket::isLocal() const noexcept { - return hostName == "127.0.0.1"; + if (! isConnected()) + return false; + + Array localAddresses; + IPAddress::findAllAddresses (localAddresses); + IPAddress currentIP (SocketHelpers::getConnectedAddress (handle)); + + const int n = localAddresses.size(); + for (int i = 0; i < n; ++i) + if (localAddresses.getReference (i) == currentIP) + return true; + + return (hostName == "127.0.0.1"); } diff --git a/modules/juce_core/network/juce_Socket.h b/modules/juce_core/network/juce_Socket.h index 33648bbcc8..299263ae72 100644 --- a/modules/juce_core/network/juce_Socket.h +++ b/modules/juce_core/network/juce_Socket.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/network/juce_URL.cpp b/modules/juce_core/network/juce_URL.cpp index 4c34bda68a..96e052e862 100644 --- a/modules/juce_core/network/juce_URL.cpp +++ b/modules/juce_core/network/juce_URL.cpp @@ -1,31 +1,136 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ +//============================================================================== +struct FallbackDownloadTask : public URL::DownloadTask, + public Thread +{ + FallbackDownloadTask (FileOutputStream* outputStreamToUse, + size_t bufferSizeToUse, + WebInputStream* streamToUse, + URL::DownloadTask::Listener* listenerToUse) + : Thread ("DownloadTask thread"), + fileStream (outputStreamToUse), + bufferSize (bufferSizeToUse), + buffer (bufferSize), + stream (streamToUse), + listener (listenerToUse) + { + contentLength = stream->getTotalLength(); + httpCode = stream->getStatusCode(); + + startThread (); + } + + ~FallbackDownloadTask() + { + signalThreadShouldExit(); + stream->cancel(); + waitForThreadToExit (-1); + } + + //============================================================================== + void run() override + { + while (! stream->isExhausted() && ! stream->isError() && ! threadShouldExit()) + { + if (listener != nullptr) + listener->progress (this, downloaded, contentLength); + + const int max = jmin ((int) bufferSize, contentLength < 0 ? std::numeric_limits::max() + : static_cast (contentLength - downloaded)); + + const int actual = stream->read (buffer.getData(), max); + + if (threadShouldExit() || stream->isError()) + break; + + if (! fileStream->write (buffer.getData(), static_cast (actual))) + { + error = true; + break; + } + + downloaded += actual; + } + + fileStream->flush(); + + if (threadShouldExit() || (stream != nullptr && stream->isError())) + error = true; + + if (contentLength > 0 && downloaded < contentLength) + error = true; + + finished = true; + + if (listener != nullptr && ! threadShouldExit()) + listener->finished (this, ! error); + } + + //============================================================================== + ScopedPointer fileStream; + size_t bufferSize; + HeapBlock buffer; + ScopedPointer stream; + URL::DownloadTask::Listener* listener; +}; + +void URL::DownloadTask::Listener::progress (DownloadTask*, int64, int64) {} +URL::DownloadTask::Listener::~Listener() {} + +//============================================================================== +URL::DownloadTask* URL::DownloadTask::createFallbackDownloader (const URL& urlToUse, + const File& targetFileToUse, + const String& extraHeadersToUse, + Listener* listenerToUse) +{ + const size_t bufferSize = 0x8000; + targetFileToUse.deleteFile(); + + if (ScopedPointer outputStream = targetFileToUse.createOutputStream (bufferSize)) + { + ScopedPointer stream = new WebInputStream (urlToUse, false); + stream->withExtraHeaders (extraHeadersToUse); + + if (stream->connect (nullptr)) + return new FallbackDownloadTask (outputStream.release(), bufferSize, stream.release(), listenerToUse); + } + + return nullptr; +} + +URL::DownloadTask::DownloadTask() : contentLength (-1), downloaded (0), finished (false), error (false), httpCode (-1) {} +URL::DownloadTask::~DownloadTask() {} + +//============================================================================== URL::URL() { } @@ -133,7 +238,7 @@ namespace URLHelpers int i = 0; while (CharacterFunctions::isLetterOrDigit (url[i]) - || url[i] == '+' || url[i] == '-' || url[i] == '.') + || url[i] == '+' || url[i] == '-' || url[i] == '.') ++i; return url.substring (i).startsWith ("://") ? i + 1 : 0; @@ -197,8 +302,8 @@ String URL::getDomain() const const int end2 = url.indexOfChar (start, ':'); const int end = (end1 < 0 && end2 < 0) ? std::numeric_limits::max() - : ((end1 < 0 || end2 < 0) ? jmax (end1, end2) - : jmin (end1, end2)); + : ((end1 < 0 || end2 < 0) ? jmax (end1, end2) + : jmin (end1, end2)); return url.substring (start, end); } @@ -207,7 +312,7 @@ String URL::getSubPath() const const int startOfPath = URLHelpers::findStartOfPath (url); return startOfPath <= 0 ? String() - : url.substring (startOfPath); + : url.substring (startOfPath); } String URL::getScheme() const @@ -249,9 +354,9 @@ URL URL::getChildURL (const String& subPath) const return u; } -void URL::createHeadersAndPostData (String& headers, MemoryBlock& headersAndPostData) const +void URL::createHeadersAndPostData (String& headers, MemoryBlock& postDataToWrite) const { - MemoryOutputStream data (headersAndPostData, false); + MemoryOutputStream data (postDataToWrite, false); if (filesToUpload.size() > 0) { @@ -316,11 +421,11 @@ bool URL::isProbablyAWebsiteURL (const String& possibleURL) return true; if (possibleURL.containsChar ('@') - || possibleURL.containsChar (' ')) + || possibleURL.containsChar (' ')) return false; const String topLevelDomain (possibleURL.upToFirstOccurrenceOf ("/", false, false) - .fromLastOccurrenceOf (".", false, false)); + .fromLastOccurrenceOf (".", false, false)); return topLevelDomain.isNotEmpty() && topLevelDomain.length() <= 3; } @@ -330,45 +435,69 @@ bool URL::isProbablyAnEmailAddress (const String& possibleEmailAddress) const int atSign = possibleEmailAddress.indexOfChar ('@'); return atSign > 0 - && possibleEmailAddress.lastIndexOfChar ('.') > (atSign + 1) - && ! possibleEmailAddress.endsWithChar ('.'); + && possibleEmailAddress.lastIndexOfChar ('.') > (atSign + 1) + && ! possibleEmailAddress.endsWithChar ('.'); } //============================================================================== -InputStream* URL::createInputStream (const bool usePostCommand, - OpenStreamProgressCallback* const progressCallback, - void* const progressCallbackContext, - String headers, - const int timeOutMs, - StringPairArray* const responseHeaders, - int* statusCode, - const int numRedirectsToFollow, - String httpRequestCmd) const +WebInputStream* URL::createInputStream (const bool usePostCommand, + OpenStreamProgressCallback* const progressCallback, + void* const progressCallbackContext, + String headers, + const int timeOutMs, + StringPairArray* const responseHeaders, + int* statusCode, + const int numRedirectsToFollow, + String httpRequestCmd) const { - MemoryBlock headersAndPostData; + ScopedPointer wi (new WebInputStream (*this, usePostCommand)); - if (! headers.endsWithChar ('\n')) - headers << "\r\n"; + struct ProgressCallbackCaller : WebInputStream::Listener + { + ProgressCallbackCaller (OpenStreamProgressCallback* const progressCallbackToUse, + void* const progressCallbackContextToUse) + : callback (progressCallbackToUse), data (progressCallbackContextToUse) + {} - if (usePostCommand) - createHeadersAndPostData (headers, headersAndPostData); + bool postDataSendProgress (WebInputStream&, int bytesSent, int totalBytes) override + { + return callback(data, bytesSent, totalBytes); + } - if (! headers.endsWithChar ('\n')) - headers << "\r\n"; + OpenStreamProgressCallback* const callback; + void* const data; - if (httpRequestCmd.isEmpty()) - httpRequestCmd = usePostCommand ? "POST" : "GET"; + // workaround a MSVC 2013 compiler warning + ProgressCallbackCaller (const ProgressCallbackCaller& o) : callback (o.callback), data (o.data) { jassertfalse; } + ProgressCallbackCaller& operator= (const ProgressCallbackCaller&) { jassertfalse; return *this; } + }; - ScopedPointer wi (new WebInputStream (toString (! usePostCommand), - usePostCommand, headersAndPostData, - progressCallback, progressCallbackContext, - headers, timeOutMs, responseHeaders, - numRedirectsToFollow, httpRequestCmd)); + ScopedPointer callbackCaller = + (progressCallback != nullptr ? new ProgressCallbackCaller (progressCallback, progressCallbackContext) : nullptr); + + if (headers.isNotEmpty()) + wi->withExtraHeaders (headers); + + if (timeOutMs != 0) + wi->withConnectionTimeout (timeOutMs); + + if (httpRequestCmd.isNotEmpty()) + wi->withCustomRequestCommand (httpRequestCmd); + + wi->withNumRedirectsToFollow (numRedirectsToFollow); + + bool success = wi->connect (callbackCaller); if (statusCode != nullptr) - *statusCode = wi->statusCode; + *statusCode = wi->getStatusCode(); - return wi->isError() ? nullptr : wi.release(); + if (responseHeaders != nullptr) + *responseHeaders = wi->getResponseHeaders(); + + if (! success || wi->isError()) + return nullptr; + + return wi.release(); } //============================================================================== diff --git a/modules/juce_core/network/juce_URL.h b/modules/juce_core/network/juce_URL.h index bf49b3a4e8..b69a25bff6 100644 --- a/modules/juce_core/network/juce_URL.h +++ b/modules/juce_core/network/juce_URL.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -29,7 +31,7 @@ #ifndef JUCE_URL_H_INCLUDED #define JUCE_URL_H_INCLUDED - +class WebInputStream; //============================================================================== /** Represents a URL and has a bunch of useful functions to manipulate it. @@ -274,6 +276,13 @@ public: /** Attempts to open a stream that can read from this URL. + This method is a convenience wrapper for creating a new WebInputStream and setting some + commonly used options. The returned WebInputStream will have already been connected and + reading can start instantly. + + Note that this method will block until the first byte of data has been received or an + error has occurred. + Note that on some platforms (Android, for example) it's not permitted to do any network action from the message thread, so you must only call it from a background thread. @@ -305,16 +314,97 @@ public: @returns an input stream that the caller must delete, or a null pointer if there was an error trying to open it. */ - InputStream* createInputStream (bool doPostLikeRequest, - OpenStreamProgressCallback* progressCallback = nullptr, - void* progressCallbackContext = nullptr, - String extraHeaders = String(), - int connectionTimeOutMs = 0, - StringPairArray* responseHeaders = nullptr, - int* statusCode = nullptr, - int numRedirectsToFollow = 5, - String httpRequestCmd = String()) const; + WebInputStream* createInputStream (bool doPostLikeRequest, + OpenStreamProgressCallback* progressCallback = nullptr, + void* progressCallbackContext = nullptr, + String extraHeaders = String(), + int connectionTimeOutMs = 0, + StringPairArray* responseHeaders = nullptr, + int* statusCode = nullptr, + int numRedirectsToFollow = 5, + String httpRequestCmd = String()) const; + //============================================================================== + /** Represents a download task. + + Returned by downloadToFile to allow querying and controling the download task. + */ + class DownloadTask + { + public: + struct Listener + { + virtual ~Listener(); + + /** Called when the download has finished. Be aware that this callback may + come on an arbitrary thread. */ + virtual void finished (DownloadTask* task, bool success) = 0; + + /** Called periodically by the OS to indicate download progress. + Beware that this callback may come on an arbitrary thread. + */ + virtual void progress (DownloadTask* task, int64 bytesDownloaded, int64 totalLength); + }; + + + /** Releases the resources of the download task, unregisters the listener + and cancels the download if necessary. */ + virtual ~DownloadTask(); + + /** Returns the total length of the download task. This may return -1 if the length + was not returned by the server. */ + inline int64 getTotalLength() const { return contentLength; } + + /** Returns the number of bytes that have been downloaded so far. */ + inline int64 getLengthDownloaded() const { return downloaded; } + + /** Returns true if the download finished or there was an error. */ + inline bool isFinished() const { return finished; } + + /** Returns the status code of the server's response. This will only be valid + after the download has finished. + + @see isFinished + */ + inline int statusCode() const { return httpCode; } + + /** Returns true if there was an error. */ + inline bool hadError() const { return error; } + + protected: + int64 contentLength, downloaded; + bool finished, error; + int httpCode; + + DownloadTask (); + + private: + friend class URL; + + static DownloadTask* createFallbackDownloader (const URL&, const File&, const String&, Listener*); + + public: + #if JUCE_IOS + /** internal **/ + static void juce_iosURLSessionNotify (const String&); + #endif + private: + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DownloadTask) + }; + + /** Download the URL to a file. + + This method attempts to download the URL to a given file location. + + Using this method to download files on mobile is less flexible but more reliable + than using createInputStream or WebInputStreams as it will attempt to download the file + using a native OS background network task. Such tasks automatically deal with + network re-connections and continuing your download while your app is suspended but are + limited to simple GET requests. + */ + DownloadTask* downloadToFile (const File& targetLocation, + String extraHeaders = String(), + DownloadTask::Listener* listener = nullptr); //============================================================================== /** Tries to download the entire contents of this URL into a binary data block. @@ -409,6 +499,8 @@ public: private: //============================================================================== + friend class WebInputStream; + String url; MemoryBlock postData; StringArray parameterNames, parameterValues; @@ -434,5 +526,4 @@ private: JUCE_LEAK_DETECTOR (URL) }; - #endif // JUCE_URL_H_INCLUDED diff --git a/modules/juce_core/network/juce_WebInputStream.cpp b/modules/juce_core/network/juce_WebInputStream.cpp new file mode 100644 index 0000000000..40673444d5 --- /dev/null +++ b/modules/juce_core/network/juce_WebInputStream.cpp @@ -0,0 +1,89 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. + + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + ----------------------------------------------------------------------------- + + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. + + ============================================================================== +*/ + +WebInputStream::WebInputStream (const URL& url, const bool usePost) + : pimpl (new Pimpl(*this, url, usePost)), hasCalledConnect (false) +{} + +WebInputStream::~WebInputStream() +{ + delete pimpl; +} + +WebInputStream& WebInputStream::withExtraHeaders (const String& extra) { pimpl->withExtraHeaders (extra); return *this; } +WebInputStream& WebInputStream::withCustomRequestCommand (const String& cmd) { pimpl->withCustomRequestCommand(cmd); return *this; } +WebInputStream& WebInputStream::withConnectionTimeout (int t) { pimpl->withConnectionTimeout (t); return *this; } +WebInputStream& WebInputStream::withNumRedirectsToFollow (int num) { pimpl->withNumRedirectsToFollow (num); return *this; } +StringPairArray WebInputStream::getRequestHeaders() const { return pimpl->getRequestHeaders(); } +StringPairArray WebInputStream::getResponseHeaders() { connect (nullptr); return pimpl->getResponseHeaders(); } +bool WebInputStream::isError() const { return pimpl->isError(); } +void WebInputStream::cancel() { pimpl->cancel(); } +bool WebInputStream::isExhausted() { return pimpl->isExhausted(); } +int64 WebInputStream::getPosition() { return pimpl->getPosition(); } +int64 WebInputStream::getTotalLength() { connect (nullptr); return pimpl->getTotalLength(); } +int WebInputStream::read (void* buffer, int bytes) { connect (nullptr); return pimpl->read (buffer, bytes); } +bool WebInputStream::setPosition (int64 pos) { return pimpl->setPosition (pos); } +int WebInputStream::getStatusCode() { connect (nullptr); return pimpl->getStatusCode(); } + +bool WebInputStream::connect (Listener* listener) +{ + if (hasCalledConnect) + return ! isError(); + + hasCalledConnect = true; + return pimpl->connect (listener); +} + +StringPairArray WebInputStream::parseHttpHeaders (const String& headerData) +{ + StringPairArray headerPairs; + StringArray headerLines = StringArray::fromLines (headerData); + + // ignore the first line as this is the status line + for (int i = 1; i < headerLines.size(); ++i) + { + const String& headersEntry = headerLines[i]; + + if (headersEntry.isNotEmpty()) + { + const String key (headersEntry.upToFirstOccurrenceOf (": ", false, false)); + const String value (headersEntry.fromFirstOccurrenceOf (": ", false, false)); + const String previousValue (headerPairs [key]); + headerPairs.set (key, previousValue.isEmpty() ? value : (previousValue + "," + value)); + } + } + + return headerPairs; +} + +void WebInputStream::createHeadersAndPostData (const URL& aURL, String& headers, MemoryBlock& data) +{ + aURL.createHeadersAndPostData (headers, data); +} diff --git a/modules/juce_core/network/juce_WebInputStream.h b/modules/juce_core/network/juce_WebInputStream.h new file mode 100644 index 0000000000..083993aa14 --- /dev/null +++ b/modules/juce_core/network/juce_WebInputStream.h @@ -0,0 +1,221 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. + + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + ----------------------------------------------------------------------------- + + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. + + ============================================================================== +*/ + +#ifndef JUCE_WEBINPUTSTREAM_H_INCLUDED +#define JUCE_WEBINPUTSTREAM_H_INCLUDED + +//============================================================================== +/** + An InputStream which can be used to read from a given url. +*/ +class JUCE_API WebInputStream : public InputStream +{ + public: + class JUCE_API Listener + { + public: + virtual ~Listener() {} + + virtual bool postDataSendProgress (WebInputStream& /*request*/, int /*bytesSent*/, int /*totalBytes*/) { return true; } + }; + + /** Creates a new WebInputstream which can be used to read from a url. + + @param url The url that should be retrieved. This parameter may also contain + post data and/or parameters. + @param usePost Specifies wheather a GET or a POST command should be used. This + parameter will also influence the way parameters are encoded. + */ + WebInputStream (const URL& url, const bool usePost); + + ~WebInputStream(); + + + /** Add extra headers to http request + + Returns a reference to itself so that several methods can be chained. + + @param extraHeaders this string is appended onto the headers that are used for + the request. It must therefore be a valid set of HTML + header directives, separated by newlines. + */ + WebInputStream& withExtraHeaders (const String& extraHeaders); + + /** Override the http command that is sent + + Returns a reference to itself so that several methods can be chained. + + Note that this command will not change the way parameters are sent. This + must be specified in the constructor. + + @param customRequestCommand this string is the custom http request command such + as POST or GET. + */ + WebInputStream& withCustomRequestCommand (const String& customRequestCommand); + + /** Specify the connection time-out + + Returns a reference to itself so that several methods can be chained. + + @param timeoutInMs the number of milliseconds to wait until the connection + request is aborted. + */ + WebInputStream& withConnectionTimeout (int timeoutInMs); + + /** Specify the number of redirects to be followed + + Returns a reference to itself so that several methods can be chained. + + @param numRedirects specifies the number of redirects that will be followed + before returning a response (ignored for Android which + follows up to 5 redirects) + */ + WebInputStream& withNumRedirectsToFollow (int numRedirects); + + /** Returns a string array pair of the request headers */ + StringPairArray getRequestHeaders() const; + + /** Returns a string array pair of response headers + + If getResponseHeaders is called without an established connection, then + getResponseHeaders will call connect internally and block until connect + returns - either due to a succesful connection or a connection + error. + + @see connect + */ + StringPairArray getResponseHeaders(); + + /** Returns the status code returned by the http server + + If getStatusCode is called without an established connection, then + getStatusCode will call connect internally and block until connect + returns - either due to a succesful connection or a connection + error. + + @see connect + */ + int getStatusCode(); + + /** Wait until the first byte is ready for reading + + This method will attempt to connect to the url given in the constructor + and block until the status code and all response headers have been received or + an error has occurred. + + Note that most methods will call connect internally if they are called without + an established connection. Therefore, it is not necessary to explicitely + call connect unless you would like to use a custom listener. + + After a successful call to connect, getResponseHeaders, getTotalLength and + getStatusCode will all be non-blocking. + + @param listener A listener to receive progress callbacks on the status + of a POST data upload. + + @see getResponseHeaders, getTotalLength, getStatusCode + */ + bool connect (Listener* listener); + + /** Returns true if there was an error during the connection attempt */ + bool isError() const; + + /** Will cancel a blocking read. */ + void cancel(); + + //============================================================================== + /** Returns the total number of bytes available for reading in this stream. + + Note that this is the number of bytes available from the start of the + stream, not from the current position. + + If getTotalLength is called without an established connection, then + getTotalLength will call connect internally and block until connect + returns - either due to a succesful connection or a connection + error. + + If the size of the stream isn't actually known, this will return -1. + */ + int64 getTotalLength() override; + + /** Reads some data from the stream into a memory buffer. + + This method will block until the bytesToRead bytes are available. + + This method calls connect internally if the connection hasn't already + been established. + + @param destBuffer the destination buffer for the data. This must not be null. + @param maxBytesToRead the maximum number of bytes to read - make sure the + memory block passed in is big enough to contain this + many bytes. This value must not be negative. + + @returns the actual number of bytes that were read, which may be less than + maxBytesToRead if the stream is exhausted before it gets that far + */ + int read (void* destBuffer, int maxBytesToRead) override; + + /** Returns true if the stream has no more data to read. */ + bool isExhausted() override; + + /** Returns the offset of the next byte that will be read from the stream. + @see setPosition + */ + int64 getPosition() override; + + /** Tries to move the current read position of the stream. + + The position is an absolute number of bytes from the stream's start. + + For a WebInputStream, this method will fail if wantedPos is smaller + than the curent position. If wantedPos is greater than the current + position, then calling setPosition is the same as calling read, i.e. + the skipped data will still be downloaded, although skipped bytes will + be discarded immedietely. + + @returns true if the stream manages to reposition itself correctly + @see getPosition + */ + bool setPosition (int64 wantedPos) override; + + private: + static void createHeadersAndPostData (const URL&, String&, MemoryBlock&); + static StringPairArray parseHttpHeaders (const String& headerData); + + class Pimpl; + friend class Pimpl; + + Pimpl* const pimpl; + bool hasCalledConnect; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) +}; + +#endif // JUCE_WEBINPUTSTREAM_H_INCLUDED diff --git a/modules/juce_core/streams/juce_BufferedInputStream.cpp b/modules/juce_core/streams/juce_BufferedInputStream.cpp index addc441bba..cd38911f52 100644 --- a/modules/juce_core/streams/juce_BufferedInputStream.cpp +++ b/modules/juce_core/streams/juce_BufferedInputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_BufferedInputStream.h b/modules/juce_core/streams/juce_BufferedInputStream.h index c7eccb92c1..7781036896 100644 --- a/modules/juce_core/streams/juce_BufferedInputStream.h +++ b/modules/juce_core/streams/juce_BufferedInputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_FileInputSource.cpp b/modules/juce_core/streams/juce_FileInputSource.cpp index 9cbeaf11e3..ee9cb0bd19 100644 --- a/modules/juce_core/streams/juce_FileInputSource.cpp +++ b/modules/juce_core/streams/juce_FileInputSource.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_FileInputSource.h b/modules/juce_core/streams/juce_FileInputSource.h index 5a58c770d5..33421037f1 100644 --- a/modules/juce_core/streams/juce_FileInputSource.h +++ b/modules/juce_core/streams/juce_FileInputSource.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_InputSource.h b/modules/juce_core/streams/juce_InputSource.h index a571ed0cb7..c5153af02e 100644 --- a/modules/juce_core/streams/juce_InputSource.h +++ b/modules/juce_core/streams/juce_InputSource.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_InputStream.cpp b/modules/juce_core/streams/juce_InputStream.cpp index 2cf3e00f9d..f0b8390c3e 100644 --- a/modules/juce_core/streams/juce_InputStream.cpp +++ b/modules/juce_core/streams/juce_InputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_InputStream.h b/modules/juce_core/streams/juce_InputStream.h index 0149f0b8ae..fcce077e9b 100644 --- a/modules/juce_core/streams/juce_InputStream.h +++ b/modules/juce_core/streams/juce_InputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_MemoryInputStream.cpp b/modules/juce_core/streams/juce_MemoryInputStream.cpp index e8639dc8a1..76cefa96bb 100644 --- a/modules/juce_core/streams/juce_MemoryInputStream.cpp +++ b/modules/juce_core/streams/juce_MemoryInputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_MemoryInputStream.h b/modules/juce_core/streams/juce_MemoryInputStream.h index 6350f658df..d0c9054da9 100644 --- a/modules/juce_core/streams/juce_MemoryInputStream.h +++ b/modules/juce_core/streams/juce_MemoryInputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_MemoryOutputStream.cpp b/modules/juce_core/streams/juce_MemoryOutputStream.cpp index 9c026700da..cb1b47a348 100644 --- a/modules/juce_core/streams/juce_MemoryOutputStream.cpp +++ b/modules/juce_core/streams/juce_MemoryOutputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_MemoryOutputStream.h b/modules/juce_core/streams/juce_MemoryOutputStream.h index 6109444c04..595d6035e4 100644 --- a/modules/juce_core/streams/juce_MemoryOutputStream.h +++ b/modules/juce_core/streams/juce_MemoryOutputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_OutputStream.cpp b/modules/juce_core/streams/juce_OutputStream.cpp index 8b5585f3ae..7db6532feb 100644 --- a/modules/juce_core/streams/juce_OutputStream.cpp +++ b/modules/juce_core/streams/juce_OutputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_OutputStream.h b/modules/juce_core/streams/juce_OutputStream.h index 407d34218f..bfcb6d0f3b 100644 --- a/modules/juce_core/streams/juce_OutputStream.h +++ b/modules/juce_core/streams/juce_OutputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -224,8 +226,7 @@ public: virtual int64 writeFromInputStream (InputStream& source, int64 maxNumBytesToWrite); //============================================================================== - /** Sets the string that will be written to the stream when the writeNewLine() - method is called. + /** Sets the string to write to the stream when a new line is written. By default this will be set the value of NewLine::getDefault(). */ void setNewLineString (const String& newLineString); diff --git a/modules/juce_core/streams/juce_SubregionStream.cpp b/modules/juce_core/streams/juce_SubregionStream.cpp index 4398ab7765..fddefb7c30 100644 --- a/modules/juce_core/streams/juce_SubregionStream.cpp +++ b/modules/juce_core/streams/juce_SubregionStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/streams/juce_SubregionStream.h b/modules/juce_core/streams/juce_SubregionStream.h index 55e4ccc85e..2bf967e9c0 100644 --- a/modules/juce_core/streams/juce_SubregionStream.h +++ b/modules/juce_core/streams/juce_SubregionStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/system/juce_CompilerSupport.h b/modules/juce_core/system/juce_CompilerSupport.h index 5169a37336..5864ceb88b 100644 --- a/modules/juce_core/system/juce_CompilerSupport.h +++ b/modules/juce_core/system/juce_CompilerSupport.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/system/juce_PlatformDefs.h b/modules/juce_core/system/juce_PlatformDefs.h index 169107f0b9..21d1a5b1c8 100644 --- a/modules/juce_core/system/juce_PlatformDefs.h +++ b/modules/juce_core/system/juce_PlatformDefs.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index 153ec84b2e..da92a55d6b 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -36,7 +38,7 @@ */ #define JUCE_MAJOR_VERSION 4 #define JUCE_MINOR_VERSION 3 -#define JUCE_BUILDNUMBER 0 +#define JUCE_BUILDNUMBER 1 /** Current Juce version number. @@ -56,6 +58,7 @@ #include #include #include +#include //============================================================================== #include "juce_CompilerSupport.h" @@ -75,7 +78,6 @@ #if JUCE_LINUX #include - #include #include #if __INTEL_COMPILER diff --git a/modules/juce_core/system/juce_SystemStats.cpp b/modules/juce_core/system/juce_SystemStats.cpp index 2cd16d9194..b67c444703 100644 --- a/modules/juce_core/system/juce_SystemStats.cpp +++ b/modules/juce_core/system/juce_SystemStats.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/system/juce_SystemStats.h b/modules/juce_core/system/juce_SystemStats.h index be9285aa12..6ae5b47b06 100644 --- a/modules/juce_core/system/juce_SystemStats.h +++ b/modules/juce_core/system/juce_SystemStats.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/system/juce_TargetPlatform.h b/modules/juce_core/system/juce_TargetPlatform.h index d6e2147ee2..1f898cab02 100644 --- a/modules/juce_core/system/juce_TargetPlatform.h +++ b/modules/juce_core/system/juce_TargetPlatform.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_Base64.cpp b/modules/juce_core/text/juce_Base64.cpp index 6c1586a460..de167ab2dd 100644 --- a/modules/juce_core/text/juce_Base64.cpp +++ b/modules/juce_core/text/juce_Base64.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2013 - Raw Material Software Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_Base64.h b/modules/juce_core/text/juce_Base64.h index e415fc0efb..55fb1b924b 100644 --- a/modules/juce_core/text/juce_Base64.h +++ b/modules/juce_core/text/juce_Base64.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2013 - Raw Material Software Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_CharPointer_ASCII.h b/modules/juce_core/text/juce_CharPointer_ASCII.h index 5bc4af52e3..ae0183e311 100644 --- a/modules/juce_core/text/juce_CharPointer_ASCII.h +++ b/modules/juce_core/text/juce_CharPointer_ASCII.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_CharPointer_UTF16.h b/modules/juce_core/text/juce_CharPointer_UTF16.h index 8ebbd2bc59..a982f7f99f 100644 --- a/modules/juce_core/text/juce_CharPointer_UTF16.h +++ b/modules/juce_core/text/juce_CharPointer_UTF16.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_CharPointer_UTF32.h b/modules/juce_core/text/juce_CharPointer_UTF32.h index 1ce92c32cf..426aec87e8 100644 --- a/modules/juce_core/text/juce_CharPointer_UTF32.h +++ b/modules/juce_core/text/juce_CharPointer_UTF32.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_CharPointer_UTF8.h b/modules/juce_core/text/juce_CharPointer_UTF8.h index 628897f61b..357010735d 100644 --- a/modules/juce_core/text/juce_CharPointer_UTF8.h +++ b/modules/juce_core/text/juce_CharPointer_UTF8.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_CharacterFunctions.cpp b/modules/juce_core/text/juce_CharacterFunctions.cpp index 4db016a2ac..7a0152adce 100644 --- a/modules/juce_core/text/juce_CharacterFunctions.cpp +++ b/modules/juce_core/text/juce_CharacterFunctions.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_CharacterFunctions.h b/modules/juce_core/text/juce_CharacterFunctions.h index 4b006e2ac9..c4920072e6 100644 --- a/modules/juce_core/text/juce_CharacterFunctions.h +++ b/modules/juce_core/text/juce_CharacterFunctions.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_Identifier.cpp b/modules/juce_core/text/juce_Identifier.cpp index 13821b69ca..a16d68caa4 100644 --- a/modules/juce_core/text/juce_Identifier.cpp +++ b/modules/juce_core/text/juce_Identifier.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_Identifier.h b/modules/juce_core/text/juce_Identifier.h index 6b94333659..24b02375ee 100644 --- a/modules/juce_core/text/juce_Identifier.h +++ b/modules/juce_core/text/juce_Identifier.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_LocalisedStrings.cpp b/modules/juce_core/text/juce_LocalisedStrings.cpp index 3671fe0330..72009564ec 100644 --- a/modules/juce_core/text/juce_LocalisedStrings.cpp +++ b/modules/juce_core/text/juce_LocalisedStrings.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_LocalisedStrings.h b/modules/juce_core/text/juce_LocalisedStrings.h index 8eb79989ab..465ffa3ab4 100644 --- a/modules/juce_core/text/juce_LocalisedStrings.h +++ b/modules/juce_core/text/juce_LocalisedStrings.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_NewLine.h b/modules/juce_core/text/juce_NewLine.h index ec2d17a214..fef928344e 100644 --- a/modules/juce_core/text/juce_NewLine.h +++ b/modules/juce_core/text/juce_NewLine.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_String.cpp b/modules/juce_core/text/juce_String.cpp index b025dde5e0..798f46f707 100644 --- a/modules/juce_core/text/juce_String.cpp +++ b/modules/juce_core/text/juce_String.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -672,7 +674,7 @@ static int stringCompareLeft (String::CharPointerType s1, String::CharPointerTyp } } -static int naturalStringCompare (String::CharPointerType s1, String::CharPointerType s2) noexcept +static int naturalStringCompare (String::CharPointerType s1, String::CharPointerType s2, bool isCaseSensitive) noexcept { bool firstLoop = true; @@ -701,7 +703,7 @@ static int naturalStringCompare (String::CharPointerType s1, String::CharPointer juce_wchar c1 = s1.getAndAdvance(); juce_wchar c2 = s2.getAndAdvance(); - if (c1 != c2) + if (c1 != c2 && ! isCaseSensitive) { c1 = CharacterFunctions::toUpperCase (c1); c2 = CharacterFunctions::toUpperCase (c2); @@ -727,9 +729,9 @@ static int naturalStringCompare (String::CharPointerType s1, String::CharPointer } } -int String::compareNatural (StringRef other) const noexcept +int String::compareNatural (StringRef other, bool isCaseSensitive) const noexcept { - return naturalStringCompare (getCharPointer(), other.text); + return naturalStringCompare (getCharPointer(), other.text, isCaseSensitive); } //============================================================================== @@ -1869,7 +1871,9 @@ String String::formatted (const String pf, ... ) const int num = (int) _vsnwprintf (temp.getData(), bufferSize - 1, pf.toWideCharPointer(), args); #elif JUCE_ANDROID HeapBlock temp (bufferSize); - const int num = (int) vsnprintf (temp.getData(), bufferSize - 1, pf.toUTF8(), args); + int num = (int) vsnprintf (temp.getData(), bufferSize - 1, pf.toUTF8(), args); + if (num >= bufferSize) + num = -1; #else HeapBlock temp (bufferSize); const int num = (int) vswprintf (temp.getData(), bufferSize - 1, pf.toWideCharPointer(), args); diff --git a/modules/juce_core/text/juce_String.h b/modules/juce_core/text/juce_String.h index 0a3b8bccaa..0880254532 100644 --- a/modules/juce_core/text/juce_String.h +++ b/modules/juce_core/text/juce_String.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -366,7 +368,7 @@ public: @returns 0 if the two strings are identical; negative if this string comes before the other one alphabetically, or positive if it comes after it. */ - int compareNatural (StringRef other) const noexcept; + int compareNatural (StringRef other, bool isCaseSensitive = false) const noexcept; /** Tests whether the string begins with another string. If the parameter is an empty string, this will always return true. @@ -1202,8 +1204,6 @@ public: */ size_t copyToUTF32 (CharPointer_UTF32::CharType* destBuffer, size_t maxBufferSizeBytes) const noexcept; - static String fromSingleByteData (const void* data, size_t numBytes); - //============================================================================== /** Increases the string's internally allocated storage. diff --git a/modules/juce_core/text/juce_StringArray.cpp b/modules/juce_core/text/juce_StringArray.cpp index 3df28610f1..5db0b9d24d 100644 --- a/modules/juce_core/text/juce_StringArray.cpp +++ b/modules/juce_core/text/juce_StringArray.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_StringArray.h b/modules/juce_core/text/juce_StringArray.h index d173a2c022..8dd64c310c 100644 --- a/modules/juce_core/text/juce_StringArray.h +++ b/modules/juce_core/text/juce_StringArray.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_StringPairArray.cpp b/modules/juce_core/text/juce_StringPairArray.cpp index d6bf37f65f..7f8b4b7dfd 100644 --- a/modules/juce_core/text/juce_StringPairArray.cpp +++ b/modules/juce_core/text/juce_StringPairArray.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_StringPairArray.h b/modules/juce_core/text/juce_StringPairArray.h index 81367fd192..fd1eb7c33d 100644 --- a/modules/juce_core/text/juce_StringPairArray.h +++ b/modules/juce_core/text/juce_StringPairArray.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_StringPool.cpp b/modules/juce_core/text/juce_StringPool.cpp index e9d295c0e3..d88820ceeb 100644 --- a/modules/juce_core/text/juce_StringPool.cpp +++ b/modules/juce_core/text/juce_StringPool.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_StringPool.h b/modules/juce_core/text/juce_StringPool.h index 047af53b9e..25d5baa7a9 100644 --- a/modules/juce_core/text/juce_StringPool.h +++ b/modules/juce_core/text/juce_StringPool.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_StringRef.h b/modules/juce_core/text/juce_StringRef.h index 0c70d99ad1..f34268c834 100644 --- a/modules/juce_core/text/juce_StringRef.h +++ b/modules/juce_core/text/juce_StringRef.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_TextDiff.cpp b/modules/juce_core/text/juce_TextDiff.cpp index 5044780b12..4503ca2aed 100644 --- a/modules/juce_core/text/juce_TextDiff.cpp +++ b/modules/juce_core/text/juce_TextDiff.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/text/juce_TextDiff.h b/modules/juce_core/text/juce_TextDiff.h index 2d1c6cb4b1..a1d6a6e2c8 100644 --- a/modules/juce_core/text/juce_TextDiff.h +++ b/modules/juce_core/text/juce_TextDiff.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ChildProcess.cpp b/modules/juce_core/threads/juce_ChildProcess.cpp index 9fd758cd16..2e86c5ec4c 100644 --- a/modules/juce_core/threads/juce_ChildProcess.cpp +++ b/modules/juce_core/threads/juce_ChildProcess.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ChildProcess.h b/modules/juce_core/threads/juce_ChildProcess.h index 028d6fe794..bf2d839f60 100644 --- a/modules/juce_core/threads/juce_ChildProcess.h +++ b/modules/juce_core/threads/juce_ChildProcess.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_CriticalSection.h b/modules/juce_core/threads/juce_CriticalSection.h index d19e94519c..05dfb8f8cf 100644 --- a/modules/juce_core/threads/juce_CriticalSection.h +++ b/modules/juce_core/threads/juce_CriticalSection.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_DynamicLibrary.h b/modules/juce_core/threads/juce_DynamicLibrary.h index ec2fcd1342..59912ecd98 100644 --- a/modules/juce_core/threads/juce_DynamicLibrary.h +++ b/modules/juce_core/threads/juce_DynamicLibrary.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_HighResolutionTimer.cpp b/modules/juce_core/threads/juce_HighResolutionTimer.cpp index 791255ba9b..e4cb4c12be 100644 --- a/modules/juce_core/threads/juce_HighResolutionTimer.cpp +++ b/modules/juce_core/threads/juce_HighResolutionTimer.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_HighResolutionTimer.h b/modules/juce_core/threads/juce_HighResolutionTimer.h index 7c840af680..0e8f2ba6d1 100644 --- a/modules/juce_core/threads/juce_HighResolutionTimer.h +++ b/modules/juce_core/threads/juce_HighResolutionTimer.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_InterProcessLock.h b/modules/juce_core/threads/juce_InterProcessLock.h index 447dc88410..10957cb0ae 100644 --- a/modules/juce_core/threads/juce_InterProcessLock.h +++ b/modules/juce_core/threads/juce_InterProcessLock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_Process.h b/modules/juce_core/threads/juce_Process.h index 9ba0af0ce5..b55d384886 100644 --- a/modules/juce_core/threads/juce_Process.h +++ b/modules/juce_core/threads/juce_Process.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ReadWriteLock.cpp b/modules/juce_core/threads/juce_ReadWriteLock.cpp index e05c4277a8..5fa58c9a20 100644 --- a/modules/juce_core/threads/juce_ReadWriteLock.cpp +++ b/modules/juce_core/threads/juce_ReadWriteLock.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ReadWriteLock.h b/modules/juce_core/threads/juce_ReadWriteLock.h index 51937827d9..22263333a3 100644 --- a/modules/juce_core/threads/juce_ReadWriteLock.h +++ b/modules/juce_core/threads/juce_ReadWriteLock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ScopedLock.h b/modules/juce_core/threads/juce_ScopedLock.h index f359d9ddc1..043b91a6cd 100644 --- a/modules/juce_core/threads/juce_ScopedLock.h +++ b/modules/juce_core/threads/juce_ScopedLock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ScopedReadLock.h b/modules/juce_core/threads/juce_ScopedReadLock.h index 37cf14cee7..391c22854a 100644 --- a/modules/juce_core/threads/juce_ScopedReadLock.h +++ b/modules/juce_core/threads/juce_ScopedReadLock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ScopedWriteLock.h b/modules/juce_core/threads/juce_ScopedWriteLock.h index 04072df925..13e490ebd4 100644 --- a/modules/juce_core/threads/juce_ScopedWriteLock.h +++ b/modules/juce_core/threads/juce_ScopedWriteLock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_SpinLock.h b/modules/juce_core/threads/juce_SpinLock.h index 0d42a26f40..35e388e802 100644 --- a/modules/juce_core/threads/juce_SpinLock.h +++ b/modules/juce_core/threads/juce_SpinLock.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_Thread.cpp b/modules/juce_core/threads/juce_Thread.cpp index d529a6746f..fbe6e7c13a 100644 --- a/modules/juce_core/threads/juce_Thread.cpp +++ b/modules/juce_core/threads/juce_Thread.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_Thread.h b/modules/juce_core/threads/juce_Thread.h index 3925fdea2d..76f8e374a9 100644 --- a/modules/juce_core/threads/juce_Thread.h +++ b/modules/juce_core/threads/juce_Thread.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ThreadLocalValue.h b/modules/juce_core/threads/juce_ThreadLocalValue.h index 19107fdbe1..af7f21edcb 100644 --- a/modules/juce_core/threads/juce_ThreadLocalValue.h +++ b/modules/juce_core/threads/juce_ThreadLocalValue.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ThreadPool.cpp b/modules/juce_core/threads/juce_ThreadPool.cpp index 40b8eca188..fa3f9fc228 100644 --- a/modules/juce_core/threads/juce_ThreadPool.cpp +++ b/modules/juce_core/threads/juce_ThreadPool.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_ThreadPool.h b/modules/juce_core/threads/juce_ThreadPool.h index edfffa0c81..1a0a5fc4eb 100644 --- a/modules/juce_core/threads/juce_ThreadPool.h +++ b/modules/juce_core/threads/juce_ThreadPool.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_TimeSliceThread.cpp b/modules/juce_core/threads/juce_TimeSliceThread.cpp index 2689007e40..7dea438a36 100644 --- a/modules/juce_core/threads/juce_TimeSliceThread.cpp +++ b/modules/juce_core/threads/juce_TimeSliceThread.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_TimeSliceThread.h b/modules/juce_core/threads/juce_TimeSliceThread.h index 5db4b41cae..d5bb31a906 100644 --- a/modules/juce_core/threads/juce_TimeSliceThread.h +++ b/modules/juce_core/threads/juce_TimeSliceThread.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/threads/juce_WaitableEvent.h b/modules/juce_core/threads/juce_WaitableEvent.h index ce10b46397..6c9b9ed496 100644 --- a/modules/juce_core/threads/juce_WaitableEvent.h +++ b/modules/juce_core/threads/juce_WaitableEvent.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/time/juce_PerformanceCounter.cpp b/modules/juce_core/time/juce_PerformanceCounter.cpp index 12fac64f3c..4a37596a53 100644 --- a/modules/juce_core/time/juce_PerformanceCounter.cpp +++ b/modules/juce_core/time/juce_PerformanceCounter.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/time/juce_PerformanceCounter.h b/modules/juce_core/time/juce_PerformanceCounter.h index 7d279d88f2..5463a00a80 100644 --- a/modules/juce_core/time/juce_PerformanceCounter.h +++ b/modules/juce_core/time/juce_PerformanceCounter.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/time/juce_RelativeTime.cpp b/modules/juce_core/time/juce_RelativeTime.cpp index 913cc6eb08..336e98d6d9 100644 --- a/modules/juce_core/time/juce_RelativeTime.cpp +++ b/modules/juce_core/time/juce_RelativeTime.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/time/juce_RelativeTime.h b/modules/juce_core/time/juce_RelativeTime.h index 76d8df569e..ba942cbcc1 100644 --- a/modules/juce_core/time/juce_RelativeTime.h +++ b/modules/juce_core/time/juce_RelativeTime.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/time/juce_Time.cpp b/modules/juce_core/time/juce_Time.cpp index 454dc75087..71e6eaa3a5 100644 --- a/modules/juce_core/time/juce_Time.cpp +++ b/modules/juce_core/time/juce_Time.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/time/juce_Time.h b/modules/juce_core/time/juce_Time.h index a71776c2e6..c1345cb5cb 100644 --- a/modules/juce_core/time/juce_Time.h +++ b/modules/juce_core/time/juce_Time.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/unit_tests/juce_UnitTest.cpp b/modules/juce_core/unit_tests/juce_UnitTest.cpp index 1f64182c4e..f48daf751d 100644 --- a/modules/juce_core/unit_tests/juce_UnitTest.cpp +++ b/modules/juce_core/unit_tests/juce_UnitTest.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/unit_tests/juce_UnitTest.h b/modules/juce_core/unit_tests/juce_UnitTest.h index 72a2896fa9..9029e94d79 100644 --- a/modules/juce_core/unit_tests/juce_UnitTest.h +++ b/modules/juce_core/unit_tests/juce_UnitTest.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/xml/juce_XmlDocument.cpp b/modules/juce_core/xml/juce_XmlDocument.cpp index bf56f4f637..09ddb1033e 100644 --- a/modules/juce_core/xml/juce_XmlDocument.cpp +++ b/modules/juce_core/xml/juce_XmlDocument.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/xml/juce_XmlDocument.h b/modules/juce_core/xml/juce_XmlDocument.h index 84d087162d..fad2a38d96 100644 --- a/modules/juce_core/xml/juce_XmlDocument.h +++ b/modules/juce_core/xml/juce_XmlDocument.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/xml/juce_XmlElement.cpp b/modules/juce_core/xml/juce_XmlElement.cpp index 73d4ccf213..7cdcb7b52f 100644 --- a/modules/juce_core/xml/juce_XmlElement.cpp +++ b/modules/juce_core/xml/juce_XmlElement.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/xml/juce_XmlElement.h b/modules/juce_core/xml/juce_XmlElement.h index e114aa7000..1d9da108f9 100644 --- a/modules/juce_core/xml/juce_XmlElement.h +++ b/modules/juce_core/xml/juce_XmlElement.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp b/modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp index 7ee8a9175d..dbf45c2204 100644 --- a/modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp +++ b/modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/zip/juce_GZIPCompressorOutputStream.h b/modules/juce_core/zip/juce_GZIPCompressorOutputStream.h index 4cc639c38e..411ec37f56 100644 --- a/modules/juce_core/zip/juce_GZIPCompressorOutputStream.h +++ b/modules/juce_core/zip/juce_GZIPCompressorOutputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp index 422f17c6e8..04d3266027 100644 --- a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp +++ b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -77,6 +79,15 @@ namespace zlibNamespace #endif #else #include JUCE_ZLIB_INCLUDE_PATH + + #ifndef z_uInt + #ifdef uInt + #define z_uInt uInt + #else + #define z_uInt unsigned int + #endif + #endif + #endif } diff --git a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h index 8c2b9bf0a3..fa1e5dfcfb 100644 --- a/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h +++ b/modules/juce_core/zip/juce_GZIPDecompressorInputStream.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/zip/juce_ZipFile.cpp b/modules/juce_core/zip/juce_ZipFile.cpp index ef02e2570a..9ba7634bc9 100644 --- a/modules/juce_core/zip/juce_ZipFile.cpp +++ b/modules/juce_core/zip/juce_ZipFile.cpp @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_core/zip/juce_ZipFile.h b/modules/juce_core/zip/juce_ZipFile.h index 84f7336dfd..441f814f86 100644 --- a/modules/juce_core/zip/juce_ZipFile.h +++ b/modules/juce_core/zip/juce_ZipFile.h @@ -1,27 +1,29 @@ /* ============================================================================== - This file is part of the juce_core module of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + This file is part of the JUCE library. + Copyright (c) 2016 - ROLI Ltd. - Permission to use, copy, modify, and/or distribute this software for any purpose with - or without fee is hereby granted, provided that the above copyright notice and this - permission notice appear in all copies. + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - ------------------------------------------------------------------------------ + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - NOTE! This permissive ISC license applies ONLY to files within the juce_core module! - All other JUCE modules are covered by a dual GPL/commercial license, so if you are - using any other modules, be sure to check that you also comply with their license. + ----------------------------------------------------------------------------- - For more details, visit www.juce.com + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_cryptography/juce_cryptography.h b/modules/juce_cryptography/juce_cryptography.h index 97759fa6d2..5c77e82706 100644 --- a/modules/juce_cryptography/juce_cryptography.h +++ b/modules/juce_cryptography/juce_cryptography.h @@ -33,7 +33,7 @@ ID: juce_cryptography vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE cryptography classes description: Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc. website: http://www.juce.com/juce diff --git a/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp b/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp index bd14b66d66..10a43dbca7 100644 --- a/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp +++ b/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp @@ -98,8 +98,9 @@ File PropertiesFile::Options::getDefaultFile() const : applicationName); #endif - return dir.getChildFile (applicationName) - .withFileExtension (filenameSuffix); + return (filenameSuffix.startsWithChar (L'.') + ? dir.getChildFile (applicationName).withFileExtension (filenameSuffix) + : dir.getChildFile (applicationName + "." + filenameSuffix)); } diff --git a/modules/juce_data_structures/app_properties/juce_PropertiesFile.h b/modules/juce_data_structures/app_properties/juce_PropertiesFile.h index c91d61c54e..40ad28e7e4 100644 --- a/modules/juce_data_structures/app_properties/juce_PropertiesFile.h +++ b/modules/juce_data_structures/app_properties/juce_PropertiesFile.h @@ -67,7 +67,11 @@ public: /** The suffix to use for your properties file. It doesn't really matter what this is - you may want to use ".settings" or - ".properties" or something. + ".properties" or something. If the suffix includes the prefixing dot (for example + ".settings") then the suffix of applicationName will be replaced with your suffix + ("MyApp.exe" -> "MyApp.settings"). If your filenameSuffix does NOT include the dot, + then the suffix will be appended to the applicationName ("MyApp.exe" -> + "MyApp.exe.settings"). */ String filenameSuffix; diff --git a/modules/juce_data_structures/juce_data_structures.h b/modules/juce_data_structures/juce_data_structures.h index 3c8580a8f7..d0fd5a8c1a 100644 --- a/modules/juce_data_structures/juce_data_structures.h +++ b/modules/juce_data_structures/juce_data_structures.h @@ -33,7 +33,7 @@ ID: juce_data_structures vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE data model helper classes description: Classes for undo/redo management, and smart data structures. website: http://www.juce.com/juce diff --git a/modules/juce_data_structures/values/juce_ValueTree.cpp b/modules/juce_data_structures/values/juce_ValueTree.cpp index 51b041ca2a..a2f9b14c23 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.cpp +++ b/modules/juce_data_structures/values/juce_ValueTree.cpp @@ -57,6 +57,11 @@ public: } } + SharedObject* getRoot() noexcept + { + return parent == nullptr ? this : parent->getRoot(); + } + template void callListeners (Method method, ValueTree& tree) const { @@ -103,6 +108,30 @@ public: } } + template + void callListenersExcluding (ValueTree::Listener* listenerToExclude, + Method method, ValueTree& tree, ParamType& param2) const + { + const int numListeners = valueTreesWithListeners.size(); + + if (numListeners == 1) + { + valueTreesWithListeners.getUnchecked(0)->listeners.callExcluding (*listenerToExclude, method, tree, param2); + } + else if (numListeners > 0) + { + const SortedSet listenersCopy (valueTreesWithListeners); + + for (int i = 0; i < numListeners; ++i) + { + ValueTree* const v = listenersCopy.getUnchecked(i); + + if (i == 0 || valueTreesWithListeners.contains (v)) + v->listeners.callExcluding (*listenerToExclude, method, tree, param2); + } + } + } + template void callListeners (Method method, ValueTree& tree, ParamType1& param2, ParamType2& param3) const { @@ -126,12 +155,15 @@ public: } } - void sendPropertyChangeMessage (const Identifier& property) + void sendPropertyChangeMessage (const Identifier& property, ValueTree::Listener* listenerToExclude = nullptr) { ValueTree tree (this); for (ValueTree::SharedObject* t = this; t != nullptr; t = t->parent) - t->callListeners (&ValueTree::Listener::valueTreePropertyChanged, tree, property); + if (listenerToExclude == nullptr) + t->callListeners (&ValueTree::Listener::valueTreePropertyChanged, tree, property); + else + t->callListenersExcluding (listenerToExclude, &ValueTree::Listener::valueTreePropertyChanged, tree, property); } void sendChildAddedMessage (ValueTree child) @@ -169,23 +201,24 @@ public: callListeners (&ValueTree::Listener::valueTreeParentChanged, tree); } - void setProperty (const Identifier& name, const var& newValue, UndoManager* const undoManager) + void setProperty (const Identifier& name, const var& newValue, UndoManager* const undoManager, + ValueTree::Listener* listenerToExclude = nullptr) { if (undoManager == nullptr) { if (properties.set (name, newValue)) - sendPropertyChangeMessage (name); + sendPropertyChangeMessage (name, listenerToExclude); } else { if (const var* const existingValue = properties.getVarPointer (name)) { if (*existingValue != newValue) - undoManager->perform (new SetPropertyAction (this, name, newValue, *existingValue, false, false)); + undoManager->perform (new SetPropertyAction (this, name, newValue, *existingValue, false, false, listenerToExclude)); } else { - undoManager->perform (new SetPropertyAction (this, name, newValue, var(), true, false)); + undoManager->perform (new SetPropertyAction (this, name, newValue, var(), true, false, listenerToExclude)); } } } @@ -455,13 +488,14 @@ public: } //============================================================================== - class SetPropertyAction : public UndoableAction + struct SetPropertyAction : public UndoableAction { - public: SetPropertyAction (SharedObject* const so, const Identifier& propertyName, - const var& newVal, const var& oldVal, bool isAdding, bool isDeleting) + const var& newVal, const var& oldVal, bool isAdding, bool isDeleting, + ValueTree::Listener* listenerToExclude = nullptr) : target (so), name (propertyName), newValue (newVal), oldValue (oldVal), - isAddingNewProperty (isAdding), isDeletingProperty (isDeleting) + isAddingNewProperty (isAdding), isDeletingProperty (isDeleting), + excludeListener (listenerToExclude) { } @@ -472,7 +506,7 @@ public: if (isDeletingProperty) target->removeProperty (name, nullptr); else - target->setProperty (name, newValue, nullptr); + target->setProperty (name, newValue, nullptr, excludeListener); return true; } @@ -511,14 +545,14 @@ public: const var newValue; var oldValue; const bool isAddingNewProperty : 1, isDeletingProperty : 1; + ValueTree::Listener* excludeListener; JUCE_DECLARE_NON_COPYABLE (SetPropertyAction) }; //============================================================================== - class AddOrRemoveChildAction : public UndoableAction + struct AddOrRemoveChildAction : public UndoableAction { - public: AddOrRemoveChildAction (SharedObject* parentObject, int index, SharedObject* newChild) : target (parentObject), child (newChild != nullptr ? newChild : parentObject->children.getObjectPointer (index)), @@ -569,9 +603,8 @@ public: }; //============================================================================== - class MoveChildAction : public UndoableAction + struct MoveChildAction : public UndoableAction { - public: MoveChildAction (SharedObject* parentObject, int fromIndex, int toIndex) noexcept : parent (parentObject), startIndex (fromIndex), endIndex (toIndex) { @@ -720,6 +753,12 @@ ValueTree ValueTree::getParent() const noexcept : static_cast (nullptr)); } +ValueTree ValueTree::getRoot() const noexcept +{ + return ValueTree (object != nullptr ? object->getRoot() + : static_cast (nullptr)); +} + ValueTree ValueTree::getSibling (const int delta) const noexcept { if (object == nullptr || object->parent == nullptr) @@ -762,12 +801,17 @@ const var* ValueTree::getPropertyPointer (const Identifier& name) const noexcept } ValueTree& ValueTree::setProperty (const Identifier& name, const var& newValue, UndoManager* undoManager) +{ + return setPropertyExcludingListener (nullptr, name, newValue, undoManager); +} + +ValueTree& ValueTree::setPropertyExcludingListener (Listener* listenerToExclude, const Identifier& name, const var& newValue, UndoManager* undoManager) { jassert (name.toString().isNotEmpty()); // Must have a valid property name! jassert (object != nullptr); // Trying to add a property to a null ValueTree will fail! if (object != nullptr) - object->setProperty (name, newValue, undoManager); + object->setProperty (name, newValue, undoManager, listenerToExclude); return *this; } diff --git a/modules/juce_data_structures/values/juce_ValueTree.h b/modules/juce_data_structures/values/juce_ValueTree.h index 52bb8d3c63..e48a83f3fc 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.h +++ b/modules/juce_data_structures/values/juce_ValueTree.h @@ -320,6 +320,11 @@ public: */ ValueTree getParent() const noexcept; + /** Recusrively finds the highest-level parent node that contains this one. + If the node has no parent, this will return itself. + */ + ValueTree getRoot() const noexcept; + /** Returns one of this node's siblings in its parent's child list. The delta specifies how far to move through the list, so a value of 1 would return the node @@ -483,6 +488,13 @@ public: /** Removes a listener that was previously added with addListener(). */ void removeListener (Listener* listener); + /** Changes a named property of the node, but will not notify a specified listener of the change. + @see setProperty + */ + ValueTree& setPropertyExcludingListener (Listener* listenerToExclude, + const Identifier& name, const var& newValue, + UndoManager* undoManager); + /** Causes a property-change callback to be triggered for the specified property, calling any listeners that are registered. */ diff --git a/modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp b/modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp index a1ff9757db..5b773bd6ec 100644 --- a/modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp +++ b/modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_ActionBroadcaster.h b/modules/juce_events/broadcasters/juce_ActionBroadcaster.h index 5926eef65f..7ed55575cb 100644 --- a/modules/juce_events/broadcasters/juce_ActionBroadcaster.h +++ b/modules/juce_events/broadcasters/juce_ActionBroadcaster.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_ActionListener.h b/modules/juce_events/broadcasters/juce_ActionListener.h index 8f1d5cd632..a5ba45c199 100644 --- a/modules/juce_events/broadcasters/juce_ActionListener.h +++ b/modules/juce_events/broadcasters/juce_ActionListener.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_AsyncUpdater.cpp b/modules/juce_events/broadcasters/juce_AsyncUpdater.cpp index 8c67b003ca..f9e579c3a9 100644 --- a/modules/juce_events/broadcasters/juce_AsyncUpdater.cpp +++ b/modules/juce_events/broadcasters/juce_AsyncUpdater.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_AsyncUpdater.h b/modules/juce_events/broadcasters/juce_AsyncUpdater.h index d0c343b051..5c430d302c 100644 --- a/modules/juce_events/broadcasters/juce_AsyncUpdater.h +++ b/modules/juce_events/broadcasters/juce_AsyncUpdater.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp b/modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp index a17c673815..cbcf85a7c7 100644 --- a/modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp +++ b/modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_ChangeBroadcaster.h b/modules/juce_events/broadcasters/juce_ChangeBroadcaster.h index a74070883e..5670e86c13 100644 --- a/modules/juce_events/broadcasters/juce_ChangeBroadcaster.h +++ b/modules/juce_events/broadcasters/juce_ChangeBroadcaster.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/broadcasters/juce_ChangeListener.h b/modules/juce_events/broadcasters/juce_ChangeListener.h index 3e619485ac..e8e8e425c0 100644 --- a/modules/juce_events/broadcasters/juce_ChangeListener.h +++ b/modules/juce_events/broadcasters/juce_ChangeListener.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp b/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp index 9ebdbb36ab..a5a424573b 100644 --- a/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp +++ b/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/interprocess/juce_ConnectedChildProcess.h b/modules/juce_events/interprocess/juce_ConnectedChildProcess.h index 75f67ca57c..80c953d11c 100644 --- a/modules/juce_events/interprocess/juce_ConnectedChildProcess.h +++ b/modules/juce_events/interprocess/juce_ConnectedChildProcess.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/interprocess/juce_InterprocessConnection.cpp b/modules/juce_events/interprocess/juce_InterprocessConnection.cpp index 70ac59ca26..8f5cbeb869 100644 --- a/modules/juce_events/interprocess/juce_InterprocessConnection.cpp +++ b/modules/juce_events/interprocess/juce_InterprocessConnection.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/interprocess/juce_InterprocessConnection.h b/modules/juce_events/interprocess/juce_InterprocessConnection.h index 23e9fe3d64..ed8fc6da71 100644 --- a/modules/juce_events/interprocess/juce_InterprocessConnection.h +++ b/modules/juce_events/interprocess/juce_InterprocessConnection.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp b/modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp index 3890f8a8b3..1eca65791f 100644 --- a/modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp +++ b/modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/interprocess/juce_InterprocessConnectionServer.h b/modules/juce_events/interprocess/juce_InterprocessConnectionServer.h index 01bee327dc..f871dd9533 100644 --- a/modules/juce_events/interprocess/juce_InterprocessConnectionServer.h +++ b/modules/juce_events/interprocess/juce_InterprocessConnectionServer.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/juce_events.cpp b/modules/juce_events/juce_events.cpp index 5514be444e..48edf2b675 100644 --- a/modules/juce_events/juce_events.cpp +++ b/modules/juce_events/juce_events.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/juce_events.h b/modules/juce_events/juce_events.h index 93a12e06eb..bdddd8b996 100644 --- a/modules/juce_events/juce_events.h +++ b/modules/juce_events/juce_events.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -33,11 +39,11 @@ ID: juce_events vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE message and event handling classes description: Classes for running an application's main event loop and sending/receiving messages, timers, etc. website: http://www.juce.com/juce - license: GPL/Commercial + license: ISC dependencies: juce_core linuxPackages: x11 diff --git a/modules/juce_events/juce_events.mm b/modules/juce_events/juce_events.mm index a1db9d439a..4237dd6711 100644 --- a/modules/juce_events/juce_events.mm +++ b/modules/juce_events/juce_events.mm @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_ApplicationBase.cpp b/modules/juce_events/messages/juce_ApplicationBase.cpp index 5a2e3c3742..5779dc6027 100644 --- a/modules/juce_events/messages/juce_ApplicationBase.cpp +++ b/modules/juce_events/messages/juce_ApplicationBase.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -164,7 +170,7 @@ StringArray JUCE_CALLTYPE JUCEApplicationBase::getCommandLineParameterArray() #else #if JUCE_IOS - extern int juce_iOSMain (int argc, const char* argv[]); + extern int juce_iOSMain (int argc, const char* argv[], void* classPtr); #endif #if JUCE_MAC @@ -201,7 +207,7 @@ StringArray JUCEApplicationBase::getCommandLineParameterArray() return StringArray (juce_argv + 1, juce_argc - 1); } -int JUCEApplicationBase::main (int argc, const char* argv[]) +int JUCEApplicationBase::main (int argc, const char* argv[], void* customDelegate) { JUCE_AUTORELEASEPOOL { @@ -213,8 +219,10 @@ int JUCEApplicationBase::main (int argc, const char* argv[]) #endif #if JUCE_IOS - return juce_iOSMain (argc, argv); + return juce_iOSMain (argc, argv, customDelegate); #else + ignoreUnused (customDelegate); + return JUCEApplicationBase::main(); #endif } diff --git a/modules/juce_events/messages/juce_ApplicationBase.h b/modules/juce_events/messages/juce_ApplicationBase.h index 35bc65ff71..748b86a441 100644 --- a/modules/juce_events/messages/juce_ApplicationBase.h +++ b/modules/juce_events/messages/juce_ApplicationBase.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -252,7 +258,7 @@ public: #ifndef DOXYGEN // The following methods are for internal use only... static int main(); - static int main (int argc, const char* argv[]); + static int main (int argc, const char* argv[], void*); static void appWillTerminateByForce(); typedef JUCEApplicationBase* (*CreateInstanceFunction)(); diff --git a/modules/juce_events/messages/juce_CallbackMessage.h b/modules/juce_events/messages/juce_CallbackMessage.h index 17ddbea9ad..23c70621b7 100644 --- a/modules/juce_events/messages/juce_CallbackMessage.h +++ b/modules/juce_events/messages/juce_CallbackMessage.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_DeletedAtShutdown.cpp b/modules/juce_events/messages/juce_DeletedAtShutdown.cpp index c3357af4e9..76d68107d8 100644 --- a/modules/juce_events/messages/juce_DeletedAtShutdown.cpp +++ b/modules/juce_events/messages/juce_DeletedAtShutdown.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_DeletedAtShutdown.h b/modules/juce_events/messages/juce_DeletedAtShutdown.h index b3215eb57d..e1563229cc 100644 --- a/modules/juce_events/messages/juce_DeletedAtShutdown.h +++ b/modules/juce_events/messages/juce_DeletedAtShutdown.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_Initialisation.h b/modules/juce_events/messages/juce_Initialisation.h index d358d0d8b9..f807106282 100644 --- a/modules/juce_events/messages/juce_Initialisation.h +++ b/modules/juce_events/messages/juce_Initialisation.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -97,7 +103,7 @@ public: #define JUCE_MAIN_FUNCTION_ARGS #else #define JUCE_MAIN_FUNCTION int main (int argc, char* argv[]) - #define JUCE_MAIN_FUNCTION_ARGS argc, (const char**) argv + #define JUCE_MAIN_FUNCTION_ARGS argc, (const char**) argv, nullptr #endif #define START_JUCE_APPLICATION(AppClass) \ @@ -107,6 +113,56 @@ public: juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \ return juce::JUCEApplicationBase::main (JUCE_MAIN_FUNCTION_ARGS); \ } + + #if JUCE_IOS + /** + You can instruct JUCE to use a custom iOS app delegate class instaed of JUCE's default + app delegate. For JUCE to work you must pass all messages to JUCE's internal app delegate. + Below is an example of minimal forwarding custom delegate. Note that you are at your own + risk if you decide to use your own delegate an subtle, hard to debug bugs may occur. + + @interface MyCustomDelegate : NSObject { NSObject* juceDelegate; } @end + @implementation MyCustomDelegate + -(id) init + { + self = [super init]; + juceDelegate = reinterpret_cast*> ([[NSClassFromString (@"JuceAppStartupDelegate") alloc] init]); + + return self; + } + + -(void)dealloc + { + [juceDelegate release]; + [super dealloc]; + } + + - (void)forwardInvocation:(NSInvocation *)anInvocation + { + if (juceDelegate != nullptr && [juceDelegate respondsToSelector:[anInvocation selector]]) + [anInvocation invokeWithTarget:juceDelegate]; + else + [super forwardInvocation:anInvocation]; + } + + -(BOOL)respondsToSelector:(SEL)aSelector + { + if (juceDelegate != nullptr && [juceDelegate respondsToSelector:aSelector]) + return YES; + + return [super respondsToSelector:aSelector]; + } + @end + */ + #define START_JUCE_APPLICATION_WITH_CUSTOM_DELEGATE(AppClass, DelegateClass) \ + static juce::JUCEApplicationBase* juce_CreateApplication() { return new AppClass(); } \ + extern "C" JUCE_MAIN_FUNCTION \ + { \ + juce::JUCEApplicationBase::createInstance = &juce_CreateApplication; \ + return juce::JUCEApplicationBase::main (argc, (const char**) argv, [DelegateClass class]); \ + } + #endif + #endif #endif // JUCE_INITIALISATION_H_INCLUDED diff --git a/modules/juce_events/messages/juce_Message.h b/modules/juce_events/messages/juce_Message.h index dab10a4af4..a3aa824693 100644 --- a/modules/juce_events/messages/juce_Message.h +++ b/modules/juce_events/messages/juce_Message.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_MessageListener.cpp b/modules/juce_events/messages/juce_MessageListener.cpp index ed75dd4992..01a66d97b1 100644 --- a/modules/juce_events/messages/juce_MessageListener.cpp +++ b/modules/juce_events/messages/juce_MessageListener.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_MessageListener.h b/modules/juce_events/messages/juce_MessageListener.h index 96edc1b6ec..2d8ddfcdfd 100644 --- a/modules/juce_events/messages/juce_MessageListener.h +++ b/modules/juce_events/messages/juce_MessageListener.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_MessageManager.cpp b/modules/juce_events/messages/juce_MessageManager.cpp index b7a1d8192c..de042358cb 100644 --- a/modules/juce_events/messages/juce_MessageManager.cpp +++ b/modules/juce_events/messages/juce_MessageManager.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_MessageManager.h b/modules/juce_events/messages/juce_MessageManager.h index 676ced4092..fa7893d1a6 100644 --- a/modules/juce_events/messages/juce_MessageManager.h +++ b/modules/juce_events/messages/juce_MessageManager.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h b/modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h index b987905146..6d60bd4835 100644 --- a/modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h +++ b/modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/messages/juce_NotificationType.h b/modules/juce_events/messages/juce_NotificationType.h index 9fb0c3a7d9..c8fdbabde1 100644 --- a/modules/juce_events/messages/juce_NotificationType.h +++ b/modules/juce_events/messages/juce_NotificationType.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_ScopedXLock.h b/modules/juce_events/native/juce_ScopedXLock.h index 12342074d8..c48bd23793 100644 --- a/modules/juce_events/native/juce_ScopedXLock.h +++ b/modules/juce_events/native/juce_ScopedXLock.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_android_Messaging.cpp b/modules/juce_events/native/juce_android_Messaging.cpp index d51b214cd9..e4bc452513 100644 --- a/modules/juce_events/native/juce_android_Messaging.cpp +++ b/modules/juce_events/native/juce_android_Messaging.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_ios_MessageManager.mm b/modules/juce_events/native/juce_ios_MessageManager.mm index b633c20224..ba088bef08 100644 --- a/modules/juce_events/native/juce_ios_MessageManager.mm +++ b/modules/juce_events/native/juce_ios_MessageManager.mm @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_linux_Messaging.cpp b/modules/juce_events/native/juce_linux_Messaging.cpp index 770a9aadcc..ad18da3916 100644 --- a/modules/juce_events/native/juce_linux_Messaging.cpp +++ b/modules/juce_events/native/juce_linux_Messaging.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_mac_MessageManager.mm b/modules/juce_events/native/juce_mac_MessageManager.mm index 5825400718..a0f63cc506 100644 --- a/modules/juce_events/native/juce_mac_MessageManager.mm +++ b/modules/juce_events/native/juce_mac_MessageManager.mm @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ @@ -297,7 +303,7 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) { CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true); - NSEvent* e = [NSApp nextEventMatchingMask: NSAnyEventMask + NSEvent* e = [NSApp nextEventMatchingMask: NSEventMaskAny untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001] inMode: NSDefaultRunLoopMode dequeue: YES]; diff --git a/modules/juce_events/native/juce_osx_MessageQueue.h b/modules/juce_events/native/juce_osx_MessageQueue.h index eee8242eb0..076135b3cf 100644 --- a/modules/juce_events/native/juce_osx_MessageQueue.h +++ b/modules/juce_events/native/juce_osx_MessageQueue.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_win32_HiddenMessageWindow.h b/modules/juce_events/native/juce_win32_HiddenMessageWindow.h index 80295f63b1..41f1766513 100644 --- a/modules/juce_events/native/juce_win32_HiddenMessageWindow.h +++ b/modules/juce_events/native/juce_win32_HiddenMessageWindow.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/native/juce_win32_Messaging.cpp b/modules/juce_events/native/juce_win32_Messaging.cpp index c8fb937eb5..f7e8a05767 100644 --- a/modules/juce_events/native/juce_win32_Messaging.cpp +++ b/modules/juce_events/native/juce_win32_Messaging.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/timers/juce_MultiTimer.cpp b/modules/juce_events/timers/juce_MultiTimer.cpp index 7941cf349d..82639da4eb 100644 --- a/modules/juce_events/timers/juce_MultiTimer.cpp +++ b/modules/juce_events/timers/juce_MultiTimer.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/timers/juce_MultiTimer.h b/modules/juce_events/timers/juce_MultiTimer.h index d32a0dd0c5..52152d2c30 100644 --- a/modules/juce_events/timers/juce_MultiTimer.h +++ b/modules/juce_events/timers/juce_MultiTimer.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/timers/juce_Timer.cpp b/modules/juce_events/timers/juce_Timer.cpp index e2be686eda..60035de973 100644 --- a/modules/juce_events/timers/juce_Timer.cpp +++ b/modules/juce_events/timers/juce_Timer.cpp @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_events/timers/juce_Timer.h b/modules/juce_events/timers/juce_Timer.h index 228e086539..f8b9e47011 100644 --- a/modules/juce_events/timers/juce_Timer.h +++ b/modules/juce_events/timers/juce_Timer.h @@ -2,22 +2,28 @@ ============================================================================== This file is part of the JUCE library. - Copyright (c) 2015 - ROLI Ltd. + Copyright (c) 2016 - ROLI Ltd. - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 + Permission is granted to use this software under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license/ - Details of these licenses can be found at: www.gnu.org/licenses + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. - 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. + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. - ------------------------------------------------------------------------------ + ----------------------------------------------------------------------------- - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. + To release a closed-source product which uses other parts of JUCE not + licensed under the ISC terms, commercial licenses are available: visit + www.juce.com for more information. ============================================================================== */ diff --git a/modules/juce_graphics/geometry/juce_Line.h b/modules/juce_graphics/geometry/juce_Line.h index 3223f836fd..dfd95cadd9 100644 --- a/modules/juce_graphics/geometry/juce_Line.h +++ b/modules/juce_graphics/geometry/juce_Line.h @@ -249,9 +249,9 @@ public: can be negative or greater than 1.0). @see getPointAlongLine */ - Point getPointAlongLineProportionally (ValueType proportionOfLength) const noexcept + Point getPointAlongLineProportionally (typename Point::FloatType proportionOfLength) const noexcept { - return start + (end - start) * proportionOfLength; + return start + Point ((end - start) * proportionOfLength); } /** Returns the smallest distance between this line segment and a given point. diff --git a/modules/juce_graphics/geometry/juce_Path.cpp b/modules/juce_graphics/geometry/juce_Path.cpp index a4ff1e178a..e11cff5432 100644 --- a/modules/juce_graphics/geometry/juce_Path.cpp +++ b/modules/juce_graphics/geometry/juce_Path.cpp @@ -1574,7 +1574,8 @@ void Path::restoreFromString (StringRef stringVersion) //============================================================================== Path::Iterator::Iterator (const Path& p) noexcept - : x1 (0), y1 (0), x2 (0), y2 (0), x3 (0), y3 (0), + : elementType (startNewSubPath), + x1 (0), y1 (0), x2 (0), y2 (0), x3 (0), y3 (0), path (p), index (0) { } diff --git a/modules/juce_graphics/geometry/juce_Rectangle.h b/modules/juce_graphics/geometry/juce_Rectangle.h index d37062c6dc..bd13c30d29 100644 --- a/modules/juce_graphics/geometry/juce_Rectangle.h +++ b/modules/juce_graphics/geometry/juce_Rectangle.h @@ -202,6 +202,12 @@ public: /** Returns a rectangle which has the same size and x-position as this one, but with a different y-position. */ Rectangle withY (ValueType newY) const noexcept { return Rectangle (pos.x, newY, w, h); } + /** Returns a rectangle which has the same size and y-position as this one, but whose right-hand edge has the given position. */ + Rectangle withRightX (ValueType newRightX) const noexcept { return Rectangle (newRightX - w, pos.y, w, h); } + + /** Returns a rectangle which has the same size and x-position as this one, but whose bottom edge has the given position. */ + Rectangle withBottomY (ValueType newBottomY) const noexcept { return Rectangle (pos.x, newBottomY - h, w, h); } + /** Returns a rectangle with the same size as this one, but a new position. */ Rectangle withPosition (ValueType newX, ValueType newY) const noexcept { return Rectangle (newX, newY, w, h); } diff --git a/modules/juce_graphics/image_formats/jpglib/jmemmgr.c b/modules/juce_graphics/image_formats/jpglib/jmemmgr.c index c11609b889..d7dca35d2b 100644 --- a/modules/juce_graphics/image_formats/jpglib/jmemmgr.c +++ b/modules/juce_graphics/image_formats/jpglib/jmemmgr.c @@ -1030,7 +1030,7 @@ jinit_memory_mgr (j_common_ptr cinfo) my_mem_ptr mem; long max_to_use; int pool; - size_t test_mac; +// size_t test_mac; cinfo->mem = NULL; /* for safety if init fails */ @@ -1048,10 +1048,10 @@ jinit_memory_mgr (j_common_ptr cinfo) * Again, an "unreachable code" warning may be ignored here. * But a "constant too large" warning means you need to fix MAX_ALLOC_CHUNK. */ - test_mac = (size_t) MAX_ALLOC_CHUNK; - if ((long) test_mac != MAX_ALLOC_CHUNK || - (MAX_ALLOC_CHUNK % SIZEOF(ALIGN_TYPE)) != 0) - ERREXIT(cinfo, JERR_BAD_ALLOC_CHUNK); +// test_mac = (size_t) MAX_ALLOC_CHUNK; +// if ((long) test_mac != MAX_ALLOC_CHUNK || +// (MAX_ALLOC_CHUNK % SIZEOF(ALIGN_TYPE)) != 0) +// ERREXIT(cinfo, JERR_BAD_ALLOC_CHUNK); max_to_use = jpeg_mem_init(cinfo); /* system-dependent initialization */ diff --git a/modules/juce_graphics/image_formats/juce_PNGLoader.cpp b/modules/juce_graphics/image_formats/juce_PNGLoader.cpp index efb61a778c..4885a49d24 100644 --- a/modules/juce_graphics/image_formats/juce_PNGLoader.cpp +++ b/modules/juce_graphics/image_formats/juce_PNGLoader.cpp @@ -320,7 +320,11 @@ namespace PNGHelpers static void JUCE_CDECL errorCallback (png_structp p, png_const_charp) { + #ifdef PNG_SETJMP_SUPPORTED + setjmp(png_jmpbuf(p)); + #else longjmp (*(jmp_buf*) p->error_ptr, 1); + #endif } static void JUCE_CDECL warningCallback (png_structp, png_const_charp) {} @@ -442,8 +446,13 @@ namespace PNGHelpers for (size_t y = 0; y < height; ++y) rows[y] = (png_bytep) (tempBuffer + lineStride * y); + png_bytep trans_alpha = nullptr; + png_color_16p trans_color = nullptr; + int num_trans = 0; + png_get_tRNS (pngReadStruct, pngInfoStruct, &trans_alpha, &num_trans, &trans_color); + if (readImageData (pngReadStruct, pngInfoStruct, errorJumpBuf, rows)) - return createImageFromData ((colorType & PNG_COLOR_MASK_ALPHA) != 0 || pngInfoStruct->num_trans > 0, + return createImageFromData ((colorType & PNG_COLOR_MASK_ALPHA) != 0 || num_trans != 0, (int) width, (int) height, rows); } diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index 9f6aaad28e..69fd59e04b 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -33,7 +33,7 @@ ID: juce_graphics vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE graphics classes description: Classes for 2D vector graphics, image loading/saving, font handling, etc. website: http://www.juce.com/juce diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm index 7f320cc37b..957d9cfa26 100644 --- a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm +++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm @@ -478,7 +478,8 @@ void CoreGraphicsContext::drawImage (const Image& sourceImage, const AffineTrans { const int iw = sourceImage.getWidth(); const int ih = sourceImage.getHeight(); - CGImageRef image = CoreGraphicsImage::getCachedImageRef (sourceImage, rgbColourSpace); + CGImageRef image = CoreGraphicsImage::getCachedImageRef (sourceImage, sourceImage.getFormat() == Image::PixelFormat::SingleChannel ? greyColourSpace + : rgbColourSpace); CGContextSaveGState (context); CGContextSetAlpha (context, state->fillType.getOpacity()); diff --git a/modules/juce_graphics/native/juce_mac_Fonts.mm b/modules/juce_graphics/native/juce_mac_Fonts.mm index 02689e6189..47ed02ee1a 100644 --- a/modules/juce_graphics/native/juce_mac_Fonts.mm +++ b/modules/juce_graphics/native/juce_mac_Fonts.mm @@ -389,15 +389,26 @@ namespace CoreTextTypeLayout static void drawToCGContext (const AttributedString& text, const Rectangle& area, const CGContextRef& context, const float flipHeight) { - CTFrameRef frame = createCTFrame (text, CGRectMake ((CGFloat) area.getX(), flipHeight - (CGFloat) area.getBottom(), - (CGFloat) area.getWidth(), (CGFloat) area.getHeight())); + Rectangle ctFrameArea; const int verticalJustification = text.getJustification().getOnlyVerticalFlags(); + // Ugly hack to fix a bug in OS X Sierra where the CTFrame needs to be slightly + // larger than the font height - otherwise the CTFrame will be invalid + if (verticalJustification == Justification::verticallyCentred) + ctFrameArea = area.withSizeKeepingCentre (area.getWidth(), area.getHeight() * 1.1f); + else if (verticalJustification == Justification::bottom) + ctFrameArea = area.withTop (area.getY() - (area.getHeight() * 0.1f)); + else + ctFrameArea = area.withHeight (area.getHeight() * 1.1f); + + CTFrameRef frame = createCTFrame (text, CGRectMake ((CGFloat) ctFrameArea.getX(), flipHeight - (CGFloat) ctFrameArea.getBottom(), + (CGFloat) ctFrameArea.getWidth(), (CGFloat) ctFrameArea.getHeight())); + if (verticalJustification == Justification::verticallyCentred || verticalJustification == Justification::bottom) { - float adjust = area.getHeight() - findCTFrameHeight (frame); + float adjust = ctFrameArea.getHeight() - findCTFrameHeight (frame); if (verticalJustification == Justification::verticallyCentred) adjust *= 0.5f; @@ -541,11 +552,15 @@ public: fontHeightToPointsFactor (1.0f), renderingTransform (CGAffineTransformIdentity), isMemoryFont (true), + dataCopy (data, dataSize), attributedStringAtts (nullptr), ascent (0.0f), unitsToHeightScaleFactor (0.0f) { - CFDataRef cfData = CFDataCreateWithBytesNoCopy (kCFAllocatorDefault, (const UInt8*) data, (CFIndex) dataSize, kCFAllocatorNull); + // We can't use CFDataCreate here as this triggers a false positive in ASAN + // so copy the data manually and use CFDataCreateWithBytesNoCopy + CFDataRef cfData = CFDataCreateWithBytesNoCopy (kCFAllocatorDefault, (const UInt8*) dataCopy.getData(), + (CFIndex) dataCopy.getSize(), kCFAllocatorNull); CGDataProviderRef provider = CGDataProviderCreateWithCFData (cfData); CFRelease (cfData); @@ -709,6 +724,7 @@ public: bool isMemoryFont; private: + MemoryBlock dataCopy; CFDictionaryRef attributedStringAtts; float ascent, unitsToHeightScaleFactor; AffineTransform pathTransform; diff --git a/modules/juce_graphics/placement/juce_RectanglePlacement.h b/modules/juce_graphics/placement/juce_RectanglePlacement.h index ec99bee93f..dcbf38014d 100644 --- a/modules/juce_graphics/placement/juce_RectanglePlacement.h +++ b/modules/juce_graphics/placement/juce_RectanglePlacement.h @@ -28,7 +28,7 @@ //============================================================================== /** - Defines the method used to postion some kind of rectangular object within + Defines the method used to position some kind of rectangular object within a rectangular viewport. Although similar to Justification, this is more specific, and has some extra diff --git a/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp b/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp index 0894e80ae8..7d6e903195 100644 --- a/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp +++ b/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp @@ -101,9 +101,9 @@ void ShapeButton::paintButton (Graphics& g, bool isMouseOverButton, bool isButto const AffineTransform trans (shape.getTransformToScaleToFit (r, maintainShapeProportions)); - g.setColour (isButtonDown ? downColour - : isMouseOverButton ? overColour - : normalColour); + g.setColour (isButtonDown || getToggleState() ? downColour + : isMouseOverButton ? overColour + : normalColour); g.fillPath (shape, trans); if (outlineWidth > 0.0f) diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index f544e77533..f207733f71 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -1755,6 +1755,15 @@ void Component::exitModalState (const int returnValue) ModalComponentManager& mcm = *ModalComponentManager::getInstance(); mcm.endModal (this, returnValue); mcm.bringModalComponentsToFront(); + + // If any of the mouse sources are over another Component when we exit the modal state then send a mouse enter event + const Array& mouseSources = Desktop::getInstance().getMouseSources(); + + for (MouseInputSource* mi = mouseSources.begin(), * const e = mouseSources.end(); mi != e; ++mi) + { + if (Component* c = mi->getComponentUnderMouse()) + c->internalMouseEnter (*mi, mi->getScreenPosition(), Time::getCurrentTime()); + } } else { @@ -2406,6 +2415,13 @@ void Component::internalMouseEnter (MouseInputSource source, Point relati void Component::internalMouseExit (MouseInputSource source, Point relativePos, Time time) { + if (isCurrentlyBlockedByAnotherModalComponent()) + { + // if something else is modal, always just show a normal mouse cursor + source.showMouseCursor (MouseCursor::NormalCursor); + return; + } + if (flags.repaintOnMouseActivityFlag) repaint(); diff --git a/modules/juce_gui_basics/drawables/juce_SVGParser.cpp b/modules/juce_gui_basics/drawables/juce_SVGParser.cpp index e819d3fc1a..8b17df846d 100644 --- a/modules/juce_gui_basics/drawables/juce_SVGParser.cpp +++ b/modules/juce_gui_basics/drawables/juce_SVGParser.cpp @@ -28,7 +28,6 @@ public: //============================================================================== explicit SVGState (const XmlElement* const topLevel) : topLevelXml (topLevel, nullptr), - elementX (0), elementY (0), width (512), height (512), viewBoxW (0), viewBoxH (0) { @@ -66,63 +65,59 @@ public: const XmlPath* parent; }; - //============================================================================== - struct UsePathOp - { - const SVGState* state; - Path* targetPath; - - void operator() (const XmlPath& xmlPath) + //============================================================================== + struct UsePathOp { - state->parsePathElement (xmlPath, *targetPath); - } - }; + const SVGState* state; + Path* targetPath; - struct GetClipPathOp - { - const SVGState* state; - Drawable* target; + void operator() (const XmlPath& xmlPath) + { + state->parsePathElement (xmlPath, *targetPath); + } + }; - void operator() (const XmlPath& xmlPath) + struct GetClipPathOp { - state->applyClipPath (*target, xmlPath); - } - }; + const SVGState* state; + Drawable* target; - struct SetGradientStopsOp - { - const SVGState* state; - ColourGradient* gradient; + void operator() (const XmlPath& xmlPath) + { + state->applyClipPath (*target, xmlPath); + } + }; - void operator() (const XmlPath& xml) + struct SetGradientStopsOp { - state->addGradientStopsIn (*gradient, xml); - } - }; + const SVGState* state; + ColourGradient* gradient; - struct GetFillTypeOp - { - const SVGState* state; - const Path* path; - float opacity; - FillType fillType; + void operator() (const XmlPath& xml) + { + state->addGradientStopsIn (*gradient, xml); + } + }; - void operator() (const XmlPath& xml) + struct GetFillTypeOp { - if (xml->hasTagNameIgnoringNamespace ("linearGradient") - || xml->hasTagNameIgnoringNamespace ("radialGradient")) - fillType = state->getGradientFillType (xml, *path, opacity); - } - }; + const SVGState* state; + const Path* path; + float opacity; + FillType fillType; + + void operator() (const XmlPath& xml) + { + if (xml->hasTagNameIgnoringNamespace ("linearGradient") + || xml->hasTagNameIgnoringNamespace ("radialGradient")) + fillType = state->getGradientFillType (xml, *path, opacity); + } + }; //============================================================================== Drawable* parseSVGElement (const XmlPath& xml) { - if (! xml->hasTagNameIgnoringNamespace ("svg")) - return nullptr; - DrawableComposite* const drawable = new DrawableComposite(); - setCommonAttributes (*drawable, xml); SVGState newState (*this); @@ -130,10 +125,8 @@ public: if (xml->hasAttribute ("transform")) newState.addTransform (xml); - newState.elementX = getCoordLength (xml->getStringAttribute ("x", String (newState.elementX)), viewBoxW); - newState.elementY = getCoordLength (xml->getStringAttribute ("y", String (newState.elementY)), viewBoxH); - newState.width = getCoordLength (xml->getStringAttribute ("width", String (newState.width)), viewBoxW); - newState.height = getCoordLength (xml->getStringAttribute ("height", String (newState.height)), viewBoxH); + newState.width = getCoordLength (xml->getStringAttribute ("width", String (newState.width)), viewBoxW); + newState.height = getCoordLength (xml->getStringAttribute ("height", String (newState.height)), viewBoxH); if (newState.width <= 0) newState.width = 100; if (newState.height <= 0) newState.height = 100; @@ -186,21 +179,19 @@ public: String::CharPointerType d (pathString.getCharPointer().findEndOfWhitespace()); Point subpathStart, last, last2, p1, p2, p3; - juce_wchar lastCommandChar = 0; + juce_wchar currentCommand = 0, previousCommand = 0; bool isRelative = true; bool carryOn = true; - const CharPointer_ASCII validCommandChars ("MmLlHhVvCcSsQqTtAaZz"); - while (! d.isEmpty()) { - if (validCommandChars.indexOf (*d) >= 0) + if (CharPointer_ASCII ("MmLlHhVvCcSsQqTtAaZz").indexOf (*d) >= 0) { - lastCommandChar = d.getAndAdvance(); - isRelative = (lastCommandChar >= 'a' && lastCommandChar <= 'z'); + currentCommand = d.getAndAdvance(); + isRelative = currentCommand >= 'a'; } - switch (lastCommandChar) + switch (currentCommand) { case 'M': case 'm': @@ -211,11 +202,11 @@ public: if (isRelative) p1 += last; - if (lastCommandChar == 'M' || lastCommandChar == 'm') + if (currentCommand == 'M' || currentCommand == 'm') { subpathStart = p1; path.startNewSubPath (p1); - lastCommandChar = 'l'; + currentCommand = 'l'; } else path.lineTo (p1); @@ -325,7 +316,8 @@ public: if (isRelative) p1 += last; - p2 = last + (last - last2); + p2 = CharPointer_ASCII ("QqTt").indexOf (previousCommand) >= 0 ? last + (last - last2) + : p1; path.quadraticTo (p2, p1); last2 = p2; @@ -389,7 +381,7 @@ public: path.closeSubPath(); last = last2 = subpathStart; d = d.findEndOfWhitespace(); - lastCommandChar = 'M'; + currentCommand = 'M'; break; default: @@ -399,6 +391,8 @@ public: if (! carryOn) break; + + previousCommand = currentCommand; } // paths that finish back at their start position often seem to be @@ -410,7 +404,7 @@ public: private: //============================================================================== const XmlPath topLevelXml; - float elementX, elementY, width, height, viewBoxW, viewBoxH; + float width, height, viewBoxW, viewBoxH; AffineTransform transform; String cssStyleText; @@ -485,7 +479,6 @@ private: { SVGState newState (*this); newState.addTransform (xml); - newState.parseSubElements (xml, *drawable); } else @@ -635,8 +628,7 @@ private: path.applyTransform (transform); dp->setPath (path); - dp->setFill (getPathFillType (path, - getStyleAttribute (xml, "fill"), + dp->setFill (getPathFillType (path, xml, "fill", getStyleAttribute (xml, "fill-opacity"), getStyleAttribute (xml, "opacity"), pathContainsClosedSubPath (path) ? Colours::black @@ -646,7 +638,7 @@ private: if (strokeType.isNotEmpty() && ! strokeType.equalsIgnoreCase ("none")) { - dp->setStrokeFill (getPathFillType (path, strokeType, + dp->setStrokeFill (getPathFillType (path, xml, "stroke", getStyleAttribute (xml, "stroke-opacity"), getStyleAttribute (xml, "opacity"), Colours::transparentBlack)); @@ -751,8 +743,7 @@ private: { forEachXmlChildElementWithTagName (*fillXml, e, "stop") { - int index = 0; - Colour col (parseColour (getStyleAttribute (fillXml.getChild (e), "stop-color"), index, Colours::black)); + Colour col (parseColour (fillXml.getChild (e), "stop-color", Colours::black)); const String opacity (getStyleAttribute (fillXml.getChild (e), "stop-opacity", "1")); col = col.withMultipliedAlpha (jlimit (0.0f, 1.0f, opacity.getFloatValue())); @@ -892,7 +883,8 @@ private: } FillType getPathFillType (const Path& path, - const String& fill, + const XmlPath& xml, + StringRef fillAttribute, const String& fillOpacity, const String& overallOpacity, const Colour defaultColour) const @@ -905,6 +897,7 @@ private: if (fillOpacity.isNotEmpty()) opacity *= (jlimit (0.0f, 1.0f, fillOpacity.getFloatValue())); + String fill (getStyleAttribute (xml, fillAttribute)); String urlID = parseURL (fill); if (urlID.isNotEmpty()) @@ -918,8 +911,7 @@ private: if (fill.equalsIgnoreCase ("none")) return Colours::transparentBlack; - int i = 0; - return parseColour (fill, i, defaultColour).withMultipliedAlpha (opacity); + return parseColour (xml, fillAttribute, defaultColour).withMultipliedAlpha (opacity); } static PathStrokeType::JointStyle getJointStyle (const String& join) noexcept @@ -987,8 +979,7 @@ private: dt->setFont (font, true); dt->setTransform (transform); - int i = 0; - dt->setColour (parseColour (getStyleAttribute (xml, "fill"), i, Colours::black) + dt->setColour (parseColour (xml, "fill", Colours::black) .withMultipliedAlpha (getStyleAttribute (xml, "fill-opacity", "1").getFloatValue())); Rectangle bounds (xCoords[0], yCoords[0] - font.getAscent(), @@ -1167,7 +1158,7 @@ private: return xml->getStringAttribute (attributeName); if (xml.parent != nullptr) - return getInheritedAttribute (*xml.parent, attributeName); + return getInheritedAttribute (*xml.parent, attributeName); return String(); } @@ -1285,16 +1276,19 @@ private: } //============================================================================== - static Colour parseColour (const String& s, int& index, const Colour defaultColour) + Colour parseColour (const XmlPath& xml, StringRef attributeName, const Colour defaultColour) const { - if (s [index] == '#') + const String text (getStyleAttribute (xml, attributeName)); + + if (text.startsWithChar ('#')) { uint32 hex[6] = { 0 }; int numChars = 0; + String::CharPointerType s = text.getCharPointer(); - for (int i = 6; --i >= 0;) + while (numChars < 6) { - const int hexValue = CharacterFunctions::getHexDigitValue (s [++index]); + const int hexValue = CharacterFunctions::getHexDigitValue (*++s); if (hexValue >= 0) hex [numChars++] = (uint32) hexValue; @@ -1303,28 +1297,24 @@ private: } if (numChars <= 3) - return Colour ((uint8) (hex [0] * 0x11), - (uint8) (hex [1] * 0x11), - (uint8) (hex [2] * 0x11)); + return Colour ((uint8) (hex[0] * 0x11), + (uint8) (hex[1] * 0x11), + (uint8) (hex[2] * 0x11)); - return Colour ((uint8) ((hex [0] << 4) + hex [1]), - (uint8) ((hex [2] << 4) + hex [3]), - (uint8) ((hex [4] << 4) + hex [5])); + return Colour ((uint8) ((hex[0] << 4) + hex[1]), + (uint8) ((hex[2] << 4) + hex[3]), + (uint8) ((hex[4] << 4) + hex[5])); } - if (s [index] == 'r' - && s [index + 1] == 'g' - && s [index + 2] == 'b') + if (text.startsWith ("rgb")) { - const int openBracket = s.indexOfChar (index, '('); - const int closeBracket = s.indexOfChar (openBracket, ')'); + const int openBracket = text.indexOfChar ('('); + const int closeBracket = text.indexOfChar (openBracket, ')'); if (openBracket >= 3 && closeBracket > openBracket) { - index = closeBracket; - StringArray tokens; - tokens.addTokens (s.substring (openBracket + 1, closeBracket), ",", ""); + tokens.addTokens (text.substring (openBracket + 1, closeBracket), ",", ""); tokens.trim(); tokens.removeEmptyStrings(); @@ -1332,14 +1322,21 @@ private: return Colour ((uint8) roundToInt (2.55 * tokens[0].getDoubleValue()), (uint8) roundToInt (2.55 * tokens[1].getDoubleValue()), (uint8) roundToInt (2.55 * tokens[2].getDoubleValue())); - else - return Colour ((uint8) tokens[0].getIntValue(), - (uint8) tokens[1].getIntValue(), - (uint8) tokens[2].getIntValue()); + + return Colour ((uint8) tokens[0].getIntValue(), + (uint8) tokens[1].getIntValue(), + (uint8) tokens[2].getIntValue()); } } - return Colours::findColourForName (s, defaultColour); + if (text == "inherit") + { + for (const XmlPath* p = xml.parent; p != nullptr; p = p->parent) + if (getStyleAttribute (*p, attributeName).isNotEmpty()) + return parseColour (*p, attributeName, defaultColour); + } + + return Colours::findColourForName (text, defaultColour); } static AffineTransform parseTransform (String t) @@ -1482,6 +1479,9 @@ private: //============================================================================== Drawable* Drawable::createFromSVG (const XmlElement& svgDocument) { + if (! svgDocument.hasTagNameIgnoringNamespace ("svg")) + return nullptr; + SVGState state (&svgDocument); return state.parseSVGElement (SVGState::XmlPath (&svgDocument, nullptr)); } diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h index a5883f6ae8..f299d9b78c 100644 --- a/modules/juce_gui_basics/juce_gui_basics.h +++ b/modules/juce_gui_basics/juce_gui_basics.h @@ -33,7 +33,7 @@ ID: juce_gui_basics vendor: juce - version: 4.3.0 + version: 4.3.1 name: JUCE GUI core classes description: Basic user-interface components and related classes. website: http://www.juce.com/juce diff --git a/modules/juce_gui_basics/layout/juce_FlexBox.cpp b/modules/juce_gui_basics/layout/juce_FlexBox.cpp index 6d53a1832d..5c89190238 100644 --- a/modules/juce_gui_basics/layout/juce_FlexBox.cpp +++ b/modules/juce_gui_basics/layout/juce_FlexBox.cpp @@ -806,8 +806,9 @@ FlexItem::FlexItem (float w, float h, FlexBox& fb) noexcept : FlexItem (w, h FlexItem::FlexItem (Component& c) noexcept : associatedComponent (&c) {} FlexItem::FlexItem (FlexBox& fb) noexcept : associatedFlexBox (&fb) {} -FlexItem::Margin::Margin() noexcept : left(), right(), top(), bottom() {} -FlexItem::Margin::Margin (float v) noexcept : left (v), right (v), top (v), bottom (v) {} +FlexItem::Margin::Margin() noexcept : left(), right(), top(), bottom() {} +FlexItem::Margin::Margin (float v) noexcept : left (v), right (v), top (v), bottom (v) {} +FlexItem::Margin::Margin (float t, float r, float b, float l) noexcept : left (l), right (r), top (t), bottom (b) {} //============================================================================== FlexItem FlexItem::withFlex (float newFlexGrow) const noexcept @@ -831,6 +832,14 @@ FlexItem FlexItem::withFlex (float newFlexGrow, float newFlexShrink, float newFl return fi; } -FlexItem FlexItem::withWidth (float newWidth) const noexcept { auto fi = *this; fi.width = newWidth; return fi; } -FlexItem FlexItem::withHeight (float newHeight) const noexcept { auto fi = *this; fi.height = newHeight; return fi; } -FlexItem FlexItem::withMargin (Margin m) const noexcept { auto fi = *this; fi.margin = m; return fi; } +FlexItem FlexItem::withWidth (float newWidth) const noexcept { auto fi = *this; fi.width = newWidth; return fi; } +FlexItem FlexItem::withMinWidth (float newMinWidth) const noexcept { auto fi = *this; fi.minWidth = newMinWidth; return fi; } +FlexItem FlexItem::withMaxWidth (float newMaxWidth) const noexcept { auto fi = *this; fi.maxWidth = newMaxWidth; return fi; } + +FlexItem FlexItem::withMinHeight (float newMinHeight) const noexcept { auto fi = *this; fi.minHeight = newMinHeight; return fi; }; +FlexItem FlexItem::withMaxHeight (float newMaxHeight) const noexcept { auto fi = *this; fi.maxHeight = newMaxHeight; return fi; }; +FlexItem FlexItem::withHeight (float newHeight) const noexcept { auto fi = *this; fi.height = newHeight; return fi; } + +FlexItem FlexItem::withMargin (Margin m) const noexcept { auto fi = *this; fi.margin = m; return fi; } +FlexItem FlexItem::withOrder (int newOrder) const noexcept { auto fi = *this; fi.order = newOrder; return fi; } +FlexItem FlexItem::withAlignSelf (AlignSelf a) const noexcept { auto fi = *this; fi.alignSelf = a; return fi; } diff --git a/modules/juce_gui_basics/layout/juce_FlexItem.h b/modules/juce_gui_basics/layout/juce_FlexItem.h index 8390310558..0877c2474d 100644 --- a/modules/juce_gui_basics/layout/juce_FlexItem.h +++ b/modules/juce_gui_basics/layout/juce_FlexItem.h @@ -111,6 +111,7 @@ public: { Margin() noexcept; /**< Creates a margin of size zero. */ Margin (float size) noexcept; /**< Creates a margin with this size on all sides. */ + Margin (float top, float right, float bottom, float left) noexcept; /**< Creates a margin with these sizes. */ float left; /**< Left margin size */ float right; /**< Right margin size */ @@ -134,9 +135,27 @@ public: /** Returns a copy of this object with a new width. */ FlexItem withWidth (float newWidth) const noexcept; + /** Returns a copy of this object with a new minimum width. */ + FlexItem withMinWidth (float newMinWidth) const noexcept; + + /** Returns a copy of this object with a new maximum width. */ + FlexItem withMaxWidth (float newMaxWidth) const noexcept; + /** Returns a copy of this object with a new height. */ FlexItem withHeight (float newHeight) const noexcept; + /** Returns a copy of this object with a new minimum height. */ + FlexItem withMinHeight (float newMinHeight) const noexcept; + + /** Returns a copy of this object with a new maximum height. */ + FlexItem withMaxHeight (float newMaxHeight) const noexcept; + /** Returns a copy of this object with a new margin. */ FlexItem withMargin (Margin) const noexcept; + + /** Returns a copy of this object with a new order. */ + FlexItem withOrder (int newOrder) const noexcept; + + /** Returns a copy of this object with a new alignSelf value. */ + FlexItem withAlignSelf (AlignSelf newAlignSelf) const noexcept; }; diff --git a/modules/juce_gui_basics/layout/juce_TabbedComponent.cpp b/modules/juce_gui_basics/layout/juce_TabbedComponent.cpp index 1682cf7865..25d7165898 100644 --- a/modules/juce_gui_basics/layout/juce_TabbedComponent.cpp +++ b/modules/juce_gui_basics/layout/juce_TabbedComponent.cpp @@ -174,6 +174,12 @@ void TabbedComponent::removeTab (const int tabIndex) } } +void TabbedComponent::moveTab (const int currentIndex, const int newIndex, const bool animate) +{ + contentComponents.move (currentIndex, newIndex); + tabs->moveTab (currentIndex, newIndex, animate); +} + int TabbedComponent::getNumTabs() const { return tabs->getNumTabs(); diff --git a/modules/juce_gui_basics/layout/juce_TabbedComponent.h b/modules/juce_gui_basics/layout/juce_TabbedComponent.h index 944ff83b79..98f627a366 100644 --- a/modules/juce_gui_basics/layout/juce_TabbedComponent.h +++ b/modules/juce_gui_basics/layout/juce_TabbedComponent.h @@ -116,6 +116,11 @@ public: /** Gets rid of one of the tabs. */ void removeTab (int tabIndex); + /** Moves a tab to a new index in the list. + Pass -1 as the index to move it to the end of the list. + */ + void moveTab (int currentIndex, int newIndex, bool animate = false); + /** Returns the number of tabs in the bar. */ int getNumTabs() const; diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp index 2442ef9557..426b672b07 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp @@ -489,6 +489,19 @@ int LookAndFeel_V2::getAlertBoxWindowFlags() | ComponentPeer::windowHasDropShadow; } +Array LookAndFeel_V2::getWidthsForTextButtons (AlertWindow&, const Array& buttons) +{ + const int n = buttons.size(); + Array buttonWidths; + + const int buttonHeight = getAlertWindowButtonHeight(); + + for (int i = 0; i < n; ++i) + buttonWidths.add (getTextButtonWidthToFitText (*buttons.getReference (i), buttonHeight)); + + return buttonWidths; +} + int LookAndFeel_V2::getAlertWindowButtonHeight() { return 28; diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h index 2468edeb1d..f1f7e26936 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h @@ -66,6 +66,8 @@ public: void drawAlertBox (Graphics&, AlertWindow&, const Rectangle& textArea, TextLayout&) override; int getAlertBoxWindowFlags() override; + + Array getWidthsForTextButtons (AlertWindow&, const Array&) override; int getAlertWindowButtonHeight() override; /** Override this function to supply a custom font for the alert window title. diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index 248cfd47b4..c1dbcebab9 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -162,7 +162,7 @@ private: for (int i = 0; i < keyPresses.size(); ++i) { - const String key (keyPresses.getReference(i).getTextDescriptionWithIcons()); + const String key (keyPresses.getReference (i).getTextDescriptionWithIcons()); if (shortcutKey.isNotEmpty()) shortcutKey << ", "; @@ -230,7 +230,7 @@ public: for (int i = 0; i < menu.items.size(); ++i) { - PopupMenu::Item* const item = menu.items.getUnchecked(i); + PopupMenu::Item* const item = menu.items.getUnchecked (i); if (i < menu.items.size() - 1 || ! item->isSeparator) items.add (new ItemComponent (*item, options.standardHeight, *this)); @@ -431,7 +431,7 @@ public: for (int i = mouseSourceStates.size(); --i >= 0;) { - mouseSourceStates.getUnchecked(i)->timerCallback(); + mouseSourceStates.getUnchecked (i)->timerCallback(); if (deletionChecker == nullptr) return; @@ -512,7 +512,7 @@ public: { for (int i = mouseSourceStates.size(); --i >= 0;) { - MouseSourceState& ms = *mouseSourceStates.getUnchecked(i); + MouseSourceState& ms = *mouseSourceStates.getUnchecked (i); if (ms.source == source) return ms; } @@ -538,7 +538,7 @@ public: bool isAnyMouseOver() const { for (int i = 0; i < mouseSourceStates.size(); ++i) - if (mouseSourceStates.getUnchecked(i)->isOver()) + if (mouseSourceStates.getUnchecked (i)->isOver()) return true; return false; @@ -767,7 +767,7 @@ public: for (int i = items.size(); --i >= 0;) { - if (ItemComponent* const m = items.getUnchecked(i)) + if (ItemComponent* const m = items.getUnchecked (i)) { if (m->item.itemID == itemID && windowPos.getHeight() > PopupMenuSettings::scrollZone * 4) @@ -1185,7 +1185,7 @@ private: int amount = 0; for (int i = 0; i < window.items.size() && amount == 0; ++i) - amount = ((int) scrollAcceleration) * window.items.getUnchecked(i)->getHeight(); + amount = ((int) scrollAcceleration) * window.items.getUnchecked (i)->getHeight(); window.alterChildYPos (amount * direction); lastScrollTime = timeNow; @@ -1216,7 +1216,7 @@ struct NormalComponentWrapper : public PopupMenu::CustomComponent void resized() override { - if (Component* const child = getChildComponent(0)) + if (Component* const child = getChildComponent (0)) child->setBounds (getLocalBounds()); } @@ -1711,7 +1711,7 @@ int PopupMenu::getNumItems() const noexcept int num = 0; for (int i = items.size(); --i >= 0;) - if (! items.getUnchecked(i)->isSeparator) + if (! items.getUnchecked (i)->isSeparator) ++num; return num; @@ -1800,21 +1800,44 @@ PopupMenu::CustomCallback::CustomCallback() {} PopupMenu::CustomCallback::~CustomCallback() {} //============================================================================== -PopupMenu::MenuItemIterator::MenuItemIterator (const PopupMenu& m) : menu (m), index (0) {} +PopupMenu::MenuItemIterator::MenuItemIterator (const PopupMenu& m, bool searchR) : searchRecursively (searchR) +{ + currentItem = nullptr; + index.add (0); + menus.add (&m); +} + PopupMenu::MenuItemIterator::~MenuItemIterator() {} bool PopupMenu::MenuItemIterator::next() { - if (index >= menu.items.size()) + if (index.size() == 0 || menus.getLast()->items.size() == 0) return false; - const Item* const item = menu.items.getUnchecked (index++); + currentItem = menus.getLast()->items.getUnchecked (index.getLast()); - return ! (item->isSeparator && index >= menu.items.size()); // (avoid showing a separator at the end) + if (searchRecursively && currentItem->subMenu != nullptr) + { + index.add (0); + menus.add (currentItem->subMenu); + } + else + index.setUnchecked (index.size() - 1, index.getLast() + 1); + + while (index.size() > 0 && index.getLast() >= menus.getLast()->items.size()) + { + index.removeLast(); + menus.removeLast(); + + if (index.size() > 0) + index.setUnchecked (index.size() - 1, index.getLast() + 1); + } + + return true; } -const PopupMenu::Item& PopupMenu::MenuItemIterator::getItem() const noexcept +PopupMenu::Item& PopupMenu::MenuItemIterator::getItem() const noexcept { - jassert (isPositiveAndBelow (index - 1, menu.items.size())); - return *menu.items.getUnchecked (index - 1); + jassert (currentItem != nullptr); + return *(currentItem); } diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.h b/modules/juce_gui_basics/menus/juce_PopupMenu.h index 76b18a2e7a..edfcb088f4 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.h +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.h @@ -554,8 +554,13 @@ public: Be careful not to add any items to a menu while it is being iterated, or things could get out of step. + + @param menu the menu that needs to be scanned + + @param searchRecursively if true, all submenus will be recursed into to + do an exhaustive search */ - MenuItemIterator (const PopupMenu& menu); + MenuItemIterator (const PopupMenu& menu, bool searchRecursively = false); /** Destructor. */ ~MenuItemIterator(); @@ -568,12 +573,15 @@ public: /** Returns a reference to the description of the current item. It is only valid to call this after next() has returned true! */ - const Item& getItem() const noexcept; + Item& getItem() const noexcept; private: //============================================================================== - const PopupMenu& menu; - int index; + bool searchRecursively; + + Array index; + Array menus; + PopupMenu::Item *currentItem; MenuItemIterator& operator= (const MenuItemIterator&); JUCE_LEAK_DETECTOR (MenuItemIterator) diff --git a/modules/juce_gui_basics/misc/juce_DropShadower.cpp b/modules/juce_gui_basics/misc/juce_DropShadower.cpp index d46f1372d8..0c3f4ad621 100644 --- a/modules/juce_gui_basics/misc/juce_DropShadower.cpp +++ b/modules/juce_gui_basics/misc/juce_DropShadower.cpp @@ -187,10 +187,12 @@ void DropShadower::updateShadows() WeakReference sw (shadowWindows[i]); if (sw != nullptr) + { sw->setAlwaysOnTop (owner->isAlwaysOnTop()); - if (sw != nullptr) - { + if (sw == nullptr) + return; + switch (i) { case 0: sw->setBounds (x - shadowEdge, y, shadowEdge, h); break; @@ -199,13 +201,12 @@ void DropShadower::updateShadows() case 3: sw->setBounds (x, owner->getBottom(), w, shadowEdge); break; default: break; } - } - if (sw != nullptr) + if (sw == nullptr) + return; + sw->toBehind (i == 3 ? owner : shadowWindows.getUnchecked (i + 1)); - - if (sw == nullptr) - return; + } } } else diff --git a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp index e7c88ee0f3..527c8ea8a5 100644 --- a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp +++ b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp @@ -70,7 +70,7 @@ public: current->itemDragExit (sourceDetails); } - owner.dragOperationEnded(); + owner.dragOperationEnded (sourceDetails); } void paint (Graphics& g) override @@ -300,12 +300,17 @@ private: : files (f), canMoveFiles (canMove) {} + ExternalDragAndDropMessage (const String& t) : text (t), canMoveFiles() {} + void messageCallback() override { - DragAndDropContainer::performExternalDragDropOfFiles (files, canMoveFiles); + if (text.isEmpty()) + DragAndDropContainer::performExternalDragDropOfFiles (files, canMoveFiles); + else + DragAndDropContainer::performExternalDragDropOfText (text); } - private: + String text; StringArray files; bool canMoveFiles; }; @@ -318,14 +323,21 @@ private: { hasCheckedForExternalDrag = true; StringArray files; + String text; bool canMoveFiles = false; - if (owner.shouldDropFilesWhenDraggedExternally (details, files, canMoveFiles) - && files.size() > 0 - && ModifierKeys::getCurrentModifiersRealtime().isAnyMouseButtonDown()) + if (ModifierKeys::getCurrentModifiersRealtime().isAnyMouseButtonDown()) { - (new ExternalDragAndDropMessage (files, canMoveFiles))->post(); - deleteSelf(); + if (owner.shouldDropFilesWhenDraggedExternally (details, files, canMoveFiles) && ! files.isEmpty()) + { + (new ExternalDragAndDropMessage (files, canMoveFiles))->post(); + deleteSelf(); + } + else if (owner.shouldDropTextWhenDraggedExternally (details, text) && text.isNotEmpty()) + { + (new ExternalDragAndDropMessage (text))->post(); + deleteSelf(); + } } } } @@ -469,7 +481,7 @@ void DragAndDropContainer::startDragging (const var& sourceDescription, peer->performAnyPendingRepaintsNow(); #endif - dragOperationStarted(); + dragOperationStarted (dragImageComponent->sourceDetails); } } @@ -500,8 +512,13 @@ bool DragAndDropContainer::shouldDropFilesWhenDraggedExternally (const DragAndDr return false; } -void DragAndDropContainer::dragOperationStarted() {} -void DragAndDropContainer::dragOperationEnded() {} +bool DragAndDropContainer::shouldDropTextWhenDraggedExternally (const DragAndDropTarget::SourceDetails&, String&) +{ + return false; +} + +void DragAndDropContainer::dragOperationStarted (const DragAndDropTarget::SourceDetails&) {} +void DragAndDropContainer::dragOperationEnded (const DragAndDropTarget::SourceDetails&) {} //============================================================================== DragAndDropTarget::SourceDetails::SourceDetails (const var& desc, Component* comp, Point pos) noexcept diff --git a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h index faf9b6b76b..a807057816 100644 --- a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h +++ b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h @@ -152,10 +152,10 @@ public: static bool performExternalDragDropOfText (const String& text); protected: - /** Override this if you want to be able to perform an external drag a set of files + /** Override this if you want to be able to perform an external drag of a set of files when the user drags outside of this container component. - This method will be called when a drag operation moves outside the Juce-based window, + This method will be called when a drag operation moves outside the JUCE window, and if you want it to then perform a file drag-and-drop, add the filenames you want to the array passed in, and return true. @@ -163,16 +163,30 @@ protected: @param files on return, the filenames you want to drag @param canMoveFiles on return, true if it's ok for the receiver to move the files; false if it must make a copy of them (see the performExternalDragDropOfFiles() method) - @see performExternalDragDropOfFiles + @see performExternalDragDropOfFiles, shouldDropTextWhenDraggedExternally */ virtual bool shouldDropFilesWhenDraggedExternally (const DragAndDropTarget::SourceDetails& sourceDetails, StringArray& files, bool& canMoveFiles); + /** Override this if you want to be able to perform an external drag of text + when the user drags outside of this container component. + + This method will be called when a drag operation moves outside the JUCE window, + and if you want it to then perform a text drag-and-drop, copy the text you want to + be dragged into the argument provided and return true. + + @param sourceDetails information about the source of the drag operation + @param text on return, the text you want to drag + @see shouldDropFilesWhenDraggedExternally + */ + virtual bool shouldDropTextWhenDraggedExternally (const DragAndDropTarget::SourceDetails& sourceDetails, + String& text); + /** Subclasses can override this to be told when a drag starts. */ - virtual void dragOperationStarted(); + virtual void dragOperationStarted (const DragAndDropTarget::SourceDetails&); /** Subclasses can override this to be told when a drag finishes. */ - virtual void dragOperationEnded(); + virtual void dragOperationEnded (const DragAndDropTarget::SourceDetails&); private: //============================================================================== @@ -181,6 +195,13 @@ private: friend struct ContainerDeletePolicy; ScopedPointer dragImageComponent; + #if JUCE_CATCH_DEPRECATED_CODE_MISUSE + // This is just here to cause a compile error in old code that hasn't been changed to use the new + // version of this method. + virtual int dragOperationStarted() { return 0; } + virtual int dragOperationEnded() { return 0; } + #endif + JUCE_DEPRECATED_WITH_BODY (virtual bool shouldDropFilesWhenDraggedExternally (const String&, Component*, StringArray&, bool&), { return false; }) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DragAndDropContainer) diff --git a/modules/juce_gui_basics/mouse/juce_MouseCursor.h b/modules/juce_gui_basics/mouse/juce_MouseCursor.h index 36b6433284..ce6983b381 100644 --- a/modules/juce_gui_basics/mouse/juce_MouseCursor.h +++ b/modules/juce_gui_basics/mouse/juce_MouseCursor.h @@ -146,8 +146,6 @@ public: This is handy if the message loop is about to block for a couple of seconds while busy and you want to give the user feedback about this. - - @see MessageManager::setTimeBeforeShowingWaitCursor */ static void showWaitCursor(); diff --git a/modules/juce_gui_basics/mouse/juce_MouseEvent.h b/modules/juce_gui_basics/mouse/juce_MouseEvent.h index b9b06bd819..a0a6f64145 100644 --- a/modules/juce_gui_basics/mouse/juce_MouseEvent.h +++ b/modules/juce_gui_basics/mouse/juce_MouseEvent.h @@ -182,21 +182,21 @@ public: */ int getDistanceFromDragStart() const noexcept; - /** Returns the difference between the mouse's current x postion and where it was + /** Returns the difference between the mouse's current x position and where it was when the button was last pressed. @see getDistanceFromDragStart */ int getDistanceFromDragStartX() const noexcept; - /** Returns the difference between the mouse's current y postion and where it was + /** Returns the difference between the mouse's current y position and where it was when the button was last pressed. @see getDistanceFromDragStart */ int getDistanceFromDragStartY() const noexcept; - /** Returns the difference between the mouse's current postion and where it was + /** Returns the difference between the mouse's current position and where it was when the button was last pressed. @see getDistanceFromDragStart diff --git a/modules/juce_gui_basics/native/juce_ios_Windowing.mm b/modules/juce_gui_basics/native/juce_ios_Windowing.mm index 466c4ecf41..0e605f79c5 100644 --- a/modules/juce_gui_basics/native/juce_ios_Windowing.mm +++ b/modules/juce_gui_basics/native/juce_ios_Windowing.mm @@ -46,7 +46,8 @@ Array appBecomingInactiveCallbacks; - (void) applicationWillEnterForeground: (UIApplication*) application; - (void) applicationDidBecomeActive: (UIApplication*) application; - (void) applicationWillResignActive: (UIApplication*) application; - +- (void) application: (UIApplication*) application handleEventsForBackgroundURLSession: (NSString*)identifier + completionHandler: (void (^)(void))completionHandler; @end @implementation JuceAppStartupDelegate @@ -104,15 +105,25 @@ Array appBecomingInactiveCallbacks; appBecomingInactiveCallbacks.getReference(i)->appBecomingInactive(); } +- (void) application: (UIApplication*) application handleEventsForBackgroundURLSession: (NSString*)identifier + completionHandler: (void (^)(void))completionHandler +{ + ignoreUnused (application); + URL::DownloadTask::juce_iosURLSessionNotify (nsStringToJuce (identifier)); + completionHandler(); +} + @end namespace juce { -int juce_iOSMain (int argc, const char* argv[]); -int juce_iOSMain (int argc, const char* argv[]) +int juce_iOSMain (int argc, const char* argv[], void* customDelgatePtr); +int juce_iOSMain (int argc, const char* argv[], void* customDelagetPtr) { - return UIApplicationMain (argc, const_cast (argv), nil, @"JuceAppStartupDelegate"); + Class delegateClass = (customDelagetPtr != nullptr ? reinterpret_cast (customDelagetPtr) : [JuceAppStartupDelegate class]); + + return UIApplicationMain (argc, const_cast (argv), nil, NSStringFromClass (delegateClass)); } //============================================================================== diff --git a/modules/juce_gui_basics/native/juce_linux_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_Windowing.cpp index e81872b7bd..891f4d5bfb 100644 --- a/modules/juce_gui_basics/native/juce_linux_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_linux_Windowing.cpp @@ -2774,12 +2774,18 @@ private: if (XModifierKeymap* const mapping = XGetModifierMapping (display)) { - for (int i = 0; i < 8; i++) + const int numMods = 8; + const int maxKeysPerMod = mapping->max_keypermod; + + for (int i = 0; i < numMods; i++) { - if (mapping->modifiermap [i << 1] == altLeftCode) - Keys::AltMask = 1 << i; - else if (mapping->modifiermap [i << 1] == numLockCode) - Keys::NumLockMask = 1 << i; + for (int j = 0; j < maxKeysPerMod; ++j) + { + const int index = (i * maxKeysPerMod) + j; + + if (mapping->modifiermap[index] == altLeftCode) Keys::AltMask = 1 << i; + else if (mapping->modifiermap[index] == numLockCode) Keys::NumLockMask = 1 << i; + } } XFreeModifiermap (mapping); @@ -2966,9 +2972,6 @@ private: if ((styleFlags & windowIgnoresMouseClicks) == 0) buttonMask |= ButtonPressMask | ButtonReleaseMask; - XGrabButton (display, AnyButton, AnyModifier, windowH, False, - buttonMask, GrabModeAsync, GrabModeAsync, None, None); - // Set the window context to identify the window handle object if (XSaveContext (display, (XID) windowH, windowHandleXContext, (XPointer) this)) { @@ -3040,7 +3043,7 @@ private: return NoEventMask | KeyPressMask | KeyReleaseMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask | KeymapStateMask | ExposureMask | StructureNotifyMask | FocusChangeMask - | ((styleFlags & windowIgnoresMouseClicks) != 0 ? (ButtonPressMask | ButtonReleaseMask) : 0); + | ((styleFlags & windowIgnoresMouseClicks) != 0 ? 0 : (ButtonPressMask | ButtonReleaseMask)); } template diff --git a/modules/juce_gui_basics/native/juce_mac_MainMenu.mm b/modules/juce_gui_basics/native/juce_mac_MainMenu.mm index 10de90b737..97c3088b4c 100644 --- a/modules/juce_gui_basics/native/juce_mac_MainMenu.mm +++ b/modules/juce_gui_basics/native/juce_mac_MainMenu.mm @@ -389,9 +389,9 @@ private: if ([menu indexOfItem: item] >= 0) { - NSEvent* f35Event = [NSEvent keyEventWithType: NSKeyDown + NSEvent* f35Event = [NSEvent keyEventWithType: NSEventTypeKeyDown location: NSZeroPoint - modifierFlags: NSCommandKeyMask + modifierFlags: NSEventModifierFlagCommand timestamp: 0 windowNumber: 0 context: [NSGraphicsContext currentContext] @@ -412,10 +412,10 @@ private: static unsigned int juceModsToNSMods (const ModifierKeys mods) { unsigned int m = 0; - if (mods.isShiftDown()) m |= NSShiftKeyMask; - if (mods.isCtrlDown()) m |= NSControlKeyMask; - if (mods.isAltDown()) m |= NSAlternateKeyMask; - if (mods.isCommandDown()) m |= NSCommandKeyMask; + if (mods.isShiftDown()) m |= NSEventModifierFlagShift; + if (mods.isCtrlDown()) m |= NSEventModifierFlagControl; + if (mods.isAltDown()) m |= NSEventModifierFlagOption; + if (mods.isCommandDown()) m |= NSEventModifierFlagCommand; return m; } @@ -481,13 +481,13 @@ private: // our own components, which may have wanted to intercept it. So, rather than dispatching directly, we'll feed it back // into the focused component and let it trigger the menu item indirectly. NSEvent* e = [NSApp currentEvent]; - if ([e type] == NSKeyDown || [e type] == NSKeyUp) + if ([e type] == NSEventTypeKeyDown || [e type] == NSEventTypeKeyUp) { if (juce::Component* focused = juce::Component::getCurrentlyFocusedComponent()) { if (juce::NSViewComponentPeer* peer = dynamic_cast (focused->getPeer())) { - if ([e type] == NSKeyDown) + if ([e type] == NSEventTypeKeyDown) peer->redirectKeyDown (e); else peer->redirectKeyUp (e); @@ -621,16 +621,16 @@ namespace MainMenuHelpers [NSApp setServicesMenu: servicesMenu]; [menu addItem: [NSMenuItem separatorItem]]; - createMenuItem (menu, "Hide " + appName, @selector (hide:), nsStringLiteral ("h")); + createMenuItem (menu, TRANS("Hide") + String (" ") + appName, @selector (hide:), nsStringLiteral ("h")); - [createMenuItem (menu, "Hide Others", @selector (hideOtherApplications:), nsStringLiteral ("h")) - setKeyEquivalentModifierMask: NSCommandKeyMask | NSAlternateKeyMask]; + [createMenuItem (menu, TRANS("Hide Others"), @selector (hideOtherApplications:), nsStringLiteral ("h")) + setKeyEquivalentModifierMask: NSEventModifierFlagCommand | NSEventModifierFlagOption]; - createMenuItem (menu, "Show All", @selector (unhideAllApplications:), nsEmptyString()); + createMenuItem (menu, TRANS("Show All"), @selector (unhideAllApplications:), nsEmptyString()); [menu addItem: [NSMenuItem separatorItem]]; - createMenuItem (menu, "Quit " + appName, @selector (terminate:), nsStringLiteral ("q")); + createMenuItem (menu, TRANS("Quit") + String (" ") + appName, @selector (terminate:), nsStringLiteral ("q")); } // Since our app has no NIB, this initialises a standard app menu... diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm index e98a7b0be7..64b86bfdf0 100644 --- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm @@ -64,7 +64,7 @@ void componentPeerAboutToBeRemovedFromScreen (ComponentPeer&); //============================================================================== class NSViewComponentPeer : public ComponentPeer, - private AsyncUpdater + private Timer { public: NSViewComponentPeer (Component& comp, const int windowStyleFlags, NSView* viewToAttachTo) @@ -83,7 +83,7 @@ public: textWasInserted (false), isStretchingTop (false), isStretchingLeft (false), isStretchingBottom (false), isStretchingRight (false), - notificationCenter (nil) + notificationCenter (nil), lastRepaintTime (Time::getMillisecondCounter()) { appFocusChangeCallback = appFocusChanged; isEventBlockedByModalComps = checkEventBlockedByModalComps; @@ -375,7 +375,7 @@ public: bool isKioskMode() const override { #if defined (MAC_OS_X_VERSION_10_7) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (hasNativeTitleBar() && ([window styleMask] & NSFullScreenWindowMask) != 0) + if (hasNativeTitleBar() && ([window styleMask] & NSWindowStyleMaskFullScreen) != 0) return true; #endif @@ -729,7 +729,7 @@ public: break; // (these all seem to generate unwanted garbage unicode strings) default: - if (([ev modifierFlags] & NSCommandKeyMask) != 0 + if (([ev modifierFlags] & NSEventModifierFlagCommand) != 0 || (keyCode >= NSF1FunctionKey && keyCode <= NSF35FunctionKey)) textCharacter = 0; break; @@ -758,7 +758,7 @@ public: updateKeysDown (ev, true); bool used = handleKeyEvent (ev, true); - if (([ev modifierFlags] & NSCommandKeyMask) != 0) + if (([ev modifierFlags] & NSEventModifierFlagCommand) != 0) { // for command keys, the key-up event is thrown away, so simulate one.. updateKeysDown (ev, false); @@ -889,31 +889,6 @@ public: } } - void handleAsyncUpdate() override - { - #if JucePlugin_Build_AAX || JucePlugin_Build_RTAS || JucePlugin_Build_AUv3 || JucePlugin_Build_AU || JucePlugin_Build_VST3 || JucePlugin_Build_VST - const bool shouldThrottle = true; - #else - const bool shouldThrottle = areAnyWindowsInLiveResize(); - #endif - - // When windows are being resized, artificially throttling high-frequency repaints helps - // to stop the event queue getting clogged, and keeps everything working smoothly. - // For some reason Logic also needs this throttling to recored parameter events correctly. - if (shouldThrottle - && Time::getCurrentTime() < lastRepaintTime + RelativeTime::milliseconds (1000 / 30)) - { - triggerAsyncUpdate(); - return; - } - - for (const Rectangle* i = deferredRepaints.begin(), *e = deferredRepaints.end(); i != e; ++i) - [view setNeedsDisplayInRect: makeNSRect (*i)]; - - lastRepaintTime = Time::getCurrentTime(); - deferredRepaints.clear(); - } - void repaint (const Rectangle& area) override { // In 10.11 changes were made to the way the OS handles repaint regions, and it seems that it can @@ -923,9 +898,48 @@ public: // asynchronously asking the OS to repaint them. deferredRepaints.add ((float) area.getX(), (float) ([view frame].size.height - area.getBottom()), (float) area.getWidth(), (float) area.getHeight()); - triggerAsyncUpdate(); + + if (isTimerRunning()) + return; + + const uint32 now = Time::getMillisecondCounter(); + uint32 msSinceLastRepaint = (lastRepaintTime >= now) ? now - lastRepaintTime + : (std::numeric_limits::max() - lastRepaintTime) + now; + + static uint32 minimumRepaintInterval = 1000 / 30; // 30fps + + // When windows are being resized, artificially throttling high-frequency repaints helps + // to stop the event queue getting clogged, and keeps everything working smoothly. + // For some reason Logic also needs this throttling to recored parameter events correctly. + if (msSinceLastRepaint < minimumRepaintInterval && shouldThrottleRepaint()) + { + startTimer (static_cast (minimumRepaintInterval - msSinceLastRepaint)); + return; + } + + setNeedsDisplayRectangles(); } + static bool shouldThrottleRepaint() + { + return areAnyWindowsInLiveResize() || ! JUCEApplication::isStandaloneApp(); + } + + void timerCallback() override + { + setNeedsDisplayRectangles(); + stopTimer(); + } + + void setNeedsDisplayRectangles() + { + for (const Rectangle* i = deferredRepaints.begin(), *e = deferredRepaints.end(); i != e; ++i) + [view setNeedsDisplayInRect: makeNSRect (*i)]; + + lastRepaintTime = Time::getMillisecondCounter(); + deferredRepaints.clear(); + }; + void invokePaint (LowLevelGraphicsContext& context) { handlePaint (context); @@ -1081,10 +1095,10 @@ public: { int m = 0; - if ((flags & NSShiftKeyMask) != 0) m |= ModifierKeys::shiftModifier; - if ((flags & NSControlKeyMask) != 0) m |= ModifierKeys::ctrlModifier; - if ((flags & NSAlternateKeyMask) != 0) m |= ModifierKeys::altModifier; - if ((flags & NSCommandKeyMask) != 0) m |= ModifierKeys::commandModifier; + if ((flags & NSEventModifierFlagShift) != 0) m |= ModifierKeys::shiftModifier; + if ((flags & NSEventModifierFlagControl) != 0) m |= ModifierKeys::ctrlModifier; + if ((flags & NSEventModifierFlagOption) != 0) m |= ModifierKeys::altModifier; + if ((flags & NSEventModifierFlagCommand) != 0) m |= ModifierKeys::commandModifier; currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (m); } @@ -1157,7 +1171,7 @@ public: else keyCode = (int) CharacterFunctions::toUpperCase ((juce_wchar) keyCode); - if (([ev modifierFlags] & NSNumericPadKeyMask) != 0) + if (([ev modifierFlags] & NSEventModifierFlagNumericPad) != 0) { const int numPadConversions[] = { '0', KeyPress::numberPad0, '1', KeyPress::numberPad1, '2', KeyPress::numberPad2, '3', KeyPress::numberPad3, @@ -1188,7 +1202,7 @@ public: { @try { - if (e.type != NSMouseEntered && e.type != NSMouseExited) + if (e.type != NSEventTypeMouseEntered && e.type != NSEventTypeMouseExited) return (float) e.pressure; } @catch (NSException* e) {} @@ -1212,12 +1226,12 @@ public: static unsigned int getNSWindowStyleMask (const int flags) noexcept { - unsigned int style = (flags & windowHasTitleBar) != 0 ? NSTitledWindowMask - : NSBorderlessWindowMask; + unsigned int style = (flags & windowHasTitleBar) != 0 ? NSWindowStyleMaskTitled + : NSWindowStyleMaskBorderless; - if ((flags & windowHasMinimiseButton) != 0) style |= NSMiniaturizableWindowMask; - if ((flags & windowHasCloseButton) != 0) style |= NSClosableWindowMask; - if ((flags & windowIsResizable) != 0) style |= NSResizableWindowMask; + if ((flags & windowHasMinimiseButton) != 0) style |= NSWindowStyleMaskMiniaturizable; + if ((flags & windowHasCloseButton) != 0) style |= NSWindowStyleMaskClosable; + if ((flags & windowIsResizable) != 0) style |= NSWindowStyleMaskResizable; return style; } @@ -1351,7 +1365,7 @@ public: NSNotificationCenter* notificationCenter; RectangleList deferredRepaints; - Time lastRepaintTime; + uint32 lastRepaintTime; static ModifierKeys currentModifiers; static ComponentPeer* currentlyFocusedPeer; @@ -1416,34 +1430,34 @@ private: switch ([e type]) { - case NSKeyDown: - case NSKeyUp: + case NSEventTypeKeyDown: + case NSEventTypeKeyUp: isKey = isInputAttempt = true; break; - case NSLeftMouseDown: - case NSRightMouseDown: - case NSOtherMouseDown: + case NSEventTypeLeftMouseDown: + case NSEventTypeRightMouseDown: + case NSEventTypeOtherMouseDown: isInputAttempt = true; break; - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSLeftMouseUp: - case NSRightMouseUp: - case NSOtherMouseUp: - case NSOtherMouseDragged: + case NSEventTypeLeftMouseDragged: + case NSEventTypeRightMouseDragged: + case NSEventTypeLeftMouseUp: + case NSEventTypeRightMouseUp: + case NSEventTypeOtherMouseUp: + case NSEventTypeOtherMouseDragged: if (Desktop::getInstance().getDraggingMouseSource(0) != nullptr) return false; break; - case NSMouseMoved: - case NSMouseEntered: - case NSMouseExited: - case NSCursorUpdate: - case NSScrollWheel: - case NSTabletPoint: - case NSTabletProximity: + case NSEventTypeMouseMoved: + case NSEventTypeMouseEntered: + case NSEventTypeMouseExited: + case NSEventTypeCursorUpdate: + case NSEventTypeScrollWheel: + case NSEventTypeTabletPoint: + case NSEventTypeTabletProximity: break; default: @@ -2062,7 +2076,7 @@ void Desktop::setKioskComponent (Component* kioskComp, bool shouldBeEnabled, boo if (shouldBeEnabled) { if (peer->hasNativeTitleBar()) - [peer->window setStyleMask: NSBorderlessWindowMask]; + [peer->window setStyleMask: NSWindowStyleMaskBorderless]; [NSApp setPresentationOptions: (allowMenusAndBars ? (NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar) : (NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar))]; diff --git a/modules/juce_gui_basics/native/juce_mac_Windowing.mm b/modules/juce_gui_basics/native/juce_mac_Windowing.mm index 1ed7aea73d..ee22f3b191 100644 --- a/modules/juce_gui_basics/native/juce_mac_Windowing.mm +++ b/modules/juce_gui_basics/native/juce_mac_Windowing.mm @@ -89,8 +89,8 @@ private: [alert setMessageText: juceStringToNS (title)]; [alert setInformativeText: juceStringToNS (message)]; - [alert setAlertStyle: iconType == AlertWindow::WarningIcon ? NSCriticalAlertStyle - : NSInformationalAlertStyle]; + [alert setAlertStyle: iconType == AlertWindow::WarningIcon ? NSAlertStyleCritical + : NSAlertStyleInformational]; addButton (alert, button1); addButton (alert, button2); addButton (alert, button3); @@ -142,46 +142,86 @@ int JUCE_CALLTYPE NativeMessageBox::showYesNoCancelBox (AlertWindow::AlertIconTy //============================================================================== -bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& files, const bool /*canMoveFiles*/) +static NSRect getDragRect (NSView* view, NSEvent* event) { - if (files.size() == 0) - return false; + auto eventPos = [event locationInWindow]; - MouseInputSource* draggingSource = Desktop::getInstance().getDraggingMouseSource(0); + return [view convertRect: NSMakeRect (eventPos.x - 16.0f, eventPos.y - 16.0f, 32.0f, 32.0f) + fromView: nil]; +} - if (draggingSource == nullptr) +NSView* getNSViewForDragEvent() +{ + if (auto* draggingSource = Desktop::getInstance().getDraggingMouseSource(0)) + if (auto* sourceComp = draggingSource->getComponentUnderMouse()) + return (NSView*) sourceComp->getWindowHandle(); + + jassertfalse; // This method must be called in response to a component's mouseDown or mouseDrag event! + return nil; +} + +struct TextDragDataProviderClass : public ObjCClass +{ + TextDragDataProviderClass() : ObjCClass ("JUCE_NSTextDragDataProvider_") { - jassertfalse; // This method must be called in response to a component's mouseDown or mouseDrag event! - return false; + addIvar ("text"); + addMethod (@selector (dealloc), dealloc, "v@:"); + addMethod (@selector (pasteboard:item:provideDataForType:), provideDataForType, "v@:@@@"); + addProtocol (@protocol (NSPasteboardItemDataProvider)); + registerClass(); } - Component* sourceComp = draggingSource->getComponentUnderMouse(); - - if (sourceComp == nullptr) + static void setText (id self, const String& text) { - jassertfalse; // This method must be called in response to a component's mouseDown or mouseDrag event! - return false; + object_setInstanceVariable (self, "text", new String (text)); } - JUCE_AUTORELEASEPOOL +private: + static void dealloc (id self, SEL) { - if (NSView* view = (NSView*) sourceComp->getWindowHandle()) + delete getIvar (self, "text"); + sendSuperclassMessage (self, @selector (dealloc)); + } + + static void provideDataForType (id self, SEL, NSPasteboard* sender, NSPasteboardItem*, NSString* type) + { + if ([type compare: NSPasteboardTypeString] == NSOrderedSame) + if (auto* text = getIvar (self, "text")) + [sender setData: [juceStringToNS (*text) dataUsingEncoding: NSUTF8StringEncoding] + forType: NSPasteboardTypeString]; + } +}; + +bool DragAndDropContainer::performExternalDragDropOfText (const String& text) +{ + if (text.isEmpty()) + return false; + + if (auto* view = getNSViewForDragEvent()) + { + JUCE_AUTORELEASEPOOL { - if (NSEvent* event = [[view window] currentEvent]) + if (auto* event = [[view window] currentEvent]) { - NSPoint eventPos = [event locationInWindow]; - NSRect dragRect = [view convertRect: NSMakeRect (eventPos.x - 16.0f, eventPos.y - 16.0f, 32.0f, 32.0f) - fromView: nil]; + static TextDragDataProviderClass dataProviderClass; + id delegate = [dataProviderClass.createInstance() init]; + TextDragDataProviderClass::setText (delegate, text); - for (int i = 0; i < files.size(); ++i) - { - if (! [view dragFile: juceStringToNS (files[i]) - fromRect: dragRect - slideBack: YES - event: event]) - return false; - } + auto* pasteboardItem = [[NSPasteboardItem new] autorelease]; + [pasteboardItem setDataProvider: delegate + forTypes: [NSArray arrayWithObjects: NSPasteboardTypeString, nil]]; + auto* dragItem = [[[NSDraggingItem alloc] initWithPasteboardWriter: pasteboardItem] autorelease]; + + NSImage* image = [[NSWorkspace sharedWorkspace] iconForFile: nsEmptyString()]; + [dragItem setDraggingFrame: getDragRect (view, event) contents: image]; + + auto* draggingSession = [view beginDraggingSessionWithItems: [NSArray arrayWithObject: dragItem] + event: event + source: delegate]; + + draggingSession.animatesToStartingPositionsOnCancelOrFail = YES; + draggingSession.draggingFormation = NSDraggingFormationNone; return true; } } @@ -190,9 +230,31 @@ bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& fi return false; } -bool DragAndDropContainer::performExternalDragDropOfText (const String& /*text*/) +bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& files, bool /*canMoveFiles*/) { - jassertfalse; // not implemented! + if (files.isEmpty()) + return false; + + if (auto* view = getNSViewForDragEvent()) + { + JUCE_AUTORELEASEPOOL + { + if (auto* event = [[view window] currentEvent]) + { + auto dragRect = getDragRect (view, event); + + for (int i = 0; i < files.size(); ++i) + if (! [view dragFile: juceStringToNS (files[i]) + fromRect: dragRect + slideBack: YES + event: event]) + return false; + + return true; + } + } + } + return false; } @@ -206,8 +268,8 @@ Point MouseInputSource::getCurrentRawMousePosition() { JUCE_AUTORELEASEPOOL { - const NSPoint p ([NSEvent mouseLocation]); - return Point ((float) p.x, (float) (getMainScreenHeight() - p.y)); + auto p = [NSEvent mouseLocation]; + return { (float) p.x, (float) (getMainScreenHeight() - p.y) }; } } @@ -419,7 +481,7 @@ Image juce_createIconForFile (const File& file) selectImageForDrawing (result); [image drawAtPoint: NSMakePoint (0, 0) fromRect: NSMakeRect (0, 0, [image size].width, [image size].height) - operation: NSCompositeSourceOver fraction: 1.0f]; + operation: NSCompositingOperationSourceOver fraction: 1.0f]; releaseImageAfterDrawing(); return result; diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp index a6076a4228..83b62df7a1 100644 --- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp +++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp @@ -282,7 +282,7 @@ void FileChooser::showPlatformDialog (Array& results, const String& title_ while (*filename != 0) { - results.add (File (String (files) + "\\" + String (filename))); + results.add (File (String (files)).getChildFile (String (filename))); filename += wcslen (filename) + 1; } } diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index 253dfec967..ccee54bc97 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -564,7 +564,102 @@ namespace IconConverters } //============================================================================== -class HWNDComponentPeer : public ComponentPeer +class +#if (! JUCE_MINGW) + __declspec (uuid ("37c994e7-432b-4834-a2f7-dce1f13b834b")) +#endif + ITipInvocation : public IUnknown +{ +public: + static const CLSID clsid; + + virtual ::HRESULT STDMETHODCALLTYPE Toggle (::HWND wnd) = 0; +}; + +#if JUCE_MINGW || (! (defined (_MSC_VER) || defined (__uuidof))) +template <> +struct UUIDGetter +{ + static CLSID get() + { + GUID g = {0x37c994e7, 0x432b, 0x4834, {0xa2, 0xf7, 0xdc, 0xe1, 0xf1, 0x3b, 0x83, 0x4b}}; + return g; + } +}; +#endif + +const CLSID ITipInvocation::clsid = {0x4CE576FA, 0x83DC, 0x4f88, {0x95, 0x1C, 0x9D, 0x07, 0x82, 0xB4, 0xE3, 0x76}}; +//============================================================================== +class OnScreenKeyboard : private Timer +{ +public: + + void activate() + { + shouldBeActive = true; + startTimer (10); + } + + void deactivate() + { + shouldBeActive = false; + startTimer (10); + } + + juce_DeclareSingleton_SingleThreaded (OnScreenKeyboard, true) + +private: + + OnScreenKeyboard() + : shouldBeActive (false), reentrant (false) + { + tipInvocation.CoCreateInstance (ITipInvocation::clsid, CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER); + } + + void timerCallback() override + { + stopTimer(); + + if (reentrant || tipInvocation == nullptr) return; + const ScopedValueSetter setter (reentrant, true, false); + + const bool isActive = isVisible(); + if (isActive == shouldBeActive) return; + + if (! isActive) + { + tipInvocation->Toggle(::GetDesktopWindow()); + } + else + { + ::HWND hwnd = ::FindWindow (L"IPTip_Main_Window", NULL); + + if (hwnd != nullptr) + ::PostMessage(hwnd, WM_SYSCOMMAND, (int) SC_CLOSE, 0); + } + } + + bool isVisible() + { + ::HWND hwnd = ::FindWindow (L"IPTip_Main_Window", NULL); + if (hwnd != nullptr) + { + ::LONG style = ::GetWindowLong (hwnd, GWL_STYLE); + return ((style & WS_DISABLED) == 0 && (style & WS_VISIBLE) != 0); + } + + return false; + } + + bool shouldBeActive, reentrant; + ComSmartPtr tipInvocation; +}; + +juce_ImplementSingleton_SingleThreaded (OnScreenKeyboard) + +//============================================================================== +class HWNDComponentPeer : public ComponentPeer, + private Timer #if JUCE_MODULE_AVAILABLE_juce_audio_plugin_client , public ModifierKeyReceiver #endif @@ -923,11 +1018,14 @@ public: ShowCaret (hwnd); SetCaretPos (0, 0); + + OnScreenKeyboard::getInstance()->activate(); } void dismissPendingTextInput() override { imeHandler.handleSetContext (hwnd, false); + OnScreenKeyboard::getInstance()->deactivate(); } void repaint (const Rectangle& area) override @@ -1303,8 +1401,12 @@ private: case WM_NCMOUSEHOVER: case WM_MOUSEHOVER: case WM_TOUCH: + #ifdef WM_POINTERUPDATE + case WM_POINTERUPDATE: + case WM_POINTERDOWN: + case WM_POINTERUP: + #endif return isHWNDBlockedByModalComponents (m.hwnd); - case WM_NCLBUTTONDOWN: case WM_NCLBUTTONDBLCLK: case WM_NCRBUTTONDOWN: @@ -2031,6 +2133,19 @@ private: return true; } + #ifdef WM_POINTERUPDATE + TOUCHINPUT emulateTouchEventFromPointer (LPARAM lParam, WPARAM wParam) + { + TOUCHINPUT touchInput; + + touchInput.dwID = GET_POINTERID_WPARAM (wParam); + touchInput.x = GET_X_LPARAM (lParam) * 100; + touchInput.y = GET_Y_LPARAM (lParam) * 100; + + return touchInput; + } + #endif + //============================================================================== void sendModifierKeyChangeIfNeeded() { @@ -2520,6 +2635,12 @@ private: return 1; //============================================================================== + #ifdef WM_POINTERUPDATE + case WM_POINTERUPDATE: handleTouchInput (emulateTouchEventFromPointer (lParam, wParam), false, false); return 0; + case WM_POINTERDOWN: handleTouchInput (emulateTouchEventFromPointer (lParam, wParam), true, false); return 0; + case WM_POINTERUP: handleTouchInput (emulateTouchEventFromPointer (lParam, wParam), false, true); return 0; + #endif + case WM_MOUSEMOVE: doMouseMove (getPointFromLParam (lParam), false); return 0; case WM_MOUSELEAVE: doMouseExit(); return 0; @@ -2559,10 +2680,16 @@ private: case WM_WINDOWPOSCHANGING: return handlePositionChanging (*(WINDOWPOS*) lParam); case WM_WINDOWPOSCHANGED: - if (handlePositionChanged()) - return 0; + { + const WINDOWPOS& wPos = *reinterpret_cast (lParam); - break; + if ((wPos.flags & SWP_NOMOVE) != 0 && (wPos.flags & SWP_NOSIZE) != 0) + startTimer(100); + else + if (handlePositionChanged()) + return 0; + } + break; //============================================================================== case WM_KEYDOWN: @@ -3026,6 +3153,12 @@ private: JUCE_DECLARE_NON_COPYABLE (IMEHandler) }; + void timerCallback() override + { + handlePositionChanged(); + stopTimer(); + } + IMEHandler imeHandler; //============================================================================== @@ -3040,7 +3173,7 @@ ComponentPeer* Component::createNewPeer (int styleFlags, void* parentHWND) return new HWNDComponentPeer (*this, styleFlags, (HWND) parentHWND, false); } -ComponentPeer* createNonRepaintingEmbeddedWindowsPeer (Component& component, void* parentHWND) +JUCE_API ComponentPeer* createNonRepaintingEmbeddedWindowsPeer (Component& component, void* parentHWND) { return new HWNDComponentPeer (component, ComponentPeer::windowIgnoresMouseClicks, (HWND) parentHWND, true); @@ -3112,17 +3245,10 @@ bool JUCE_CALLTYPE Process::isForegroundProcess() if (fg == 0) return true; - // when running as a plugin in IE8, the browser UI runs in a different process to the plugin, so - // process ID isn't a reliable way to check if the foreground window belongs to us - instead, we - // have to see if any of our windows are children of the foreground window - fg = GetAncestor (fg, GA_ROOT); + DWORD processID = 0; + GetWindowThreadProcessId (fg, &processID); - for (int i = ComponentPeer::getNumPeers(); --i >= 0;) - if (HWNDComponentPeer* const wp = dynamic_cast (ComponentPeer::getPeer (i))) - if (wp->isInside (fg)) - return true; - - return false; + return (processID == GetCurrentProcessId()); } // N/A on Windows as far as I know. diff --git a/modules/juce_gui_basics/widgets/juce_ComboBox.cpp b/modules/juce_gui_basics/widgets/juce_ComboBox.cpp index 13fc1644c9..e227e7142c 100644 --- a/modules/juce_gui_basics/widgets/juce_ComboBox.cpp +++ b/modules/juce_gui_basics/widgets/juce_ComboBox.cpp @@ -22,27 +22,10 @@ ============================================================================== */ -ComboBox::ItemInfo::ItemInfo (const String& nm, int iid, bool enabled, bool heading) - : name (nm), itemId (iid), isEnabled (enabled), isHeading (heading) -{ -} - -bool ComboBox::ItemInfo::isSeparator() const noexcept -{ - return name.isEmpty(); -} - -bool ComboBox::ItemInfo::isRealItem() const noexcept -{ - return ! (isHeading || name.isEmpty()); -} - -//============================================================================== ComboBox::ComboBox (const String& name) : Component (name), lastCurrentId (0), isButtonDown (false), - separatorPending (false), menuActive (false), scrollWheelEnabled (false), mouseWheelAccumulator (0), @@ -109,25 +92,19 @@ void ComboBox::addItem (const String& newItemText, const int newItemId) if (newItemText.isNotEmpty() && newItemId != 0) { - if (separatorPending) - { - separatorPending = false; - items.add (new ItemInfo (String(), 0, false, false)); - } - - items.add (new ItemInfo (newItemText, newItemId, true, false)); + currentMenu.addItem (newItemId, newItemText, true, false); } } void ComboBox::addItemList (const StringArray& itemsToAdd, const int firstItemIdOffset) { for (int i = 0; i < itemsToAdd.size(); ++i) - addItem (itemsToAdd[i], i + firstItemIdOffset); + currentMenu.addItem (i + firstItemIdOffset, itemsToAdd[i]); } void ComboBox::addSeparator() { - separatorPending = (items.size() > 0); + currentMenu.addSeparator(); } void ComboBox::addSectionHeading (const String& headingName) @@ -137,67 +114,69 @@ void ComboBox::addSectionHeading (const String& headingName) if (headingName.isNotEmpty()) { - if (separatorPending) - { - separatorPending = false; - items.add (new ItemInfo (String(), 0, false, false)); - } - - items.add (new ItemInfo (headingName, 0, true, true)); + currentMenu.addSectionHeader (headingName); } } void ComboBox::setItemEnabled (const int itemId, const bool shouldBeEnabled) { - if (ItemInfo* const item = getItemForId (itemId)) + if (PopupMenu::Item* item = getItemForId (itemId)) item->isEnabled = shouldBeEnabled; } bool ComboBox::isItemEnabled (int itemId) const noexcept { - const ItemInfo* const item = getItemForId (itemId); + const PopupMenu::Item* item = getItemForId (itemId); return item != nullptr && item->isEnabled; } void ComboBox::changeItemText (const int itemId, const String& newText) { - if (ItemInfo* const item = getItemForId (itemId)) - item->name = newText; + if (PopupMenu::Item* item = getItemForId (itemId)) + item->text = newText; else jassertfalse; } void ComboBox::clear (const NotificationType notification) { - items.clear(); - separatorPending = false; + currentMenu.clear(); if (! label->isEditable()) setSelectedItemIndex (-1, notification); } //============================================================================== -ComboBox::ItemInfo* ComboBox::getItemForId (const int itemId) const noexcept +PopupMenu::Item* ComboBox::getItemForId (const int itemId) const noexcept { if (itemId != 0) { - for (int i = items.size(); --i >= 0;) - if (items.getUnchecked(i)->itemId == itemId) - return items.getUnchecked(i); + PopupMenu::MenuItemIterator iterator (currentMenu, true); + + while (iterator.next()) + { + PopupMenu::Item &item = iterator.getItem(); + + if (item.itemID == itemId) + return &item; + } } return nullptr; } -ComboBox::ItemInfo* ComboBox::getItemForIndex (const int index) const noexcept +PopupMenu::Item* ComboBox::getItemForIndex (const int index) const noexcept { - for (int n = 0, i = 0; i < items.size(); ++i) - { - ItemInfo* const item = items.getUnchecked(i); + int n = 0; + PopupMenu::MenuItemIterator iterator (currentMenu, true); - if (item->isRealItem()) + while (iterator.next()) + { + PopupMenu::Item &item = iterator.getItem(); + + if (item.itemID != 0) if (n++ == index) - return item; + return &item; } return nullptr; @@ -206,42 +185,51 @@ ComboBox::ItemInfo* ComboBox::getItemForIndex (const int index) const noexcept int ComboBox::getNumItems() const noexcept { int n = 0; + PopupMenu::MenuItemIterator iterator (currentMenu, true); - for (int i = items.size(); --i >= 0;) - if (items.getUnchecked(i)->isRealItem()) - ++n; + while (iterator.next()) + { + PopupMenu::Item &item = iterator.getItem(); + + if (item.itemID != 0) + n++; + } return n; } String ComboBox::getItemText (const int index) const { - if (const ItemInfo* const item = getItemForIndex (index)) - return item->name; + if (const PopupMenu::Item* const item = getItemForIndex (index)) + return item->text; return String(); } int ComboBox::getItemId (const int index) const noexcept { - if (const ItemInfo* const item = getItemForIndex (index)) - return item->itemId; + if (const PopupMenu::Item* const item = getItemForIndex (index)) + return item->itemID; return 0; } int ComboBox::indexOfItemId (const int itemId) const noexcept { - for (int n = 0, i = 0; i < items.size(); ++i) + if (itemId != 0) { - const ItemInfo* const item = items.getUnchecked(i); + int n = 0; + PopupMenu::MenuItemIterator iterator (currentMenu, true); - if (item->isRealItem()) + while (iterator.next()) { - if (item->itemId == itemId) + PopupMenu::Item &item = iterator.getItem(); + + if (item.itemID == itemId) return n; - ++n; + else if (item.itemID != 0) + n++; } } @@ -266,15 +254,15 @@ void ComboBox::setSelectedItemIndex (const int index, const NotificationType not int ComboBox::getSelectedId() const noexcept { - const ItemInfo* const item = getItemForId (currentId.getValue()); + const PopupMenu::Item* const item = getItemForId (currentId.getValue()); - return (item != nullptr && getText() == item->name) ? item->itemId : 0; + return (item != nullptr && getText() == item->text) ? item->itemID : 0; } void ComboBox::setSelectedId (const int newItemId, const NotificationType notification) { - const ItemInfo* const item = getItemForId (newItemId); - const String newItemText (item != nullptr ? item->name : String()); + const PopupMenu::Item* const item = getItemForId (newItemId); + const String newItemText (item != nullptr ? item->text : String()); if (lastCurrentId != newItemId || label->getText() != newItemText) { @@ -290,7 +278,7 @@ void ComboBox::setSelectedId (const int newItemId, const NotificationType notifi bool ComboBox::selectIfEnabled (const int index) { - if (const ItemInfo* const item = getItemForIndex (index)) + if (const PopupMenu::Item* const item = getItemForIndex (index)) { if (item->isEnabled) { @@ -325,14 +313,16 @@ String ComboBox::getText() const void ComboBox::setText (const String& newText, const NotificationType notification) { - for (int i = items.size(); --i >= 0;) - { - const ItemInfo* const item = items.getUnchecked(i); + PopupMenu::MenuItemIterator iterator (currentMenu, true); - if (item->isRealItem() - && item->name == newText) + while (iterator.next()) + { + PopupMenu::Item &item = iterator.getItem(); + + if (item.itemID != 0 + && item.text == newText) { - setSelectedId (item->itemId, notification); + setSelectedId (item.itemID, notification); return; } } @@ -540,11 +530,19 @@ static void comboBoxPopupMenuFinishedCallback (int result, ComboBox* combo) void ComboBox::showPopup() { - PopupMenu menu; - menu.setLookAndFeel (&getLookAndFeel()); - addItemsToMenu (menu); + PopupMenu::MenuItemIterator iterator (currentMenu, true); + const int selectedId = getSelectedId(); - menu.showMenuAsync (PopupMenu::Options().withTargetComponent (this) + while (iterator.next()) + { + PopupMenu::Item &item = iterator.getItem(); + + if (item.itemID != 0) + item.isTicked = (item.itemID == selectedId); + } + + currentMenu.setLookAndFeel(&getLookAndFeel()); + currentMenu.showMenuAsync (PopupMenu::Options().withTargetComponent (this) .withItemThatMustBeVisible (getSelectedId()) .withMinimumWidth (getWidth()) .withMaximumNumColumns (1) @@ -552,28 +550,6 @@ void ComboBox::showPopup() ModalCallbackFunction::forComponent (comboBoxPopupMenuFinishedCallback, this)); } -void ComboBox::addItemsToMenu (PopupMenu& menu) const -{ - const int selectedId = getSelectedId(); - - for (int i = 0; i < items.size(); ++i) - { - const ItemInfo* const item = items.getUnchecked(i); - jassert (item != nullptr); - - if (item->isSeparator()) - menu.addSeparator(); - else if (item->isHeading) - menu.addSectionHeader (item->name); - else - menu.addItem (item->itemId, item->name, - item->isEnabled, item->itemId == selectedId); - } - - if (items.size() == 0) - menu.addItem (1, noChoicesMessage, false); -} - //============================================================================== void ComboBox::mouseDown (const MouseEvent& e) { diff --git a/modules/juce_gui_basics/widgets/juce_ComboBox.h b/modules/juce_gui_basics/widgets/juce_ComboBox.h index ca05da6c99..4d03666355 100644 --- a/modules/juce_gui_basics/widgets/juce_ComboBox.h +++ b/modules/juce_gui_basics/widgets/juce_ComboBox.h @@ -60,7 +60,7 @@ public: explicit ComboBox (const String& componentName = String()); /** Destructor. */ - ~ComboBox(); + virtual ~ComboBox(); //============================================================================== /** Sets whether the text in the combo-box is editable. @@ -269,8 +269,10 @@ public: /** Returns true if the popup menu is currently being shown. */ bool isPopupActive() const noexcept { return menuActive; } - /** Adds the items in this ComboBox to the given menu. */ - virtual void addItemsToMenu (PopupMenu&) const; + /** Returns the PopupMenu object associated with the ComboBox. + Can be useful for adding sub-menus to the ComboBox standard PopupMenu + */ + PopupMenu* getRootMenu() { return ¤tMenu; } //============================================================================== /** @@ -416,17 +418,6 @@ public: private: //============================================================================== - struct ItemInfo - { - ItemInfo (const String&, int itemId, bool isEnabled, bool isHeading); - bool isSeparator() const noexcept; - bool isRealItem() const noexcept; - - String name; - int itemId; - bool isEnabled : 1, isHeading : 1; - }; - enum EditableState { editableUnknown, @@ -434,18 +425,18 @@ private: labelIsEditable }; - OwnedArray items; + PopupMenu currentMenu; Value currentId; int lastCurrentId; - bool isButtonDown, separatorPending, menuActive, scrollWheelEnabled; + bool isButtonDown, menuActive, scrollWheelEnabled; float mouseWheelAccumulator; ListenerList listeners; ScopedPointer