From 7becff2aa42941bf3a783973a0c42ab883bbf827 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Tue, 21 Dec 2010 12:44:45 +0000 Subject: [PATCH] Reorganised some of the juce source tree folders. Added a new JUCE_DEPRECATED macro, and tested it by renaming Button::addButtonListener to Button::addListener for consistency with other widgets. Added Samplitude to the AudioHostType class. Fixed window maximising in win32. --- Builds/Linux/Makefile | 60 +- Builds/MacOSX/Juce.xcodeproj/project.pbxproj | 108 +- Builds/VisualStudio2005/Juce.vcproj | 45 +- Builds/VisualStudio2008/Juce.vcproj | 45 +- Builds/VisualStudio2008_DLL/Juce.vcproj | 45 +- Builds/VisualStudio2010/Juce.vcxproj | 41 +- Builds/VisualStudio2010/Juce.vcxproj.filters | 129 +- Builds/iPhone/Juce.xcodeproj/project.pbxproj | 108 +- Juce.jucer | 80 +- amalgamation/juce_amalgamated_template.cpp | 10 +- .../Source/Application/jucer_JuceUpdater.cpp | 8 +- .../jucer_ProjectInformationComponent.cpp | 8 +- extras/amalgamator/Source/Main.cpp | 4 +- .../Source/GraphEditorPanel.cpp | 16 +- .../juce_StandaloneFilterWindow.cpp | 2 +- .../wrapper/juce_PluginHostType.h | 21 +- .../How to build a browser plugin.txt | 2 +- .../project.pbxproj | 2 + .../demo/src/JuceBrowserPluginDemo.cpp | 2 +- extras/example projects/Source/Main.cpp | 33 +- .../example projects/Source/MainComponent.cpp | 2 +- .../Source/demos/AudioDemoLatencyPage.cpp | 2 +- .../Source/demos/AudioDemoPlaybackPage.cpp | 2 +- .../Source/demos/AudioDemoRecordPage.cpp | 2 +- .../Source/demos/AudioDemoSynthPage.cpp | 4 +- extras/juce demo/Source/demos/CameraDemo.cpp | 4 +- .../Source/demos/FontsAndTextDemo.cpp | 4 +- .../Source/demos/InterprocessCommsDemo.cpp | 2 +- .../juce demo/Source/demos/ThreadingDemo.cpp | 2 +- .../juce demo/Source/demos/TreeViewDemo.cpp | 2 +- .../juce demo/Source/demos/WebBrowserDemo.cpp | 6 +- extras/juce demo/Source/demos/WidgetsDemo.cpp | 14 +- .../model/components/jucer_ButtonHandler.h | 2 +- .../properties/jucer_PositionPropertyBase.h | 2 +- .../src/ui/jucer_JucerDocumentHolder.cpp | 2 +- .../src/ui/jucer_ResourceEditorPanel.cpp | 8 +- .../src/utility/jucer_ColourEditorComponent.h | 2 +- juce_amalgamated.cpp | 70 +- juce_amalgamated.h | 2672 +++++++++-------- src/application/juce_ApplicationProperties.h | 2 +- .../audio_file_formats/juce_AudioCDReader.h | 2 +- .../juce_AudioFormatManager.cpp | 2 +- .../juce_FlacAudioFormat.cpp | 2 +- .../juce_OggVorbisAudioFormat.cpp | 2 +- .../juce_QuickTimeAudioFormat.cpp | 2 +- .../juce_AudioTransportSource.cpp | 2 +- .../audio_sources/juce_MixerAudioSource.h | 2 +- src/audio/devices/juce_AudioIODevice.h | 2 +- src/audio/dsp/juce_AudioDataConverters.cpp | 2 +- src/audio/dsp/juce_AudioSampleBuffer.h | 2 +- src/audio/midi/juce_MidiBuffer.h | 2 +- src/audio/midi/juce_MidiMessage.cpp | 2 +- .../formats/juce_AudioUnitPluginFormat.mm | 4 +- .../plugins/formats/juce_VSTPluginFormat.cpp | 8 +- .../plugins/juce_PluginListComponent.cpp | 2 +- src/audio/processors/juce_AudioProcessor.h | 2 +- src/audio/synthesisers/juce_Sampler.h | 4 +- src/audio/synthesisers/juce_Synthesiser.h | 2 +- src/containers/juce_AbstractFifo.h | 2 +- src/containers/juce_ArrayAllocationBase.h | 2 +- src/containers/juce_DynamicObject.h | 2 +- src/containers/juce_ReferenceCountedArray.h | 2 +- src/containers/juce_SparseSet.h | 2 +- src/containers/juce_Value.h | 2 +- src/containers/juce_Variant.h | 2 +- src/core/juce_FileLogger.cpp | 2 +- src/core/juce_FileLogger.h | 2 +- src/core/juce_Initialisation.cpp | 4 +- src/core/juce_PerformanceCounter.cpp | 1 + src/core/juce_PlatformDefs.h | 11 + src/core/juce_StandardHeader.h | 10 +- src/core/juce_Time.cpp | 2 +- src/core/juce_Uuid.cpp | 4 +- src/cryptography/juce_BlowFish.h | 2 +- src/cryptography/juce_MD5.cpp | 2 +- src/cryptography/juce_MD5.h | 2 +- src/cryptography/juce_Primes.cpp | 2 +- src/cryptography/juce_Primes.h | 2 +- src/cryptography/juce_RSAKey.h | 2 +- src/events/juce_AsyncUpdater.h | 2 +- src/events/juce_InterprocessConnection.cpp | 2 +- src/events/juce_InterprocessConnection.h | 2 +- .../juce_InterprocessConnectionServer.cpp | 2 +- src/events/juce_Message.h | 2 +- src/events/juce_MessageManager.h | 2 +- src/gui/components/buttons/juce_Button.cpp | 7 +- src/gui/components/buttons/juce_Button.h | 24 +- src/gui/components/controls/juce_Slider.cpp | 4 +- .../components/controls/juce_TableListBox.cpp | 4 +- src/gui/components/controls/juce_TextEditor.h | 2 +- src/gui/components/controls/juce_Toolbar.cpp | 4 +- src/gui/components/controls/juce_TreeView.cpp | 2 +- .../filebrowser/juce_FileBrowserComponent.cpp | 2 +- .../filebrowser/juce_FileBrowserComponent.h | 2 +- .../filebrowser/juce_FileChooserDialogBox.cpp | 6 +- .../juce_FileSearchPathListComponent.cpp | 10 +- .../filebrowser/juce_FilenameComponent.cpp | 2 +- src/gui/components/juce_Component.h | 2 +- .../juce_KeyMappingEditorComponent.cpp | 2 +- .../keyboard/juce_TextInputTarget.h | 2 +- src/gui/components/layout/juce_ScrollBar.h | 2 +- .../layout/juce_TabbedButtonBar.cpp | 2 +- .../menus/juce_PopupMenuCustomComponent.h | 2 +- .../mouse/juce_DragAndDropContainer.cpp | 2 +- src/gui/components/mouse/juce_MouseCursor.h | 2 +- .../components/mouse/juce_MouseInputSource.h | 2 +- .../juce_BooleanPropertyComponent.cpp | 2 +- .../juce_ButtonPropertyComponent.cpp | 2 +- .../juce_AudioDeviceSelectorComponent.cpp | 6 +- .../special/juce_MidiKeyboardComponent.h | 2 +- .../special/juce_PreferencesPanel.cpp | 2 +- .../components/windows/juce_AlertWindow.cpp | 4 +- .../components/windows/juce_ComponentPeer.cpp | 2 +- .../windows/juce_DocumentWindow.cpp | 2 +- .../components/windows/juce_ResizableWindow.h | 4 +- .../windows/juce_ThreadWithProgressWindow.h | 2 +- src/gui/graphics/colour/juce_ColourGradient.h | 2 +- src/gui/graphics/contexts/juce_EdgeTable.h | 2 +- src/gui/graphics/contexts/juce_FillType.h | 2 +- src/gui/graphics/contexts/juce_Graphics.h | 2 +- src/gui/graphics/fonts/juce_Font.h | 2 +- src/gui/graphics/fonts/juce_Typeface.h | 2 +- .../geometry/juce_RelativeCoordinate.h | 2 +- src/io/files/juce_DirectoryIterator.h | 2 +- src/io/files/juce_File.cpp | 6 +- src/io/files/juce_File.h | 4 +- src/io/files/juce_TemporaryFile.cpp | 2 +- src/io/network/juce_URL.cpp | 2 +- src/io/streams/juce_BufferedInputStream.h | 2 +- .../streams/juce_GZIPCompressorOutputStream.h | 2 +- .../juce_GZIPDecompressorInputStream.h | 2 +- src/io/streams/juce_InputStream.h | 2 +- src/io/streams/juce_MemoryInputStream.cpp | 2 +- src/io/streams/juce_MemoryOutputStream.h | 4 +- src/io/streams/juce_OutputStream.cpp | 2 +- src/io/streams/juce_OutputStream.h | 1 + src/io/streams/juce_SubregionStream.h | 2 +- src/juce_core_includes.h | 93 +- src/{containers => maths}/juce_BigInteger.cpp | 4 +- src/{containers => maths}/juce_BigInteger.h | 2 +- src/{containers => maths}/juce_Expression.cpp | 2 +- src/{containers => maths}/juce_Expression.h | 6 +- src/{core => maths}/juce_MathsFunctions.h | 0 src/{core => maths}/juce_Random.cpp | 4 +- src/{core => maths}/juce_Random.h | 2 +- src/{containers => maths}/juce_Range.h | 0 src/{core => memory}/juce_Atomic.h | 0 src/{core => memory}/juce_ByteOrder.h | 0 src/{containers => memory}/juce_HeapBlock.h | 0 .../juce_LeakedObjectDetector.h | 0 src/{core => memory}/juce_Memory.h | 0 .../juce_MemoryBlock.cpp | 0 src/{containers => memory}/juce_MemoryBlock.h | 2 +- .../juce_ReferenceCountedObject.h | 2 +- .../juce_ScopedPointer.h | 0 .../juce_WeakReference.h | 29 +- src/native/juce_linux_NativeCode.cpp | 5 +- src/native/juce_mac_NativeCode.mm | 2 +- src/native/juce_win32_NativeCode.cpp | 2 +- src/native/windows/juce_win32_Windowing.cpp | 3 +- src/{containers => text}/juce_Identifier.cpp | 0 src/{containers => text}/juce_Identifier.h | 0 src/text/juce_NewLine.h | 75 + src/text/juce_String.cpp | 4 +- src/text/juce_String.h | 43 - src/text/juce_XmlDocument.h | 2 +- src/text/juce_XmlElement.cpp | 2 +- src/threads/juce_InterProcessLock.h | 2 +- src/utilities/juce_PropertiesFile.cpp | 2 +- 169 files changed, 2140 insertions(+), 2007 deletions(-) rename src/{containers => maths}/juce_BigInteger.cpp (95%) rename src/{containers => maths}/juce_BigInteger.h (97%) rename src/{containers => maths}/juce_Expression.cpp (96%) rename src/{containers => maths}/juce_Expression.h (96%) rename src/{core => maths}/juce_MathsFunctions.h (100%) rename src/{core => maths}/juce_Random.cpp (94%) rename src/{core => maths}/juce_Random.h (96%) rename src/{containers => maths}/juce_Range.h (100%) rename src/{core => memory}/juce_Atomic.h (100%) rename src/{core => memory}/juce_ByteOrder.h (100%) rename src/{containers => memory}/juce_HeapBlock.h (100%) rename src/{core => memory}/juce_LeakedObjectDetector.h (100%) rename src/{core => memory}/juce_Memory.h (100%) rename src/{containers => memory}/juce_MemoryBlock.cpp (100%) rename src/{containers => memory}/juce_MemoryBlock.h (97%) rename src/{containers => memory}/juce_ReferenceCountedObject.h (96%) rename src/{containers => memory}/juce_ScopedPointer.h (100%) rename src/{containers => memory}/juce_WeakReference.h (83%) rename src/{containers => text}/juce_Identifier.cpp (100%) rename src/{containers => text}/juce_Identifier.h (100%) create mode 100644 src/text/juce_NewLine.h diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile index c341cc3fd5..a528aa28c3 100644 --- a/Builds/Linux/Makefile +++ b/Builds/Linux/Makefile @@ -95,11 +95,7 @@ OBJECTS := \ $(OBJDIR)/juce_Sampler_98f716a4.o \ $(OBJDIR)/juce_Synthesiser_2bffa1dd.o \ $(OBJDIR)/juce_AbstractFifo_dfc0bd23.o \ - $(OBJDIR)/juce_BigInteger_63589133.o \ $(OBJDIR)/juce_DynamicObject_69d02ab3.o \ - $(OBJDIR)/juce_Expression_1e9a5aad.o \ - $(OBJDIR)/juce_Identifier_89fa043e.o \ - $(OBJDIR)/juce_MemoryBlock_edd65761.o \ $(OBJDIR)/juce_NamedValueSet_6b0793df.o \ $(OBJDIR)/juce_PropertySet_914b5922.o \ $(OBJDIR)/juce_Value_16231646.o \ @@ -109,7 +105,6 @@ OBJECTS := \ $(OBJDIR)/juce_Initialisation_fec765a9.o \ $(OBJDIR)/juce_Logger_4f4f7f72.o \ $(OBJDIR)/juce_PerformanceCounter_6422080e.o \ - $(OBJDIR)/juce_Random_36899d25.o \ $(OBJDIR)/juce_RelativeTime_bc5ef35b.o \ $(OBJDIR)/juce_SystemStats_c00d8758.o \ $(OBJDIR)/juce_Time_16acdd6f.o \ @@ -286,6 +281,10 @@ OBJECTS := \ $(OBJDIR)/juce_MemoryOutputStream_8003c78f.o \ $(OBJDIR)/juce_OutputStream_9a068a6e.o \ $(OBJDIR)/juce_SubregionStream_9156f331.o \ + $(OBJDIR)/juce_BigInteger_b44f43d6.o \ + $(OBJDIR)/juce_Expression_6f910d50.o \ + $(OBJDIR)/juce_Random_a529cb7b.o \ + $(OBJDIR)/juce_MemoryBlock_52f17c52.o \ $(OBJDIR)/juce_linux_NativeCode_b464a4a9.o \ $(OBJDIR)/juce_win32_NativeCode_2eaaf382.o \ $(OBJDIR)/juce_posix_NamedPipe_aa308c65.o \ @@ -329,6 +328,7 @@ OBJECTS := \ $(OBJDIR)/juce_win32_WebBrowserComponent_2a4dd461.o \ $(OBJDIR)/juce_win32_Windowing_635b4f6a.o \ $(OBJDIR)/juce_CharacterFunctions_b1a5ac62.o \ + $(OBJDIR)/juce_Identifier_e99ee619.o \ $(OBJDIR)/juce_LocalisedStrings_3ddfa55e.o \ $(OBJDIR)/juce_String_80587b01.o \ $(OBJDIR)/juce_StringArray_4aaa67a2.o \ @@ -642,31 +642,11 @@ $(OBJDIR)/juce_AbstractFifo_dfc0bd23.o: ../../src/containers/juce_AbstractFifo.c @echo "Compiling juce_AbstractFifo.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/juce_BigInteger_63589133.o: ../../src/containers/juce_BigInteger.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_BigInteger.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - $(OBJDIR)/juce_DynamicObject_69d02ab3.o: ../../src/containers/juce_DynamicObject.cpp -@mkdir -p $(OBJDIR) @echo "Compiling juce_DynamicObject.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/juce_Expression_1e9a5aad.o: ../../src/containers/juce_Expression.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Expression.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_Identifier_89fa043e.o: ../../src/containers/juce_Identifier.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Identifier.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_MemoryBlock_edd65761.o: ../../src/containers/juce_MemoryBlock.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_MemoryBlock.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - $(OBJDIR)/juce_NamedValueSet_6b0793df.o: ../../src/containers/juce_NamedValueSet.cpp -@mkdir -p $(OBJDIR) @echo "Compiling juce_NamedValueSet.cpp" @@ -712,11 +692,6 @@ $(OBJDIR)/juce_PerformanceCounter_6422080e.o: ../../src/core/juce_PerformanceCou @echo "Compiling juce_PerformanceCounter.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/juce_Random_36899d25.o: ../../src/core/juce_Random.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_Random.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - $(OBJDIR)/juce_RelativeTime_bc5ef35b.o: ../../src/core/juce_RelativeTime.cpp -@mkdir -p $(OBJDIR) @echo "Compiling juce_RelativeTime.cpp" @@ -1597,6 +1572,26 @@ $(OBJDIR)/juce_SubregionStream_9156f331.o: ../../src/io/streams/juce_SubregionSt @echo "Compiling juce_SubregionStream.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" +$(OBJDIR)/juce_BigInteger_b44f43d6.o: ../../src/maths/juce_BigInteger.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_BigInteger.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_Expression_6f910d50.o: ../../src/maths/juce_Expression.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_Expression.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_Random_a529cb7b.o: ../../src/maths/juce_Random.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_Random.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_MemoryBlock_52f17c52.o: ../../src/memory/juce_MemoryBlock.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_MemoryBlock.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/juce_linux_NativeCode_b464a4a9.o: ../../src/native/juce_linux_NativeCode.cpp -@mkdir -p $(OBJDIR) @echo "Compiling juce_linux_NativeCode.cpp" @@ -1812,6 +1807,11 @@ $(OBJDIR)/juce_CharacterFunctions_b1a5ac62.o: ../../src/text/juce_CharacterFunct @echo "Compiling juce_CharacterFunctions.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" +$(OBJDIR)/juce_Identifier_e99ee619.o: ../../src/text/juce_Identifier.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_Identifier.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/juce_LocalisedStrings_3ddfa55e.o: ../../src/text/juce_LocalisedStrings.cpp -@mkdir -p $(OBJDIR) @echo "Compiling juce_LocalisedStrings.cpp" diff --git a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj index 6375d271e6..ccef91fca7 100644 --- a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj @@ -64,11 +64,7 @@ 07E6E11A658930554FF0C56A = { isa = PBXBuildFile; fileRef = ED5966B95F865C586A3CE08F; }; E8DFABC1603D55B97429A8E4 = { isa = PBXBuildFile; fileRef = 35668D8EEA19957C6C9AC83A; }; 1F905F44E5FA23A2D5CCDA0A = { isa = PBXBuildFile; fileRef = 4F22276689685D839BD252EA; }; - BE25871C34D79FEFFD1B94B6 = { isa = PBXBuildFile; fileRef = 895D742F49DA9F100990879C; }; 4AB5E55BDF79028F82F83D8E = { isa = PBXBuildFile; fileRef = F77C9170829579FABA5679AD; }; - 25018C91F79D918FEA084630 = { isa = PBXBuildFile; fileRef = 199DFD1C5A282FE13A585FEA; }; - 95577AE91AA6CBA7FE9434F3 = { isa = PBXBuildFile; fileRef = 1CF7CC0EB057F995BBBEFC90; }; - 21BA256CBCC9C15265928A23 = { isa = PBXBuildFile; fileRef = FF40DA899AE16A5E1D8AA54A; }; 9D2D1BA65C27BDA1F7C44769 = { isa = PBXBuildFile; fileRef = 70E5409425A76782B6188B31; }; 43B3119E2F1B559263AE956C = { isa = PBXBuildFile; fileRef = 9BD379D2F7995BFE0B3E5369; }; 4A7952C0A4EEE13296EEED5E = { isa = PBXBuildFile; fileRef = 1809284DD05B56309D7EA24F; }; @@ -78,7 +74,6 @@ 77104E86801B6CAD01F963F4 = { isa = PBXBuildFile; fileRef = 5B789AAC295BA4BB6D5AD4A3; }; 6A53DA58B55E2DE7241BF2C8 = { isa = PBXBuildFile; fileRef = 4555F03DBD059EEDECEF9F85; }; 0FF71870483AC46D5B7AC5B0 = { isa = PBXBuildFile; fileRef = DF6CAC67C0F2D379BDA03062; }; - 029702B3954F6968AE804B21 = { isa = PBXBuildFile; fileRef = 2C6C4AB5D82221AB303FBB34; }; FA01B3EABA192AE041D4FE4D = { isa = PBXBuildFile; fileRef = CFAECB6551F48A1695DEC243; }; 5BF44F954E56B7C2DD15EAEA = { isa = PBXBuildFile; fileRef = 18B170E96511BBA1019C66F8; }; B14EB5F3829CA26DA906D5C0 = { isa = PBXBuildFile; fileRef = 8D2DE1F3CB15D003C90042E7; }; @@ -255,6 +250,10 @@ 1008A8A446B9BCADBB853056 = { isa = PBXBuildFile; fileRef = B3F5E7A708350F72E7C77153; }; 0FB1AED6E5AB5CEA95E70950 = { isa = PBXBuildFile; fileRef = BBE79494A818EF83F52A4C7B; }; 103A3B11DFE35E9088ECE933 = { isa = PBXBuildFile; fileRef = AE5A7EC70F288E7EA682081D; }; + DAC7AB8D9EA70D99A1C1287E = { isa = PBXBuildFile; fileRef = 7A039686F4F852E26936CA53; }; + B3D08D9E24CC369E4838E6FF = { isa = PBXBuildFile; fileRef = 868E43A4BB7015579789E4F8; }; + 15932C8039A59B0431FBB93E = { isa = PBXBuildFile; fileRef = D99C977ACCD09262F06F6624; }; + 3BBC410C79D2F53D32ED7466 = { isa = PBXBuildFile; fileRef = AD655AA04981173716022D8D; }; 7BBDAAAFBC81C90E6212C6C4 = { isa = PBXBuildFile; fileRef = 1C4E5F07F277AE37C71EA547; }; 63BEDDA4009950B131FCCA83 = { isa = PBXBuildFile; fileRef = 3BC24CC03A2F940A615FE935; }; 056129CB247F785CC536A779 = { isa = PBXBuildFile; fileRef = 9DFCF3F7BB734C8AABD83D8D; }; @@ -324,6 +323,7 @@ B0B82AB2D9B0950F67B11BEA = { isa = PBXBuildFile; fileRef = 8758E6857070D7E5406FDE3F; }; 379B4A89E5403B57A2009E76 = { isa = PBXBuildFile; fileRef = 8E8BE2F1C182E418BBA6903C; }; 2AC6F3BFAAA21E21076A9F8D = { isa = PBXBuildFile; fileRef = 76E2084D2148068F9138A816; }; + B8DD4DB0BD1A6B38BBF92413 = { isa = PBXBuildFile; fileRef = 8273A206FB309671284959DD; }; 63BEC07A51CB8E516B38ECD4 = { isa = PBXBuildFile; fileRef = 4A97C8D2FF6454DDD3AF4BE5; }; C8F81E843F446868FAD88197 = { isa = PBXBuildFile; fileRef = B507B4A8712A54D7A8C03223; }; 50D91A2EC0ABF894E612D936 = { isa = PBXBuildFile; fileRef = 23252E4C97AEFAE0C5EEAA77; }; @@ -487,27 +487,15 @@ 9584B84F23A4251755D49213 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AbstractFifo.h; path = ../../src/containers/juce_AbstractFifo.h; sourceTree = SOURCE_ROOT; }; 839BE8047CF2F8EBE43ED34F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Array.h; path = ../../src/containers/juce_Array.h; sourceTree = SOURCE_ROOT; }; EDF52FDF87ACD33FE933142C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ArrayAllocationBase.h; path = ../../src/containers/juce_ArrayAllocationBase.h; sourceTree = SOURCE_ROOT; }; - 895D742F49DA9F100990879C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BigInteger.cpp; path = ../../src/containers/juce_BigInteger.cpp; sourceTree = SOURCE_ROOT; }; - 96DDC0A32624DA76036824D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BigInteger.h; path = ../../src/containers/juce_BigInteger.h; sourceTree = SOURCE_ROOT; }; F77C9170829579FABA5679AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DynamicObject.cpp; path = ../../src/containers/juce_DynamicObject.cpp; sourceTree = SOURCE_ROOT; }; 34C402EF9ADCAD34FB657D43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DynamicObject.h; path = ../../src/containers/juce_DynamicObject.h; sourceTree = SOURCE_ROOT; }; 7DA9AC75A4D9227C8FC4B2F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ElementComparator.h; path = ../../src/containers/juce_ElementComparator.h; sourceTree = SOURCE_ROOT; }; - 199DFD1C5A282FE13A585FEA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Expression.cpp; path = ../../src/containers/juce_Expression.cpp; sourceTree = SOURCE_ROOT; }; - 3C12A5E0EBBB0916C01CFC58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Expression.h; path = ../../src/containers/juce_Expression.h; sourceTree = SOURCE_ROOT; }; - F364AA2637B7CB89D3657DFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HeapBlock.h; path = ../../src/containers/juce_HeapBlock.h; sourceTree = SOURCE_ROOT; }; - 1CF7CC0EB057F995BBBEFC90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Identifier.cpp; path = ../../src/containers/juce_Identifier.cpp; sourceTree = SOURCE_ROOT; }; - C16848F86DF014F1CBECE248 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Identifier.h; path = ../../src/containers/juce_Identifier.h; sourceTree = SOURCE_ROOT; }; - FF40DA899AE16A5E1D8AA54A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/containers/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; - 2E5D896B8DB2B357D7440F60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/containers/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; 70E5409425A76782B6188B31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_NamedValueSet.cpp; path = ../../src/containers/juce_NamedValueSet.cpp; sourceTree = SOURCE_ROOT; }; BB4A73064B0FC74ECCA19116 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NamedValueSet.h; path = ../../src/containers/juce_NamedValueSet.h; sourceTree = SOURCE_ROOT; }; C1913C90ED7BE51E823887CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OwnedArray.h; path = ../../src/containers/juce_OwnedArray.h; sourceTree = SOURCE_ROOT; }; 9BD379D2F7995BFE0B3E5369 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertySet.cpp; path = ../../src/containers/juce_PropertySet.cpp; sourceTree = SOURCE_ROOT; }; C8F0F54CA3D913E7B8D559CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertySet.h; path = ../../src/containers/juce_PropertySet.h; sourceTree = SOURCE_ROOT; }; - 71A501DD68F55A8BDC779E57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Range.h; path = ../../src/containers/juce_Range.h; sourceTree = SOURCE_ROOT; }; D7612CE51ED4F9D3F960F922 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedArray.h; path = ../../src/containers/juce_ReferenceCountedArray.h; sourceTree = SOURCE_ROOT; }; - AF6EF2E3ACA8479A7E47C016 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/containers/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; - C1F3BCAD6E3683B2DA91C5C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/containers/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; 2F5FD1DEFAE549553A8BE3B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SortedSet.h; path = ../../src/containers/juce_SortedSet.h; sourceTree = SOURCE_ROOT; }; 989E03031D341649B4A296F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SparseSet.h; path = ../../src/containers/juce_SparseSet.h; sourceTree = SOURCE_ROOT; }; 1809284DD05B56309D7EA24F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Value.cpp; path = ../../src/containers/juce_Value.cpp; sourceTree = SOURCE_ROOT; }; @@ -516,24 +504,16 @@ 7CABDD863B47D8ADC900A4D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ValueTree.h; path = ../../src/containers/juce_ValueTree.h; sourceTree = SOURCE_ROOT; }; 4DF9D333038A442870668D31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Variant.cpp; path = ../../src/containers/juce_Variant.cpp; sourceTree = SOURCE_ROOT; }; A81B4FC81A75E21E5B96E506 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Variant.h; path = ../../src/containers/juce_Variant.h; sourceTree = SOURCE_ROOT; }; - 35D32D0A21ABDB7861E3E5B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/containers/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; - 149E6ECBA264A264C7BB3FB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Atomic.h; path = ../../src/core/juce_Atomic.h; sourceTree = SOURCE_ROOT; }; - 45AFA4791D59FBB1B548FB2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../src/core/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; D66C00E06B06EAD3B5257DD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileLogger.cpp; path = ../../src/core/juce_FileLogger.cpp; sourceTree = SOURCE_ROOT; }; C8441B7B3E4CCD4A257B4BFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileLogger.h; path = ../../src/core/juce_FileLogger.h; sourceTree = SOURCE_ROOT; }; 5B789AAC295BA4BB6D5AD4A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Initialisation.cpp; path = ../../src/core/juce_Initialisation.cpp; sourceTree = SOURCE_ROOT; }; 92ACFFCCCD1C85A0F8C6F80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Initialisation.h; path = ../../src/core/juce_Initialisation.h; sourceTree = SOURCE_ROOT; }; - DFE0DF77674CB28A2485FFDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LeakedObjectDetector.h; path = ../../src/core/juce_LeakedObjectDetector.h; sourceTree = SOURCE_ROOT; }; 4555F03DBD059EEDECEF9F85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Logger.cpp; path = ../../src/core/juce_Logger.cpp; sourceTree = SOURCE_ROOT; }; 63F44EC0485FCA050814967E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Logger.h; path = ../../src/core/juce_Logger.h; sourceTree = SOURCE_ROOT; }; - 94BDD1E20915D83AA6729D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MathsFunctions.h; path = ../../src/core/juce_MathsFunctions.h; sourceTree = SOURCE_ROOT; }; - 09C02A692734116F30059E9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/core/juce_Memory.h; sourceTree = SOURCE_ROOT; }; DF6CAC67C0F2D379BDA03062 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PerformanceCounter.cpp; path = ../../src/core/juce_PerformanceCounter.cpp; sourceTree = SOURCE_ROOT; }; 1159C6BB0D33EE8E1A96B083 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PerformanceCounter.h; path = ../../src/core/juce_PerformanceCounter.h; sourceTree = SOURCE_ROOT; }; 8292AE37F99FCC1E5BF63A28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PlatformDefs.h; path = ../../src/core/juce_PlatformDefs.h; sourceTree = SOURCE_ROOT; }; 8D499CED6DCF525ACD6E39B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PlatformUtilities.h; path = ../../src/core/juce_PlatformUtilities.h; sourceTree = SOURCE_ROOT; }; - 2C6C4AB5D82221AB303FBB34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Random.cpp; path = ../../src/core/juce_Random.cpp; sourceTree = SOURCE_ROOT; }; - 4921086FBB82248D0E9EDDBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Random.h; path = ../../src/core/juce_Random.h; sourceTree = SOURCE_ROOT; }; CFAECB6551F48A1695DEC243 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeTime.cpp; path = ../../src/core/juce_RelativeTime.cpp; sourceTree = SOURCE_ROOT; }; B4137E4612C1D161894D0D27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeTime.h; path = ../../src/core/juce_RelativeTime.h; sourceTree = SOURCE_ROOT; }; C25D6136DF9CE441D6EB4C42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Singleton.h; path = ../../src/core/juce_Singleton.h; sourceTree = SOURCE_ROOT; }; @@ -911,6 +891,24 @@ 5F27172FD963C1A748AA625A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OutputStream.h; path = ../../src/io/streams/juce_OutputStream.h; sourceTree = SOURCE_ROOT; }; AE5A7EC70F288E7EA682081D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SubregionStream.cpp; path = ../../src/io/streams/juce_SubregionStream.cpp; sourceTree = SOURCE_ROOT; }; 6F7CA1B3AD09C76271FED3D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SubregionStream.h; path = ../../src/io/streams/juce_SubregionStream.h; sourceTree = SOURCE_ROOT; }; + 7A039686F4F852E26936CA53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BigInteger.cpp; path = ../../src/maths/juce_BigInteger.cpp; sourceTree = SOURCE_ROOT; }; + 161894D0D279595D88F470A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BigInteger.h; path = ../../src/maths/juce_BigInteger.h; sourceTree = SOURCE_ROOT; }; + 868E43A4BB7015579789E4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Expression.cpp; path = ../../src/maths/juce_Expression.cpp; sourceTree = SOURCE_ROOT; }; + 8E0874D93125C2DC34255EDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Expression.h; path = ../../src/maths/juce_Expression.h; sourceTree = SOURCE_ROOT; }; + 7C2A4084A267F57F2E27F3F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MathsFunctions.h; path = ../../src/maths/juce_MathsFunctions.h; sourceTree = SOURCE_ROOT; }; + D99C977ACCD09262F06F6624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Random.cpp; path = ../../src/maths/juce_Random.cpp; sourceTree = SOURCE_ROOT; }; + A978BD4031CAE24FB0FE26E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Random.h; path = ../../src/maths/juce_Random.h; sourceTree = SOURCE_ROOT; }; + 1A656E62C071C54D28343AC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Range.h; path = ../../src/maths/juce_Range.h; sourceTree = SOURCE_ROOT; }; + 252632F3F97DF57C0781BEAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Atomic.h; path = ../../src/memory/juce_Atomic.h; sourceTree = SOURCE_ROOT; }; + 8FB80383DF3BAD7227DF465A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../src/memory/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; + FE76B46873DE20DFDC5A94BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HeapBlock.h; path = ../../src/memory/juce_HeapBlock.h; sourceTree = SOURCE_ROOT; }; + 28C4C81039B42A399F5B7320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LeakedObjectDetector.h; path = ../../src/memory/juce_LeakedObjectDetector.h; sourceTree = SOURCE_ROOT; }; + 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; + AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; + F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; + 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; + E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; + 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; 1C4E5F07F277AE37C71EA547 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_NativeCode.cpp; path = ../../src/native/juce_linux_NativeCode.cpp; sourceTree = SOURCE_ROOT; }; 3BC24CC03A2F940A615FE935 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_NativeCode.mm; path = ../../src/native/juce_mac_NativeCode.mm; sourceTree = SOURCE_ROOT; }; 9DFCF3F7BB734C8AABD83D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_NativeCode.cpp; path = ../../src/native/juce_win32_NativeCode.cpp; sourceTree = SOURCE_ROOT; }; @@ -990,8 +988,11 @@ 8E8BE2F1C182E418BBA6903C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Windowing.cpp; path = ../../src/native/windows/juce_win32_Windowing.cpp; sourceTree = SOURCE_ROOT; }; 76E2084D2148068F9138A816 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CharacterFunctions.cpp; path = ../../src/text/juce_CharacterFunctions.cpp; sourceTree = SOURCE_ROOT; }; 33F16EE4F38C9B76E7FAEF78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharacterFunctions.h; path = ../../src/text/juce_CharacterFunctions.h; sourceTree = SOURCE_ROOT; }; + 8273A206FB309671284959DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Identifier.cpp; path = ../../src/text/juce_Identifier.cpp; sourceTree = SOURCE_ROOT; }; + BF888BC540B64D5C61E46A34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Identifier.h; path = ../../src/text/juce_Identifier.h; sourceTree = SOURCE_ROOT; }; 4A97C8D2FF6454DDD3AF4BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LocalisedStrings.cpp; path = ../../src/text/juce_LocalisedStrings.cpp; sourceTree = SOURCE_ROOT; }; 2AA21CDC91EA122266EBD780 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LocalisedStrings.h; path = ../../src/text/juce_LocalisedStrings.h; sourceTree = SOURCE_ROOT; }; + 35DA3E75DDB03BB35794289B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NewLine.h; path = ../../src/text/juce_NewLine.h; sourceTree = SOURCE_ROOT; }; B507B4A8712A54D7A8C03223 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_String.cpp; path = ../../src/text/juce_String.cpp; sourceTree = SOURCE_ROOT; }; 1EE2A763E06AF4951024950F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_String.h; path = ../../src/text/juce_String.h; sourceTree = SOURCE_ROOT; }; 23252E4C97AEFAE0C5EEAA77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StringArray.cpp; path = ../../src/text/juce_StringArray.cpp; sourceTree = SOURCE_ROOT; }; @@ -1213,27 +1214,15 @@ 9584B84F23A4251755D49213, 839BE8047CF2F8EBE43ED34F, EDF52FDF87ACD33FE933142C, - 895D742F49DA9F100990879C, - 96DDC0A32624DA76036824D3, F77C9170829579FABA5679AD, 34C402EF9ADCAD34FB657D43, 7DA9AC75A4D9227C8FC4B2F7, - 199DFD1C5A282FE13A585FEA, - 3C12A5E0EBBB0916C01CFC58, - F364AA2637B7CB89D3657DFF, - 1CF7CC0EB057F995BBBEFC90, - C16848F86DF014F1CBECE248, - FF40DA899AE16A5E1D8AA54A, - 2E5D896B8DB2B357D7440F60, 70E5409425A76782B6188B31, BB4A73064B0FC74ECCA19116, C1913C90ED7BE51E823887CD, 9BD379D2F7995BFE0B3E5369, C8F0F54CA3D913E7B8D559CF, - 71A501DD68F55A8BDC779E57, D7612CE51ED4F9D3F960F922, - AF6EF2E3ACA8479A7E47C016, - C1F3BCAD6E3683B2DA91C5C4, 2F5FD1DEFAE549553A8BE3B1, 989E03031D341649B4A296F5, 1809284DD05B56309D7EA24F, @@ -1241,26 +1230,18 @@ 5D27EE211D9BFF6A58C4DC42, 7CABDD863B47D8ADC900A4D8, 4DF9D333038A442870668D31, - A81B4FC81A75E21E5B96E506, - 35D32D0A21ABDB7861E3E5B8 ); name = containers; sourceTree = ""; }; + A81B4FC81A75E21E5B96E506 ); name = containers; sourceTree = ""; }; 1AF37A533ABDD889670F9349 = { isa = PBXGroup; children = ( - 149E6ECBA264A264C7BB3FB3, - 45AFA4791D59FBB1B548FB2C, D66C00E06B06EAD3B5257DD6, C8441B7B3E4CCD4A257B4BFE, 5B789AAC295BA4BB6D5AD4A3, 92ACFFCCCD1C85A0F8C6F80F, - DFE0DF77674CB28A2485FFDF, 4555F03DBD059EEDECEF9F85, 63F44EC0485FCA050814967E, - 94BDD1E20915D83AA6729D94, - 09C02A692734116F30059E9F, DF6CAC67C0F2D379BDA03062, 1159C6BB0D33EE8E1A96B083, 8292AE37F99FCC1E5BF63A28, 8D499CED6DCF525ACD6E39B2, - 2C6C4AB5D82221AB303FBB34, - 4921086FBB82248D0E9EDDBF, CFAECB6551F48A1695DEC243, B4137E4612C1D161894D0D27, C25D6136DF9CE441D6EB4C42, @@ -1692,6 +1673,26 @@ 3C4DE044AE46D5AE2388C827, 13FBF71BD76A08C8971C6351, 177636E4EEEBBB139F934897 ); name = io; sourceTree = ""; }; + F5A63AD86C7C0A9A2C33D74D = { isa = PBXGroup; children = ( + 7A039686F4F852E26936CA53, + 161894D0D279595D88F470A6, + 868E43A4BB7015579789E4F8, + 8E0874D93125C2DC34255EDB, + 7C2A4084A267F57F2E27F3F7, + D99C977ACCD09262F06F6624, + A978BD4031CAE24FB0FE26E1, + 1A656E62C071C54D28343AC2 ); name = maths; sourceTree = ""; }; + 9518033FC989E104DDB02E8A = { isa = PBXGroup; children = ( + 252632F3F97DF57C0781BEAD, + 8FB80383DF3BAD7227DF465A, + FE76B46873DE20DFDC5A94BE, + 28C4C81039B42A399F5B7320, + 341631A7E86BF1C0E49093C6, + AD655AA04981173716022D8D, + F1D085B5F12E814BF1D5C395, + 524A70C9F23954F8F2A3F99B, + E05812E3CC31875A202D6B30, + 224C989BF83B6EA867814BFF ); name = memory; sourceTree = ""; }; DDB94A7300C3D1F2E9E51C47 = { isa = PBXGroup; children = ( 213F0A7BF38AF6AB34414A45, 21B2342B75097AB93CFF7E97, @@ -1781,8 +1782,11 @@ C6B52BCD0CB1B809D6DE555A = { isa = PBXGroup; children = ( 76E2084D2148068F9138A816, 33F16EE4F38C9B76E7FAEF78, + 8273A206FB309671284959DD, + BF888BC540B64D5C61E46A34, 4A97C8D2FF6454DDD3AF4BE5, 2AA21CDC91EA122266EBD780, + 35DA3E75DDB03BB35794289B, B507B4A8712A54D7A8C03223, 1EE2A763E06AF4951024950F, 23252E4C97AEFAE0C5EEAA77, @@ -1837,6 +1841,8 @@ 89F308FD85F378E278C98884, A11081920ACF526B1320CA42, 0C54591C1E8594B59F4701FE, + F5A63AD86C7C0A9A2C33D74D, + 9518033FC989E104DDB02E8A, B3E58752D519C56B78A95ACE, C6B52BCD0CB1B809D6DE555A, 723AC5B999F1EC8F4A101AAF, @@ -1985,11 +1991,7 @@ 07E6E11A658930554FF0C56A, E8DFABC1603D55B97429A8E4, 1F905F44E5FA23A2D5CCDA0A, - BE25871C34D79FEFFD1B94B6, 4AB5E55BDF79028F82F83D8E, - 25018C91F79D918FEA084630, - 95577AE91AA6CBA7FE9434F3, - 21BA256CBCC9C15265928A23, 9D2D1BA65C27BDA1F7C44769, 43B3119E2F1B559263AE956C, 4A7952C0A4EEE13296EEED5E, @@ -1999,7 +2001,6 @@ 77104E86801B6CAD01F963F4, 6A53DA58B55E2DE7241BF2C8, 0FF71870483AC46D5B7AC5B0, - 029702B3954F6968AE804B21, FA01B3EABA192AE041D4FE4D, 5BF44F954E56B7C2DD15EAEA, B14EB5F3829CA26DA906D5C0, @@ -2176,6 +2177,10 @@ 1008A8A446B9BCADBB853056, 0FB1AED6E5AB5CEA95E70950, 103A3B11DFE35E9088ECE933, + DAC7AB8D9EA70D99A1C1287E, + B3D08D9E24CC369E4838E6FF, + 15932C8039A59B0431FBB93E, + 3BBC410C79D2F53D32ED7466, 7BBDAAAFBC81C90E6212C6C4, 63BEDDA4009950B131FCCA83, 056129CB247F785CC536A779, @@ -2245,6 +2250,7 @@ B0B82AB2D9B0950F67B11BEA, 379B4A89E5403B57A2009E76, 2AC6F3BFAAA21E21076A9F8D, + B8DD4DB0BD1A6B38BBF92413, 63BEC07A51CB8E516B38ECD4, C8F81E843F446868FAD88197, 50D91A2EC0ABF894E612D936, diff --git a/Builds/VisualStudio2005/Juce.vcproj b/Builds/VisualStudio2005/Juce.vcproj index dbc787e873..7a33854fd7 100644 --- a/Builds/VisualStudio2005/Juce.vcproj +++ b/Builds/VisualStudio2005/Juce.vcproj @@ -350,27 +350,15 @@ - - - - - - - - - - - - @@ -379,26 +367,18 @@ - - - - - - - - @@ -835,6 +815,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -925,8 +927,11 @@ + + + diff --git a/Builds/VisualStudio2008/Juce.vcproj b/Builds/VisualStudio2008/Juce.vcproj index 6718a205e2..98880a41df 100644 --- a/Builds/VisualStudio2008/Juce.vcproj +++ b/Builds/VisualStudio2008/Juce.vcproj @@ -350,27 +350,15 @@ - - - - - - - - - - - - @@ -379,26 +367,18 @@ - - - - - - - - @@ -835,6 +815,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -925,8 +927,11 @@ + + + diff --git a/Builds/VisualStudio2008_DLL/Juce.vcproj b/Builds/VisualStudio2008_DLL/Juce.vcproj index d78b575754..0a7c4c4aa5 100644 --- a/Builds/VisualStudio2008_DLL/Juce.vcproj +++ b/Builds/VisualStudio2008_DLL/Juce.vcproj @@ -352,27 +352,15 @@ - - - - - - - - - - - - @@ -381,26 +369,18 @@ - - - - - - - - @@ -837,6 +817,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -927,8 +929,11 @@ + + + diff --git a/Builds/VisualStudio2010/Juce.vcxproj b/Builds/VisualStudio2010/Juce.vcxproj index 18140c2d46..0575408dbf 100644 --- a/Builds/VisualStudio2010/Juce.vcxproj +++ b/Builds/VisualStudio2010/Juce.vcxproj @@ -178,11 +178,7 @@ - - - - @@ -192,7 +188,6 @@ - @@ -369,6 +364,10 @@ + + + + @@ -412,6 +411,7 @@ + @@ -507,38 +507,23 @@ - - - - - - - - - - - - - - - @@ -740,6 +725,20 @@ + + + + + + + + + + + + + + @@ -750,7 +749,9 @@ + + diff --git a/Builds/VisualStudio2010/Juce.vcxproj.filters b/Builds/VisualStudio2010/Juce.vcxproj.filters index ef9f9eac66..9ce5385872 100644 --- a/Builds/VisualStudio2010/Juce.vcxproj.filters +++ b/Builds/VisualStudio2010/Juce.vcxproj.filters @@ -149,6 +149,12 @@ {C2308939-D584-9814-C8E8-EFA033FFC652} + + {61F03A35-213F-52B3-6C8B-3C71CDEFBE96} + + + {A9DDD283-8C5F-BBFD-E0C3-1ACD2FF8EB74} + {A5F8397A-22E0-232C-6BDB-9A112412C424} @@ -382,21 +388,9 @@ Juce\Source\containers - - Juce\Source\containers - Juce\Source\containers - - Juce\Source\containers - - - Juce\Source\containers - - - Juce\Source\containers - Juce\Source\containers @@ -424,9 +418,6 @@ Juce\Source\core - - Juce\Source\core - Juce\Source\core @@ -955,6 +946,18 @@ Juce\Source\io\streams + + Juce\Source\maths + + + Juce\Source\maths + + + Juce\Source\maths + + + Juce\Source\memory + Juce\Source\native @@ -1162,6 +1165,9 @@ Juce\Source\text + + Juce\Source\text + Juce\Source\text @@ -1443,27 +1449,12 @@ Juce\Source\containers - - Juce\Source\containers - Juce\Source\containers Juce\Source\containers - - Juce\Source\containers - - - Juce\Source\containers - - - Juce\Source\containers - - - Juce\Source\containers - Juce\Source\containers @@ -1473,18 +1464,9 @@ Juce\Source\containers - - Juce\Source\containers - Juce\Source\containers - - Juce\Source\containers - - - Juce\Source\containers - Juce\Source\containers @@ -1500,33 +1482,15 @@ Juce\Source\containers - - Juce\Source\containers - - - Juce\Source\core - - - Juce\Source\core - Juce\Source\core Juce\Source\core - - Juce\Source\core - Juce\Source\core - - Juce\Source\core - - - Juce\Source\core - Juce\Source\core @@ -1536,9 +1500,6 @@ Juce\Source\core - - Juce\Source\core - Juce\Source\core @@ -2142,6 +2103,48 @@ Juce\Source\io\streams + + Juce\Source\maths + + + Juce\Source\maths + + + Juce\Source\maths + + + Juce\Source\maths + + + Juce\Source\maths + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + + + Juce\Source\memory + Juce\Source\native\common @@ -2172,9 +2175,15 @@ Juce\Source\text + + Juce\Source\text + Juce\Source\text + + Juce\Source\text + Juce\Source\text diff --git a/Builds/iPhone/Juce.xcodeproj/project.pbxproj b/Builds/iPhone/Juce.xcodeproj/project.pbxproj index f6dd4ddc2a..5c7f217411 100644 --- a/Builds/iPhone/Juce.xcodeproj/project.pbxproj +++ b/Builds/iPhone/Juce.xcodeproj/project.pbxproj @@ -64,11 +64,7 @@ 07E6E11A658930554FF0C56A = { isa = PBXBuildFile; fileRef = ED5966B95F865C586A3CE08F; }; E8DFABC1603D55B97429A8E4 = { isa = PBXBuildFile; fileRef = 35668D8EEA19957C6C9AC83A; }; 1F905F44E5FA23A2D5CCDA0A = { isa = PBXBuildFile; fileRef = 4F22276689685D839BD252EA; }; - BE25871C34D79FEFFD1B94B6 = { isa = PBXBuildFile; fileRef = 895D742F49DA9F100990879C; }; 4AB5E55BDF79028F82F83D8E = { isa = PBXBuildFile; fileRef = F77C9170829579FABA5679AD; }; - 25018C91F79D918FEA084630 = { isa = PBXBuildFile; fileRef = 199DFD1C5A282FE13A585FEA; }; - 95577AE91AA6CBA7FE9434F3 = { isa = PBXBuildFile; fileRef = 1CF7CC0EB057F995BBBEFC90; }; - 21BA256CBCC9C15265928A23 = { isa = PBXBuildFile; fileRef = FF40DA899AE16A5E1D8AA54A; }; 9D2D1BA65C27BDA1F7C44769 = { isa = PBXBuildFile; fileRef = 70E5409425A76782B6188B31; }; 43B3119E2F1B559263AE956C = { isa = PBXBuildFile; fileRef = 9BD379D2F7995BFE0B3E5369; }; 4A7952C0A4EEE13296EEED5E = { isa = PBXBuildFile; fileRef = 1809284DD05B56309D7EA24F; }; @@ -78,7 +74,6 @@ 77104E86801B6CAD01F963F4 = { isa = PBXBuildFile; fileRef = 5B789AAC295BA4BB6D5AD4A3; }; 6A53DA58B55E2DE7241BF2C8 = { isa = PBXBuildFile; fileRef = 4555F03DBD059EEDECEF9F85; }; 0FF71870483AC46D5B7AC5B0 = { isa = PBXBuildFile; fileRef = DF6CAC67C0F2D379BDA03062; }; - 029702B3954F6968AE804B21 = { isa = PBXBuildFile; fileRef = 2C6C4AB5D82221AB303FBB34; }; FA01B3EABA192AE041D4FE4D = { isa = PBXBuildFile; fileRef = CFAECB6551F48A1695DEC243; }; 5BF44F954E56B7C2DD15EAEA = { isa = PBXBuildFile; fileRef = 18B170E96511BBA1019C66F8; }; B14EB5F3829CA26DA906D5C0 = { isa = PBXBuildFile; fileRef = 8D2DE1F3CB15D003C90042E7; }; @@ -255,6 +250,10 @@ 1008A8A446B9BCADBB853056 = { isa = PBXBuildFile; fileRef = B3F5E7A708350F72E7C77153; }; 0FB1AED6E5AB5CEA95E70950 = { isa = PBXBuildFile; fileRef = BBE79494A818EF83F52A4C7B; }; 103A3B11DFE35E9088ECE933 = { isa = PBXBuildFile; fileRef = AE5A7EC70F288E7EA682081D; }; + DAC7AB8D9EA70D99A1C1287E = { isa = PBXBuildFile; fileRef = 7A039686F4F852E26936CA53; }; + B3D08D9E24CC369E4838E6FF = { isa = PBXBuildFile; fileRef = 868E43A4BB7015579789E4F8; }; + 15932C8039A59B0431FBB93E = { isa = PBXBuildFile; fileRef = D99C977ACCD09262F06F6624; }; + 3BBC410C79D2F53D32ED7466 = { isa = PBXBuildFile; fileRef = AD655AA04981173716022D8D; }; 7BBDAAAFBC81C90E6212C6C4 = { isa = PBXBuildFile; fileRef = 1C4E5F07F277AE37C71EA547; }; 63BEDDA4009950B131FCCA83 = { isa = PBXBuildFile; fileRef = 3BC24CC03A2F940A615FE935; }; 056129CB247F785CC536A779 = { isa = PBXBuildFile; fileRef = 9DFCF3F7BB734C8AABD83D8D; }; @@ -324,6 +323,7 @@ B0B82AB2D9B0950F67B11BEA = { isa = PBXBuildFile; fileRef = 8758E6857070D7E5406FDE3F; }; 379B4A89E5403B57A2009E76 = { isa = PBXBuildFile; fileRef = 8E8BE2F1C182E418BBA6903C; }; 2AC6F3BFAAA21E21076A9F8D = { isa = PBXBuildFile; fileRef = 76E2084D2148068F9138A816; }; + B8DD4DB0BD1A6B38BBF92413 = { isa = PBXBuildFile; fileRef = 8273A206FB309671284959DD; }; 63BEC07A51CB8E516B38ECD4 = { isa = PBXBuildFile; fileRef = 4A97C8D2FF6454DDD3AF4BE5; }; C8F81E843F446868FAD88197 = { isa = PBXBuildFile; fileRef = B507B4A8712A54D7A8C03223; }; 50D91A2EC0ABF894E612D936 = { isa = PBXBuildFile; fileRef = 23252E4C97AEFAE0C5EEAA77; }; @@ -487,27 +487,15 @@ 9584B84F23A4251755D49213 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AbstractFifo.h; path = ../../src/containers/juce_AbstractFifo.h; sourceTree = SOURCE_ROOT; }; 839BE8047CF2F8EBE43ED34F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Array.h; path = ../../src/containers/juce_Array.h; sourceTree = SOURCE_ROOT; }; EDF52FDF87ACD33FE933142C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ArrayAllocationBase.h; path = ../../src/containers/juce_ArrayAllocationBase.h; sourceTree = SOURCE_ROOT; }; - 895D742F49DA9F100990879C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BigInteger.cpp; path = ../../src/containers/juce_BigInteger.cpp; sourceTree = SOURCE_ROOT; }; - 96DDC0A32624DA76036824D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BigInteger.h; path = ../../src/containers/juce_BigInteger.h; sourceTree = SOURCE_ROOT; }; F77C9170829579FABA5679AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DynamicObject.cpp; path = ../../src/containers/juce_DynamicObject.cpp; sourceTree = SOURCE_ROOT; }; 34C402EF9ADCAD34FB657D43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DynamicObject.h; path = ../../src/containers/juce_DynamicObject.h; sourceTree = SOURCE_ROOT; }; 7DA9AC75A4D9227C8FC4B2F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ElementComparator.h; path = ../../src/containers/juce_ElementComparator.h; sourceTree = SOURCE_ROOT; }; - 199DFD1C5A282FE13A585FEA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Expression.cpp; path = ../../src/containers/juce_Expression.cpp; sourceTree = SOURCE_ROOT; }; - 3C12A5E0EBBB0916C01CFC58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Expression.h; path = ../../src/containers/juce_Expression.h; sourceTree = SOURCE_ROOT; }; - F364AA2637B7CB89D3657DFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HeapBlock.h; path = ../../src/containers/juce_HeapBlock.h; sourceTree = SOURCE_ROOT; }; - 1CF7CC0EB057F995BBBEFC90 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Identifier.cpp; path = ../../src/containers/juce_Identifier.cpp; sourceTree = SOURCE_ROOT; }; - C16848F86DF014F1CBECE248 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Identifier.h; path = ../../src/containers/juce_Identifier.h; sourceTree = SOURCE_ROOT; }; - FF40DA899AE16A5E1D8AA54A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/containers/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; - 2E5D896B8DB2B357D7440F60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/containers/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; 70E5409425A76782B6188B31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_NamedValueSet.cpp; path = ../../src/containers/juce_NamedValueSet.cpp; sourceTree = SOURCE_ROOT; }; BB4A73064B0FC74ECCA19116 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NamedValueSet.h; path = ../../src/containers/juce_NamedValueSet.h; sourceTree = SOURCE_ROOT; }; C1913C90ED7BE51E823887CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OwnedArray.h; path = ../../src/containers/juce_OwnedArray.h; sourceTree = SOURCE_ROOT; }; 9BD379D2F7995BFE0B3E5369 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertySet.cpp; path = ../../src/containers/juce_PropertySet.cpp; sourceTree = SOURCE_ROOT; }; C8F0F54CA3D913E7B8D559CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertySet.h; path = ../../src/containers/juce_PropertySet.h; sourceTree = SOURCE_ROOT; }; - 71A501DD68F55A8BDC779E57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Range.h; path = ../../src/containers/juce_Range.h; sourceTree = SOURCE_ROOT; }; D7612CE51ED4F9D3F960F922 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedArray.h; path = ../../src/containers/juce_ReferenceCountedArray.h; sourceTree = SOURCE_ROOT; }; - AF6EF2E3ACA8479A7E47C016 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/containers/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; - C1F3BCAD6E3683B2DA91C5C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/containers/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; 2F5FD1DEFAE549553A8BE3B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SortedSet.h; path = ../../src/containers/juce_SortedSet.h; sourceTree = SOURCE_ROOT; }; 989E03031D341649B4A296F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SparseSet.h; path = ../../src/containers/juce_SparseSet.h; sourceTree = SOURCE_ROOT; }; 1809284DD05B56309D7EA24F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Value.cpp; path = ../../src/containers/juce_Value.cpp; sourceTree = SOURCE_ROOT; }; @@ -516,24 +504,16 @@ 7CABDD863B47D8ADC900A4D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ValueTree.h; path = ../../src/containers/juce_ValueTree.h; sourceTree = SOURCE_ROOT; }; 4DF9D333038A442870668D31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Variant.cpp; path = ../../src/containers/juce_Variant.cpp; sourceTree = SOURCE_ROOT; }; A81B4FC81A75E21E5B96E506 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Variant.h; path = ../../src/containers/juce_Variant.h; sourceTree = SOURCE_ROOT; }; - 35D32D0A21ABDB7861E3E5B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/containers/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; - 149E6ECBA264A264C7BB3FB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Atomic.h; path = ../../src/core/juce_Atomic.h; sourceTree = SOURCE_ROOT; }; - 45AFA4791D59FBB1B548FB2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../src/core/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; D66C00E06B06EAD3B5257DD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileLogger.cpp; path = ../../src/core/juce_FileLogger.cpp; sourceTree = SOURCE_ROOT; }; C8441B7B3E4CCD4A257B4BFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileLogger.h; path = ../../src/core/juce_FileLogger.h; sourceTree = SOURCE_ROOT; }; 5B789AAC295BA4BB6D5AD4A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Initialisation.cpp; path = ../../src/core/juce_Initialisation.cpp; sourceTree = SOURCE_ROOT; }; 92ACFFCCCD1C85A0F8C6F80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Initialisation.h; path = ../../src/core/juce_Initialisation.h; sourceTree = SOURCE_ROOT; }; - DFE0DF77674CB28A2485FFDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LeakedObjectDetector.h; path = ../../src/core/juce_LeakedObjectDetector.h; sourceTree = SOURCE_ROOT; }; 4555F03DBD059EEDECEF9F85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Logger.cpp; path = ../../src/core/juce_Logger.cpp; sourceTree = SOURCE_ROOT; }; 63F44EC0485FCA050814967E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Logger.h; path = ../../src/core/juce_Logger.h; sourceTree = SOURCE_ROOT; }; - 94BDD1E20915D83AA6729D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MathsFunctions.h; path = ../../src/core/juce_MathsFunctions.h; sourceTree = SOURCE_ROOT; }; - 09C02A692734116F30059E9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/core/juce_Memory.h; sourceTree = SOURCE_ROOT; }; DF6CAC67C0F2D379BDA03062 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PerformanceCounter.cpp; path = ../../src/core/juce_PerformanceCounter.cpp; sourceTree = SOURCE_ROOT; }; 1159C6BB0D33EE8E1A96B083 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PerformanceCounter.h; path = ../../src/core/juce_PerformanceCounter.h; sourceTree = SOURCE_ROOT; }; 8292AE37F99FCC1E5BF63A28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PlatformDefs.h; path = ../../src/core/juce_PlatformDefs.h; sourceTree = SOURCE_ROOT; }; 8D499CED6DCF525ACD6E39B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PlatformUtilities.h; path = ../../src/core/juce_PlatformUtilities.h; sourceTree = SOURCE_ROOT; }; - 2C6C4AB5D82221AB303FBB34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Random.cpp; path = ../../src/core/juce_Random.cpp; sourceTree = SOURCE_ROOT; }; - 4921086FBB82248D0E9EDDBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Random.h; path = ../../src/core/juce_Random.h; sourceTree = SOURCE_ROOT; }; CFAECB6551F48A1695DEC243 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RelativeTime.cpp; path = ../../src/core/juce_RelativeTime.cpp; sourceTree = SOURCE_ROOT; }; B4137E4612C1D161894D0D27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RelativeTime.h; path = ../../src/core/juce_RelativeTime.h; sourceTree = SOURCE_ROOT; }; C25D6136DF9CE441D6EB4C42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Singleton.h; path = ../../src/core/juce_Singleton.h; sourceTree = SOURCE_ROOT; }; @@ -911,6 +891,24 @@ 5F27172FD963C1A748AA625A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OutputStream.h; path = ../../src/io/streams/juce_OutputStream.h; sourceTree = SOURCE_ROOT; }; AE5A7EC70F288E7EA682081D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SubregionStream.cpp; path = ../../src/io/streams/juce_SubregionStream.cpp; sourceTree = SOURCE_ROOT; }; 6F7CA1B3AD09C76271FED3D6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SubregionStream.h; path = ../../src/io/streams/juce_SubregionStream.h; sourceTree = SOURCE_ROOT; }; + 7A039686F4F852E26936CA53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BigInteger.cpp; path = ../../src/maths/juce_BigInteger.cpp; sourceTree = SOURCE_ROOT; }; + 161894D0D279595D88F470A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BigInteger.h; path = ../../src/maths/juce_BigInteger.h; sourceTree = SOURCE_ROOT; }; + 868E43A4BB7015579789E4F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Expression.cpp; path = ../../src/maths/juce_Expression.cpp; sourceTree = SOURCE_ROOT; }; + 8E0874D93125C2DC34255EDB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Expression.h; path = ../../src/maths/juce_Expression.h; sourceTree = SOURCE_ROOT; }; + 7C2A4084A267F57F2E27F3F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MathsFunctions.h; path = ../../src/maths/juce_MathsFunctions.h; sourceTree = SOURCE_ROOT; }; + D99C977ACCD09262F06F6624 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Random.cpp; path = ../../src/maths/juce_Random.cpp; sourceTree = SOURCE_ROOT; }; + A978BD4031CAE24FB0FE26E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Random.h; path = ../../src/maths/juce_Random.h; sourceTree = SOURCE_ROOT; }; + 1A656E62C071C54D28343AC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Range.h; path = ../../src/maths/juce_Range.h; sourceTree = SOURCE_ROOT; }; + 252632F3F97DF57C0781BEAD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Atomic.h; path = ../../src/memory/juce_Atomic.h; sourceTree = SOURCE_ROOT; }; + 8FB80383DF3BAD7227DF465A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../src/memory/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; + FE76B46873DE20DFDC5A94BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HeapBlock.h; path = ../../src/memory/juce_HeapBlock.h; sourceTree = SOURCE_ROOT; }; + 28C4C81039B42A399F5B7320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LeakedObjectDetector.h; path = ../../src/memory/juce_LeakedObjectDetector.h; sourceTree = SOURCE_ROOT; }; + 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; + AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; + F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; + 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; + E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; + 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; 1C4E5F07F277AE37C71EA547 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_NativeCode.cpp; path = ../../src/native/juce_linux_NativeCode.cpp; sourceTree = SOURCE_ROOT; }; 3BC24CC03A2F940A615FE935 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_NativeCode.mm; path = ../../src/native/juce_mac_NativeCode.mm; sourceTree = SOURCE_ROOT; }; 9DFCF3F7BB734C8AABD83D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_NativeCode.cpp; path = ../../src/native/juce_win32_NativeCode.cpp; sourceTree = SOURCE_ROOT; }; @@ -990,8 +988,11 @@ 8E8BE2F1C182E418BBA6903C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Windowing.cpp; path = ../../src/native/windows/juce_win32_Windowing.cpp; sourceTree = SOURCE_ROOT; }; 76E2084D2148068F9138A816 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CharacterFunctions.cpp; path = ../../src/text/juce_CharacterFunctions.cpp; sourceTree = SOURCE_ROOT; }; 33F16EE4F38C9B76E7FAEF78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharacterFunctions.h; path = ../../src/text/juce_CharacterFunctions.h; sourceTree = SOURCE_ROOT; }; + 8273A206FB309671284959DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Identifier.cpp; path = ../../src/text/juce_Identifier.cpp; sourceTree = SOURCE_ROOT; }; + BF888BC540B64D5C61E46A34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Identifier.h; path = ../../src/text/juce_Identifier.h; sourceTree = SOURCE_ROOT; }; 4A97C8D2FF6454DDD3AF4BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LocalisedStrings.cpp; path = ../../src/text/juce_LocalisedStrings.cpp; sourceTree = SOURCE_ROOT; }; 2AA21CDC91EA122266EBD780 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LocalisedStrings.h; path = ../../src/text/juce_LocalisedStrings.h; sourceTree = SOURCE_ROOT; }; + 35DA3E75DDB03BB35794289B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NewLine.h; path = ../../src/text/juce_NewLine.h; sourceTree = SOURCE_ROOT; }; B507B4A8712A54D7A8C03223 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_String.cpp; path = ../../src/text/juce_String.cpp; sourceTree = SOURCE_ROOT; }; 1EE2A763E06AF4951024950F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_String.h; path = ../../src/text/juce_String.h; sourceTree = SOURCE_ROOT; }; 23252E4C97AEFAE0C5EEAA77 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StringArray.cpp; path = ../../src/text/juce_StringArray.cpp; sourceTree = SOURCE_ROOT; }; @@ -1213,27 +1214,15 @@ 9584B84F23A4251755D49213, 839BE8047CF2F8EBE43ED34F, EDF52FDF87ACD33FE933142C, - 895D742F49DA9F100990879C, - 96DDC0A32624DA76036824D3, F77C9170829579FABA5679AD, 34C402EF9ADCAD34FB657D43, 7DA9AC75A4D9227C8FC4B2F7, - 199DFD1C5A282FE13A585FEA, - 3C12A5E0EBBB0916C01CFC58, - F364AA2637B7CB89D3657DFF, - 1CF7CC0EB057F995BBBEFC90, - C16848F86DF014F1CBECE248, - FF40DA899AE16A5E1D8AA54A, - 2E5D896B8DB2B357D7440F60, 70E5409425A76782B6188B31, BB4A73064B0FC74ECCA19116, C1913C90ED7BE51E823887CD, 9BD379D2F7995BFE0B3E5369, C8F0F54CA3D913E7B8D559CF, - 71A501DD68F55A8BDC779E57, D7612CE51ED4F9D3F960F922, - AF6EF2E3ACA8479A7E47C016, - C1F3BCAD6E3683B2DA91C5C4, 2F5FD1DEFAE549553A8BE3B1, 989E03031D341649B4A296F5, 1809284DD05B56309D7EA24F, @@ -1241,26 +1230,18 @@ 5D27EE211D9BFF6A58C4DC42, 7CABDD863B47D8ADC900A4D8, 4DF9D333038A442870668D31, - A81B4FC81A75E21E5B96E506, - 35D32D0A21ABDB7861E3E5B8 ); name = containers; sourceTree = ""; }; + A81B4FC81A75E21E5B96E506 ); name = containers; sourceTree = ""; }; 1AF37A533ABDD889670F9349 = { isa = PBXGroup; children = ( - 149E6ECBA264A264C7BB3FB3, - 45AFA4791D59FBB1B548FB2C, D66C00E06B06EAD3B5257DD6, C8441B7B3E4CCD4A257B4BFE, 5B789AAC295BA4BB6D5AD4A3, 92ACFFCCCD1C85A0F8C6F80F, - DFE0DF77674CB28A2485FFDF, 4555F03DBD059EEDECEF9F85, 63F44EC0485FCA050814967E, - 94BDD1E20915D83AA6729D94, - 09C02A692734116F30059E9F, DF6CAC67C0F2D379BDA03062, 1159C6BB0D33EE8E1A96B083, 8292AE37F99FCC1E5BF63A28, 8D499CED6DCF525ACD6E39B2, - 2C6C4AB5D82221AB303FBB34, - 4921086FBB82248D0E9EDDBF, CFAECB6551F48A1695DEC243, B4137E4612C1D161894D0D27, C25D6136DF9CE441D6EB4C42, @@ -1692,6 +1673,26 @@ 3C4DE044AE46D5AE2388C827, 13FBF71BD76A08C8971C6351, 177636E4EEEBBB139F934897 ); name = io; sourceTree = ""; }; + F5A63AD86C7C0A9A2C33D74D = { isa = PBXGroup; children = ( + 7A039686F4F852E26936CA53, + 161894D0D279595D88F470A6, + 868E43A4BB7015579789E4F8, + 8E0874D93125C2DC34255EDB, + 7C2A4084A267F57F2E27F3F7, + D99C977ACCD09262F06F6624, + A978BD4031CAE24FB0FE26E1, + 1A656E62C071C54D28343AC2 ); name = maths; sourceTree = ""; }; + 9518033FC989E104DDB02E8A = { isa = PBXGroup; children = ( + 252632F3F97DF57C0781BEAD, + 8FB80383DF3BAD7227DF465A, + FE76B46873DE20DFDC5A94BE, + 28C4C81039B42A399F5B7320, + 341631A7E86BF1C0E49093C6, + AD655AA04981173716022D8D, + F1D085B5F12E814BF1D5C395, + 524A70C9F23954F8F2A3F99B, + E05812E3CC31875A202D6B30, + 224C989BF83B6EA867814BFF ); name = memory; sourceTree = ""; }; DDB94A7300C3D1F2E9E51C47 = { isa = PBXGroup; children = ( 213F0A7BF38AF6AB34414A45, 21B2342B75097AB93CFF7E97, @@ -1781,8 +1782,11 @@ C6B52BCD0CB1B809D6DE555A = { isa = PBXGroup; children = ( 76E2084D2148068F9138A816, 33F16EE4F38C9B76E7FAEF78, + 8273A206FB309671284959DD, + BF888BC540B64D5C61E46A34, 4A97C8D2FF6454DDD3AF4BE5, 2AA21CDC91EA122266EBD780, + 35DA3E75DDB03BB35794289B, B507B4A8712A54D7A8C03223, 1EE2A763E06AF4951024950F, 23252E4C97AEFAE0C5EEAA77, @@ -1837,6 +1841,8 @@ 89F308FD85F378E278C98884, A11081920ACF526B1320CA42, 0C54591C1E8594B59F4701FE, + F5A63AD86C7C0A9A2C33D74D, + 9518033FC989E104DDB02E8A, B3E58752D519C56B78A95ACE, C6B52BCD0CB1B809D6DE555A, 723AC5B999F1EC8F4A101AAF, @@ -1985,11 +1991,7 @@ 07E6E11A658930554FF0C56A, E8DFABC1603D55B97429A8E4, 1F905F44E5FA23A2D5CCDA0A, - BE25871C34D79FEFFD1B94B6, 4AB5E55BDF79028F82F83D8E, - 25018C91F79D918FEA084630, - 95577AE91AA6CBA7FE9434F3, - 21BA256CBCC9C15265928A23, 9D2D1BA65C27BDA1F7C44769, 43B3119E2F1B559263AE956C, 4A7952C0A4EEE13296EEED5E, @@ -1999,7 +2001,6 @@ 77104E86801B6CAD01F963F4, 6A53DA58B55E2DE7241BF2C8, 0FF71870483AC46D5B7AC5B0, - 029702B3954F6968AE804B21, FA01B3EABA192AE041D4FE4D, 5BF44F954E56B7C2DD15EAEA, B14EB5F3829CA26DA906D5C0, @@ -2176,6 +2177,10 @@ 1008A8A446B9BCADBB853056, 0FB1AED6E5AB5CEA95E70950, 103A3B11DFE35E9088ECE933, + DAC7AB8D9EA70D99A1C1287E, + B3D08D9E24CC369E4838E6FF, + 15932C8039A59B0431FBB93E, + 3BBC410C79D2F53D32ED7466, 7BBDAAAFBC81C90E6212C6C4, 63BEDDA4009950B131FCCA83, 056129CB247F785CC536A779, @@ -2245,6 +2250,7 @@ B0B82AB2D9B0950F67B11BEA, 379B4A89E5403B57A2009E76, 2AC6F3BFAAA21E21076A9F8D, + B8DD4DB0BD1A6B38BBF92413, 63BEC07A51CB8E516B38ECD4, C8F81E843F446868FAD88197, 50D91A2EC0ABF894E612D936, diff --git a/Juce.jucer b/Juce.jucer index 6fb18b7d23..9e942b250e 100644 --- a/Juce.jucer +++ b/Juce.jucer @@ -359,30 +359,12 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -1420,10 +1417,15 @@ resource="0" file="src/text/juce_CharacterFunctions.cpp"/> + + + = 0;) @@ -281,6 +279,8 @@ static bool munge (const File& templateFile, const File& targetFile, const Strin return false; } + out->setNewLineString ("\n"); + if (! parseFile (targetFile.getParentDirectory(), targetFile, *out, templateFile, diff --git a/extras/audio plugin host/Source/GraphEditorPanel.cpp b/extras/audio plugin host/Source/GraphEditorPanel.cpp index 5b4339c759..bbeb396a39 100644 --- a/extras/audio plugin host/Source/GraphEditorPanel.cpp +++ b/extras/audio plugin host/Source/GraphEditorPanel.cpp @@ -125,10 +125,10 @@ class PinComponent : public Component, public: PinComponent (FilterGraph& graph_, const uint32 filterID_, const int index_, const bool isInput_) - : graph (graph_), - filterID (filterID_), + : filterID (filterID_), index (index_), - isInput (isInput_) + isInput (isInput_), + graph (graph_) { const AudioProcessorGraph::Node::Ptr node (graph.getNodeForId (filterID_)); @@ -155,10 +155,6 @@ public: setSize (16, 16); } - ~PinComponent() - { - } - void paint (Graphics& g) { const float w = (float) getWidth(); @@ -443,9 +439,9 @@ public: private: int pinSize; Point originalPos; + Font font; int numIns, numOuts; DropShadowEffect shadow; - Font font; GraphEditorPanel* getGraphPanel() const throw() { @@ -462,11 +458,11 @@ class ConnectorComponent : public Component, { public: ConnectorComponent (FilterGraph& graph_) - : graph (graph_), - sourceFilterID (0), + : sourceFilterID (0), destFilterID (0), sourceFilterChannel (0), destFilterChannel (0), + graph (graph_), lastInputX (0), lastInputY (0), lastOutputX (0), diff --git a/extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp b/extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp index 1bb88dd8a9..06d8b332cd 100644 --- a/extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp +++ b/extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp @@ -44,7 +44,7 @@ StandaloneFilterWindow::StandaloneFilterWindow (const String& title, setTitleBarButtonsRequired (DocumentWindow::minimiseButton | DocumentWindow::closeButton, false); Component::addAndMakeVisible (&optionsButton); - optionsButton.addButtonListener (this); + optionsButton.addListener (this); optionsButton.setTriggeredOnMouseDown (true); JUCE_TRY diff --git a/extras/audio plugins/wrapper/juce_PluginHostType.h b/extras/audio plugins/wrapper/juce_PluginHostType.h index a75eb78b9d..29aa56700a 100644 --- a/extras/audio plugins/wrapper/juce_PluginHostType.h +++ b/extras/audio plugins/wrapper/juce_PluginHostType.h @@ -58,7 +58,8 @@ public: SteinbergWavelab6, SteinbergWavelab7, SteinbergWavelabGeneric, - MuseReceptorGeneric + MuseReceptorGeneric, + MagixSamplitude }; const HostType type; @@ -114,6 +115,11 @@ public: return type == MuseReceptorGeneric; } + bool isSamplitude() const throw() + { + return type == MagixSamplitude; + } + //============================================================================== static String getHostPath() { @@ -127,7 +133,7 @@ private: const String hostPath (getHostPath()); const String hostFilename (File (hostPath).getFileName()); -#if JUCE_MAC + #if JUCE_MAC if (hostPath.containsIgnoreCase ("Live 6.")) return AbletonLive6; if (hostPath.containsIgnoreCase ("Live 7.")) return AbletonLive7; if (hostPath.containsIgnoreCase ("Live 8.")) return AbletonLive8; @@ -140,7 +146,7 @@ private: if (hostPath.containsIgnoreCase ("Wavelab 7")) return SteinbergWavelab7; if (hostFilename.containsIgnoreCase ("Wavelab")) return SteinbergWavelabGeneric; -#elif JUCE_WINDOWS + #elif JUCE_WINDOWS if (hostFilename.containsIgnoreCase ("Live 6.")) return AbletonLive6; if (hostFilename.containsIgnoreCase ("Live 7.")) return AbletonLive7; if (hostFilename.containsIgnoreCase ("Live 8.")) return AbletonLive8; @@ -161,15 +167,14 @@ private: if (hostPath.containsIgnoreCase ("Wavelab 6")) return SteinbergWavelab6; if (hostPath.containsIgnoreCase ("Wavelab 7")) return SteinbergWavelab7; if (hostFilename.containsIgnoreCase ("Wavelab")) return SteinbergWavelabGeneric; - if (hostFilename.containsIgnoreCase ("reaper")) return Reaper; if (hostFilename.containsIgnoreCase ("rm-host")) return MuseReceptorGeneric; + if (hostFilename.startsWithIgnoreCase ("Sam")) return MagixSamplitude; - -#elif JUCE_LINUX + #elif JUCE_LINUX jassertfalse // not yet done! -#else + #else #error -#endif + #endif return UnknownHost; } diff --git a/extras/browser plugins/How to build a browser plugin.txt b/extras/browser plugins/How to build a browser plugin.txt index 85e02072e3..82e15ea97a 100644 --- a/extras/browser plugins/How to build a browser plugin.txt +++ b/extras/browser plugins/How to build a browser plugin.txt @@ -4,7 +4,7 @@ ============================= These classes let you easily turn a normal Juce component into a Mac/Windows NPAPI plugin -for use in Firefox, Safari, Opera, etc. +for use in Firefox, Safari, Chrome, etc., and/or an ActiveX plugin for IE. To create your plugin, your code just needs to implement the createBrowserPlugin() function to return a subclass of BrowserPluginComponent, and this acts as the plugin window. diff --git a/extras/browser plugins/demo/build/mac/JuceBrowserPluginDemo.xcodeproj/project.pbxproj b/extras/browser plugins/demo/build/mac/JuceBrowserPluginDemo.xcodeproj/project.pbxproj index b50c8c9bb6..f6ac67724b 100644 --- a/extras/browser plugins/demo/build/mac/JuceBrowserPluginDemo.xcodeproj/project.pbxproj +++ b/extras/browser plugins/demo/build/mac/JuceBrowserPluginDemo.xcodeproj/project.pbxproj @@ -270,6 +270,7 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Bundles"; PRODUCT_NAME = JuceBrowserPluginDemo; @@ -283,6 +284,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; + GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Bundles"; PRODUCT_NAME = JuceBrowserPluginDemo; diff --git a/extras/browser plugins/demo/src/JuceBrowserPluginDemo.cpp b/extras/browser plugins/demo/src/JuceBrowserPluginDemo.cpp index 09fea03f1b..0f907665ec 100644 --- a/extras/browser plugins/demo/src/JuceBrowserPluginDemo.cpp +++ b/extras/browser plugins/demo/src/JuceBrowserPluginDemo.cpp @@ -42,7 +42,7 @@ public: addAndMakeVisible (button = new TextButton ("Send a message to the webpage")); button->setBounds (320, 8, 180, 22); - button->addButtonListener (this); + button->addListener (this); button->setEnabled (false); ourJavascriptObject = new DemoBrowserObject (this); diff --git a/extras/example projects/Source/Main.cpp b/extras/example projects/Source/Main.cpp index 4c18ea8840..50c9968341 100644 --- a/extras/example projects/Source/Main.cpp +++ b/extras/example projects/Source/Main.cpp @@ -59,38 +59,21 @@ public: */ class JUCEHelloWorldApplication : public JUCEApplication { - /* Important! NEVER embed objects directly inside your JUCEApplication class! Use - ONLY pointers to objects, which you should create during the initialise() method - (NOT in the constructor!) and delete in the shutdown() method (NOT in the - destructor!) - - This is because the application object gets created before Juce has been properly - initialised, so any embedded objects would also get constructed too soon. - */ - HelloWorldWindow* helloWorldWindow; - public: //============================================================================== JUCEHelloWorldApplication() : helloWorldWindow (0) { - // NEVER do anything in here that could involve any Juce function being called - // - leave all your startup tasks until the initialise() method. } ~JUCEHelloWorldApplication() { - // Your shutdown() method should already have done all the things necessary to - // clean up this app object, so you should never need to put anything in - // the destructor. - - // Making any Juce calls in here could be very dangerous... } //============================================================================== void initialise (const String& commandLine) { - // just create the main window... + // For this demo, we'll just create the main window... helloWorldWindow = new HelloWorldWindow(); /* ..and now return, which will fall into to the main event @@ -104,20 +87,23 @@ public: void shutdown() { - // clear up.. + // This method is where you should clear-up your app's resources.. - if (helloWorldWindow != 0) - delete helloWorldWindow; + // The helloWorldWindow variable is a ScopedPointer, so setting it to a null + // pointer will delete the window. + helloWorldWindow = 0; } //============================================================================== const String getApplicationName() { - return T("Hello World for JUCE"); + return "Hello World for JUCE"; } const String getApplicationVersion() { + // The ProjectInfo::versionString value is automatically updated by the Jucer, and + // can be found in the JuceHeader.h file that it generates for our project. return ProjectInfo::versionString; } @@ -129,6 +115,9 @@ public: void anotherInstanceStarted (const String& commandLine) { } + +private: + ScopedPointer helloWorldWindow; }; diff --git a/extras/example projects/Source/MainComponent.cpp b/extras/example projects/Source/MainComponent.cpp index b9391b3dd2..9e6b37e15f 100644 --- a/extras/example projects/Source/MainComponent.cpp +++ b/extras/example projects/Source/MainComponent.cpp @@ -44,7 +44,7 @@ MainComponent::MainComponent () addAndMakeVisible (quitButton = new TextButton (String::empty)); quitButton->setButtonText (T("Quit")); - quitButton->addButtonListener (this); + quitButton->addListener (this); //[UserPreSize] diff --git a/extras/juce demo/Source/demos/AudioDemoLatencyPage.cpp b/extras/juce demo/Source/demos/AudioDemoLatencyPage.cpp index 678ec87224..e556ba54f7 100644 --- a/extras/juce demo/Source/demos/AudioDemoLatencyPage.cpp +++ b/extras/juce demo/Source/demos/AudioDemoLatencyPage.cpp @@ -290,7 +290,7 @@ AudioDemoLatencyPage::AudioDemoLatencyPage (AudioDeviceManager& deviceManager_) addAndMakeVisible (startTestButton = new TextButton (String::empty)); startTestButton->setButtonText ("Test Latency"); - startTestButton->addButtonListener (this); + startTestButton->addListener (this); addAndMakeVisible (testResultsBox = new TextEditor (String::empty)); testResultsBox->setMultiLine (true); diff --git a/extras/juce demo/Source/demos/AudioDemoPlaybackPage.cpp b/extras/juce demo/Source/demos/AudioDemoPlaybackPage.cpp index f90034f32f..34c05634bd 100644 --- a/extras/juce demo/Source/demos/AudioDemoPlaybackPage.cpp +++ b/extras/juce demo/Source/demos/AudioDemoPlaybackPage.cpp @@ -144,7 +144,7 @@ AudioDemoPlaybackPage::AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_ addAndMakeVisible (startStopButton = new TextButton (String::empty)); startStopButton->setButtonText (T("Play/Stop")); - startStopButton->addButtonListener (this); + startStopButton->addListener (this); startStopButton->setColour (TextButton::buttonColourId, Colour (0xff79ed7f)); addAndMakeVisible (fileTreeComp = new FileTreeComponent (directoryList)); diff --git a/extras/juce demo/Source/demos/AudioDemoRecordPage.cpp b/extras/juce demo/Source/demos/AudioDemoRecordPage.cpp index 3e4b3ed1a5..72a76a6ddf 100644 --- a/extras/juce demo/Source/demos/AudioDemoRecordPage.cpp +++ b/extras/juce demo/Source/demos/AudioDemoRecordPage.cpp @@ -155,7 +155,7 @@ AudioDemoRecordPage::AudioDemoRecordPage (AudioDeviceManager& deviceManager_) addAndMakeVisible (recordButton = new TextButton (String::empty)); recordButton->setButtonText (T("Record")); - recordButton->addButtonListener (this); + recordButton->addListener (this); recordButton->setColour (TextButton::buttonColourId, Colour (0xffff5c5c)); recordButton->setColour (TextButton::textColourOffId, Colours::black); diff --git a/extras/juce demo/Source/demos/AudioDemoSynthPage.cpp b/extras/juce demo/Source/demos/AudioDemoSynthPage.cpp index ef1e51a1d7..306dc6b1ef 100644 --- a/extras/juce demo/Source/demos/AudioDemoSynthPage.cpp +++ b/extras/juce demo/Source/demos/AudioDemoSynthPage.cpp @@ -259,13 +259,13 @@ AudioDemoSynthPage::AudioDemoSynthPage (AudioDeviceManager& deviceManager_) addAndMakeVisible (sineButton = new ToggleButton (String::empty)); sineButton->setButtonText (T("Use sine wave")); sineButton->setRadioGroupId (321); - sineButton->addButtonListener (this); + sineButton->addListener (this); sineButton->setToggleState (true, false); addAndMakeVisible (sampledButton = new ToggleButton (String::empty)); sampledButton->setButtonText (T("Use sampled sound")); sampledButton->setRadioGroupId (321); - sampledButton->addButtonListener (this); + sampledButton->addListener (this); addAndMakeVisible (liveAudioDisplayComp = new LiveAudioInputDisplayComp()); diff --git a/extras/juce demo/Source/demos/CameraDemo.cpp b/extras/juce demo/Source/demos/CameraDemo.cpp index df873e84c2..168aa83137 100644 --- a/extras/juce demo/Source/demos/CameraDemo.cpp +++ b/extras/juce demo/Source/demos/CameraDemo.cpp @@ -50,11 +50,11 @@ public: cameraSelectorComboBox.addListener (this); addAndMakeVisible (&snapshotButton); - snapshotButton.addButtonListener (this); + snapshotButton.addListener (this); snapshotButton.setEnabled (false); addAndMakeVisible (&recordMovieButton); - recordMovieButton.addButtonListener (this); + recordMovieButton.addListener (this); recordMovieButton.setEnabled (false); cameraSelectorComboBox.setSelectedId (2); diff --git a/extras/juce demo/Source/demos/FontsAndTextDemo.cpp b/extras/juce demo/Source/demos/FontsAndTextDemo.cpp index 430c910e3e..5e6e327372 100644 --- a/extras/juce demo/Source/demos/FontsAndTextDemo.cpp +++ b/extras/juce demo/Source/demos/FontsAndTextDemo.cpp @@ -58,10 +58,10 @@ public: textBox.setText ("The Quick Brown Fox Jumps Over The Lazy Dog\n\nAa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz 0123456789"); addAndMakeVisible (&boldButton); - boldButton.addButtonListener (this); + boldButton.addListener (this); addAndMakeVisible (&italicButton); - italicButton.addButtonListener (this); + italicButton.addListener (this); addAndMakeVisible (&sizeSlider); sizeSlider.setRange (3.0, 150.0, 0.1); diff --git a/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp b/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp index fc7c231509..14c5eb52bf 100644 --- a/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp +++ b/extras/juce demo/Source/demos/InterprocessCommsDemo.cpp @@ -89,7 +89,7 @@ public: addChildComponent (&sendButton); sendButton.setBounds (240, 120, 200, 24); sendButton.changeWidthToFitText(); - sendButton.addButtonListener (this); + sendButton.addListener (this); addChildComponent (&incomingMessages); incomingMessages.setReadOnly (true); diff --git a/extras/juce demo/Source/demos/ThreadingDemo.cpp b/extras/juce demo/Source/demos/ThreadingDemo.cpp index d91d5aa297..f07d297c98 100644 --- a/extras/juce demo/Source/demos/ThreadingDemo.cpp +++ b/extras/juce demo/Source/demos/ThreadingDemo.cpp @@ -232,7 +232,7 @@ public: controlButton.setTopLeftPosition (20, 20); controlButton.setTriggeredOnMouseDown (true); controlButton.setAlwaysOnTop (true); - controlButton.addButtonListener (this); + controlButton.addListener (this); } ~ThreadingDemo() diff --git a/extras/juce demo/Source/demos/TreeViewDemo.cpp b/extras/juce demo/Source/demos/TreeViewDemo.cpp index 8bd2ed74b0..05944f7142 100644 --- a/extras/juce demo/Source/demos/TreeViewDemo.cpp +++ b/extras/juce demo/Source/demos/TreeViewDemo.cpp @@ -141,7 +141,7 @@ public: thread.startThread (3); addAndMakeVisible (&typeButton); - typeButton.addButtonListener (this); + typeButton.addListener (this); typeButton.setAlwaysOnTop (true); typeButton.setTriggeredOnMouseDown (true); diff --git a/extras/juce demo/Source/demos/WebBrowserDemo.cpp b/extras/juce demo/Source/demos/WebBrowserDemo.cpp index b5829a2f0e..423ee90cf6 100644 --- a/extras/juce demo/Source/demos/WebBrowserDemo.cpp +++ b/extras/juce demo/Source/demos/WebBrowserDemo.cpp @@ -83,11 +83,11 @@ public: // add some buttons.. addAndMakeVisible (&goButton); - goButton.addButtonListener (this); + goButton.addListener (this); addAndMakeVisible (&backButton); - backButton.addButtonListener (this); + backButton.addListener (this); addAndMakeVisible (&forwardButton); - forwardButton.addButtonListener (this); + forwardButton.addListener (this); // send the browser to a start page.. webView->goToURL ("http://www.google.com"); diff --git a/extras/juce demo/Source/demos/WidgetsDemo.cpp b/extras/juce demo/Source/demos/WidgetsDemo.cpp index 17f60854b3..24d1752472 100644 --- a/extras/juce demo/Source/demos/WidgetsDemo.cpp +++ b/extras/juce demo/Source/demos/WidgetsDemo.cpp @@ -526,7 +526,7 @@ public: addAndMakeVisible (db); db->setBounds (90, 30, 80, 80); db->setTooltip ("this is an image-only DrawableButton"); - db->addButtonListener (buttonListener); + db->addListener (buttonListener); //============================================================================== // create an image-on-button-shape button from the same drawables.. @@ -546,7 +546,7 @@ public: addAndMakeVisible (db); db->setBounds (200, 70, 50, 50); db->setTooltip ("this is a DrawableButton on a standard button background"); - db->addButtonListener (buttonListener); + db->addListener (buttonListener); //============================================================================== HyperlinkButton* hyperlink @@ -580,7 +580,7 @@ public: addAndMakeVisible (animateButton); animateButton->changeWidthToFitText (24); animateButton->setTopLeftPosition (350, 70); - animateButton->addButtonListener (this); + animateButton->addListener (this); } ~ButtonsPage() @@ -693,12 +693,12 @@ public: depthLabel.attachToComponent (&depthSlider, false); addAndMakeVisible (&orientationButton); - orientationButton.addButtonListener (this); + orientationButton.addListener (this); orientationButton.changeWidthToFitText (22); orientationButton.setTopLeftPosition (depthSlider.getX(), depthSlider.getBottom() + 20); addAndMakeVisible (&customiseButton); - customiseButton.addButtonListener (this); + customiseButton.addListener (this); customiseButton.changeWidthToFitText (22); customiseButton.setTopLeftPosition (orientationButton.getRight() + 20, orientationButton.getY()); } @@ -1103,7 +1103,7 @@ public: //============================================================================== addAndMakeVisible (&menuButton); menuButton.setBounds (10, 10, 200, 24); - menuButton.addButtonListener (this); + menuButton.addListener (this); menuButton.setTriggeredOnMouseDown (true); // because this button pops up a menu, this lets us // hold down the button and drag straight onto the menu @@ -1112,7 +1112,7 @@ public: enableButton.setBounds (230, 10, 180, 24); enableButton.setTooltip ("Enables/disables all the components"); enableButton.setToggleState (true, false); - enableButton.addButtonListener (this); + enableButton.addListener (this); addAndMakeVisible (&transformSlider); transformSlider.setSliderStyle (Slider::LinearBar); diff --git a/extras/the jucer/src/model/components/jucer_ButtonHandler.h b/extras/the jucer/src/model/components/jucer_ButtonHandler.h index 9713229cce..7df7d3437c 100644 --- a/extras/the jucer/src/model/components/jucer_ButtonHandler.h +++ b/extras/the jucer/src/model/components/jucer_ButtonHandler.h @@ -141,7 +141,7 @@ public: << b->getRadioGroupId() << ");\n"; if (needsButtonListener (component)) - code.constructorCode << memberVariableName << "->addButtonListener (this);\n"; + code.constructorCode << memberVariableName << "->addListener (this);\n"; } void fillInGeneratedCode (Component* component, GeneratedCode& code) diff --git a/extras/the jucer/src/properties/jucer_PositionPropertyBase.h b/extras/the jucer/src/properties/jucer_PositionPropertyBase.h index cab0eaef32..a42962b2ce 100644 --- a/extras/the jucer/src/properties/jucer_PositionPropertyBase.h +++ b/extras/the jucer/src/properties/jucer_PositionPropertyBase.h @@ -60,7 +60,7 @@ public: allowRelativeOptions (allowRelativeOptions_) { addAndMakeVisible (button = new TextButton (T("mode"))); - button->addButtonListener (this); + button->addListener (this); button->setTriggeredOnMouseDown (true); button->setConnectedEdges (TextButton::ConnectedOnLeft | TextButton::ConnectedOnRight); diff --git a/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp b/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp index 831fc0c776..14a87259af 100644 --- a/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp +++ b/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp @@ -305,7 +305,7 @@ public: addAndMakeVisible (editor = new CodeEditorComponent (codeDocument, &tokeniser)); addAndMakeVisible (switchButton = new TextButton (String::empty)); - switchButton->addButtonListener (this); + switchButton->addListener (this); setWantsKeyboardFocus (true); } diff --git a/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp b/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp index 2d8c27c2ad..eb9f74b858 100644 --- a/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp +++ b/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp @@ -37,7 +37,7 @@ public: { setInterceptsMouseClicks (false, true); addAndMakeVisible (reloadButton = new TextButton (T("Reload"))); - reloadButton->addButtonListener (this); + reloadButton->addListener (this); } ~ResourceListButton() @@ -85,13 +85,13 @@ ResourceEditorPanel::ResourceEditorPanel (JucerDocument& document_) : document (document_) { addAndMakeVisible (addButton = new TextButton (T("Add new resource..."))); - addButton->addButtonListener (this); + addButton->addListener (this); addAndMakeVisible (reloadAllButton = new TextButton (T("Reload all resources"))); - reloadAllButton->addButtonListener (this); + reloadAllButton->addListener (this); addAndMakeVisible (delButton = new TextButton (T("Delete selected resources"))); - delButton->addButtonListener (this); + delButton->addListener (this); delButton->setEnabled (false); addAndMakeVisible (listBox = new TableListBox (String::empty, this)); diff --git a/extras/the jucer/src/utility/jucer_ColourEditorComponent.h b/extras/the jucer/src/utility/jucer_ColourEditorComponent.h index 5a0e39e029..15c7b78c64 100644 --- a/extras/the jucer/src/utility/jucer_ColourEditorComponent.h +++ b/extras/the jucer/src/utility/jucer_ColourEditorComponent.h @@ -116,7 +116,7 @@ private: if (canResetToDefault) { addAndMakeVisible (defaultButton = new TextButton (T("Reset to Default"))); - defaultButton->addButtonListener (this); + defaultButton->addListener (this); } } diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 5f3c9cf3ad..418011d001 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -31119,7 +31119,7 @@ PluginListComponent::PluginListComponent (KnownPluginList& listToEdit, addAndMakeVisible (&listBox); addAndMakeVisible (&optionsButton); - optionsButton.addButtonListener (this); + optionsButton.addListener (this); optionsButton.setTriggeredOnMouseDown (true); setSize (400, 600); @@ -31737,8 +31737,8 @@ private: AudioUnitPluginInstance::AudioUnitPluginInstance (const String& fileOrIdentifier) : fileOrIdentifier (fileOrIdentifier), wantsMidiMessages (false), wasPlaying (false), prepared (false), - audioUnit (0), - currentBuffer (0) + currentBuffer (0), + audioUnit (0) { using namespace AudioUnitFormatHelpers; @@ -34128,10 +34128,10 @@ public: plugin (plugin_), isOpen (false), wasShowing (false), - pluginRefusesToResize (false), + recursiveResize (false), pluginWantsKeys (false), - alreadyInside (false), - recursiveResize (false) + pluginRefusesToResize (false), + alreadyInside (false) { #if JUCE_WINDOWS sizeCheckCount = 0; @@ -43721,16 +43721,19 @@ void Button::handleCommandMessage (int commandId) } } -void Button::addButtonListener (ButtonListener* const newListener) +void Button::addListener (ButtonListener* const newListener) { buttonListeners.add (newListener); } -void Button::removeButtonListener (ButtonListener* const listener) +void Button::removeListener (ButtonListener* const listener) { buttonListeners.remove (listener); } +void Button::addButtonListener (ButtonListener* l) { addListener (l); } +void Button::removeButtonListener (ButtonListener* l) { removeListener (l); } + void Button::sendClickMessage (const ModifierKeys& modifiers) { Component::BailOutChecker checker (this); @@ -49856,10 +49859,10 @@ void Slider::lookAndFeelChanged() if (style == IncDecButtons) { addAndMakeVisible (incButton = lf.createSliderButton (true)); - incButton->addButtonListener (this); + incButton->addListener (this); addAndMakeVisible (decButton = lf.createSliderButton (false)); - decButton->addButtonListener (this); + decButton->addListener (this); if (incDecButtonMode != incDecButtonsNotDraggable) { @@ -55066,7 +55069,7 @@ Toolbar::Toolbar() addChildComponent (missingItemsButton = getLookAndFeel().createToolbarMissingItemsButton (*this)); missingItemsButton->setAlwaysOnTop (true); - missingItemsButton->addButtonListener (this); + missingItemsButton->addListener (this); } Toolbar::~Toolbar() @@ -55567,7 +55570,7 @@ private: if ((optionFlags & Toolbar::showResetToDefaultsButton) != 0) { addAndMakeVisible (&defaultButton); - defaultButton.addButtonListener (this); + defaultButton.addListener (this); } addAndMakeVisible (&instructions); @@ -58107,7 +58110,7 @@ FileBrowserComponent::FileBrowserComponent (int flags_, fileLabel.attachToComponent (&filenameBox, true); addAndMakeVisible (goUpButton = getLookAndFeel().createFileBrowserGoUpButton()); - goUpButton->addButtonListener (this); + goUpButton->addListener (this); goUpButton->setTooltip (TRANS ("go up to parent directory")); if (previewComp != 0) @@ -58681,9 +58684,9 @@ FileChooserDialogBox::FileChooserDialogBox (const String& name, setResizable (true, true); setResizeLimits (300, 300, 1200, 1000); - content->okButton.addButtonListener (this); - content->cancelButton.addButtonListener (this); - content->newFolderButton.addButtonListener (this); + content->okButton.addListener (this); + content->cancelButton.addListener (this); + content->newFolderButton.addListener (this); content->chooserComponent.addListener (this); selectionChanged(); @@ -59178,7 +59181,7 @@ void FilenameComponent::lookAndFeelChanged() browseButton->setConnectedEdges (Button::ConnectedOnLeft); resized(); - browseButton->addButtonListener (this); + browseButton->addListener (this); } void FilenameComponent::setTooltip (const String& newTooltip) @@ -59354,18 +59357,18 @@ FileSearchPathListComponent::FileSearchPathListComponent() listBox.setOutlineThickness (1); addAndMakeVisible (&addButton); - addButton.addButtonListener (this); + addButton.addListener (this); addButton.setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight | Button::ConnectedOnBottom | Button::ConnectedOnTop); addAndMakeVisible (&removeButton); - removeButton.addButtonListener (this); + removeButton.addListener (this); removeButton.setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight | Button::ConnectedOnBottom | Button::ConnectedOnTop); addAndMakeVisible (&changeButton); - changeButton.addButtonListener (this); + changeButton.addListener (this); addAndMakeVisible (&upButton); - upButton.addButtonListener (this); + upButton.addListener (this); { Path arrowPath; @@ -59378,7 +59381,7 @@ FileSearchPathListComponent::FileSearchPathListComponent() } addAndMakeVisible (&downButton); - downButton.addButtonListener (this); + downButton.addListener (this); { Path arrowPath; @@ -60465,7 +60468,7 @@ KeyMappingEditorComponent::KeyMappingEditorComponent (KeyPressMappingSet& mappin if (showResetToDefaultButton) { addAndMakeVisible (&resetButton); - resetButton.addButtonListener (treeItem); + resetButton.addListener (treeItem); } addAndMakeVisible (&tree); @@ -63991,7 +63994,7 @@ void TabbedButtonBar::resized() if (extraTabsButton == 0) { addAndMakeVisible (extraTabsButton = getLookAndFeel().createTabBarExtrasButton()); - extraTabsButton->addButtonListener (behindFrontTab); + extraTabsButton->addListener (behindFrontTab); extraTabsButton->setAlwaysOnTop (true); extraTabsButton->setTriggeredOnMouseDown (true); } @@ -71839,7 +71842,7 @@ BooleanPropertyComponent::BooleanPropertyComponent (const String& name, { addAndMakeVisible (&button); button.setClickingTogglesState (false); - button.addButtonListener (this); + button.addListener (this); } BooleanPropertyComponent::BooleanPropertyComponent (const Value& valueToControl, @@ -71905,7 +71908,7 @@ ButtonPropertyComponent::ButtonPropertyComponent (const String& name, { addAndMakeVisible (&button); button.setTriggeredOnMouseDown (triggerOnMouseDown); - button.addButtonListener (this); + button.addListener (this); } ButtonPropertyComponent::~ButtonPropertyComponent() @@ -72812,7 +72815,7 @@ public: if (hideAdvancedOptionsWithButton) { addAndMakeVisible (showAdvancedSettingsButton = new TextButton (TRANS("Show advanced settings..."))); - showAdvancedSettingsButton->addButtonListener (this); + showAdvancedSettingsButton->addListener (this); } type->scanForDevices(); @@ -73003,7 +73006,7 @@ public: { addAndMakeVisible (showUIButton = new TextButton (TRANS ("show this device's control panel"), TRANS ("opens the device's own control panel"))); - showUIButton->addButtonListener (this); + showUIButton->addListener (this); } resized(); @@ -73029,7 +73032,7 @@ public: if (setup.maxNumOutputChannels > 0) { addAndMakeVisible (testButton = new TextButton (TRANS ("Test"))); - testButton->addButtonListener (this); + testButton->addListener (this); } } @@ -76253,7 +76256,7 @@ void PreferencesPanel::addSettingsPage (const String& title, button->setImages (icon, overIcon, downIcon); button->setRadioGroupId (1); - button->addButtonListener (this); + button->addListener (this); button->setClickingTogglesState (true); button->setWantsKeyboardFocus (false); addAndMakeVisible (button); @@ -76480,7 +76483,7 @@ void AlertWindow::addButton (const String& name, b->setCommandToTrigger (0, returnValue, false); b->addShortcut (shortcutKey1); b->addShortcut (shortcutKey2); - b->addButtonListener (this); + b->addListener (this); b->changeWidthToFitText (getLookAndFeel().getAlertWindowButtonHeight()); addAndMakeVisible (b, 0); @@ -78148,7 +78151,7 @@ void DocumentWindow::lookAndFeelChanged() if (buttonListener == 0) buttonListener = new ButtonListenerProxy (*this); - titleBarButtons[i]->addButtonListener (buttonListener); + titleBarButtons[i]->addListener (buttonListener); titleBarButtons[i]->setWantsKeyboardFocus (false); // (call the Component method directly to avoid the assertion in ResizableWindow) @@ -243549,9 +243552,8 @@ private: case SC_MAXIMIZE: if (! sendInputAttemptWhenModalMessage()) - return 0; + setFullScreen (true); - setFullScreen (true); return 0; case SC_MINIMIZE: diff --git a/juce_amalgamated.h b/juce_amalgamated.h index 361671fdd8..8a10c38243 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -64,7 +64,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 52 -#define JUCE_BUILDNUMBER 108 +#define JUCE_BUILDNUMBER 109 /** Current Juce version number. @@ -746,6 +746,15 @@ #endif +// Cross-compiler deprecation macros.. +#if JUCE_MSVC && ! JUCE_NO_DEPRECATION_WARNINGS + #define JUCE_DEPRECATED(functionDef) __declspec(deprecated) functionDef +#elif JUCE_GCC && ! JUCE_NO_DEPRECATION_WARNINGS + #define JUCE_DEPRECATED(functionDef) functionDef __attribute__ ((deprecated)) +#else + #define JUCE_DEPRECATED(functionDef) functionDef +#endif + #endif // __JUCE_PLATFORMDEFS_JUCEHEADER__ /*** End of inlined file: juce_PlatformDefs.h ***/ @@ -2804,47 +2813,6 @@ JUCE_API std::basic_ostream & JUCE_CALLTYPE operator<< (std::basi /** Writes a string to an OutputStream as UTF8. */ JUCE_API OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const String& text); -/** This class is used for represent a new-line character sequence. - - To write a new-line to a stream, you can use the predefined 'newLine' variable, e.g. - @code - myOutputStream << "Hello World" << newLine << newLine; - @endcode - - The exact character sequence that will be used for the new-line can be set and - retrieved with OutputStream::setNewLineString() and OutputStream::getNewLineString(). -*/ -class NewLine -{ -public: - /** Returns the default new-line sequence that the library uses. - @see OutputStream::setNewLineString() - */ - static const char* getDefault() throw() { return "\r\n"; } - - /** Returns the default new-line sequence that the library uses. - @see getDefault() - */ - operator const String() const { return getDefault(); } -}; - -/** An object representing a new-line, which can be written to a string or stream. - - To write a new-line to a stream, you can use the predefined 'newLine' variable like this: - @code - myOutputStream << "Hello World" << newLine << newLine; - @endcode -*/ -extern NewLine newLine; - -/** Writes a new-line sequence to a string. - You can use the predefined object 'newLine' to invoke this, e.g. - @code - myString << "Hello World" << newLine << newLine; - @endcode -*/ -JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, const NewLine&); - #endif // __JUCE_STRING_JUCEHEADER__ /*** End of inlined file: juce_String.h ***/ @@ -5202,305 +5170,6 @@ private: #endif #ifndef __JUCE_ARRAYALLOCATIONBASE_JUCEHEADER__ -#endif -#ifndef __JUCE_BIGINTEGER_JUCEHEADER__ - -/*** Start of inlined file: juce_BigInteger.h ***/ -#ifndef __JUCE_BIGINTEGER_JUCEHEADER__ -#define __JUCE_BIGINTEGER_JUCEHEADER__ - -class MemoryBlock; - -/** - An arbitrarily large integer class. - - A BigInteger can be used in a similar way to a normal integer, but has no size - limit (except for memory and performance constraints). - - Negative values are possible, but the value isn't stored as 2s-complement, so - be careful if you use negative values and look at the values of individual bits. -*/ -class JUCE_API BigInteger -{ -public: - - /** Creates an empty BigInteger */ - BigInteger(); - - /** Creates a BigInteger containing an integer value in its low bits. - - The low 32 bits of the number are initialised with this value. - */ - BigInteger (uint32 value); - - /** Creates a BigInteger containing an integer value in its low bits. - - The low 32 bits of the number are initialised with the absolute value - passed in, and its sign is set to reflect the sign of the number. - */ - BigInteger (int32 value); - - /** Creates a BigInteger containing an integer value in its low bits. - - The low 64 bits of the number are initialised with the absolute value - passed in, and its sign is set to reflect the sign of the number. - */ - BigInteger (int64 value); - - /** Creates a copy of another BigInteger. */ - BigInteger (const BigInteger& other); - - /** Destructor. */ - ~BigInteger(); - - /** Copies another BigInteger onto this one. */ - BigInteger& operator= (const BigInteger& other); - - /** Swaps the internal contents of this with another object. */ - void swapWith (BigInteger& other) throw(); - - /** Returns the value of a specified bit in the number. - If the index is out-of-range, the result will be false. - */ - bool operator[] (int bit) const throw(); - - /** Returns true if no bits are set. */ - bool isZero() const throw(); - - /** Returns true if the value is 1. */ - bool isOne() const throw(); - - /** Attempts to get the lowest bits of the value as an integer. - If the value is bigger than the integer limits, this will return only the lower bits. - */ - int toInteger() const throw(); - - /** Resets the value to 0. */ - void clear(); - - /** Clears a particular bit in the number. */ - void clearBit (int bitNumber) throw(); - - /** Sets a specified bit to 1. */ - void setBit (int bitNumber); - - /** Sets or clears a specified bit. */ - void setBit (int bitNumber, bool shouldBeSet); - - /** Sets a range of bits to be either on or off. - - @param startBit the first bit to change - @param numBits the number of bits to change - @param shouldBeSet whether to turn these bits on or off - */ - void setRange (int startBit, int numBits, bool shouldBeSet); - - /** Inserts a bit an a given position, shifting up any bits above it. */ - void insertBit (int bitNumber, bool shouldBeSet); - - /** Returns a range of bits as a new BigInteger. - - e.g. getBitRangeAsInt (0, 64) would return the lowest 64 bits. - @see getBitRangeAsInt - */ - const BigInteger getBitRange (int startBit, int numBits) const; - - /** Returns a range of bits as an integer value. - - e.g. getBitRangeAsInt (0, 32) would return the lowest 32 bits. - - Asking for more than 32 bits isn't allowed (obviously) - for that, use - getBitRange(). - */ - int getBitRangeAsInt (int startBit, int numBits) const throw(); - - /** Sets a range of bits to an integer value. - - Copies the given integer onto a range of bits, starting at startBit, - and using up to numBits of the available bits. - */ - void setBitRangeAsInt (int startBit, int numBits, uint32 valueToSet); - - /** Shifts a section of bits left or right. - - @param howManyBitsLeft how far to move the bits (+ve numbers shift it left, -ve numbers shift it right). - @param startBit the first bit to affect - if this is > 0, only bits above that index will be affected. - */ - void shiftBits (int howManyBitsLeft, int startBit); - - /** Returns the total number of set bits in the value. */ - int countNumberOfSetBits() const throw(); - - /** Looks for the index of the next set bit after a given starting point. - - This searches from startIndex (inclusive) upwards for the first set bit, - and returns its index. If no set bits are found, it returns -1. - */ - int findNextSetBit (int startIndex = 0) const throw(); - - /** Looks for the index of the next clear bit after a given starting point. - - This searches from startIndex (inclusive) upwards for the first clear bit, - and returns its index. - */ - int findNextClearBit (int startIndex = 0) const throw(); - - /** Returns the index of the highest set bit in the number. - If the value is zero, this will return -1. - */ - int getHighestBit() const throw(); - - // All the standard arithmetic ops... - - BigInteger& operator+= (const BigInteger& other); - BigInteger& operator-= (const BigInteger& other); - BigInteger& operator*= (const BigInteger& other); - BigInteger& operator/= (const BigInteger& other); - BigInteger& operator|= (const BigInteger& other); - BigInteger& operator&= (const BigInteger& other); - BigInteger& operator^= (const BigInteger& other); - BigInteger& operator%= (const BigInteger& other); - BigInteger& operator<<= (int numBitsToShift); - BigInteger& operator>>= (int numBitsToShift); - BigInteger& operator++(); - BigInteger& operator--(); - const BigInteger operator++ (int); - const BigInteger operator-- (int); - - const BigInteger operator-() const; - const BigInteger operator+ (const BigInteger& other) const; - const BigInteger operator- (const BigInteger& other) const; - const BigInteger operator* (const BigInteger& other) const; - const BigInteger operator/ (const BigInteger& other) const; - const BigInteger operator| (const BigInteger& other) const; - const BigInteger operator& (const BigInteger& other) const; - const BigInteger operator^ (const BigInteger& other) const; - const BigInteger operator% (const BigInteger& other) const; - const BigInteger operator<< (int numBitsToShift) const; - const BigInteger operator>> (int numBitsToShift) const; - - bool operator== (const BigInteger& other) const throw(); - bool operator!= (const BigInteger& other) const throw(); - bool operator< (const BigInteger& other) const throw(); - bool operator<= (const BigInteger& other) const throw(); - bool operator> (const BigInteger& other) const throw(); - bool operator>= (const BigInteger& other) const throw(); - - /** Does a signed comparison of two BigIntegers. - - Return values are: - - 0 if the numbers are the same - - < 0 if this number is smaller than the other - - > 0 if this number is bigger than the other - */ - int compare (const BigInteger& other) const throw(); - - /** Compares the magnitudes of two BigIntegers, ignoring their signs. - - Return values are: - - 0 if the numbers are the same - - < 0 if this number is smaller than the other - - > 0 if this number is bigger than the other - */ - int compareAbsolute (const BigInteger& other) const throw(); - - /** Divides this value by another one and returns the remainder. - - This number is divided by other, leaving the quotient in this number, - with the remainder being copied to the other BigInteger passed in. - */ - void divideBy (const BigInteger& divisor, BigInteger& remainder); - - /** Returns the largest value that will divide both this value and the one passed-in. - */ - const BigInteger findGreatestCommonDivisor (BigInteger other) const; - - /** Performs a combined exponent and modulo operation. - - This BigInteger's value becomes (this ^ exponent) % modulus. - */ - void exponentModulo (const BigInteger& exponent, const BigInteger& modulus); - - /** Performs an inverse modulo on the value. - - i.e. the result is (this ^ -1) mod (modulus). - */ - void inverseModulo (const BigInteger& modulus); - - /** Returns true if the value is less than zero. - @see setNegative, negate - */ - bool isNegative() const throw(); - - /** Changes the sign of the number to be positive or negative. - @see isNegative, negate - */ - void setNegative (bool shouldBeNegative) throw(); - - /** Inverts the sign of the number. - @see isNegative, setNegative - */ - void negate() throw(); - - /** Converts the number to a string. - - Specify a base such as 2 (binary), 8 (octal), 10 (decimal), 16 (hex). - If minimumNumCharacters is greater than 0, the returned string will be - padded with leading zeros to reach at least that length. - */ - const String toString (int base, int minimumNumCharacters = 1) const; - - /** Reads the numeric value from a string. - - Specify a base such as 2 (binary), 8 (octal), 10 (decimal), 16 (hex). - Any invalid characters will be ignored. - */ - void parseString (const String& text, int base); - - /** Turns the number into a block of binary data. - - The data is arranged as little-endian, so the first byte of data is the low 8 bits - of the number, and so on. - - @see loadFromMemoryBlock - */ - const MemoryBlock toMemoryBlock() const; - - /** Converts a block of raw data into a number. - - The data is arranged as little-endian, so the first byte of data is the low 8 bits - of the number, and so on. - - @see toMemoryBlock - */ - void loadFromMemoryBlock (const MemoryBlock& data); - -private: - - HeapBlock values; - int numValues, highestBit; - bool negative; - - void ensureSize (int numVals); - static const BigInteger simpleGCD (BigInteger* m, BigInteger* n); - - static inline int bitToIndex (const int bit) throw() { return bit >> 5; } - static inline uint32 bitToMask (const int bit) throw() { return 1 << (bit & 31); } - - JUCE_LEAK_DETECTOR (BigInteger); -}; - -/** Writes a BigInteger to an OutputStream as a UTF8 decimal string. */ -OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const BigInteger& value); - -/** For backwards compatibility, BitArray is defined to be an alias for BigInteger. -*/ -typedef BigInteger BitArray; - -#endif // __JUCE_BIGINTEGER_JUCEHEADER__ -/*** End of inlined file: juce_BigInteger.h ***/ - - #endif #ifndef __JUCE_DYNAMICOBJECT_JUCEHEADER__ @@ -5649,6 +5318,55 @@ private: #define __JUCE_OUTPUTSTREAM_JUCEHEADER__ +/*** Start of inlined file: juce_NewLine.h ***/ +#ifndef __JUCE_NEWLINE_JUCEHEADER__ +#define __JUCE_NEWLINE_JUCEHEADER__ + +/** This class is used for represent a new-line character sequence. + + To write a new-line to a stream, you can use the predefined 'newLine' variable, e.g. + @code + myOutputStream << "Hello World" << newLine << newLine; + @endcode + + The exact character sequence that will be used for the new-line can be set and + retrieved with OutputStream::setNewLineString() and OutputStream::getNewLineString(). +*/ +class JUCE_API NewLine +{ +public: + /** Returns the default new-line sequence that the library uses. + @see OutputStream::setNewLineString() + */ + static const char* getDefault() throw() { return "\r\n"; } + + /** Returns the default new-line sequence that the library uses. + @see getDefault() + */ + operator const String() const { return getDefault(); } +}; + +/** An predefined object representing a new-line, which can be written to a string or stream. + + To write a new-line to a stream, you can use the predefined 'newLine' variable like this: + @code + myOutputStream << "Hello World" << newLine << newLine; + @endcode +*/ +extern NewLine newLine; + +/** Writes a new-line sequence to a string. + You can use the predefined object 'newLine' to invoke this, e.g. + @code + myString << "Hello World" << newLine << newLine; + @endcode +*/ +JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, const NewLine&); + +#endif // __JUCE_NEWLINE_JUCEHEADER__ +/*** End of inlined file: juce_NewLine.h ***/ + + /*** Start of inlined file: juce_InputStream.h ***/ #ifndef __JUCE_INPUTSTREAM_JUCEHEADER__ #define __JUCE_INPUTSTREAM_JUCEHEADER__ @@ -6900,432 +6618,6 @@ private: #endif #ifndef __JUCE_ELEMENTCOMPARATOR_JUCEHEADER__ -#endif -#ifndef __JUCE_EXPRESSION_JUCEHEADER__ - -/*** Start of inlined file: juce_Expression.h ***/ -#ifndef __JUCE_EXPRESSION_JUCEHEADER__ -#define __JUCE_EXPRESSION_JUCEHEADER__ - - -/*** Start of inlined file: juce_ScopedPointer.h ***/ -#ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__ -#define __JUCE_SCOPEDPOINTER_JUCEHEADER__ - -/** - This class holds a pointer which is automatically deleted when this object goes - out of scope. - - Once a pointer has been passed to a ScopedPointer, it will make sure that the pointer - gets deleted when the ScopedPointer is deleted. Using the ScopedPointer on the stack or - as member variables is a good way to use RAII to avoid accidentally leaking dynamically - created objects. - - A ScopedPointer can be used in pretty much the same way that you'd use a normal pointer - to an object. If you use the assignment operator to assign a different object to a - ScopedPointer, the old one will be automatically deleted. - - A const ScopedPointer is guaranteed not to lose ownership of its object or change the - object to which it points during its lifetime. This means that making a copy of a const - ScopedPointer is impossible, as that would involve the new copy taking ownership from the - old one. - - If you need to get a pointer out of a ScopedPointer without it being deleted, you - can use the release() method. -*/ -template -class ScopedPointer -{ -public: - - /** Creates a ScopedPointer containing a null pointer. */ - inline ScopedPointer() throw() : object (0) - { - } - - /** Creates a ScopedPointer that owns the specified object. */ - inline ScopedPointer (ObjectType* const objectToTakePossessionOf) throw() - : object (objectToTakePossessionOf) - { - } - - /** Creates a ScopedPointer that takes its pointer from another ScopedPointer. - - Because a pointer can only belong to one ScopedPointer, this transfers - the pointer from the other object to this one, and the other object is reset to - be a null pointer. - */ - ScopedPointer (ScopedPointer& objectToTransferFrom) throw() - : object (objectToTransferFrom.object) - { - objectToTransferFrom.object = 0; - } - - /** Destructor. - This will delete the object that this ScopedPointer currently refers to. - */ - inline ~ScopedPointer() { delete object; } - - /** Changes this ScopedPointer to point to a new object. - - Because a pointer can only belong to one ScopedPointer, this transfers - the pointer from the other object to this one, and the other object is reset to - be a null pointer. - - If this ScopedPointer already points to an object, that object - will first be deleted. - */ - ScopedPointer& operator= (ScopedPointer& objectToTransferFrom) - { - if (this != objectToTransferFrom.getAddress()) - { - // Two ScopedPointers should never be able to refer to the same object - if - // this happens, you must have done something dodgy! - jassert (object == 0 || object != objectToTransferFrom.object); - - ObjectType* const oldObject = object; - object = objectToTransferFrom.object; - objectToTransferFrom.object = 0; - delete oldObject; - } - - return *this; - } - - /** Changes this ScopedPointer to point to a new object. - - If this ScopedPointer already points to an object, that object - will first be deleted. - - The pointer that you pass is may be null. - */ - ScopedPointer& operator= (ObjectType* const newObjectToTakePossessionOf) - { - if (object != newObjectToTakePossessionOf) - { - ObjectType* const oldObject = object; - object = newObjectToTakePossessionOf; - delete oldObject; - } - - return *this; - } - - /** Returns the object that this ScopedPointer refers to. - */ - inline operator ObjectType*() const throw() { return object; } - - /** Returns the object that this ScopedPointer refers to. - */ - inline ObjectType& operator*() const throw() { return *object; } - - /** Lets you access methods and properties of the object that this ScopedPointer refers to. */ - inline ObjectType* operator->() const throw() { return object; } - - /** Removes the current object from this ScopedPointer without deleting it. - - This will return the current object, and set the ScopedPointer to a null pointer. - */ - ObjectType* release() throw() { ObjectType* const o = object; object = 0; return o; } - - /** Swaps this object with that of another ScopedPointer. - The two objects simply exchange their pointers. - */ - void swapWith (ScopedPointer & other) throw() - { - // Two ScopedPointers should never be able to refer to the same object - if - // this happens, you must have done something dodgy! - jassert (object != other.object); - - swapVariables (object, other.object); - } - -private: - - ObjectType* object; - - // (Required as an alternative to the overloaded & operator). - const ScopedPointer* getAddress() const throw() { return this; } - - #if ! JUCE_MSVC // (MSVC can't deal with multiple copy constructors) - /* This is private to stop people accidentally copying a const ScopedPointer (the compiler - would let you do so by implicitly casting the source to its raw object pointer). - - A side effect of this is that you may hit a puzzling compiler error when you write something - like this: - - ScopedPointer m = new MyClass(); // Compile error: copy constructor is private. - - Even though the compiler would normally ignore the assignment here, it can't do so when the - copy constructor is private. It's very easy to fis though - just write it like this: - - ScopedPointer m (new MyClass()); // Compiles OK - - It's good practice to always use the latter form when writing your object declarations anyway, - rather than writing them as assignments and assuming (or hoping) that the compiler will be - smart enough to replace your construction + assignment with a single constructor. - */ - ScopedPointer (const ScopedPointer&); - #endif -}; - -/** Compares a ScopedPointer with another pointer. - This can be handy for checking whether this is a null pointer. -*/ -template -bool operator== (const ScopedPointer& pointer1, ObjectType* const pointer2) throw() -{ - return static_cast (pointer1) == pointer2; -} - -/** Compares a ScopedPointer with another pointer. - This can be handy for checking whether this is a null pointer. -*/ -template -bool operator!= (const ScopedPointer& pointer1, ObjectType* const pointer2) throw() -{ - return static_cast (pointer1) != pointer2; -} - -#endif // __JUCE_SCOPEDPOINTER_JUCEHEADER__ -/*** End of inlined file: juce_ScopedPointer.h ***/ - -/** - A class for dynamically evaluating simple numeric expressions. - - This class can parse a simple C-style string expression involving floating point - numbers, named symbols and functions. The basic arithmetic operations of +, -, *, / - are supported, as well as parentheses, and any alphanumeric identifiers are - assumed to be named symbols which will be resolved when the expression is - evaluated. - - Expressions which use identifiers and functions require a subclass of - Expression::EvaluationContext to be supplied when evaluating them, and this object - is expected to be able to resolve the symbol names and perform the functions that - are used. -*/ -class JUCE_API Expression -{ -public: - - /** Creates a simple expression with a value of 0. */ - Expression(); - - /** Destructor. */ - ~Expression(); - - /** Creates a simple expression with a specified constant value. */ - explicit Expression (double constant); - - /** Creates a copy of an expression. */ - Expression (const Expression& other); - - /** Copies another expression. */ - Expression& operator= (const Expression& other); - - /** Creates an expression by parsing a string. - If there's a syntax error in the string, this will throw a ParseError exception. - @throws ParseError - */ - explicit Expression (const String& stringToParse); - - /** Returns a string version of the expression. */ - const String toString() const; - - /** Returns an expression which is an addtion operation of two existing expressions. */ - const Expression operator+ (const Expression& other) const; - /** Returns an expression which is a subtraction operation of two existing expressions. */ - const Expression operator- (const Expression& other) const; - /** Returns an expression which is a multiplication operation of two existing expressions. */ - const Expression operator* (const Expression& other) const; - /** Returns an expression which is a division operation of two existing expressions. */ - const Expression operator/ (const Expression& other) const; - /** Returns an expression which performs a negation operation on an existing expression. */ - const Expression operator-() const; - - /** Returns an Expression which is an identifier reference. */ - static const Expression symbol (const String& symbol); - - /** Returns an Expression which is a function call. */ - static const Expression function (const String& functionName, const Array& parameters); - - /** Returns an Expression which parses a string from a specified character index. - - The index value is incremented so that on return, it indicates the character that follows - the end of the expression that was parsed. - - If there's a syntax error in the string, this will throw a ParseError exception. - @throws ParseError - */ - static const Expression parse (const String& stringToParse, int& textIndexToStartFrom); - - /** When evaluating an Expression object, this class is used to resolve symbols and - perform functions that the expression uses. - */ - class EvaluationContext - { - public: - EvaluationContext(); - virtual ~EvaluationContext(); - - /** Returns the value of a symbol. - If the symbol is unknown, this can throw an Expression::EvaluationError exception. - The member value is set to the part of the symbol that followed the dot, if there is - one, e.g. for "foo.bar", symbol = "foo" and member = "bar". - @throws Expression::EvaluationError - */ - virtual const Expression getSymbolValue (const String& symbol, const String& member) const; - - /** Executes a named function. - If the function name is unknown, this can throw an Expression::EvaluationError exception. - @throws Expression::EvaluationError - */ - virtual double evaluateFunction (const String& functionName, const double* parameters, int numParams) const; - }; - - /** Evaluates this expression, without using an EvaluationContext. - Without an EvaluationContext, no symbols can be used, and only basic functions such as sin, cos, tan, - min, max are available. - @throws Expression::EvaluationError - */ - double evaluate() const; - - /** Evaluates this expression, providing a context that should be able to evaluate any symbols - or functions that it uses. - @throws Expression::EvaluationError - */ - double evaluate (const EvaluationContext& context) const; - - /** Attempts to return an expression which is a copy of this one, but with a constant adjusted - to make the expression resolve to a target value. - - E.g. if the expression is "x + 10" and x is 5, then asking for a target value of 8 will return - the expression "x + 3". Obviously some expressions can't be reversed in this way, in which - case they might just be adjusted by adding a constant to them. - - @throws Expression::EvaluationError - */ - const Expression adjustedToGiveNewResult (double targetValue, const EvaluationContext& context) const; - - /** Returns a copy of this expression in which all instances of a given symbol have been renamed. */ - const Expression withRenamedSymbol (const String& oldSymbol, const String& newSymbol) const; - - /** Returns true if this expression makes use of the specified symbol. - If a suitable context is supplied, the search will dereference and recursively check - all symbols, so that it can be determined whether this expression relies on the given - symbol at any level in its evaluation. If the context parameter is null, this just checks - whether the expression contains any direct references to the symbol. - - @throws Expression::EvaluationError - */ - bool referencesSymbol (const String& symbol, const EvaluationContext* context) const; - - /** Returns true if this expression contains any symbols. */ - bool usesAnySymbols() const; - - /** An exception that can be thrown by Expression::parse(). */ - class ParseError : public std::exception - { - public: - ParseError (const String& message); - - String description; - }; - - /** An exception that can be thrown by Expression::evaluate(). */ - class EvaluationError : public std::exception - { - public: - EvaluationError (const String& message); - EvaluationError (const String& symbolName, const String& memberName); - - String description; - }; - - /** Expression type. - @see Expression::getType() - */ - enum Type - { - constantType, - functionType, - operatorType, - symbolType - }; - - /** Returns the type of this expression. */ - Type getType() const throw(); - - /** If this expression is a symbol, this returns its name. */ - const String getSymbol() const; - - /** If this expression is a function, this returns its name. */ - const String getFunction() const; - - /** If this expression is an operator, this returns its name. - E.g. "+", "-", "*", "/", etc. - */ - const String getOperator() const; - - /** Returns the number of inputs to this expression. - @see getInput - */ - int getNumInputs() const; - - /** Retrieves one of the inputs to this expression. - @see getNumInputs - */ - const Expression getInput (int index) const; - -private: - - class Helpers; - friend class Helpers; - - class Term : public ReferenceCountedObject - { - public: - Term() {} - virtual ~Term() {} - - virtual Term* clone() const = 0; - virtual double evaluate (const EvaluationContext&, int recursionDepth) const = 0; - virtual int getNumInputs() const = 0; - virtual Term* getInput (int index) const = 0; - virtual int getInputIndexFor (const Term* possibleInput) const; - virtual const String toString() const = 0; - virtual int getOperatorPrecedence() const; - virtual bool referencesSymbol (const String& symbol, const EvaluationContext*, int recursionDepth) const; - virtual const ReferenceCountedObjectPtr createTermToEvaluateInput (const EvaluationContext&, const Term* inputTerm, - double overallTarget, Term* topLevelTerm) const; - virtual const ReferenceCountedObjectPtr negated(); - virtual Type getType() const throw() = 0; - virtual const String getSymbolName() const; - virtual const String getFunctionName() const; - - private: - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Term); - }; - - friend class ScopedPointer; - ReferenceCountedObjectPtr term; - - explicit Expression (Term* term); -}; - -#endif // __JUCE_EXPRESSION_JUCEHEADER__ -/*** End of inlined file: juce_Expression.h ***/ - - -#endif -#ifndef __JUCE_HEAPBLOCK_JUCEHEADER__ - -#endif -#ifndef __JUCE_IDENTIFIER_JUCEHEADER__ - -#endif -#ifndef __JUCE_MEMORYBLOCK_JUCEHEADER__ - #endif #ifndef __JUCE_NAMEDVALUESET_JUCEHEADER__ @@ -9075,6 +8367,189 @@ private: #endif // __JUCE_TIME_JUCEHEADER__ /*** End of inlined file: juce_Time.h ***/ + +/*** Start of inlined file: juce_ScopedPointer.h ***/ +#ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__ +#define __JUCE_SCOPEDPOINTER_JUCEHEADER__ + +/** + This class holds a pointer which is automatically deleted when this object goes + out of scope. + + Once a pointer has been passed to a ScopedPointer, it will make sure that the pointer + gets deleted when the ScopedPointer is deleted. Using the ScopedPointer on the stack or + as member variables is a good way to use RAII to avoid accidentally leaking dynamically + created objects. + + A ScopedPointer can be used in pretty much the same way that you'd use a normal pointer + to an object. If you use the assignment operator to assign a different object to a + ScopedPointer, the old one will be automatically deleted. + + A const ScopedPointer is guaranteed not to lose ownership of its object or change the + object to which it points during its lifetime. This means that making a copy of a const + ScopedPointer is impossible, as that would involve the new copy taking ownership from the + old one. + + If you need to get a pointer out of a ScopedPointer without it being deleted, you + can use the release() method. +*/ +template +class ScopedPointer +{ +public: + + /** Creates a ScopedPointer containing a null pointer. */ + inline ScopedPointer() throw() : object (0) + { + } + + /** Creates a ScopedPointer that owns the specified object. */ + inline ScopedPointer (ObjectType* const objectToTakePossessionOf) throw() + : object (objectToTakePossessionOf) + { + } + + /** Creates a ScopedPointer that takes its pointer from another ScopedPointer. + + Because a pointer can only belong to one ScopedPointer, this transfers + the pointer from the other object to this one, and the other object is reset to + be a null pointer. + */ + ScopedPointer (ScopedPointer& objectToTransferFrom) throw() + : object (objectToTransferFrom.object) + { + objectToTransferFrom.object = 0; + } + + /** Destructor. + This will delete the object that this ScopedPointer currently refers to. + */ + inline ~ScopedPointer() { delete object; } + + /** Changes this ScopedPointer to point to a new object. + + Because a pointer can only belong to one ScopedPointer, this transfers + the pointer from the other object to this one, and the other object is reset to + be a null pointer. + + If this ScopedPointer already points to an object, that object + will first be deleted. + */ + ScopedPointer& operator= (ScopedPointer& objectToTransferFrom) + { + if (this != objectToTransferFrom.getAddress()) + { + // Two ScopedPointers should never be able to refer to the same object - if + // this happens, you must have done something dodgy! + jassert (object == 0 || object != objectToTransferFrom.object); + + ObjectType* const oldObject = object; + object = objectToTransferFrom.object; + objectToTransferFrom.object = 0; + delete oldObject; + } + + return *this; + } + + /** Changes this ScopedPointer to point to a new object. + + If this ScopedPointer already points to an object, that object + will first be deleted. + + The pointer that you pass is may be null. + */ + ScopedPointer& operator= (ObjectType* const newObjectToTakePossessionOf) + { + if (object != newObjectToTakePossessionOf) + { + ObjectType* const oldObject = object; + object = newObjectToTakePossessionOf; + delete oldObject; + } + + return *this; + } + + /** Returns the object that this ScopedPointer refers to. + */ + inline operator ObjectType*() const throw() { return object; } + + /** Returns the object that this ScopedPointer refers to. + */ + inline ObjectType& operator*() const throw() { return *object; } + + /** Lets you access methods and properties of the object that this ScopedPointer refers to. */ + inline ObjectType* operator->() const throw() { return object; } + + /** Removes the current object from this ScopedPointer without deleting it. + + This will return the current object, and set the ScopedPointer to a null pointer. + */ + ObjectType* release() throw() { ObjectType* const o = object; object = 0; return o; } + + /** Swaps this object with that of another ScopedPointer. + The two objects simply exchange their pointers. + */ + void swapWith (ScopedPointer & other) throw() + { + // Two ScopedPointers should never be able to refer to the same object - if + // this happens, you must have done something dodgy! + jassert (object != other.object); + + swapVariables (object, other.object); + } + +private: + + ObjectType* object; + + // (Required as an alternative to the overloaded & operator). + const ScopedPointer* getAddress() const throw() { return this; } + + #if ! JUCE_MSVC // (MSVC can't deal with multiple copy constructors) + /* This is private to stop people accidentally copying a const ScopedPointer (the compiler + would let you do so by implicitly casting the source to its raw object pointer). + + A side effect of this is that you may hit a puzzling compiler error when you write something + like this: + + ScopedPointer m = new MyClass(); // Compile error: copy constructor is private. + + Even though the compiler would normally ignore the assignment here, it can't do so when the + copy constructor is private. It's very easy to fis though - just write it like this: + + ScopedPointer m (new MyClass()); // Compiles OK + + It's good practice to always use the latter form when writing your object declarations anyway, + rather than writing them as assignments and assuming (or hoping) that the compiler will be + smart enough to replace your construction + assignment with a single constructor. + */ + ScopedPointer (const ScopedPointer&); + #endif +}; + +/** Compares a ScopedPointer with another pointer. + This can be handy for checking whether this is a null pointer. +*/ +template +bool operator== (const ScopedPointer& pointer1, ObjectType* const pointer2) throw() +{ + return static_cast (pointer1) == pointer2; +} + +/** Compares a ScopedPointer with another pointer. + This can be handy for checking whether this is a null pointer. +*/ +template +bool operator!= (const ScopedPointer& pointer1, ObjectType* const pointer2) throw() +{ + return static_cast (pointer1) != pointer2; +} + +#endif // __JUCE_SCOPEDPOINTER_JUCEHEADER__ +/*** End of inlined file: juce_ScopedPointer.h ***/ + class FileInputStream; class FileOutputStream; @@ -10821,248 +10296,6 @@ private: /*** End of inlined file: juce_PropertySet.h ***/ -#endif -#ifndef __JUCE_RANGE_JUCEHEADER__ - -/*** Start of inlined file: juce_Range.h ***/ -#ifndef __JUCE_RANGE_JUCEHEADER__ -#define __JUCE_RANGE_JUCEHEADER__ - -/** A general-purpose range object, that simply represents any linear range with - a start and end point. - - The templated parameter is expected to be a primitive integer or floating point - type, though class types could also be used if they behave in a number-like way. -*/ -template -class Range -{ -public: - - /** Constructs an empty range. */ - Range() throw() - : start (ValueType()), end (ValueType()) - { - } - - /** Constructs a range with given start and end values. */ - Range (const ValueType start_, const ValueType end_) throw() - : start (start_), end (jmax (start_, end_)) - { - } - - /** Constructs a copy of another range. */ - Range (const Range& other) throw() - : start (other.start), end (other.end) - { - } - - /** Copies another range object. */ - Range& operator= (const Range& other) throw() - { - start = other.start; - end = other.end; - return *this; - } - - /** Destructor. */ - ~Range() throw() - { - } - - /** Returns the range that lies between two positions (in either order). */ - static const Range between (const ValueType position1, const ValueType position2) throw() - { - return (position1 < position2) ? Range (position1, position2) - : Range (position2, position1); - } - - /** Returns a range with the specified start position and a length of zero. */ - static const Range emptyRange (const ValueType start) throw() - { - return Range (start, start); - } - - /** Returns the start of the range. */ - inline ValueType getStart() const throw() { return start; } - - /** Returns the length of the range. */ - inline ValueType getLength() const throw() { return end - start; } - - /** Returns the end of the range. */ - inline ValueType getEnd() const throw() { return end; } - - /** Returns true if the range has a length of zero. */ - inline bool isEmpty() const throw() { return start == end; } - - /** Changes the start position of the range, leaving the end position unchanged. - If the new start position is higher than the current end of the range, the end point - will be pushed along to equal it, leaving an empty range at the new position. - */ - void setStart (const ValueType newStart) throw() - { - start = newStart; - if (end < newStart) - end = newStart; - } - - /** Returns a range with the same end as this one, but a different start. - If the new start position is higher than the current end of the range, the end point - will be pushed along to equal it, returning an empty range at the new position. - */ - const Range withStart (const ValueType newStart) const throw() - { - return Range (newStart, jmax (newStart, end)); - } - - /** Returns a range with the same length as this one, but moved to have the given start position. */ - const Range movedToStartAt (const ValueType newStart) const throw() - { - return Range (newStart, end + (newStart - start)); - } - - /** Changes the end position of the range, leaving the start unchanged. - If the new end position is below the current start of the range, the start point - will be pushed back to equal the new end point. - */ - void setEnd (const ValueType newEnd) throw() - { - end = newEnd; - if (newEnd < start) - start = newEnd; - } - - /** Returns a range with the same start position as this one, but a different end. - If the new end position is below the current start of the range, the start point - will be pushed back to equal the new end point. - */ - const Range withEnd (const ValueType newEnd) const throw() - { - return Range (jmin (start, newEnd), newEnd); - } - - /** Returns a range with the same length as this one, but moved to have the given start position. */ - const Range movedToEndAt (const ValueType newEnd) const throw() - { - return Range (start + (newEnd - end), newEnd); - } - - /** Changes the length of the range. - Lengths less than zero are treated as zero. - */ - void setLength (const ValueType newLength) throw() - { - end = start + jmax (ValueType(), newLength); - } - - /** Returns a range with the same start as this one, but a different length. - Lengths less than zero are treated as zero. - */ - const Range withLength (const ValueType newLength) const throw() - { - return Range (start, start + newLength); - } - - /** Adds an amount to the start and end of the range. */ - inline const Range& operator+= (const ValueType amountToAdd) throw() - { - start += amountToAdd; - end += amountToAdd; - return *this; - } - - /** Subtracts an amount from the start and end of the range. */ - inline const Range& operator-= (const ValueType amountToSubtract) throw() - { - start -= amountToSubtract; - end -= amountToSubtract; - return *this; - } - - /** Returns a range that is equal to this one with an amount added to its - start and end. - */ - const Range operator+ (const ValueType amountToAdd) const throw() - { - return Range (start + amountToAdd, end + amountToAdd); - } - - /** Returns a range that is equal to this one with the specified amount - subtracted from its start and end. */ - const Range operator- (const ValueType amountToSubtract) const throw() - { - return Range (start - amountToSubtract, end - amountToSubtract); - } - - bool operator== (const Range& other) const throw() { return start == other.start && end == other.end; } - bool operator!= (const Range& other) const throw() { return start != other.start || end != other.end; } - - /** Returns true if the given position lies inside this range. */ - bool contains (const ValueType position) const throw() - { - return start <= position && position < end; - } - - /** Returns the nearest value to the one supplied, which lies within the range. */ - ValueType clipValue (const ValueType value) const throw() - { - return jlimit (start, end, value); - } - - /** Returns true if the given range lies entirely inside this range. */ - bool contains (const Range& other) const throw() - { - return start <= other.start && end >= other.end; - } - - /** Returns true if the given range intersects this one. */ - bool intersects (const Range& other) const throw() - { - return other.start < end && start < other.end; - } - - /** Returns the range that is the intersection of the two ranges, or an empty range - with an undefined start position if they don't overlap. */ - const Range getIntersectionWith (const Range& other) const throw() - { - return Range (jmax (start, other.start), - jmin (end, other.end)); - } - - /** Returns the smallest range that contains both this one and the other one. */ - const Range getUnionWith (const Range& other) const throw() - { - return Range (jmin (start, other.start), - jmax (end, other.end)); - } - - /** Returns a given range, after moving it forwards or backwards to fit it - within this range. - - If the supplied range has a greater length than this one, the return value - will be this range. - - Otherwise, if the supplied range is smaller than this one, the return value - will be the new range, shifted forwards or backwards so that it doesn't extend - beyond this one, but keeping its original length. - */ - const Range constrainRange (const Range& rangeToConstrain) const throw() - { - const ValueType otherLen = rangeToConstrain.getLength(); - return getLength() <= otherLen - ? *this - : rangeToConstrain.movedToStartAt (jlimit (start, end - otherLen, rangeToConstrain.getStart())); - } - -private: - - ValueType start, end; -}; - -#endif // __JUCE_RANGE_JUCEHEADER__ -/*** End of inlined file: juce_Range.h ***/ - - #endif #ifndef __JUCE_REFERENCECOUNTEDARRAY_JUCEHEADER__ @@ -11765,12 +10998,6 @@ private: /*** End of inlined file: juce_ReferenceCountedArray.h ***/ -#endif -#ifndef __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__ - -#endif -#ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__ - #endif #ifndef __JUCE_SORTEDSET_JUCEHEADER__ @@ -12295,6 +11522,245 @@ private: #ifndef __JUCE_SPARSESET_JUCEHEADER__ #define __JUCE_SPARSESET_JUCEHEADER__ + +/*** Start of inlined file: juce_Range.h ***/ +#ifndef __JUCE_RANGE_JUCEHEADER__ +#define __JUCE_RANGE_JUCEHEADER__ + +/** A general-purpose range object, that simply represents any linear range with + a start and end point. + + The templated parameter is expected to be a primitive integer or floating point + type, though class types could also be used if they behave in a number-like way. +*/ +template +class Range +{ +public: + + /** Constructs an empty range. */ + Range() throw() + : start (ValueType()), end (ValueType()) + { + } + + /** Constructs a range with given start and end values. */ + Range (const ValueType start_, const ValueType end_) throw() + : start (start_), end (jmax (start_, end_)) + { + } + + /** Constructs a copy of another range. */ + Range (const Range& other) throw() + : start (other.start), end (other.end) + { + } + + /** Copies another range object. */ + Range& operator= (const Range& other) throw() + { + start = other.start; + end = other.end; + return *this; + } + + /** Destructor. */ + ~Range() throw() + { + } + + /** Returns the range that lies between two positions (in either order). */ + static const Range between (const ValueType position1, const ValueType position2) throw() + { + return (position1 < position2) ? Range (position1, position2) + : Range (position2, position1); + } + + /** Returns a range with the specified start position and a length of zero. */ + static const Range emptyRange (const ValueType start) throw() + { + return Range (start, start); + } + + /** Returns the start of the range. */ + inline ValueType getStart() const throw() { return start; } + + /** Returns the length of the range. */ + inline ValueType getLength() const throw() { return end - start; } + + /** Returns the end of the range. */ + inline ValueType getEnd() const throw() { return end; } + + /** Returns true if the range has a length of zero. */ + inline bool isEmpty() const throw() { return start == end; } + + /** Changes the start position of the range, leaving the end position unchanged. + If the new start position is higher than the current end of the range, the end point + will be pushed along to equal it, leaving an empty range at the new position. + */ + void setStart (const ValueType newStart) throw() + { + start = newStart; + if (end < newStart) + end = newStart; + } + + /** Returns a range with the same end as this one, but a different start. + If the new start position is higher than the current end of the range, the end point + will be pushed along to equal it, returning an empty range at the new position. + */ + const Range withStart (const ValueType newStart) const throw() + { + return Range (newStart, jmax (newStart, end)); + } + + /** Returns a range with the same length as this one, but moved to have the given start position. */ + const Range movedToStartAt (const ValueType newStart) const throw() + { + return Range (newStart, end + (newStart - start)); + } + + /** Changes the end position of the range, leaving the start unchanged. + If the new end position is below the current start of the range, the start point + will be pushed back to equal the new end point. + */ + void setEnd (const ValueType newEnd) throw() + { + end = newEnd; + if (newEnd < start) + start = newEnd; + } + + /** Returns a range with the same start position as this one, but a different end. + If the new end position is below the current start of the range, the start point + will be pushed back to equal the new end point. + */ + const Range withEnd (const ValueType newEnd) const throw() + { + return Range (jmin (start, newEnd), newEnd); + } + + /** Returns a range with the same length as this one, but moved to have the given start position. */ + const Range movedToEndAt (const ValueType newEnd) const throw() + { + return Range (start + (newEnd - end), newEnd); + } + + /** Changes the length of the range. + Lengths less than zero are treated as zero. + */ + void setLength (const ValueType newLength) throw() + { + end = start + jmax (ValueType(), newLength); + } + + /** Returns a range with the same start as this one, but a different length. + Lengths less than zero are treated as zero. + */ + const Range withLength (const ValueType newLength) const throw() + { + return Range (start, start + newLength); + } + + /** Adds an amount to the start and end of the range. */ + inline const Range& operator+= (const ValueType amountToAdd) throw() + { + start += amountToAdd; + end += amountToAdd; + return *this; + } + + /** Subtracts an amount from the start and end of the range. */ + inline const Range& operator-= (const ValueType amountToSubtract) throw() + { + start -= amountToSubtract; + end -= amountToSubtract; + return *this; + } + + /** Returns a range that is equal to this one with an amount added to its + start and end. + */ + const Range operator+ (const ValueType amountToAdd) const throw() + { + return Range (start + amountToAdd, end + amountToAdd); + } + + /** Returns a range that is equal to this one with the specified amount + subtracted from its start and end. */ + const Range operator- (const ValueType amountToSubtract) const throw() + { + return Range (start - amountToSubtract, end - amountToSubtract); + } + + bool operator== (const Range& other) const throw() { return start == other.start && end == other.end; } + bool operator!= (const Range& other) const throw() { return start != other.start || end != other.end; } + + /** Returns true if the given position lies inside this range. */ + bool contains (const ValueType position) const throw() + { + return start <= position && position < end; + } + + /** Returns the nearest value to the one supplied, which lies within the range. */ + ValueType clipValue (const ValueType value) const throw() + { + return jlimit (start, end, value); + } + + /** Returns true if the given range lies entirely inside this range. */ + bool contains (const Range& other) const throw() + { + return start <= other.start && end >= other.end; + } + + /** Returns true if the given range intersects this one. */ + bool intersects (const Range& other) const throw() + { + return other.start < end && start < other.end; + } + + /** Returns the range that is the intersection of the two ranges, or an empty range + with an undefined start position if they don't overlap. */ + const Range getIntersectionWith (const Range& other) const throw() + { + return Range (jmax (start, other.start), + jmin (end, other.end)); + } + + /** Returns the smallest range that contains both this one and the other one. */ + const Range getUnionWith (const Range& other) const throw() + { + return Range (jmin (start, other.start), + jmax (end, other.end)); + } + + /** Returns a given range, after moving it forwards or backwards to fit it + within this range. + + If the supplied range has a greater length than this one, the return value + will be this range. + + Otherwise, if the supplied range is smaller than this one, the return value + will be the new range, shifted forwards or backwards so that it doesn't extend + beyond this one, but keeping its original length. + */ + const Range constrainRange (const Range& rangeToConstrain) const throw() + { + const ValueType otherLen = rangeToConstrain.getLength(); + return getLength() <= otherLen + ? *this + : rangeToConstrain.movedToStartAt (jlimit (start, end - otherLen, rangeToConstrain.getStart())); + } + +private: + + ValueType start, end; +}; + +#endif // __JUCE_RANGE_JUCEHEADER__ +/*** End of inlined file: juce_Range.h ***/ + /** Holds a set of primitive values, storing them as a set of ranges. @@ -14151,183 +13617,6 @@ private: #endif #ifndef __JUCE_VARIANT_JUCEHEADER__ -#endif -#ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__ - -/*** Start of inlined file: juce_WeakReference.h ***/ -#ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__ -#define __JUCE_WEAKREFERENCE_JUCEHEADER__ - -/** - This class acts as a pointer which will automatically become null if the object - to which it points is deleted. - - To accomplish this, the source object needs to implement a couple of minor tricks. It - must provide a getWeakReference() method and use a WeakReference::Master object to store - a master pointer to itself. It must also clear the pointer when it's getting destroyed. - - E.g. - @code - class MyObject - { - public: - MyObject() - { - // If you're planning on using your WeakReferences in a multi-threaded situation, you may choose - // to call getWeakReference() here in the constructor, to avoid rare race conditions that could - // occur if multiple threads tried to be the first to call it. - } - - ~MyObject() - { - // this will zero all the references - you need to call this in your destructor. - masterReference.clear(); - } - - // Your object must provide a method that matches this signature, and which - // returns the result of the WeakReference::Master::operator() method. - const WeakReference::SharedRef& getWeakReference() - { - return masterReference (this); - } - - private: - WeakReference::Master masterReference; - }; - @endcode - - @see WeakReference::Master -*/ -template -class WeakReference -{ -public: - /** Creates a null SafePointer. */ - WeakReference() throw() {} - - /** Creates a WeakReference that points at the given object. */ - WeakReference (ObjectType* const object) : holder (object != 0 ? object->getWeakReference() : 0) {} - - /** Creates a copy of another WeakReference. */ - WeakReference (const WeakReference& other) throw() : holder (other.holder) {} - - /** Copies another pointer to this one. */ - WeakReference& operator= (const WeakReference& other) { holder = other.holder; return *this; } - - /** Copies another pointer to this one. */ - WeakReference& operator= (ObjectType* const newObject) { holder = newObject != 0 ? newObject->getWeakReference() : 0; return *this; } - - /** Returns the object that this pointer refers to, or null if the object no longer exists. */ - ObjectType* get() const throw() { return holder != 0 ? holder->get() : 0; } - - /** Returns the object that this pointer refers to, or null if the object no longer exists. */ - operator ObjectType*() const throw() { return get(); } - - /** Returns the object that this pointer refers to, or null if the object no longer exists. */ - ObjectType* operator->() throw() { return get(); } - - /** Returns the object that this pointer refers to, or null if the object no longer exists. */ - const ObjectType* operator->() const throw() { return get(); } - - /** This returns true if this reference has been pointing at an object, but that object has - since been deleted. - - If this reference was only ever pointing at a null pointer, this will return false. Using - operator=() to make this refer to a different object will reset this flag to match the status - of the reference from which you're copying. - */ - bool wasObjectDeleted() const throw() { return holder != 0 && holder->get() == 0; } - - bool operator== (ObjectType* const object) const throw() { return get() == object; } - bool operator!= (ObjectType* const object) const throw() { return get() != object; } - - /** This class is used internally by the WeakReference class - don't use it directly - in your code! - @see WeakReference - */ - class SharedPointer : public ReferenceCountedObject - { - public: - explicit SharedPointer (ObjectType* const owner_) throw() : owner (owner_) {} - - inline ObjectType* get() const throw() { return owner; } - void clearPointer() throw() { owner = 0; } - - private: - ObjectType* volatile owner; - - JUCE_DECLARE_NON_COPYABLE (SharedPointer); - }; - - typedef ReferenceCountedObjectPtr SharedRef; - - /** - This class is embedded inside an object to which you want to attach WeakReference pointers. - See the WeakReference class notes for an example of how to use this class. - @see WeakReference - */ - class Master - { - public: - Master() throw() {} - - ~Master() - { - // You must remember to call clear() in your source object's destructor! See the notes - // for the WeakReference class for an example of how to do this. - jassert (sharedPointer == 0 || sharedPointer->get() == 0); - } - - /** The first call to this method will create an internal object that is shared by all weak - references to the object. - You need to call this from your main object's getWeakReference() method - see the WeakReference - class notes for an example. - */ - const SharedRef& operator() (ObjectType* const object) - { - if (sharedPointer == 0) - { - sharedPointer = new SharedPointer (object); - } - else - { - // You're trying to create a weak reference to an object that has already been deleted!! - jassert (sharedPointer->get() != 0); - } - - return sharedPointer; - } - - /** The object that owns this master pointer should call this before it gets destroyed, - to zero all the references to this object that may be out there. See the WeakReference - class notes for an example of how to do this. - */ - void clear() - { - if (sharedPointer != 0) - sharedPointer->clearPointer(); - } - - private: - SharedRef sharedPointer; - - JUCE_DECLARE_NON_COPYABLE (Master); - }; - -private: - SharedRef holder; -}; - -#endif // __JUCE_WEAKREFERENCE_JUCEHEADER__ -/*** End of inlined file: juce_WeakReference.h ***/ - - -#endif -#ifndef __JUCE_ATOMIC_JUCEHEADER__ - -#endif -#ifndef __JUCE_BYTEORDER_JUCEHEADER__ - #endif #ifndef __JUCE_FILELOGGER_JUCEHEADER__ @@ -14560,18 +13849,9 @@ public: /*** End of inlined file: juce_Initialisation.h ***/ -#endif -#ifndef __JUCE_LEAKEDOBJECTDETECTOR_JUCEHEADER__ - #endif #ifndef __JUCE_LOGGER_JUCEHEADER__ -#endif -#ifndef __JUCE_MATHSFUNCTIONS_JUCEHEADER__ - -#endif -#ifndef __JUCE_MEMORY_JUCEHEADER__ - #endif #ifndef __JUCE_PERFORMANCECOUNTER_JUCEHEADER__ @@ -14964,112 +14244,6 @@ private: /*** End of inlined file: juce_PlatformUtilities.h ***/ -#endif -#ifndef __JUCE_RANDOM_JUCEHEADER__ - -/*** Start of inlined file: juce_Random.h ***/ -#ifndef __JUCE_RANDOM_JUCEHEADER__ -#define __JUCE_RANDOM_JUCEHEADER__ - -/** - A simple pseudo-random number generator. -*/ -class JUCE_API Random -{ -public: - - /** Creates a Random object based on a seed value. - - For a given seed value, the subsequent numbers generated by this object - will be predictable, so a good idea is to set this value based - on the time, e.g. - - new Random (Time::currentTimeMillis()) - */ - explicit Random (int64 seedValue) throw(); - - /** Destructor. */ - ~Random() throw(); - - /** Returns the next random 32 bit integer. - - @returns a random integer from the full range 0x80000000 to 0x7fffffff - */ - int nextInt() throw(); - - /** Returns the next random number, limited to a given range. - - @returns a random integer between 0 (inclusive) and maxValue (exclusive). - */ - int nextInt (int maxValue) throw(); - - /** Returns the next 64-bit random number. - - @returns a random integer from the full range 0x8000000000000000 to 0x7fffffffffffffff - */ - int64 nextInt64() throw(); - - /** Returns the next random floating-point number. - - @returns a random value in the range 0 to 1.0 - */ - float nextFloat() throw(); - - /** Returns the next random floating-point number. - - @returns a random value in the range 0 to 1.0 - */ - double nextDouble() throw(); - - /** Returns the next random boolean value. - */ - bool nextBool() throw(); - - /** Returns a BigInteger containing a random number. - - @returns a random value in the range 0 to (maximumValue - 1). - */ - const BigInteger nextLargeNumber (const BigInteger& maximumValue); - - /** Sets a range of bits in a BigInteger to random values. */ - void fillBitsRandomly (BigInteger& arrayToChange, int startBit, int numBits); - - /** To avoid the overhead of having to create a new Random object whenever - you need a number, this is a shared application-wide object that - can be used. - - It's not thread-safe though, so threads should use their own Random object. - */ - static Random& getSystemRandom() throw(); - - /** Resets this Random object to a given seed value. */ - void setSeed (int64 newSeed) throw(); - - /** Merges this object's seed with another value. - This sets the seed to be a value created by combining the current seed and this - new value. - */ - void combineSeed (int64 seedValue) throw(); - - /** Reseeds this generator using a value generated from various semi-random system - properties like the current time, etc. - - Because this function convolves the time with the last seed value, calling - it repeatedly will increase the randomness of the final result. - */ - void setSeedRandomly(); - -private: - - int64 seed; - - JUCE_LEAK_DETECTOR (Random); -}; - -#endif // __JUCE_RANDOM_JUCEHEADER__ -/*** End of inlined file: juce_Random.h ***/ - - #endif #ifndef __JUCE_RELATIVETIME_JUCEHEADER__ @@ -15862,6 +15036,302 @@ private: #ifndef __JUCE_PRIMES_JUCEHEADER__ #define __JUCE_PRIMES_JUCEHEADER__ + +/*** Start of inlined file: juce_BigInteger.h ***/ +#ifndef __JUCE_BIGINTEGER_JUCEHEADER__ +#define __JUCE_BIGINTEGER_JUCEHEADER__ + +class MemoryBlock; + +/** + An arbitrarily large integer class. + + A BigInteger can be used in a similar way to a normal integer, but has no size + limit (except for memory and performance constraints). + + Negative values are possible, but the value isn't stored as 2s-complement, so + be careful if you use negative values and look at the values of individual bits. +*/ +class JUCE_API BigInteger +{ +public: + + /** Creates an empty BigInteger */ + BigInteger(); + + /** Creates a BigInteger containing an integer value in its low bits. + + The low 32 bits of the number are initialised with this value. + */ + BigInteger (uint32 value); + + /** Creates a BigInteger containing an integer value in its low bits. + + The low 32 bits of the number are initialised with the absolute value + passed in, and its sign is set to reflect the sign of the number. + */ + BigInteger (int32 value); + + /** Creates a BigInteger containing an integer value in its low bits. + + The low 64 bits of the number are initialised with the absolute value + passed in, and its sign is set to reflect the sign of the number. + */ + BigInteger (int64 value); + + /** Creates a copy of another BigInteger. */ + BigInteger (const BigInteger& other); + + /** Destructor. */ + ~BigInteger(); + + /** Copies another BigInteger onto this one. */ + BigInteger& operator= (const BigInteger& other); + + /** Swaps the internal contents of this with another object. */ + void swapWith (BigInteger& other) throw(); + + /** Returns the value of a specified bit in the number. + If the index is out-of-range, the result will be false. + */ + bool operator[] (int bit) const throw(); + + /** Returns true if no bits are set. */ + bool isZero() const throw(); + + /** Returns true if the value is 1. */ + bool isOne() const throw(); + + /** Attempts to get the lowest bits of the value as an integer. + If the value is bigger than the integer limits, this will return only the lower bits. + */ + int toInteger() const throw(); + + /** Resets the value to 0. */ + void clear(); + + /** Clears a particular bit in the number. */ + void clearBit (int bitNumber) throw(); + + /** Sets a specified bit to 1. */ + void setBit (int bitNumber); + + /** Sets or clears a specified bit. */ + void setBit (int bitNumber, bool shouldBeSet); + + /** Sets a range of bits to be either on or off. + + @param startBit the first bit to change + @param numBits the number of bits to change + @param shouldBeSet whether to turn these bits on or off + */ + void setRange (int startBit, int numBits, bool shouldBeSet); + + /** Inserts a bit an a given position, shifting up any bits above it. */ + void insertBit (int bitNumber, bool shouldBeSet); + + /** Returns a range of bits as a new BigInteger. + + e.g. getBitRangeAsInt (0, 64) would return the lowest 64 bits. + @see getBitRangeAsInt + */ + const BigInteger getBitRange (int startBit, int numBits) const; + + /** Returns a range of bits as an integer value. + + e.g. getBitRangeAsInt (0, 32) would return the lowest 32 bits. + + Asking for more than 32 bits isn't allowed (obviously) - for that, use + getBitRange(). + */ + int getBitRangeAsInt (int startBit, int numBits) const throw(); + + /** Sets a range of bits to an integer value. + + Copies the given integer onto a range of bits, starting at startBit, + and using up to numBits of the available bits. + */ + void setBitRangeAsInt (int startBit, int numBits, uint32 valueToSet); + + /** Shifts a section of bits left or right. + + @param howManyBitsLeft how far to move the bits (+ve numbers shift it left, -ve numbers shift it right). + @param startBit the first bit to affect - if this is > 0, only bits above that index will be affected. + */ + void shiftBits (int howManyBitsLeft, int startBit); + + /** Returns the total number of set bits in the value. */ + int countNumberOfSetBits() const throw(); + + /** Looks for the index of the next set bit after a given starting point. + + This searches from startIndex (inclusive) upwards for the first set bit, + and returns its index. If no set bits are found, it returns -1. + */ + int findNextSetBit (int startIndex = 0) const throw(); + + /** Looks for the index of the next clear bit after a given starting point. + + This searches from startIndex (inclusive) upwards for the first clear bit, + and returns its index. + */ + int findNextClearBit (int startIndex = 0) const throw(); + + /** Returns the index of the highest set bit in the number. + If the value is zero, this will return -1. + */ + int getHighestBit() const throw(); + + // All the standard arithmetic ops... + + BigInteger& operator+= (const BigInteger& other); + BigInteger& operator-= (const BigInteger& other); + BigInteger& operator*= (const BigInteger& other); + BigInteger& operator/= (const BigInteger& other); + BigInteger& operator|= (const BigInteger& other); + BigInteger& operator&= (const BigInteger& other); + BigInteger& operator^= (const BigInteger& other); + BigInteger& operator%= (const BigInteger& other); + BigInteger& operator<<= (int numBitsToShift); + BigInteger& operator>>= (int numBitsToShift); + BigInteger& operator++(); + BigInteger& operator--(); + const BigInteger operator++ (int); + const BigInteger operator-- (int); + + const BigInteger operator-() const; + const BigInteger operator+ (const BigInteger& other) const; + const BigInteger operator- (const BigInteger& other) const; + const BigInteger operator* (const BigInteger& other) const; + const BigInteger operator/ (const BigInteger& other) const; + const BigInteger operator| (const BigInteger& other) const; + const BigInteger operator& (const BigInteger& other) const; + const BigInteger operator^ (const BigInteger& other) const; + const BigInteger operator% (const BigInteger& other) const; + const BigInteger operator<< (int numBitsToShift) const; + const BigInteger operator>> (int numBitsToShift) const; + + bool operator== (const BigInteger& other) const throw(); + bool operator!= (const BigInteger& other) const throw(); + bool operator< (const BigInteger& other) const throw(); + bool operator<= (const BigInteger& other) const throw(); + bool operator> (const BigInteger& other) const throw(); + bool operator>= (const BigInteger& other) const throw(); + + /** Does a signed comparison of two BigIntegers. + + Return values are: + - 0 if the numbers are the same + - < 0 if this number is smaller than the other + - > 0 if this number is bigger than the other + */ + int compare (const BigInteger& other) const throw(); + + /** Compares the magnitudes of two BigIntegers, ignoring their signs. + + Return values are: + - 0 if the numbers are the same + - < 0 if this number is smaller than the other + - > 0 if this number is bigger than the other + */ + int compareAbsolute (const BigInteger& other) const throw(); + + /** Divides this value by another one and returns the remainder. + + This number is divided by other, leaving the quotient in this number, + with the remainder being copied to the other BigInteger passed in. + */ + void divideBy (const BigInteger& divisor, BigInteger& remainder); + + /** Returns the largest value that will divide both this value and the one passed-in. + */ + const BigInteger findGreatestCommonDivisor (BigInteger other) const; + + /** Performs a combined exponent and modulo operation. + + This BigInteger's value becomes (this ^ exponent) % modulus. + */ + void exponentModulo (const BigInteger& exponent, const BigInteger& modulus); + + /** Performs an inverse modulo on the value. + + i.e. the result is (this ^ -1) mod (modulus). + */ + void inverseModulo (const BigInteger& modulus); + + /** Returns true if the value is less than zero. + @see setNegative, negate + */ + bool isNegative() const throw(); + + /** Changes the sign of the number to be positive or negative. + @see isNegative, negate + */ + void setNegative (bool shouldBeNegative) throw(); + + /** Inverts the sign of the number. + @see isNegative, setNegative + */ + void negate() throw(); + + /** Converts the number to a string. + + Specify a base such as 2 (binary), 8 (octal), 10 (decimal), 16 (hex). + If minimumNumCharacters is greater than 0, the returned string will be + padded with leading zeros to reach at least that length. + */ + const String toString (int base, int minimumNumCharacters = 1) const; + + /** Reads the numeric value from a string. + + Specify a base such as 2 (binary), 8 (octal), 10 (decimal), 16 (hex). + Any invalid characters will be ignored. + */ + void parseString (const String& text, int base); + + /** Turns the number into a block of binary data. + + The data is arranged as little-endian, so the first byte of data is the low 8 bits + of the number, and so on. + + @see loadFromMemoryBlock + */ + const MemoryBlock toMemoryBlock() const; + + /** Converts a block of raw data into a number. + + The data is arranged as little-endian, so the first byte of data is the low 8 bits + of the number, and so on. + + @see toMemoryBlock + */ + void loadFromMemoryBlock (const MemoryBlock& data); + +private: + + HeapBlock values; + int numValues, highestBit; + bool negative; + + void ensureSize (int numVals); + static const BigInteger simpleGCD (BigInteger* m, BigInteger* n); + + static inline int bitToIndex (const int bit) throw() { return bit >> 5; } + static inline uint32 bitToMask (const int bit) throw() { return 1 << (bit & 31); } + + JUCE_LEAK_DETECTOR (BigInteger); +}; + +/** Writes a BigInteger to an OutputStream as a UTF8 decimal string. */ +OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const BigInteger& value); + +/** For backwards compatibility, BitArray is defined to be an alias for BigInteger. +*/ +typedef BigInteger BitArray; + +#endif // __JUCE_BIGINTEGER_JUCEHEADER__ +/*** End of inlined file: juce_BigInteger.h ***/ + /** Prime number creation class. @@ -17906,9 +17376,567 @@ private: /*** End of inlined file: juce_SubregionStream.h ***/ +#endif +#ifndef __JUCE_BIGINTEGER_JUCEHEADER__ + +#endif +#ifndef __JUCE_EXPRESSION_JUCEHEADER__ + +/*** Start of inlined file: juce_Expression.h ***/ +#ifndef __JUCE_EXPRESSION_JUCEHEADER__ +#define __JUCE_EXPRESSION_JUCEHEADER__ + +/** + A class for dynamically evaluating simple numeric expressions. + + This class can parse a simple C-style string expression involving floating point + numbers, named symbols and functions. The basic arithmetic operations of +, -, *, / + are supported, as well as parentheses, and any alphanumeric identifiers are + assumed to be named symbols which will be resolved when the expression is + evaluated. + + Expressions which use identifiers and functions require a subclass of + Expression::EvaluationContext to be supplied when evaluating them, and this object + is expected to be able to resolve the symbol names and perform the functions that + are used. +*/ +class JUCE_API Expression +{ +public: + + /** Creates a simple expression with a value of 0. */ + Expression(); + + /** Destructor. */ + ~Expression(); + + /** Creates a simple expression with a specified constant value. */ + explicit Expression (double constant); + + /** Creates a copy of an expression. */ + Expression (const Expression& other); + + /** Copies another expression. */ + Expression& operator= (const Expression& other); + + /** Creates an expression by parsing a string. + If there's a syntax error in the string, this will throw a ParseError exception. + @throws ParseError + */ + explicit Expression (const String& stringToParse); + + /** Returns a string version of the expression. */ + const String toString() const; + + /** Returns an expression which is an addtion operation of two existing expressions. */ + const Expression operator+ (const Expression& other) const; + /** Returns an expression which is a subtraction operation of two existing expressions. */ + const Expression operator- (const Expression& other) const; + /** Returns an expression which is a multiplication operation of two existing expressions. */ + const Expression operator* (const Expression& other) const; + /** Returns an expression which is a division operation of two existing expressions. */ + const Expression operator/ (const Expression& other) const; + /** Returns an expression which performs a negation operation on an existing expression. */ + const Expression operator-() const; + + /** Returns an Expression which is an identifier reference. */ + static const Expression symbol (const String& symbol); + + /** Returns an Expression which is a function call. */ + static const Expression function (const String& functionName, const Array& parameters); + + /** Returns an Expression which parses a string from a specified character index. + + The index value is incremented so that on return, it indicates the character that follows + the end of the expression that was parsed. + + If there's a syntax error in the string, this will throw a ParseError exception. + @throws ParseError + */ + static const Expression parse (const String& stringToParse, int& textIndexToStartFrom); + + /** When evaluating an Expression object, this class is used to resolve symbols and + perform functions that the expression uses. + */ + class EvaluationContext + { + public: + EvaluationContext(); + virtual ~EvaluationContext(); + + /** Returns the value of a symbol. + If the symbol is unknown, this can throw an Expression::EvaluationError exception. + The member value is set to the part of the symbol that followed the dot, if there is + one, e.g. for "foo.bar", symbol = "foo" and member = "bar". + @throws Expression::EvaluationError + */ + virtual const Expression getSymbolValue (const String& symbol, const String& member) const; + + /** Executes a named function. + If the function name is unknown, this can throw an Expression::EvaluationError exception. + @throws Expression::EvaluationError + */ + virtual double evaluateFunction (const String& functionName, const double* parameters, int numParams) const; + }; + + /** Evaluates this expression, without using an EvaluationContext. + Without an EvaluationContext, no symbols can be used, and only basic functions such as sin, cos, tan, + min, max are available. + @throws Expression::EvaluationError + */ + double evaluate() const; + + /** Evaluates this expression, providing a context that should be able to evaluate any symbols + or functions that it uses. + @throws Expression::EvaluationError + */ + double evaluate (const EvaluationContext& context) const; + + /** Attempts to return an expression which is a copy of this one, but with a constant adjusted + to make the expression resolve to a target value. + + E.g. if the expression is "x + 10" and x is 5, then asking for a target value of 8 will return + the expression "x + 3". Obviously some expressions can't be reversed in this way, in which + case they might just be adjusted by adding a constant to them. + + @throws Expression::EvaluationError + */ + const Expression adjustedToGiveNewResult (double targetValue, const EvaluationContext& context) const; + + /** Returns a copy of this expression in which all instances of a given symbol have been renamed. */ + const Expression withRenamedSymbol (const String& oldSymbol, const String& newSymbol) const; + + /** Returns true if this expression makes use of the specified symbol. + If a suitable context is supplied, the search will dereference and recursively check + all symbols, so that it can be determined whether this expression relies on the given + symbol at any level in its evaluation. If the context parameter is null, this just checks + whether the expression contains any direct references to the symbol. + + @throws Expression::EvaluationError + */ + bool referencesSymbol (const String& symbol, const EvaluationContext* context) const; + + /** Returns true if this expression contains any symbols. */ + bool usesAnySymbols() const; + + /** An exception that can be thrown by Expression::parse(). */ + class ParseError : public std::exception + { + public: + ParseError (const String& message); + + String description; + }; + + /** An exception that can be thrown by Expression::evaluate(). */ + class EvaluationError : public std::exception + { + public: + EvaluationError (const String& message); + EvaluationError (const String& symbolName, const String& memberName); + + String description; + }; + + /** Expression type. + @see Expression::getType() + */ + enum Type + { + constantType, + functionType, + operatorType, + symbolType + }; + + /** Returns the type of this expression. */ + Type getType() const throw(); + + /** If this expression is a symbol, this returns its name. */ + const String getSymbol() const; + + /** If this expression is a function, this returns its name. */ + const String getFunction() const; + + /** If this expression is an operator, this returns its name. + E.g. "+", "-", "*", "/", etc. + */ + const String getOperator() const; + + /** Returns the number of inputs to this expression. + @see getInput + */ + int getNumInputs() const; + + /** Retrieves one of the inputs to this expression. + @see getNumInputs + */ + const Expression getInput (int index) const; + +private: + + class Helpers; + friend class Helpers; + + class Term : public ReferenceCountedObject + { + public: + Term() {} + virtual ~Term() {} + + virtual Term* clone() const = 0; + virtual double evaluate (const EvaluationContext&, int recursionDepth) const = 0; + virtual int getNumInputs() const = 0; + virtual Term* getInput (int index) const = 0; + virtual int getInputIndexFor (const Term* possibleInput) const; + virtual const String toString() const = 0; + virtual int getOperatorPrecedence() const; + virtual bool referencesSymbol (const String& symbol, const EvaluationContext*, int recursionDepth) const; + virtual const ReferenceCountedObjectPtr createTermToEvaluateInput (const EvaluationContext&, const Term* inputTerm, + double overallTarget, Term* topLevelTerm) const; + virtual const ReferenceCountedObjectPtr negated(); + virtual Type getType() const throw() = 0; + virtual const String getSymbolName() const; + virtual const String getFunctionName() const; + + private: + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Term); + }; + + friend class ScopedPointer; + ReferenceCountedObjectPtr term; + + explicit Expression (Term* term); +}; + +#endif // __JUCE_EXPRESSION_JUCEHEADER__ +/*** End of inlined file: juce_Expression.h ***/ + + +#endif +#ifndef __JUCE_MATHSFUNCTIONS_JUCEHEADER__ + +#endif +#ifndef __JUCE_RANDOM_JUCEHEADER__ + +/*** Start of inlined file: juce_Random.h ***/ +#ifndef __JUCE_RANDOM_JUCEHEADER__ +#define __JUCE_RANDOM_JUCEHEADER__ + +/** + A simple pseudo-random number generator. +*/ +class JUCE_API Random +{ +public: + + /** Creates a Random object based on a seed value. + + For a given seed value, the subsequent numbers generated by this object + will be predictable, so a good idea is to set this value based + on the time, e.g. + + new Random (Time::currentTimeMillis()) + */ + explicit Random (int64 seedValue) throw(); + + /** Destructor. */ + ~Random() throw(); + + /** Returns the next random 32 bit integer. + + @returns a random integer from the full range 0x80000000 to 0x7fffffff + */ + int nextInt() throw(); + + /** Returns the next random number, limited to a given range. + + @returns a random integer between 0 (inclusive) and maxValue (exclusive). + */ + int nextInt (int maxValue) throw(); + + /** Returns the next 64-bit random number. + + @returns a random integer from the full range 0x8000000000000000 to 0x7fffffffffffffff + */ + int64 nextInt64() throw(); + + /** Returns the next random floating-point number. + + @returns a random value in the range 0 to 1.0 + */ + float nextFloat() throw(); + + /** Returns the next random floating-point number. + + @returns a random value in the range 0 to 1.0 + */ + double nextDouble() throw(); + + /** Returns the next random boolean value. + */ + bool nextBool() throw(); + + /** Returns a BigInteger containing a random number. + + @returns a random value in the range 0 to (maximumValue - 1). + */ + const BigInteger nextLargeNumber (const BigInteger& maximumValue); + + /** Sets a range of bits in a BigInteger to random values. */ + void fillBitsRandomly (BigInteger& arrayToChange, int startBit, int numBits); + + /** To avoid the overhead of having to create a new Random object whenever + you need a number, this is a shared application-wide object that + can be used. + + It's not thread-safe though, so threads should use their own Random object. + */ + static Random& getSystemRandom() throw(); + + /** Resets this Random object to a given seed value. */ + void setSeed (int64 newSeed) throw(); + + /** Merges this object's seed with another value. + This sets the seed to be a value created by combining the current seed and this + new value. + */ + void combineSeed (int64 seedValue) throw(); + + /** Reseeds this generator using a value generated from various semi-random system + properties like the current time, etc. + + Because this function convolves the time with the last seed value, calling + it repeatedly will increase the randomness of the final result. + */ + void setSeedRandomly(); + +private: + + int64 seed; + + JUCE_LEAK_DETECTOR (Random); +}; + +#endif // __JUCE_RANDOM_JUCEHEADER__ +/*** End of inlined file: juce_Random.h ***/ + + +#endif +#ifndef __JUCE_RANGE_JUCEHEADER__ + +#endif +#ifndef __JUCE_ATOMIC_JUCEHEADER__ + +#endif +#ifndef __JUCE_BYTEORDER_JUCEHEADER__ + +#endif +#ifndef __JUCE_HEAPBLOCK_JUCEHEADER__ + +#endif +#ifndef __JUCE_LEAKEDOBJECTDETECTOR_JUCEHEADER__ + +#endif +#ifndef __JUCE_MEMORY_JUCEHEADER__ + +#endif +#ifndef __JUCE_MEMORYBLOCK_JUCEHEADER__ + +#endif +#ifndef __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__ + +#endif +#ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__ + +#endif +#ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__ + +/*** Start of inlined file: juce_WeakReference.h ***/ +#ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__ +#define __JUCE_WEAKREFERENCE_JUCEHEADER__ + +/** + This class acts as a pointer which will automatically become null if the object + to which it points is deleted. + + To accomplish this, the source object needs to cooperate by performing a couple of simple tasks. + It must provide a getWeakReference() method and embed a WeakReference::Master object, which stores + a shared pointer object. It must also clear this master pointer when it's getting deleted. + + E.g. + @code + class MyObject + { + public: + MyObject() + { + // If you're planning on using your WeakReferences in a multi-threaded situation, you may choose + // to call getWeakReference() here in the constructor, which will pre-initialise it, avoiding an + // (extremely unlikely) race condition that could occur if multiple threads overlap while making + // the first call to getWeakReference(). + } + + ~MyObject() + { + // This will zero all the references - you need to call this in your destructor. + masterReference.clear(); + } + + // Your object must provide a method that looks pretty much identical to this (except + // for the templated class name, of course). + const WeakReference::SharedRef& getWeakReference() + { + return masterReference (this); + } + + private: + // You need to embed one of these inside your object. It can be private. + WeakReference::Master masterReference; + }; + + // Here's an example of using a pointer.. + + MyObject* n = new MyObject(); + WeakReference myObjectRef = n; + + MyObject* pointer1 = myObjectRef; // returns a valid pointer to 'n' + delete n; + MyObject* pointer2 = myObjectRef; // returns a null pointer + @endcode + + @see WeakReference::Master +*/ +template +class WeakReference +{ +public: + /** Creates a null SafePointer. */ + WeakReference() throw() {} + + /** Creates a WeakReference that points at the given object. */ + WeakReference (ObjectType* const object) : holder (object != 0 ? object->getWeakReference() : 0) {} + + /** Creates a copy of another WeakReference. */ + WeakReference (const WeakReference& other) throw() : holder (other.holder) {} + + /** Copies another pointer to this one. */ + WeakReference& operator= (const WeakReference& other) { holder = other.holder; return *this; } + + /** Copies another pointer to this one. */ + WeakReference& operator= (ObjectType* const newObject) { holder = newObject != 0 ? newObject->getWeakReference() : 0; return *this; } + + /** Returns the object that this pointer refers to, or null if the object no longer exists. */ + ObjectType* get() const throw() { return holder != 0 ? holder->get() : 0; } + + /** Returns the object that this pointer refers to, or null if the object no longer exists. */ + operator ObjectType*() const throw() { return get(); } + + /** Returns the object that this pointer refers to, or null if the object no longer exists. */ + ObjectType* operator->() throw() { return get(); } + + /** Returns the object that this pointer refers to, or null if the object no longer exists. */ + const ObjectType* operator->() const throw() { return get(); } + + /** This returns true if this reference has been pointing at an object, but that object has + since been deleted. + + If this reference was only ever pointing at a null pointer, this will return false. Using + operator=() to make this refer to a different object will reset this flag to match the status + of the reference from which you're copying. + */ + bool wasObjectDeleted() const throw() { return holder != 0 && holder->get() == 0; } + + bool operator== (ObjectType* const object) const throw() { return get() == object; } + bool operator!= (ObjectType* const object) const throw() { return get() != object; } + + /** This class is used internally by the WeakReference class - don't use it directly + in your code! + @see WeakReference + */ + class SharedPointer : public ReferenceCountedObject + { + public: + explicit SharedPointer (ObjectType* const owner_) throw() : owner (owner_) {} + + inline ObjectType* get() const throw() { return owner; } + void clearPointer() throw() { owner = 0; } + + private: + ObjectType* volatile owner; + + JUCE_DECLARE_NON_COPYABLE (SharedPointer); + }; + + typedef ReferenceCountedObjectPtr SharedRef; + + /** + This class is embedded inside an object to which you want to attach WeakReference pointers. + See the WeakReference class notes for an example of how to use this class. + @see WeakReference + */ + class Master + { + public: + Master() throw() {} + + ~Master() + { + // You must remember to call clear() in your source object's destructor! See the notes + // for the WeakReference class for an example of how to do this. + jassert (sharedPointer == 0 || sharedPointer->get() == 0); + } + + /** The first call to this method will create an internal object that is shared by all weak + references to the object. + You need to call this from your main object's getWeakReference() method - see the WeakReference + class notes for an example. + */ + const SharedRef& operator() (ObjectType* const object) + { + if (sharedPointer == 0) + { + sharedPointer = new SharedPointer (object); + } + else + { + // You're trying to create a weak reference to an object that has already been deleted!! + jassert (sharedPointer->get() != 0); + } + + return sharedPointer; + } + + /** The object that owns this master pointer should call this before it gets destroyed, + to zero all the references to this object that may be out there. See the WeakReference + class notes for an example of how to do this. + */ + void clear() + { + if (sharedPointer != 0) + sharedPointer->clearPointer(); + } + + private: + SharedRef sharedPointer; + + JUCE_DECLARE_NON_COPYABLE (Master); + }; + +private: + SharedRef holder; +}; + +#endif // __JUCE_WEAKREFERENCE_JUCEHEADER__ +/*** End of inlined file: juce_WeakReference.h ***/ + + #endif #ifndef __JUCE_CHARACTERFUNCTIONS_JUCEHEADER__ +#endif +#ifndef __JUCE_IDENTIFIER_JUCEHEADER__ + #endif #ifndef __JUCE_LOCALISEDSTRINGS_JUCEHEADER__ @@ -18074,6 +18102,9 @@ private: /*** End of inlined file: juce_LocalisedStrings.h ***/ +#endif +#ifndef __JUCE_NEWLINE_JUCEHEADER__ + #endif #ifndef __JUCE_STRING_JUCEHEADER__ @@ -36528,7 +36559,7 @@ public: /** Used to receive callbacks when a button is clicked. - @see Button::addButtonListener, Button::removeButtonListener + @see Button::addListener, Button::removeListener */ class Listener { @@ -36544,18 +36575,15 @@ public: }; /** Registers a listener to receive events when this button's state changes. - If the listener is already registered, this will not register it again. - - @see removeButtonListener + @see removeListener */ - void addButtonListener (Listener* newListener); + void addListener (Listener* newListener); /** Removes a previously-registered button listener - - @see addButtonListener + @see addListener */ - void removeButtonListener (Listener* listener); + void removeListener (Listener* listener); /** Causes the button to act as if it's been clicked. @@ -36717,6 +36745,10 @@ public: */ void setState (const ButtonState newState); + // These are deprecated - please use addListener() and removeListener() instead! + JUCE_DEPRECATED (void addButtonListener (Listener*)); + JUCE_DEPRECATED (void removeButtonListener (Listener*)); + protected: /** This method is called when the button has been clicked. @@ -36843,8 +36875,10 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Button); }; -/** This typedef is just for compatibility with old code - newer code should use Button::Listener instead. */ -typedef Button::Listener ButtonListener; +#ifndef DOXYGEN + /** This typedef is just for compatibility with old code and VC6 - newer code should use Button::Listener instead. */ + typedef Button::Listener ButtonListener; +#endif #if JUCE_VC6 #undef Listener @@ -51897,8 +51931,8 @@ private: #if JUCE_CATCH_DEPRECATED_CODE_MISUSE // The parameters for these methods have changed - please update your code! - void getBorderThickness (int& left, int& top, int& right, int& bottom); - void getContentComponentBorder (int& left, int& top, int& right, int& bottom); + JUCE_DEPRECATED (void getBorderThickness (int& left, int& top, int& right, int& bottom)); + JUCE_DEPRECATED (void getContentComponentBorder (int& left, int& top, int& right, int& bottom)); #endif JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResizableWindow); diff --git a/src/application/juce_ApplicationProperties.h b/src/application/juce_ApplicationProperties.h index 65aec01aa1..70bfc9b958 100644 --- a/src/application/juce_ApplicationProperties.h +++ b/src/application/juce_ApplicationProperties.h @@ -29,7 +29,7 @@ #include "../utilities/juce_PropertiesFile.h" #include "../utilities/juce_DeletedAtShutdown.h" #include "../core/juce_Singleton.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/audio/audio_file_formats/juce_AudioCDReader.h b/src/audio/audio_file_formats/juce_AudioCDReader.h index 97bf695158..613559385d 100644 --- a/src/audio/audio_file_formats/juce_AudioCDReader.h +++ b/src/audio/audio_file_formats/juce_AudioCDReader.h @@ -30,7 +30,7 @@ #include "juce_AudioFormatReader.h" #include "../../containers/juce_Array.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" #include "../../text/juce_StringArray.h" #if JUCE_MAC #include "../../io/files/juce_File.h" diff --git a/src/audio/audio_file_formats/juce_AudioFormatManager.cpp b/src/audio/audio_file_formats/juce_AudioFormatManager.cpp index 2cc8620e12..4098646d52 100644 --- a/src/audio/audio_file_formats/juce_AudioFormatManager.cpp +++ b/src/audio/audio_file_formats/juce_AudioFormatManager.cpp @@ -33,7 +33,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_FlacAudioFormat.h" #include "juce_OggVorbisAudioFormat.h" #include "../../io/files/juce_FileInputStream.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp b/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp index d96e7a26ba..ca88be48f7 100644 --- a/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp @@ -76,7 +76,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_FlacAudioFormat.h" #include "../../text/juce_LocalisedStrings.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp b/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp index eb1fe71cc0..b6c91cbd1f 100644 --- a/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp @@ -79,7 +79,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_OggVorbisAudioFormat.h" #include "../../application/juce_Application.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" #include "../../io/files/juce_FileInputStream.h" #include "../../text/juce_LocalisedStrings.h" diff --git a/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp b/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp index ca259faab8..0d03636574 100644 --- a/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp @@ -65,7 +65,7 @@ BEGIN_JUCE_NAMESPACE #include "../../text/juce_LocalisedStrings.h" #include "../../threads/juce_Thread.h" #include "../../io/network/juce_URL.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" #include "../../core/juce_PlatformUtilities.h" bool juce_OpenQuickTimeMovieFromStream (InputStream* input, Movie& movie, Handle& dataHandle); diff --git a/src/audio/audio_sources/juce_AudioTransportSource.cpp b/src/audio/audio_sources/juce_AudioTransportSource.cpp index 27e2e4cca8..7255c7d4a9 100644 --- a/src/audio/audio_sources/juce_AudioTransportSource.cpp +++ b/src/audio/audio_sources/juce_AudioTransportSource.cpp @@ -29,7 +29,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_AudioTransportSource.h" #include "../../threads/juce_ScopedLock.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/audio/audio_sources/juce_MixerAudioSource.h b/src/audio/audio_sources/juce_MixerAudioSource.h index 257c1b9f05..f263a68fea 100644 --- a/src/audio/audio_sources/juce_MixerAudioSource.h +++ b/src/audio/audio_sources/juce_MixerAudioSource.h @@ -29,7 +29,7 @@ #include "juce_AudioSource.h" #include "../../threads/juce_CriticalSection.h" #include "../../containers/juce_Array.h" -#include "../../containers/juce_BigInteger.h" +#include "../../maths/juce_BigInteger.h" //============================================================================== diff --git a/src/audio/devices/juce_AudioIODevice.h b/src/audio/devices/juce_AudioIODevice.h index f448772883..9e97f93888 100644 --- a/src/audio/devices/juce_AudioIODevice.h +++ b/src/audio/devices/juce_AudioIODevice.h @@ -27,7 +27,7 @@ #define __JUCE_AUDIOIODEVICE_JUCEHEADER__ #include "../../text/juce_StringArray.h" -#include "../../containers/juce_BigInteger.h" +#include "../../maths/juce_BigInteger.h" #include "../../containers/juce_OwnedArray.h" class AudioIODevice; diff --git a/src/audio/dsp/juce_AudioDataConverters.cpp b/src/audio/dsp/juce_AudioDataConverters.cpp index cafb916c3f..2667badfdc 100644 --- a/src/audio/dsp/juce_AudioDataConverters.cpp +++ b/src/audio/dsp/juce_AudioDataConverters.cpp @@ -535,7 +535,7 @@ void AudioDataConverters::deinterleaveSamples (const float* const source, #if JUCE_UNIT_TESTS #include "../../utilities/juce_UnitTest.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" class AudioConversionTests : public UnitTest { diff --git a/src/audio/dsp/juce_AudioSampleBuffer.h b/src/audio/dsp/juce_AudioSampleBuffer.h index 5885f67338..9c0419f5b2 100644 --- a/src/audio/dsp/juce_AudioSampleBuffer.h +++ b/src/audio/dsp/juce_AudioSampleBuffer.h @@ -26,7 +26,7 @@ #ifndef __JUCE_AUDIOSAMPLEBUFFER_JUCEHEADER__ #define __JUCE_AUDIOSAMPLEBUFFER_JUCEHEADER__ -#include "../../containers/juce_HeapBlock.h" +#include "../../memory/juce_HeapBlock.h" class AudioFormatReader; class AudioFormatWriter; diff --git a/src/audio/midi/juce_MidiBuffer.h b/src/audio/midi/juce_MidiBuffer.h index fa379c1b82..be0158925e 100644 --- a/src/audio/midi/juce_MidiBuffer.h +++ b/src/audio/midi/juce_MidiBuffer.h @@ -26,7 +26,7 @@ #ifndef __JUCE_MIDIBUFFER_JUCEHEADER__ #define __JUCE_MIDIBUFFER_JUCEHEADER__ -#include "../../containers/juce_MemoryBlock.h" +#include "../../memory/juce_MemoryBlock.h" #include "juce_MidiMessage.h" diff --git a/src/audio/midi/juce_MidiMessage.cpp b/src/audio/midi/juce_MidiMessage.cpp index 55df492b3c..f1a6b54967 100644 --- a/src/audio/midi/juce_MidiMessage.cpp +++ b/src/audio/midi/juce_MidiMessage.cpp @@ -28,7 +28,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_MidiMessage.h" -#include "../../containers/juce_MemoryBlock.h" +#include "../../memory/juce_MemoryBlock.h" //============================================================================== diff --git a/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm b/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm index 976d850da6..47335f2c93 100644 --- a/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm +++ b/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm @@ -410,8 +410,8 @@ private: AudioUnitPluginInstance::AudioUnitPluginInstance (const String& fileOrIdentifier) : fileOrIdentifier (fileOrIdentifier), wantsMidiMessages (false), wasPlaying (false), prepared (false), - audioUnit (0), - currentBuffer (0) + currentBuffer (0), + audioUnit (0) { using namespace AudioUnitFormatHelpers; diff --git a/src/audio/plugins/formats/juce_VSTPluginFormat.cpp b/src/audio/plugins/formats/juce_VSTPluginFormat.cpp index 394c4ae4aa..36306037f1 100644 --- a/src/audio/plugins/formats/juce_VSTPluginFormat.cpp +++ b/src/audio/plugins/formats/juce_VSTPluginFormat.cpp @@ -61,7 +61,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_VSTPluginFormat.h" #include "../../../threads/juce_Process.h" #include "../../../threads/juce_ScopedLock.h" -#include "../../../core/juce_Random.h" +#include "../../../maths/juce_Random.h" #include "../../../io/files/juce_DirectoryIterator.h" #include "../../../events/juce_Timer.h" #include "../../../events/juce_AsyncUpdater.h" @@ -1152,10 +1152,10 @@ public: plugin (plugin_), isOpen (false), wasShowing (false), - pluginRefusesToResize (false), + recursiveResize (false), pluginWantsKeys (false), - alreadyInside (false), - recursiveResize (false) + pluginRefusesToResize (false), + alreadyInside (false) { #if JUCE_WINDOWS sizeCheckCount = 0; diff --git a/src/audio/plugins/juce_PluginListComponent.cpp b/src/audio/plugins/juce_PluginListComponent.cpp index 014b1172df..9fd857a120 100644 --- a/src/audio/plugins/juce_PluginListComponent.cpp +++ b/src/audio/plugins/juce_PluginListComponent.cpp @@ -50,7 +50,7 @@ PluginListComponent::PluginListComponent (KnownPluginList& listToEdit, addAndMakeVisible (&listBox); addAndMakeVisible (&optionsButton); - optionsButton.addButtonListener (this); + optionsButton.addListener (this); optionsButton.setTriggeredOnMouseDown (true); setSize (400, 600); diff --git a/src/audio/processors/juce_AudioProcessor.h b/src/audio/processors/juce_AudioProcessor.h index a89e7fc4a4..0fde4ae02c 100644 --- a/src/audio/processors/juce_AudioProcessor.h +++ b/src/audio/processors/juce_AudioProcessor.h @@ -30,7 +30,7 @@ #include "../dsp/juce_AudioSampleBuffer.h" #include "../midi/juce_MidiBuffer.h" #include "../../text/juce_XmlElement.h" -#include "../../containers/juce_BigInteger.h" +#include "../../maths/juce_BigInteger.h" #include "juce_AudioProcessorListener.h" #include "juce_AudioPlayHead.h" diff --git a/src/audio/synthesisers/juce_Sampler.h b/src/audio/synthesisers/juce_Sampler.h index da0480af79..9733bdda4f 100644 --- a/src/audio/synthesisers/juce_Sampler.h +++ b/src/audio/synthesisers/juce_Sampler.h @@ -26,8 +26,8 @@ #ifndef __JUCE_SAMPLER_JUCEHEADER__ #define __JUCE_SAMPLER_JUCEHEADER__ -#include "../../containers/juce_BigInteger.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../maths/juce_BigInteger.h" +#include "../../memory/juce_ScopedPointer.h" #include "juce_Synthesiser.h" diff --git a/src/audio/synthesisers/juce_Synthesiser.h b/src/audio/synthesisers/juce_Synthesiser.h index b9cb724eb7..959ca99933 100644 --- a/src/audio/synthesisers/juce_Synthesiser.h +++ b/src/audio/synthesisers/juce_Synthesiser.h @@ -29,7 +29,7 @@ #include "../dsp/juce_AudioSampleBuffer.h" #include "../midi/juce_MidiBuffer.h" #include "../../containers/juce_OwnedArray.h" -#include "../../containers/juce_ReferenceCountedObject.h" +#include "../../memory/juce_ReferenceCountedObject.h" #include "../../containers/juce_ReferenceCountedArray.h" #include "../../threads/juce_CriticalSection.h" diff --git a/src/containers/juce_AbstractFifo.h b/src/containers/juce_AbstractFifo.h index 49a393f451..fabc67b624 100644 --- a/src/containers/juce_AbstractFifo.h +++ b/src/containers/juce_AbstractFifo.h @@ -26,7 +26,7 @@ #ifndef __JUCE_ABSTRACTFIFO_JUCEHEADER__ #define __JUCE_ABSTRACTFIFO_JUCEHEADER__ -#include "../core/juce_Atomic.h" +#include "../memory/juce_Atomic.h" //============================================================================== diff --git a/src/containers/juce_ArrayAllocationBase.h b/src/containers/juce_ArrayAllocationBase.h index fed10b9645..cc2c8b35e3 100644 --- a/src/containers/juce_ArrayAllocationBase.h +++ b/src/containers/juce_ArrayAllocationBase.h @@ -26,7 +26,7 @@ #ifndef __JUCE_ARRAYALLOCATIONBASE_JUCEHEADER__ #define __JUCE_ARRAYALLOCATIONBASE_JUCEHEADER__ -#include "juce_HeapBlock.h" +#include "../memory/juce_HeapBlock.h" //============================================================================== diff --git a/src/containers/juce_DynamicObject.h b/src/containers/juce_DynamicObject.h index 32d723689c..90ba38ceed 100644 --- a/src/containers/juce_DynamicObject.h +++ b/src/containers/juce_DynamicObject.h @@ -27,7 +27,7 @@ #define __JUCE_DYNAMICOBJECT_JUCEHEADER__ #include "juce_NamedValueSet.h" -#include "juce_ReferenceCountedObject.h" +#include "../memory/juce_ReferenceCountedObject.h" //============================================================================== diff --git a/src/containers/juce_ReferenceCountedArray.h b/src/containers/juce_ReferenceCountedArray.h index 51a1c91bc3..92fa7c88f4 100644 --- a/src/containers/juce_ReferenceCountedArray.h +++ b/src/containers/juce_ReferenceCountedArray.h @@ -26,7 +26,7 @@ #ifndef __JUCE_REFERENCECOUNTEDARRAY_JUCEHEADER__ #define __JUCE_REFERENCECOUNTEDARRAY_JUCEHEADER__ -#include "juce_ReferenceCountedObject.h" +#include "../memory/juce_ReferenceCountedObject.h" #include "juce_ArrayAllocationBase.h" #include "juce_ElementComparator.h" #include "../threads/juce_CriticalSection.h" diff --git a/src/containers/juce_SparseSet.h b/src/containers/juce_SparseSet.h index 1925e62ee3..1a97f66740 100644 --- a/src/containers/juce_SparseSet.h +++ b/src/containers/juce_SparseSet.h @@ -27,7 +27,7 @@ #define __JUCE_SPARSESET_JUCEHEADER__ #include "juce_ArrayAllocationBase.h" -#include "juce_Range.h" +#include "../maths/juce_Range.h" #include "../threads/juce_CriticalSection.h" diff --git a/src/containers/juce_Value.h b/src/containers/juce_Value.h index 4e075e7b0d..e058eb8457 100644 --- a/src/containers/juce_Value.h +++ b/src/containers/juce_Value.h @@ -29,7 +29,7 @@ #include "juce_Variant.h" #include "../events/juce_AsyncUpdater.h" #include "../events/juce_ListenerList.h" -#include "juce_ReferenceCountedObject.h" +#include "../memory/juce_ReferenceCountedObject.h" #include "juce_SortedSet.h" diff --git a/src/containers/juce_Variant.h b/src/containers/juce_Variant.h index 91f86322dc..f0750b74d9 100644 --- a/src/containers/juce_Variant.h +++ b/src/containers/juce_Variant.h @@ -26,7 +26,7 @@ #ifndef __JUCE_VARIANT_JUCEHEADER__ #define __JUCE_VARIANT_JUCEHEADER__ -#include "juce_Identifier.h" +#include "../text/juce_Identifier.h" #include "../io/streams/juce_OutputStream.h" #include "../io/streams/juce_InputStream.h" diff --git a/src/core/juce_FileLogger.cpp b/src/core/juce_FileLogger.cpp index 19cea7834b..4fa89ac2de 100644 --- a/src/core/juce_FileLogger.cpp +++ b/src/core/juce_FileLogger.cpp @@ -31,7 +31,7 @@ BEGIN_JUCE_NAMESPACE #include "../io/files/juce_FileOutputStream.h" #include "../io/files/juce_FileInputStream.h" #include "../threads/juce_ScopedLock.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" #include "juce_SystemStats.h" diff --git a/src/core/juce_FileLogger.h b/src/core/juce_FileLogger.h index 9498cf5910..6883147e9c 100644 --- a/src/core/juce_FileLogger.h +++ b/src/core/juce_FileLogger.h @@ -28,7 +28,7 @@ #include "juce_Logger.h" #include "../io/files/juce_File.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/core/juce_Initialisation.cpp b/src/core/juce_Initialisation.cpp index 6ea9fc76b5..93c574ea50 100644 --- a/src/core/juce_Initialisation.cpp +++ b/src/core/juce_Initialisation.cpp @@ -27,8 +27,8 @@ BEGIN_JUCE_NAMESPACE -#include "juce_Atomic.h" -#include "juce_Random.h" +#include "../memory/juce_Atomic.h" +#include "../maths/juce_Random.h" #include "juce_PlatformUtilities.h" #include "juce_SystemStats.h" #include "../text/juce_LocalisedStrings.h" diff --git a/src/core/juce_PerformanceCounter.cpp b/src/core/juce_PerformanceCounter.cpp index c197ece203..b14b8cad28 100644 --- a/src/core/juce_PerformanceCounter.cpp +++ b/src/core/juce_PerformanceCounter.cpp @@ -29,6 +29,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_PerformanceCounter.h" #include "juce_Time.h" +#include "../text/juce_NewLine.h" //============================================================================== diff --git a/src/core/juce_PlatformDefs.h b/src/core/juce_PlatformDefs.h index 84720ae3bd..51892a6370 100644 --- a/src/core/juce_PlatformDefs.h +++ b/src/core/juce_PlatformDefs.h @@ -272,4 +272,15 @@ #endif +//============================================================================== +// Cross-compiler deprecation macros.. +#if JUCE_MSVC && ! JUCE_NO_DEPRECATION_WARNINGS + #define JUCE_DEPRECATED(functionDef) __declspec(deprecated) functionDef +#elif JUCE_GCC && ! JUCE_NO_DEPRECATION_WARNINGS + #define JUCE_DEPRECATED(functionDef) functionDef __attribute__ ((deprecated)) +#else + #define JUCE_DEPRECATED(functionDef) functionDef +#endif + + #endif // __JUCE_PLATFORMDEFS_JUCEHEADER__ diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h index e42fdd3c76..e899801c21 100644 --- a/src/core/juce_StandardHeader.h +++ b/src/core/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 52 -#define JUCE_BUILDNUMBER 108 +#define JUCE_BUILDNUMBER 109 /** Current Juce version number. @@ -171,11 +171,11 @@ extern JUCE_API bool JUCE_CALLTYPE juce_isRunningUnderDebugger(); extern JUCE_API void juce_LogAssertion (const char* filename, int lineNum) throw(); #endif -#include "juce_Memory.h" -#include "juce_MathsFunctions.h" -#include "juce_ByteOrder.h" +#include "../memory/juce_Memory.h" +#include "../maths/juce_MathsFunctions.h" +#include "../memory/juce_ByteOrder.h" #include "juce_Logger.h" -#include "juce_LeakedObjectDetector.h" +#include "../memory/juce_LeakedObjectDetector.h" END_JUCE_NAMESPACE diff --git a/src/core/juce_Time.cpp b/src/core/juce_Time.cpp index ad7c6ff1b9..ff066c65d4 100644 --- a/src/core/juce_Time.cpp +++ b/src/core/juce_Time.cpp @@ -50,7 +50,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_Time.h" #include "../threads/juce_Thread.h" -#include "../containers/juce_MemoryBlock.h" +#include "../memory/juce_MemoryBlock.h" #include "../text/juce_LocalisedStrings.h" //============================================================================== diff --git a/src/core/juce_Uuid.cpp b/src/core/juce_Uuid.cpp index 4f58caa431..70964b646d 100644 --- a/src/core/juce_Uuid.cpp +++ b/src/core/juce_Uuid.cpp @@ -28,10 +28,10 @@ BEGIN_JUCE_NAMESPACE #include "juce_Uuid.h" -#include "juce_Random.h" +#include "../maths/juce_Random.h" #include "juce_Time.h" #include "../io/network/juce_MACAddress.h" -#include "../containers/juce_MemoryBlock.h" +#include "../memory/juce_MemoryBlock.h" //============================================================================== diff --git a/src/cryptography/juce_BlowFish.h b/src/cryptography/juce_BlowFish.h index 1f3b92c901..85fc3494b4 100644 --- a/src/cryptography/juce_BlowFish.h +++ b/src/cryptography/juce_BlowFish.h @@ -26,7 +26,7 @@ #ifndef __JUCE_BLOWFISH_JUCEHEADER__ #define __JUCE_BLOWFISH_JUCEHEADER__ -#include "../containers/juce_HeapBlock.h" +#include "../memory/juce_HeapBlock.h" //============================================================================== diff --git a/src/cryptography/juce_MD5.cpp b/src/cryptography/juce_MD5.cpp index 3e05ec5f9b..94a3aedcfa 100644 --- a/src/cryptography/juce_MD5.cpp +++ b/src/cryptography/juce_MD5.cpp @@ -29,7 +29,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_MD5.h" #include "../io/files/juce_FileInputStream.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/cryptography/juce_MD5.h b/src/cryptography/juce_MD5.h index 3732dded9e..28efbc2062 100644 --- a/src/cryptography/juce_MD5.h +++ b/src/cryptography/juce_MD5.h @@ -26,7 +26,7 @@ #ifndef __JUCE_MD5_JUCEHEADER__ #define __JUCE_MD5_JUCEHEADER__ -#include "../containers/juce_MemoryBlock.h" +#include "../memory/juce_MemoryBlock.h" #include "../io/streams/juce_InputStream.h" #include "../io/files/juce_File.h" diff --git a/src/cryptography/juce_Primes.cpp b/src/cryptography/juce_Primes.cpp index fbd2a393c6..4cf066b18b 100644 --- a/src/cryptography/juce_Primes.cpp +++ b/src/cryptography/juce_Primes.cpp @@ -28,7 +28,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_Primes.h" -#include "../core/juce_Random.h" +#include "../maths/juce_Random.h" //============================================================================== diff --git a/src/cryptography/juce_Primes.h b/src/cryptography/juce_Primes.h index b6f266034e..380b27d514 100644 --- a/src/cryptography/juce_Primes.h +++ b/src/cryptography/juce_Primes.h @@ -26,7 +26,7 @@ #ifndef __JUCE_PRIMES_JUCEHEADER__ #define __JUCE_PRIMES_JUCEHEADER__ -#include "../containers/juce_BigInteger.h" +#include "../maths/juce_BigInteger.h" //============================================================================== diff --git a/src/cryptography/juce_RSAKey.h b/src/cryptography/juce_RSAKey.h index bedc21008f..4b7ae269b2 100644 --- a/src/cryptography/juce_RSAKey.h +++ b/src/cryptography/juce_RSAKey.h @@ -26,7 +26,7 @@ #ifndef __JUCE_RSAKEY_JUCEHEADER__ #define __JUCE_RSAKEY_JUCEHEADER__ -#include "../containers/juce_BigInteger.h" +#include "../maths/juce_BigInteger.h" //============================================================================== diff --git a/src/events/juce_AsyncUpdater.h b/src/events/juce_AsyncUpdater.h index 3fe84b77bf..5000e5fd27 100644 --- a/src/events/juce_AsyncUpdater.h +++ b/src/events/juce_AsyncUpdater.h @@ -26,7 +26,7 @@ #ifndef __JUCE_ASYNCUPDATER_JUCEHEADER__ #define __JUCE_ASYNCUPDATER_JUCEHEADER__ -#include "../core/juce_Atomic.h" +#include "../memory/juce_Atomic.h" #include "../events/juce_CallbackMessage.h" diff --git a/src/events/juce_InterprocessConnection.cpp b/src/events/juce_InterprocessConnection.cpp index 0af74078cf..cc0949b061 100644 --- a/src/events/juce_InterprocessConnection.cpp +++ b/src/events/juce_InterprocessConnection.cpp @@ -29,7 +29,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_InterprocessConnection.h" #include "../threads/juce_ScopedLock.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/events/juce_InterprocessConnection.h b/src/events/juce_InterprocessConnection.h index 84131e10fe..5b6715ed9d 100644 --- a/src/events/juce_InterprocessConnection.h +++ b/src/events/juce_InterprocessConnection.h @@ -30,7 +30,7 @@ #include "../threads/juce_Thread.h" #include "../io/network/juce_Socket.h" #include "../io/files/juce_NamedPipe.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" class InterprocessConnectionServer; diff --git a/src/events/juce_InterprocessConnectionServer.cpp b/src/events/juce_InterprocessConnectionServer.cpp index 1a672c1b9b..6169d646a7 100644 --- a/src/events/juce_InterprocessConnectionServer.cpp +++ b/src/events/juce_InterprocessConnectionServer.cpp @@ -28,7 +28,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_InterprocessConnectionServer.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/events/juce_Message.h b/src/events/juce_Message.h index ef869a26c0..3155998ac6 100644 --- a/src/events/juce_Message.h +++ b/src/events/juce_Message.h @@ -26,7 +26,7 @@ #ifndef __JUCE_MESSAGE_JUCEHEADER__ #define __JUCE_MESSAGE_JUCEHEADER__ -#include "../containers/juce_ReferenceCountedObject.h" +#include "../memory/juce_ReferenceCountedObject.h" class MessageListener; class MessageManager; diff --git a/src/events/juce_MessageManager.h b/src/events/juce_MessageManager.h index 20d10ff582..1f046a4d1f 100644 --- a/src/events/juce_MessageManager.h +++ b/src/events/juce_MessageManager.h @@ -28,7 +28,7 @@ #include "../utilities/juce_DeletedAtShutdown.h" #include "../containers/juce_SortedSet.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" #include "../threads/juce_Thread.h" #include "../threads/juce_ThreadPool.h" #include "juce_ActionBroadcaster.h" diff --git a/src/gui/components/buttons/juce_Button.cpp b/src/gui/components/buttons/juce_Button.cpp index 9ecb214e33..02897eb7b2 100644 --- a/src/gui/components/buttons/juce_Button.cpp +++ b/src/gui/components/buttons/juce_Button.cpp @@ -344,16 +344,19 @@ void Button::handleCommandMessage (int commandId) } //============================================================================== -void Button::addButtonListener (ButtonListener* const newListener) +void Button::addListener (ButtonListener* const newListener) { buttonListeners.add (newListener); } -void Button::removeButtonListener (ButtonListener* const listener) +void Button::removeListener (ButtonListener* const listener) { buttonListeners.remove (listener); } +void Button::addButtonListener (ButtonListener* l) { addListener (l); } +void Button::removeButtonListener (ButtonListener* l) { removeListener (l); } + void Button::sendClickMessage (const ModifierKeys& modifiers) { Component::BailOutChecker checker (this); diff --git a/src/gui/components/buttons/juce_Button.h b/src/gui/components/buttons/juce_Button.h index 1a339633e9..2689f32f87 100644 --- a/src/gui/components/buttons/juce_Button.h +++ b/src/gui/components/buttons/juce_Button.h @@ -176,7 +176,7 @@ public: /** Used to receive callbacks when a button is clicked. - @see Button::addButtonListener, Button::removeButtonListener + @see Button::addListener, Button::removeListener */ class Listener { @@ -192,18 +192,15 @@ public: }; /** Registers a listener to receive events when this button's state changes. - If the listener is already registered, this will not register it again. - - @see removeButtonListener + @see removeListener */ - void addButtonListener (Listener* newListener); + void addListener (Listener* newListener); /** Removes a previously-registered button listener - - @see addButtonListener + @see addListener */ - void removeButtonListener (Listener* listener); + void removeListener (Listener* listener); //============================================================================== /** Causes the button to act as if it's been clicked. @@ -375,6 +372,11 @@ public: void setState (const ButtonState newState); + //============================================================================== + // These are deprecated - please use addListener() and removeListener() instead! + JUCE_DEPRECATED (void addButtonListener (Listener*)); + JUCE_DEPRECATED (void removeButtonListener (Listener*)); + protected: //============================================================================== /** This method is called when the button has been clicked. @@ -503,8 +505,10 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Button); }; -/** This typedef is just for compatibility with old code - newer code should use Button::Listener instead. */ -typedef Button::Listener ButtonListener; +#ifndef DOXYGEN + /** This typedef is just for compatibility with old code and VC6 - newer code should use Button::Listener instead. */ + typedef Button::Listener ButtonListener; +#endif #if JUCE_VC6 #undef Listener diff --git a/src/gui/components/controls/juce_Slider.cpp b/src/gui/components/controls/juce_Slider.cpp index 2fac881cf7..eb988f980d 100644 --- a/src/gui/components/controls/juce_Slider.cpp +++ b/src/gui/components/controls/juce_Slider.cpp @@ -356,10 +356,10 @@ void Slider::lookAndFeelChanged() if (style == IncDecButtons) { addAndMakeVisible (incButton = lf.createSliderButton (true)); - incButton->addButtonListener (this); + incButton->addListener (this); addAndMakeVisible (decButton = lf.createSliderButton (false)); - decButton->addButtonListener (this); + decButton->addListener (this); if (incDecButtonMode != incDecButtonsNotDraggable) { diff --git a/src/gui/components/controls/juce_TableListBox.cpp b/src/gui/components/controls/juce_TableListBox.cpp index 8a7b85f789..60ef5ffb81 100644 --- a/src/gui/components/controls/juce_TableListBox.cpp +++ b/src/gui/components/controls/juce_TableListBox.cpp @@ -28,8 +28,8 @@ BEGIN_JUCE_NAMESPACE #include "juce_TableListBox.h" -#include "../../../containers/juce_BigInteger.h" -#include "../../../core/juce_Random.h" +#include "../../../maths/juce_BigInteger.h" +#include "../../../maths/juce_Random.h" #include "../mouse/juce_DragAndDropContainer.h" #include "../../graphics/imaging/juce_Image.h" #include "../../../text/juce_LocalisedStrings.h" diff --git a/src/gui/components/controls/juce_TextEditor.h b/src/gui/components/controls/juce_TextEditor.h index 532ffe8945..ec225b938b 100644 --- a/src/gui/components/controls/juce_TextEditor.h +++ b/src/gui/components/controls/juce_TextEditor.h @@ -27,7 +27,7 @@ #define __JUCE_TEXTEDITOR_JUCEHEADER__ #include "../juce_Component.h" -#include "../../../containers/juce_Range.h" +#include "../../../maths/juce_Range.h" #include "../../../events/juce_Timer.h" #include "../../../utilities/juce_UndoManager.h" #include "../layout/juce_Viewport.h" diff --git a/src/gui/components/controls/juce_Toolbar.cpp b/src/gui/components/controls/juce_Toolbar.cpp index 7f60676974..35bd0e5fb9 100644 --- a/src/gui/components/controls/juce_Toolbar.cpp +++ b/src/gui/components/controls/juce_Toolbar.cpp @@ -270,7 +270,7 @@ Toolbar::Toolbar() addChildComponent (missingItemsButton = getLookAndFeel().createToolbarMissingItemsButton (*this)); missingItemsButton->setAlwaysOnTop (true); - missingItemsButton->addButtonListener (this); + missingItemsButton->addListener (this); } Toolbar::~Toolbar() @@ -777,7 +777,7 @@ private: if ((optionFlags & Toolbar::showResetToDefaultsButton) != 0) { addAndMakeVisible (&defaultButton); - defaultButton.addButtonListener (this); + defaultButton.addListener (this); } addAndMakeVisible (&instructions); diff --git a/src/gui/components/controls/juce_TreeView.cpp b/src/gui/components/controls/juce_TreeView.cpp index 545bdccbd1..0fe56a752e 100644 --- a/src/gui/components/controls/juce_TreeView.cpp +++ b/src/gui/components/controls/juce_TreeView.cpp @@ -29,7 +29,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_TreeView.h" #include "../lookandfeel/juce_LookAndFeel.h" -#include "../../../containers/juce_BigInteger.h" +#include "../../../maths/juce_BigInteger.h" #include "../mouse/juce_DragAndDropContainer.h" #include "../mouse/juce_MouseInputSource.h" #include "../../graphics/imaging/juce_Image.h" diff --git a/src/gui/components/filebrowser/juce_FileBrowserComponent.cpp b/src/gui/components/filebrowser/juce_FileBrowserComponent.cpp index 8bb0f9f493..0a7f5f859b 100644 --- a/src/gui/components/filebrowser/juce_FileBrowserComponent.cpp +++ b/src/gui/components/filebrowser/juce_FileBrowserComponent.cpp @@ -127,7 +127,7 @@ FileBrowserComponent::FileBrowserComponent (int flags_, fileLabel.attachToComponent (&filenameBox, true); addAndMakeVisible (goUpButton = getLookAndFeel().createFileBrowserGoUpButton()); - goUpButton->addButtonListener (this); + goUpButton->addListener (this); goUpButton->setTooltip (TRANS ("go up to parent directory")); if (previewComp != 0) diff --git a/src/gui/components/filebrowser/juce_FileBrowserComponent.h b/src/gui/components/filebrowser/juce_FileBrowserComponent.h index 1d2d67ccca..c7896efb70 100644 --- a/src/gui/components/filebrowser/juce_FileBrowserComponent.h +++ b/src/gui/components/filebrowser/juce_FileBrowserComponent.h @@ -29,7 +29,7 @@ #include "juce_DirectoryContentsDisplayComponent.h" #include "juce_FilePreviewComponent.h" #include "../../../io/files/juce_File.h" -#include "../../../containers/juce_BigInteger.h" +#include "../../../maths/juce_BigInteger.h" #include "../controls/juce_TextEditor.h" #include "../controls/juce_ComboBox.h" #include "../buttons/juce_DrawableButton.h" diff --git a/src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp b/src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp index c7b019cc7c..a694790eb7 100644 --- a/src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp +++ b/src/gui/components/filebrowser/juce_FileChooserDialogBox.cpp @@ -47,9 +47,9 @@ FileChooserDialogBox::FileChooserDialogBox (const String& name, setResizable (true, true); setResizeLimits (300, 300, 1200, 1000); - content->okButton.addButtonListener (this); - content->cancelButton.addButtonListener (this); - content->newFolderButton.addButtonListener (this); + content->okButton.addListener (this); + content->cancelButton.addListener (this); + content->newFolderButton.addListener (this); content->chooserComponent.addListener (this); selectionChanged(); diff --git a/src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp b/src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp index d78e119153..62c94cc827 100644 --- a/src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp +++ b/src/gui/components/filebrowser/juce_FileSearchPathListComponent.cpp @@ -49,18 +49,18 @@ FileSearchPathListComponent::FileSearchPathListComponent() listBox.setOutlineThickness (1); addAndMakeVisible (&addButton); - addButton.addButtonListener (this); + addButton.addListener (this); addButton.setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight | Button::ConnectedOnBottom | Button::ConnectedOnTop); addAndMakeVisible (&removeButton); - removeButton.addButtonListener (this); + removeButton.addListener (this); removeButton.setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight | Button::ConnectedOnBottom | Button::ConnectedOnTop); addAndMakeVisible (&changeButton); - changeButton.addButtonListener (this); + changeButton.addListener (this); addAndMakeVisible (&upButton); - upButton.addButtonListener (this); + upButton.addListener (this); { Path arrowPath; @@ -73,7 +73,7 @@ FileSearchPathListComponent::FileSearchPathListComponent() } addAndMakeVisible (&downButton); - downButton.addButtonListener (this); + downButton.addListener (this); { Path arrowPath; diff --git a/src/gui/components/filebrowser/juce_FilenameComponent.cpp b/src/gui/components/filebrowser/juce_FilenameComponent.cpp index cc71d5406f..ae09220db7 100644 --- a/src/gui/components/filebrowser/juce_FilenameComponent.cpp +++ b/src/gui/components/filebrowser/juce_FilenameComponent.cpp @@ -94,7 +94,7 @@ void FilenameComponent::lookAndFeelChanged() browseButton->setConnectedEdges (Button::ConnectedOnLeft); resized(); - browseButton->addButtonListener (this); + browseButton->addListener (this); } void FilenameComponent::setTooltip (const String& newTooltip) diff --git a/src/gui/components/juce_Component.h b/src/gui/components/juce_Component.h index f6b9c3fdfd..29afe15fc6 100644 --- a/src/gui/components/juce_Component.h +++ b/src/gui/components/juce_Component.h @@ -40,7 +40,7 @@ #include "../../text/juce_StringArray.h" #include "../../containers/juce_Array.h" #include "../../containers/juce_NamedValueSet.h" -#include "../../containers/juce_WeakReference.h" +#include "../../memory/juce_WeakReference.h" #include "juce_ModalComponentManager.h" class LookAndFeel; diff --git a/src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp b/src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp index d892daf2a9..cc57ada9b0 100644 --- a/src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp +++ b/src/gui/components/keyboard/juce_KeyMappingEditorComponent.cpp @@ -403,7 +403,7 @@ KeyMappingEditorComponent::KeyMappingEditorComponent (KeyPressMappingSet& mappin if (showResetToDefaultButton) { addAndMakeVisible (&resetButton); - resetButton.addButtonListener (treeItem); + resetButton.addListener (treeItem); } addAndMakeVisible (&tree); diff --git a/src/gui/components/keyboard/juce_TextInputTarget.h b/src/gui/components/keyboard/juce_TextInputTarget.h index df3bf9894d..fb61134bc1 100644 --- a/src/gui/components/keyboard/juce_TextInputTarget.h +++ b/src/gui/components/keyboard/juce_TextInputTarget.h @@ -26,7 +26,7 @@ #ifndef __JUCE_TEXTINPUTTARGET_JUCEHEADER__ #define __JUCE_TEXTINPUTTARGET_JUCEHEADER__ -#include "../../../containers/juce_Range.h" +#include "../../../maths/juce_Range.h" //============================================================================== diff --git a/src/gui/components/layout/juce_ScrollBar.h b/src/gui/components/layout/juce_ScrollBar.h index 1fc15e19f7..b5ed569c54 100644 --- a/src/gui/components/layout/juce_ScrollBar.h +++ b/src/gui/components/layout/juce_ScrollBar.h @@ -27,7 +27,7 @@ #define __JUCE_SCROLLBAR_JUCEHEADER__ #include "../../../events/juce_AsyncUpdater.h" -#include "../../../containers/juce_Range.h" +#include "../../../maths/juce_Range.h" #include "../../../events/juce_Timer.h" #include "../buttons/juce_Button.h" diff --git a/src/gui/components/layout/juce_TabbedButtonBar.cpp b/src/gui/components/layout/juce_TabbedButtonBar.cpp index 81190331de..d5ec79825a 100644 --- a/src/gui/components/layout/juce_TabbedButtonBar.cpp +++ b/src/gui/components/layout/juce_TabbedButtonBar.cpp @@ -368,7 +368,7 @@ void TabbedButtonBar::resized() if (extraTabsButton == 0) { addAndMakeVisible (extraTabsButton = getLookAndFeel().createTabBarExtrasButton()); - extraTabsButton->addButtonListener (behindFrontTab); + extraTabsButton->addListener (behindFrontTab); extraTabsButton->setAlwaysOnTop (true); extraTabsButton->setTriggeredOnMouseDown (true); } diff --git a/src/gui/components/menus/juce_PopupMenuCustomComponent.h b/src/gui/components/menus/juce_PopupMenuCustomComponent.h index 32226e8f7c..500c6990fb 100644 --- a/src/gui/components/menus/juce_PopupMenuCustomComponent.h +++ b/src/gui/components/menus/juce_PopupMenuCustomComponent.h @@ -28,7 +28,7 @@ #include "juce_PopupMenu.h" #include "../juce_Component.h" -#include "../../../containers/juce_ReferenceCountedObject.h" +#include "../../../memory/juce_ReferenceCountedObject.h" //============================================================================== diff --git a/src/gui/components/mouse/juce_DragAndDropContainer.cpp b/src/gui/components/mouse/juce_DragAndDropContainer.cpp index 68e5906b59..f47390b737 100644 --- a/src/gui/components/mouse/juce_DragAndDropContainer.cpp +++ b/src/gui/components/mouse/juce_DragAndDropContainer.cpp @@ -31,7 +31,7 @@ BEGIN_JUCE_NAMESPACE #include "../windows/juce_ComponentPeer.h" #include "../juce_Desktop.h" #include "../../../events/juce_Timer.h" -#include "../../../core/juce_Random.h" +#include "../../../maths/juce_Random.h" #include "../../graphics/imaging/juce_Image.h" #include "../mouse/juce_MouseEvent.h" #include "../mouse/juce_MouseInputSource.h" diff --git a/src/gui/components/mouse/juce_MouseCursor.h b/src/gui/components/mouse/juce_MouseCursor.h index bad1883da7..937eb897f7 100644 --- a/src/gui/components/mouse/juce_MouseCursor.h +++ b/src/gui/components/mouse/juce_MouseCursor.h @@ -26,7 +26,7 @@ #ifndef __JUCE_MOUSECURSOR_JUCEHEADER__ #define __JUCE_MOUSECURSOR_JUCEHEADER__ -#include "../../../containers/juce_ReferenceCountedObject.h" +#include "../../../memory/juce_ReferenceCountedObject.h" class Image; class ComponentPeer; class Component; diff --git a/src/gui/components/mouse/juce_MouseInputSource.h b/src/gui/components/mouse/juce_MouseInputSource.h index cae78745b1..2ccff5d5cc 100644 --- a/src/gui/components/mouse/juce_MouseInputSource.h +++ b/src/gui/components/mouse/juce_MouseInputSource.h @@ -31,7 +31,7 @@ class ComponentPeer; class MouseInputSourceInternal; #include "../keyboard/juce_ModifierKeys.h" #include "../../../core/juce_Time.h" -#include "../../../containers/juce_ScopedPointer.h" +#include "../../../memory/juce_ScopedPointer.h" #include "../../graphics/geometry/juce_Point.h" #include "../juce_Desktop.h" diff --git a/src/gui/components/properties/juce_BooleanPropertyComponent.cpp b/src/gui/components/properties/juce_BooleanPropertyComponent.cpp index 8ae96e9fed..108ded765f 100644 --- a/src/gui/components/properties/juce_BooleanPropertyComponent.cpp +++ b/src/gui/components/properties/juce_BooleanPropertyComponent.cpp @@ -41,7 +41,7 @@ BooleanPropertyComponent::BooleanPropertyComponent (const String& name, { addAndMakeVisible (&button); button.setClickingTogglesState (false); - button.addButtonListener (this); + button.addListener (this); } BooleanPropertyComponent::BooleanPropertyComponent (const Value& valueToControl, diff --git a/src/gui/components/properties/juce_ButtonPropertyComponent.cpp b/src/gui/components/properties/juce_ButtonPropertyComponent.cpp index f65d3c604c..cff40be7ed 100644 --- a/src/gui/components/properties/juce_ButtonPropertyComponent.cpp +++ b/src/gui/components/properties/juce_ButtonPropertyComponent.cpp @@ -37,7 +37,7 @@ ButtonPropertyComponent::ButtonPropertyComponent (const String& name, { addAndMakeVisible (&button); button.setTriggeredOnMouseDown (triggerOnMouseDown); - button.addButtonListener (this); + button.addListener (this); } ButtonPropertyComponent::~ButtonPropertyComponent() diff --git a/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp b/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp index 48763a1841..7dc715980d 100644 --- a/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp +++ b/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp @@ -217,7 +217,7 @@ public: if (hideAdvancedOptionsWithButton) { addAndMakeVisible (showAdvancedSettingsButton = new TextButton (TRANS("Show advanced settings..."))); - showAdvancedSettingsButton->addButtonListener (this); + showAdvancedSettingsButton->addListener (this); } type->scanForDevices(); @@ -408,7 +408,7 @@ public: { addAndMakeVisible (showUIButton = new TextButton (TRANS ("show this device's control panel"), TRANS ("opens the device's own control panel"))); - showUIButton->addButtonListener (this); + showUIButton->addListener (this); } resized(); @@ -434,7 +434,7 @@ public: if (setup.maxNumOutputChannels > 0) { addAndMakeVisible (testButton = new TextButton (TRANS ("Test"))); - testButton->addButtonListener (this); + testButton->addListener (this); } } diff --git a/src/gui/components/special/juce_MidiKeyboardComponent.h b/src/gui/components/special/juce_MidiKeyboardComponent.h index eae11d31c0..ea45c1fce1 100644 --- a/src/gui/components/special/juce_MidiKeyboardComponent.h +++ b/src/gui/components/special/juce_MidiKeyboardComponent.h @@ -30,7 +30,7 @@ #include "../../../events/juce_AsyncUpdater.h" #include "../../../events/juce_ChangeBroadcaster.h" #include "../../../audio/midi/juce_MidiKeyboardState.h" -#include "../../../containers/juce_BigInteger.h" +#include "../../../maths/juce_BigInteger.h" //============================================================================== diff --git a/src/gui/components/special/juce_PreferencesPanel.cpp b/src/gui/components/special/juce_PreferencesPanel.cpp index 6218591d30..e0d102388e 100644 --- a/src/gui/components/special/juce_PreferencesPanel.cpp +++ b/src/gui/components/special/juce_PreferencesPanel.cpp @@ -54,7 +54,7 @@ void PreferencesPanel::addSettingsPage (const String& title, button->setImages (icon, overIcon, downIcon); button->setRadioGroupId (1); - button->addButtonListener (this); + button->addListener (this); button->setClickingTogglesState (true); button->setWantsKeyboardFocus (false); addAndMakeVisible (button); diff --git a/src/gui/components/windows/juce_AlertWindow.cpp b/src/gui/components/windows/juce_AlertWindow.cpp index f1e4105e5b..a8661fe9f7 100644 --- a/src/gui/components/windows/juce_AlertWindow.cpp +++ b/src/gui/components/windows/juce_AlertWindow.cpp @@ -34,7 +34,7 @@ BEGIN_JUCE_NAMESPACE #include "../../../text/juce_LocalisedStrings.h" #include "../../../events/juce_MessageManager.h" #include "../../../application/juce_Application.h" -#include "../../../containers/juce_ScopedPointer.h" +#include "../../../memory/juce_ScopedPointer.h" //============================================================================== @@ -158,7 +158,7 @@ void AlertWindow::addButton (const String& name, b->setCommandToTrigger (0, returnValue, false); b->addShortcut (shortcutKey1); b->addShortcut (shortcutKey2); - b->addButtonListener (this); + b->addListener (this); b->changeWidthToFitText (getLookAndFeel().getAlertWindowButtonHeight()); addAndMakeVisible (b, 0); diff --git a/src/gui/components/windows/juce_ComponentPeer.cpp b/src/gui/components/windows/juce_ComponentPeer.cpp index a260dce3e4..69827c099a 100644 --- a/src/gui/components/windows/juce_ComponentPeer.cpp +++ b/src/gui/components/windows/juce_ComponentPeer.cpp @@ -32,7 +32,7 @@ BEGIN_JUCE_NAMESPACE #include "../juce_Desktop.h" #include "../../../events/juce_MessageManager.h" #include "../../../core/juce_Time.h" -#include "../../../core/juce_Random.h" +#include "../../../maths/juce_Random.h" #include "../layout/juce_ComponentBoundsConstrainer.h" #include "../mouse/juce_FileDragAndDropTarget.h" #include "../mouse/juce_MouseInputSource.h" diff --git a/src/gui/components/windows/juce_DocumentWindow.cpp b/src/gui/components/windows/juce_DocumentWindow.cpp index 5c36a992a8..dc2b206e2b 100644 --- a/src/gui/components/windows/juce_DocumentWindow.cpp +++ b/src/gui/components/windows/juce_DocumentWindow.cpp @@ -344,7 +344,7 @@ void DocumentWindow::lookAndFeelChanged() if (buttonListener == 0) buttonListener = new ButtonListenerProxy (*this); - titleBarButtons[i]->addButtonListener (buttonListener); + titleBarButtons[i]->addListener (buttonListener); titleBarButtons[i]->setWantsKeyboardFocus (false); // (call the Component method directly to avoid the assertion in ResizableWindow) diff --git a/src/gui/components/windows/juce_ResizableWindow.h b/src/gui/components/windows/juce_ResizableWindow.h index a2703e05e3..107403eff5 100644 --- a/src/gui/components/windows/juce_ResizableWindow.h +++ b/src/gui/components/windows/juce_ResizableWindow.h @@ -355,8 +355,8 @@ private: #if JUCE_CATCH_DEPRECATED_CODE_MISUSE // The parameters for these methods have changed - please update your code! - void getBorderThickness (int& left, int& top, int& right, int& bottom); - void getContentComponentBorder (int& left, int& top, int& right, int& bottom); + JUCE_DEPRECATED (void getBorderThickness (int& left, int& top, int& right, int& bottom)); + JUCE_DEPRECATED (void getContentComponentBorder (int& left, int& top, int& right, int& bottom)); #endif JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResizableWindow); diff --git a/src/gui/components/windows/juce_ThreadWithProgressWindow.h b/src/gui/components/windows/juce_ThreadWithProgressWindow.h index 1a01ec5bb4..2d3d1cd459 100644 --- a/src/gui/components/windows/juce_ThreadWithProgressWindow.h +++ b/src/gui/components/windows/juce_ThreadWithProgressWindow.h @@ -29,7 +29,7 @@ #include "../windows/juce_AlertWindow.h" #include "../../../events/juce_Timer.h" #include "../../../threads/juce_Thread.h" -#include "../../../containers/juce_ScopedPointer.h" +#include "../../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/gui/graphics/colour/juce_ColourGradient.h b/src/gui/graphics/colour/juce_ColourGradient.h index 6ac5b64955..abaaaa1084 100644 --- a/src/gui/graphics/colour/juce_ColourGradient.h +++ b/src/gui/graphics/colour/juce_ColourGradient.h @@ -29,7 +29,7 @@ #include "juce_Colour.h" #include "../geometry/juce_Point.h" #include "../../../containers/juce_Array.h" -#include "../../../containers/juce_HeapBlock.h" +#include "../../../memory/juce_HeapBlock.h" //============================================================================== diff --git a/src/gui/graphics/contexts/juce_EdgeTable.h b/src/gui/graphics/contexts/juce_EdgeTable.h index 982ff06528..dea37dfb6a 100644 --- a/src/gui/graphics/contexts/juce_EdgeTable.h +++ b/src/gui/graphics/contexts/juce_EdgeTable.h @@ -29,7 +29,7 @@ #include "../geometry/juce_AffineTransform.h" #include "../geometry/juce_Rectangle.h" #include "../geometry/juce_RectangleList.h" -#include "../../../containers/juce_MemoryBlock.h" +#include "../../../memory/juce_MemoryBlock.h" class Path; class Image; diff --git a/src/gui/graphics/contexts/juce_FillType.h b/src/gui/graphics/contexts/juce_FillType.h index cccbea3952..56f6228f38 100644 --- a/src/gui/graphics/contexts/juce_FillType.h +++ b/src/gui/graphics/contexts/juce_FillType.h @@ -28,7 +28,7 @@ #include "../colour/juce_ColourGradient.h" #include "../imaging/juce_Image.h" -#include "../../../containers/juce_ScopedPointer.h" +#include "../../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/gui/graphics/contexts/juce_Graphics.h b/src/gui/graphics/contexts/juce_Graphics.h index 23dcd86d1a..54e195c8d7 100644 --- a/src/gui/graphics/contexts/juce_Graphics.h +++ b/src/gui/graphics/contexts/juce_Graphics.h @@ -33,7 +33,7 @@ #include "../colour/juce_Colours.h" #include "../colour/juce_ColourGradient.h" #include "juce_RectanglePlacement.h" -#include "../../../containers/juce_ScopedPointer.h" +#include "../../../memory/juce_ScopedPointer.h" class LowLevelGraphicsContext; class Image; class FillType; diff --git a/src/gui/graphics/fonts/juce_Font.h b/src/gui/graphics/fonts/juce_Font.h index b8fcc4b2da..531d87e2e8 100644 --- a/src/gui/graphics/fonts/juce_Font.h +++ b/src/gui/graphics/fonts/juce_Font.h @@ -28,7 +28,7 @@ #include "juce_Typeface.h" #include "../../../text/juce_StringArray.h" -#include "../../../containers/juce_ReferenceCountedObject.h" +#include "../../../memory/juce_ReferenceCountedObject.h" #include "../../../containers/juce_OwnedArray.h" class LowLevelGraphicsContext; diff --git a/src/gui/graphics/fonts/juce_Typeface.h b/src/gui/graphics/fonts/juce_Typeface.h index d06c88c840..36dd7e5f12 100644 --- a/src/gui/graphics/fonts/juce_Typeface.h +++ b/src/gui/graphics/fonts/juce_Typeface.h @@ -26,7 +26,7 @@ #ifndef __JUCE_TYPEFACE_JUCEHEADER__ #define __JUCE_TYPEFACE_JUCEHEADER__ -#include "../../../containers/juce_ReferenceCountedObject.h" +#include "../../../memory/juce_ReferenceCountedObject.h" #include "../../../containers/juce_OwnedArray.h" #include "../../../io/streams/juce_InputStream.h" #include "../../../io/streams/juce_OutputStream.h" diff --git a/src/gui/graphics/geometry/juce_RelativeCoordinate.h b/src/gui/graphics/geometry/juce_RelativeCoordinate.h index 42d6d933d3..20bbc77a97 100644 --- a/src/gui/graphics/geometry/juce_RelativeCoordinate.h +++ b/src/gui/graphics/geometry/juce_RelativeCoordinate.h @@ -28,7 +28,7 @@ #include "juce_Path.h" #include "juce_Rectangle.h" -#include "../../../containers/juce_Expression.h" +#include "../../../maths/juce_Expression.h" #include "../../../containers/juce_OwnedArray.h" #include "../../../containers/juce_ValueTree.h" diff --git a/src/io/files/juce_DirectoryIterator.h b/src/io/files/juce_DirectoryIterator.h index 5141b3f1da..5dfbaaaf2f 100644 --- a/src/io/files/juce_DirectoryIterator.h +++ b/src/io/files/juce_DirectoryIterator.h @@ -27,7 +27,7 @@ #define __JUCE_DIRECTORYITERATOR_JUCEHEADER__ #include "juce_File.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/io/files/juce_File.cpp b/src/io/files/juce_File.cpp index 7ab7ea89d6..f98d9dde69 100644 --- a/src/io/files/juce_File.cpp +++ b/src/io/files/juce_File.cpp @@ -36,9 +36,9 @@ BEGIN_JUCE_NAMESPACE #include "juce_DirectoryIterator.h" #include "juce_TemporaryFile.h" #include "../../core/juce_SystemStats.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" #include "../../core/juce_PlatformUtilities.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== @@ -925,7 +925,7 @@ const File File::createTempFile (const String& fileNameEnding) #if JUCE_UNIT_TESTS #include "../../utilities/juce_UnitTest.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" class FileTests : public UnitTest { diff --git a/src/io/files/juce_File.h b/src/io/files/juce_File.h index 96c972a0bf..fc750cbf2b 100644 --- a/src/io/files/juce_File.h +++ b/src/io/files/juce_File.h @@ -29,8 +29,8 @@ #include "../../containers/juce_Array.h" #include "../../core/juce_Time.h" #include "../../text/juce_StringArray.h" -#include "../../containers/juce_MemoryBlock.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_MemoryBlock.h" +#include "../../memory/juce_ScopedPointer.h" class FileInputStream; class FileOutputStream; diff --git a/src/io/files/juce_TemporaryFile.cpp b/src/io/files/juce_TemporaryFile.cpp index c2d2b6d01b..ac256f1317 100644 --- a/src/io/files/juce_TemporaryFile.cpp +++ b/src/io/files/juce_TemporaryFile.cpp @@ -28,7 +28,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_TemporaryFile.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" #include "../../threads/juce_Thread.h" diff --git a/src/io/network/juce_URL.cpp b/src/io/network/juce_URL.cpp index 83adcaf8ee..fd6da778a4 100644 --- a/src/io/network/juce_URL.cpp +++ b/src/io/network/juce_URL.cpp @@ -28,7 +28,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_URL.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" #include "../../core/juce_PlatformUtilities.h" #include "../../text/juce_XmlDocument.h" #include "../../io/streams/juce_MemoryOutputStream.h" diff --git a/src/io/streams/juce_BufferedInputStream.h b/src/io/streams/juce_BufferedInputStream.h index ebb6d3c0c1..5dbf2de0d2 100644 --- a/src/io/streams/juce_BufferedInputStream.h +++ b/src/io/streams/juce_BufferedInputStream.h @@ -27,7 +27,7 @@ #define __JUCE_BUFFEREDINPUTSTREAM_JUCEHEADER__ #include "juce_InputStream.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/io/streams/juce_GZIPCompressorOutputStream.h b/src/io/streams/juce_GZIPCompressorOutputStream.h index 27b8c1e5dc..d2ad2c023a 100644 --- a/src/io/streams/juce_GZIPCompressorOutputStream.h +++ b/src/io/streams/juce_GZIPCompressorOutputStream.h @@ -27,7 +27,7 @@ #define __JUCE_GZIPCOMPRESSOROUTPUTSTREAM_JUCEHEADER__ #include "juce_OutputStream.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/io/streams/juce_GZIPDecompressorInputStream.h b/src/io/streams/juce_GZIPDecompressorInputStream.h index 2b3c6d039e..ab84c0c2b5 100644 --- a/src/io/streams/juce_GZIPDecompressorInputStream.h +++ b/src/io/streams/juce_GZIPDecompressorInputStream.h @@ -27,7 +27,7 @@ #define __JUCE_GZIPDECOMPRESSORINPUTSTREAM_JUCEHEADER__ #include "juce_InputStream.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/io/streams/juce_InputStream.h b/src/io/streams/juce_InputStream.h index 564d617c2c..d178f5368c 100644 --- a/src/io/streams/juce_InputStream.h +++ b/src/io/streams/juce_InputStream.h @@ -27,7 +27,7 @@ #define __JUCE_INPUTSTREAM_JUCEHEADER__ #include "../../text/juce_String.h" -#include "../../containers/juce_MemoryBlock.h" +#include "../../memory/juce_MemoryBlock.h" //============================================================================== diff --git a/src/io/streams/juce_MemoryInputStream.cpp b/src/io/streams/juce_MemoryInputStream.cpp index 7188fcbbe2..526182a030 100644 --- a/src/io/streams/juce_MemoryInputStream.cpp +++ b/src/io/streams/juce_MemoryInputStream.cpp @@ -96,7 +96,7 @@ int64 MemoryInputStream::getPosition() #if JUCE_UNIT_TESTS #include "../../utilities/juce_UnitTest.h" -#include "../../core/juce_Random.h" +#include "../../maths/juce_Random.h" #include "juce_MemoryOutputStream.h" class MemoryStreamTests : public UnitTest diff --git a/src/io/streams/juce_MemoryOutputStream.h b/src/io/streams/juce_MemoryOutputStream.h index d84bb0c9f8..aea5fe3b48 100644 --- a/src/io/streams/juce_MemoryOutputStream.h +++ b/src/io/streams/juce_MemoryOutputStream.h @@ -27,8 +27,8 @@ #define __JUCE_MEMORYOUTPUTSTREAM_JUCEHEADER__ #include "juce_OutputStream.h" -#include "../../containers/juce_MemoryBlock.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_MemoryBlock.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/io/streams/juce_OutputStream.cpp b/src/io/streams/juce_OutputStream.cpp index da6ff758de..61384855f3 100644 --- a/src/io/streams/juce_OutputStream.cpp +++ b/src/io/streams/juce_OutputStream.cpp @@ -30,7 +30,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_OutputStream.h" #include "../../threads/juce_ScopedLock.h" #include "../../containers/juce_Array.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" #include "../files/juce_FileInputStream.h" diff --git a/src/io/streams/juce_OutputStream.h b/src/io/streams/juce_OutputStream.h index 37a9b968de..e64c0d039c 100644 --- a/src/io/streams/juce_OutputStream.h +++ b/src/io/streams/juce_OutputStream.h @@ -27,6 +27,7 @@ #define __JUCE_OUTPUTSTREAM_JUCEHEADER__ #include "../../text/juce_String.h" +#include "../../text/juce_NewLine.h" #include "juce_InputStream.h" class File; diff --git a/src/io/streams/juce_SubregionStream.h b/src/io/streams/juce_SubregionStream.h index 6c2553ba44..bf0552e697 100644 --- a/src/io/streams/juce_SubregionStream.h +++ b/src/io/streams/juce_SubregionStream.h @@ -27,7 +27,7 @@ #define __JUCE_SUBREGIONSTREAM_JUCEHEADER__ #include "juce_InputStream.h" -#include "../../containers/juce_ScopedPointer.h" +#include "../../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/juce_core_includes.h b/src/juce_core_includes.h index a72d830be8..bd6541f4e8 100644 --- a/src/juce_core_includes.h +++ b/src/juce_core_includes.h @@ -35,27 +35,12 @@ #ifndef __JUCE_ARRAYALLOCATIONBASE_JUCEHEADER__ #include "containers/juce_ArrayAllocationBase.h" #endif -#ifndef __JUCE_BIGINTEGER_JUCEHEADER__ - #include "containers/juce_BigInteger.h" -#endif #ifndef __JUCE_DYNAMICOBJECT_JUCEHEADER__ #include "containers/juce_DynamicObject.h" #endif #ifndef __JUCE_ELEMENTCOMPARATOR_JUCEHEADER__ #include "containers/juce_ElementComparator.h" #endif -#ifndef __JUCE_EXPRESSION_JUCEHEADER__ - #include "containers/juce_Expression.h" -#endif -#ifndef __JUCE_HEAPBLOCK_JUCEHEADER__ - #include "containers/juce_HeapBlock.h" -#endif -#ifndef __JUCE_IDENTIFIER_JUCEHEADER__ - #include "containers/juce_Identifier.h" -#endif -#ifndef __JUCE_MEMORYBLOCK_JUCEHEADER__ - #include "containers/juce_MemoryBlock.h" -#endif #ifndef __JUCE_NAMEDVALUESET_JUCEHEADER__ #include "containers/juce_NamedValueSet.h" #endif @@ -65,18 +50,9 @@ #ifndef __JUCE_PROPERTYSET_JUCEHEADER__ #include "containers/juce_PropertySet.h" #endif -#ifndef __JUCE_RANGE_JUCEHEADER__ - #include "containers/juce_Range.h" -#endif #ifndef __JUCE_REFERENCECOUNTEDARRAY_JUCEHEADER__ #include "containers/juce_ReferenceCountedArray.h" #endif -#ifndef __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__ - #include "containers/juce_ReferenceCountedObject.h" -#endif -#ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__ - #include "containers/juce_ScopedPointer.h" -#endif #ifndef __JUCE_SORTEDSET_JUCEHEADER__ #include "containers/juce_SortedSet.h" #endif @@ -92,33 +68,15 @@ #ifndef __JUCE_VARIANT_JUCEHEADER__ #include "containers/juce_Variant.h" #endif -#ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__ - #include "containers/juce_WeakReference.h" -#endif -#ifndef __JUCE_ATOMIC_JUCEHEADER__ - #include "core/juce_Atomic.h" -#endif -#ifndef __JUCE_BYTEORDER_JUCEHEADER__ - #include "core/juce_ByteOrder.h" -#endif #ifndef __JUCE_FILELOGGER_JUCEHEADER__ #include "core/juce_FileLogger.h" #endif #ifndef __JUCE_INITIALISATION_JUCEHEADER__ #include "core/juce_Initialisation.h" #endif -#ifndef __JUCE_LEAKEDOBJECTDETECTOR_JUCEHEADER__ - #include "core/juce_LeakedObjectDetector.h" -#endif #ifndef __JUCE_LOGGER_JUCEHEADER__ #include "core/juce_Logger.h" #endif -#ifndef __JUCE_MATHSFUNCTIONS_JUCEHEADER__ - #include "core/juce_MathsFunctions.h" -#endif -#ifndef __JUCE_MEMORY_JUCEHEADER__ - #include "core/juce_Memory.h" -#endif #ifndef __JUCE_PERFORMANCECOUNTER_JUCEHEADER__ #include "core/juce_PerformanceCounter.h" #endif @@ -128,9 +86,6 @@ #ifndef __JUCE_PLATFORMUTILITIES_JUCEHEADER__ #include "core/juce_PlatformUtilities.h" #endif -#ifndef __JUCE_RANDOM_JUCEHEADER__ - #include "core/juce_Random.h" -#endif #ifndef __JUCE_RELATIVETIME_JUCEHEADER__ #include "core/juce_RelativeTime.h" #endif @@ -227,12 +182,60 @@ #ifndef __JUCE_SUBREGIONSTREAM_JUCEHEADER__ #include "io/streams/juce_SubregionStream.h" #endif +#ifndef __JUCE_BIGINTEGER_JUCEHEADER__ + #include "maths/juce_BigInteger.h" +#endif +#ifndef __JUCE_EXPRESSION_JUCEHEADER__ + #include "maths/juce_Expression.h" +#endif +#ifndef __JUCE_MATHSFUNCTIONS_JUCEHEADER__ + #include "maths/juce_MathsFunctions.h" +#endif +#ifndef __JUCE_RANDOM_JUCEHEADER__ + #include "maths/juce_Random.h" +#endif +#ifndef __JUCE_RANGE_JUCEHEADER__ + #include "maths/juce_Range.h" +#endif +#ifndef __JUCE_ATOMIC_JUCEHEADER__ + #include "memory/juce_Atomic.h" +#endif +#ifndef __JUCE_BYTEORDER_JUCEHEADER__ + #include "memory/juce_ByteOrder.h" +#endif +#ifndef __JUCE_HEAPBLOCK_JUCEHEADER__ + #include "memory/juce_HeapBlock.h" +#endif +#ifndef __JUCE_LEAKEDOBJECTDETECTOR_JUCEHEADER__ + #include "memory/juce_LeakedObjectDetector.h" +#endif +#ifndef __JUCE_MEMORY_JUCEHEADER__ + #include "memory/juce_Memory.h" +#endif +#ifndef __JUCE_MEMORYBLOCK_JUCEHEADER__ + #include "memory/juce_MemoryBlock.h" +#endif +#ifndef __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__ + #include "memory/juce_ReferenceCountedObject.h" +#endif +#ifndef __JUCE_SCOPEDPOINTER_JUCEHEADER__ + #include "memory/juce_ScopedPointer.h" +#endif +#ifndef __JUCE_WEAKREFERENCE_JUCEHEADER__ + #include "memory/juce_WeakReference.h" +#endif #ifndef __JUCE_CHARACTERFUNCTIONS_JUCEHEADER__ #include "text/juce_CharacterFunctions.h" #endif +#ifndef __JUCE_IDENTIFIER_JUCEHEADER__ + #include "text/juce_Identifier.h" +#endif #ifndef __JUCE_LOCALISEDSTRINGS_JUCEHEADER__ #include "text/juce_LocalisedStrings.h" #endif +#ifndef __JUCE_NEWLINE_JUCEHEADER__ + #include "text/juce_NewLine.h" +#endif #ifndef __JUCE_STRING_JUCEHEADER__ #include "text/juce_String.h" #endif diff --git a/src/containers/juce_BigInteger.cpp b/src/maths/juce_BigInteger.cpp similarity index 95% rename from src/containers/juce_BigInteger.cpp rename to src/maths/juce_BigInteger.cpp index 4f0a3841a7..7b4b222d46 100644 --- a/src/containers/juce_BigInteger.cpp +++ b/src/maths/juce_BigInteger.cpp @@ -28,8 +28,8 @@ BEGIN_JUCE_NAMESPACE #include "juce_BigInteger.h" -#include "juce_MemoryBlock.h" -#include "../core/juce_Random.h" +#include "../memory/juce_MemoryBlock.h" +#include "juce_Random.h" //============================================================================== diff --git a/src/containers/juce_BigInteger.h b/src/maths/juce_BigInteger.h similarity index 97% rename from src/containers/juce_BigInteger.h rename to src/maths/juce_BigInteger.h index 2d9cf1d170..ae841f7bb6 100644 --- a/src/containers/juce_BigInteger.h +++ b/src/maths/juce_BigInteger.h @@ -27,7 +27,7 @@ #define __JUCE_BIGINTEGER_JUCEHEADER__ #include "../text/juce_String.h" -#include "juce_HeapBlock.h" +#include "../memory/juce_HeapBlock.h" class MemoryBlock; diff --git a/src/containers/juce_Expression.cpp b/src/maths/juce_Expression.cpp similarity index 96% rename from src/containers/juce_Expression.cpp rename to src/maths/juce_Expression.cpp index c512af51dd..ecaa29684a 100644 --- a/src/containers/juce_Expression.cpp +++ b/src/maths/juce_Expression.cpp @@ -28,7 +28,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_Expression.h" -#include "juce_ReferenceCountedArray.h" +#include "../containers/juce_ReferenceCountedArray.h" //============================================================================== diff --git a/src/containers/juce_Expression.h b/src/maths/juce_Expression.h similarity index 96% rename from src/containers/juce_Expression.h rename to src/maths/juce_Expression.h index 1b483a1561..04560ce0e6 100644 --- a/src/containers/juce_Expression.h +++ b/src/maths/juce_Expression.h @@ -26,9 +26,9 @@ #ifndef __JUCE_EXPRESSION_JUCEHEADER__ #define __JUCE_EXPRESSION_JUCEHEADER__ -#include "juce_ReferenceCountedObject.h" -#include "juce_Array.h" -#include "juce_ScopedPointer.h" +#include "../memory/juce_ReferenceCountedObject.h" +#include "../containers/juce_Array.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/core/juce_MathsFunctions.h b/src/maths/juce_MathsFunctions.h similarity index 100% rename from src/core/juce_MathsFunctions.h rename to src/maths/juce_MathsFunctions.h diff --git a/src/core/juce_Random.cpp b/src/maths/juce_Random.cpp similarity index 94% rename from src/core/juce_Random.cpp rename to src/maths/juce_Random.cpp index fc0210c71b..157858dcb6 100644 --- a/src/core/juce_Random.cpp +++ b/src/maths/juce_Random.cpp @@ -23,12 +23,12 @@ ============================================================================== */ -#include "juce_StandardHeader.h" +#include "../core/juce_StandardHeader.h" BEGIN_JUCE_NAMESPACE #include "juce_Random.h" -#include "juce_Time.h" +#include "../core/juce_Time.h" //============================================================================== diff --git a/src/core/juce_Random.h b/src/maths/juce_Random.h similarity index 96% rename from src/core/juce_Random.h rename to src/maths/juce_Random.h index 285df681cc..2960aec312 100644 --- a/src/core/juce_Random.h +++ b/src/maths/juce_Random.h @@ -26,7 +26,7 @@ #ifndef __JUCE_RANDOM_JUCEHEADER__ #define __JUCE_RANDOM_JUCEHEADER__ -#include "../containers/juce_BigInteger.h" +#include "juce_BigInteger.h" //============================================================================== diff --git a/src/containers/juce_Range.h b/src/maths/juce_Range.h similarity index 100% rename from src/containers/juce_Range.h rename to src/maths/juce_Range.h diff --git a/src/core/juce_Atomic.h b/src/memory/juce_Atomic.h similarity index 100% rename from src/core/juce_Atomic.h rename to src/memory/juce_Atomic.h diff --git a/src/core/juce_ByteOrder.h b/src/memory/juce_ByteOrder.h similarity index 100% rename from src/core/juce_ByteOrder.h rename to src/memory/juce_ByteOrder.h diff --git a/src/containers/juce_HeapBlock.h b/src/memory/juce_HeapBlock.h similarity index 100% rename from src/containers/juce_HeapBlock.h rename to src/memory/juce_HeapBlock.h diff --git a/src/core/juce_LeakedObjectDetector.h b/src/memory/juce_LeakedObjectDetector.h similarity index 100% rename from src/core/juce_LeakedObjectDetector.h rename to src/memory/juce_LeakedObjectDetector.h diff --git a/src/core/juce_Memory.h b/src/memory/juce_Memory.h similarity index 100% rename from src/core/juce_Memory.h rename to src/memory/juce_Memory.h diff --git a/src/containers/juce_MemoryBlock.cpp b/src/memory/juce_MemoryBlock.cpp similarity index 100% rename from src/containers/juce_MemoryBlock.cpp rename to src/memory/juce_MemoryBlock.cpp diff --git a/src/containers/juce_MemoryBlock.h b/src/memory/juce_MemoryBlock.h similarity index 97% rename from src/containers/juce_MemoryBlock.h rename to src/memory/juce_MemoryBlock.h index 594516ed9c..80493a300c 100644 --- a/src/containers/juce_MemoryBlock.h +++ b/src/memory/juce_MemoryBlock.h @@ -27,7 +27,7 @@ #define __JUCE_MEMORYBLOCK_JUCEHEADER__ #include "../text/juce_String.h" -#include "juce_HeapBlock.h" +#include "../memory/juce_HeapBlock.h" //============================================================================== diff --git a/src/containers/juce_ReferenceCountedObject.h b/src/memory/juce_ReferenceCountedObject.h similarity index 96% rename from src/containers/juce_ReferenceCountedObject.h rename to src/memory/juce_ReferenceCountedObject.h index 915020f779..b2826f1882 100644 --- a/src/containers/juce_ReferenceCountedObject.h +++ b/src/memory/juce_ReferenceCountedObject.h @@ -26,7 +26,7 @@ #ifndef __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__ #define __JUCE_REFERENCECOUNTEDOBJECT_JUCEHEADER__ -#include "../core/juce_Atomic.h" +#include "juce_Atomic.h" //============================================================================== diff --git a/src/containers/juce_ScopedPointer.h b/src/memory/juce_ScopedPointer.h similarity index 100% rename from src/containers/juce_ScopedPointer.h rename to src/memory/juce_ScopedPointer.h diff --git a/src/containers/juce_WeakReference.h b/src/memory/juce_WeakReference.h similarity index 83% rename from src/containers/juce_WeakReference.h rename to src/memory/juce_WeakReference.h index 26b4ae26c8..2d00d6d231 100644 --- a/src/containers/juce_WeakReference.h +++ b/src/memory/juce_WeakReference.h @@ -34,9 +34,9 @@ This class acts as a pointer which will automatically become null if the object to which it points is deleted. - To accomplish this, the source object needs to implement a couple of minor tricks. It - must provide a getWeakReference() method and use a WeakReference::Master object to store - a master pointer to itself. It must also clear the pointer when it's getting destroyed. + To accomplish this, the source object needs to cooperate by performing a couple of simple tasks. + It must provide a getWeakReference() method and embed a WeakReference::Master object, which stores + a shared pointer object. It must also clear this master pointer when it's getting deleted. E.g. @code @@ -46,26 +46,37 @@ MyObject() { // If you're planning on using your WeakReferences in a multi-threaded situation, you may choose - // to call getWeakReference() here in the constructor, to avoid rare race conditions that could - // occur if multiple threads tried to be the first to call it. + // to call getWeakReference() here in the constructor, which will pre-initialise it, avoiding an + // (extremely unlikely) race condition that could occur if multiple threads overlap while making + // the first call to getWeakReference(). } ~MyObject() { - // this will zero all the references - you need to call this in your destructor. + // This will zero all the references - you need to call this in your destructor. masterReference.clear(); } - // Your object must provide a method that matches this signature, and which - // returns the result of the WeakReference::Master::operator() method. - const WeakReference::SharedRef& getWeakReference() + // Your object must provide a method that looks pretty much identical to this (except + // for the templated class name, of course). + const WeakReference::SharedRef& getWeakReference() { return masterReference (this); } private: + // You need to embed one of these inside your object. It can be private. WeakReference::Master masterReference; }; + + // Here's an example of using a pointer.. + + MyObject* n = new MyObject(); + WeakReference myObjectRef = n; + + MyObject* pointer1 = myObjectRef; // returns a valid pointer to 'n' + delete n; + MyObject* pointer2 = myObjectRef; // returns a null pointer @endcode @see WeakReference::Master diff --git a/src/native/juce_linux_NativeCode.cpp b/src/native/juce_linux_NativeCode.cpp index 745b530bdd..3a18ef43f2 100644 --- a/src/native/juce_linux_NativeCode.cpp +++ b/src/native/juce_linux_NativeCode.cpp @@ -43,10 +43,11 @@ BEGIN_JUCE_NAMESPACE //============================================================================== #include "../core/juce_SystemStats.h" #include "../core/juce_Time.h" -#include "../core/juce_Random.h" +#include "../maths/juce_Random.h" #include "../core/juce_Singleton.h" #include "../core/juce_PlatformUtilities.h" -#include "../containers/juce_MemoryBlock.h" +#include "../memory/juce_MemoryBlock.h" +#include "../containers/juce_ReferenceCountedArray.h" #include "../utilities/juce_DeletedAtShutdown.h" #include "../utilities/juce_SystemClipboard.h" #include "../text/juce_StringArray.h" diff --git a/src/native/juce_mac_NativeCode.mm b/src/native/juce_mac_NativeCode.mm index ba30921b7e..af6f09d60d 100644 --- a/src/native/juce_mac_NativeCode.mm +++ b/src/native/juce_mac_NativeCode.mm @@ -42,7 +42,7 @@ BEGIN_JUCE_NAMESPACE //============================================================================== #include "../core/juce_Singleton.h" -#include "../core/juce_Random.h" +#include "../maths/juce_Random.h" #include "../core/juce_SystemStats.h" #include "../threads/juce_Process.h" #include "../threads/juce_Thread.h" diff --git a/src/native/juce_win32_NativeCode.cpp b/src/native/juce_win32_NativeCode.cpp index 28574c2821..209e2a7f83 100644 --- a/src/native/juce_win32_NativeCode.cpp +++ b/src/native/juce_win32_NativeCode.cpp @@ -43,7 +43,7 @@ BEGIN_JUCE_NAMESPACE //============================================================================== #include "../core/juce_Singleton.h" -#include "../core/juce_Random.h" +#include "../maths/juce_Random.h" #include "../core/juce_SystemStats.h" #include "../threads/juce_Process.h" #include "../threads/juce_Thread.h" diff --git a/src/native/windows/juce_win32_Windowing.cpp b/src/native/windows/juce_win32_Windowing.cpp index 1699ed4cdf..638d1851fd 100644 --- a/src/native/windows/juce_win32_Windowing.cpp +++ b/src/native/windows/juce_win32_Windowing.cpp @@ -2237,9 +2237,8 @@ private: case SC_MAXIMIZE: if (! sendInputAttemptWhenModalMessage()) - return 0; + setFullScreen (true); - setFullScreen (true); return 0; case SC_MINIMIZE: diff --git a/src/containers/juce_Identifier.cpp b/src/text/juce_Identifier.cpp similarity index 100% rename from src/containers/juce_Identifier.cpp rename to src/text/juce_Identifier.cpp diff --git a/src/containers/juce_Identifier.h b/src/text/juce_Identifier.h similarity index 100% rename from src/containers/juce_Identifier.h rename to src/text/juce_Identifier.h diff --git a/src/text/juce_NewLine.h b/src/text/juce_NewLine.h new file mode 100644 index 0000000000..05d8d655df --- /dev/null +++ b/src/text/juce_NewLine.h @@ -0,0 +1,75 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-10 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online at www.gnu.org/licenses. + + JUCE is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + ------------------------------------------------------------------------------ + + To release a closed-source product which uses JUCE, commercial licenses are + available: visit www.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#ifndef __JUCE_NEWLINE_JUCEHEADER__ +#define __JUCE_NEWLINE_JUCEHEADER__ + + +//============================================================================== +/** This class is used for represent a new-line character sequence. + + To write a new-line to a stream, you can use the predefined 'newLine' variable, e.g. + @code + myOutputStream << "Hello World" << newLine << newLine; + @endcode + + The exact character sequence that will be used for the new-line can be set and + retrieved with OutputStream::setNewLineString() and OutputStream::getNewLineString(). +*/ +class JUCE_API NewLine +{ +public: + /** Returns the default new-line sequence that the library uses. + @see OutputStream::setNewLineString() + */ + static const char* getDefault() throw() { return "\r\n"; } + + /** Returns the default new-line sequence that the library uses. + @see getDefault() + */ + operator const String() const { return getDefault(); } +}; + +//============================================================================== +/** An predefined object representing a new-line, which can be written to a string or stream. + + To write a new-line to a stream, you can use the predefined 'newLine' variable like this: + @code + myOutputStream << "Hello World" << newLine << newLine; + @endcode +*/ +extern NewLine newLine; + +//============================================================================== +/** Writes a new-line sequence to a string. + You can use the predefined object 'newLine' to invoke this, e.g. + @code + myString << "Hello World" << newLine << newLine; + @endcode +*/ +JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, const NewLine&); + + +#endif // __JUCE_NEWLINE_JUCEHEADER__ diff --git a/src/text/juce_String.cpp b/src/text/juce_String.cpp index e9e60b3561..c76427df35 100644 --- a/src/text/juce_String.cpp +++ b/src/text/juce_String.cpp @@ -35,7 +35,7 @@ BEGIN_JUCE_NAMESPACE #include "juce_String.h" -#include "../core/juce_Atomic.h" +#include "../memory/juce_Atomic.h" #include "../io/streams/juce_OutputStream.h" #if JUCE_MSVC @@ -2203,7 +2203,7 @@ void String::Concatenator::append (const String& s) #if JUCE_UNIT_TESTS #include "../utilities/juce_UnitTest.h" -#include "../core/juce_Random.h" +#include "../maths/juce_Random.h" class StringTests : public UnitTest { diff --git a/src/text/juce_String.h b/src/text/juce_String.h index 0b8b0fc7d3..19aff2aa5b 100644 --- a/src/text/juce_String.h +++ b/src/text/juce_String.h @@ -1145,47 +1145,4 @@ JUCE_API std::basic_ostream & JUCE_CALLTYPE operator<< (std::basi JUCE_API OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const String& text); -//============================================================================== -/** This class is used for represent a new-line character sequence. - - To write a new-line to a stream, you can use the predefined 'newLine' variable, e.g. - @code - myOutputStream << "Hello World" << newLine << newLine; - @endcode - - The exact character sequence that will be used for the new-line can be set and - retrieved with OutputStream::setNewLineString() and OutputStream::getNewLineString(). -*/ -class NewLine -{ -public: - /** Returns the default new-line sequence that the library uses. - @see OutputStream::setNewLineString() - */ - static const char* getDefault() throw() { return "\r\n"; } - - /** Returns the default new-line sequence that the library uses. - @see getDefault() - */ - operator const String() const { return getDefault(); } -}; - -/** An object representing a new-line, which can be written to a string or stream. - - To write a new-line to a stream, you can use the predefined 'newLine' variable like this: - @code - myOutputStream << "Hello World" << newLine << newLine; - @endcode -*/ -extern NewLine newLine; - -/** Writes a new-line sequence to a string. - You can use the predefined object 'newLine' to invoke this, e.g. - @code - myString << "Hello World" << newLine << newLine; - @endcode -*/ -JUCE_API String& JUCE_CALLTYPE operator<< (String& string1, const NewLine&); - - #endif // __JUCE_STRING_JUCEHEADER__ diff --git a/src/text/juce_XmlDocument.h b/src/text/juce_XmlDocument.h index b941ad240d..a868b5a6d2 100644 --- a/src/text/juce_XmlDocument.h +++ b/src/text/juce_XmlDocument.h @@ -30,7 +30,7 @@ #include "juce_StringArray.h" #include "../io/files/juce_File.h" #include "../io/streams/juce_InputSource.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/text/juce_XmlElement.cpp b/src/text/juce_XmlElement.cpp index 6929ee322f..a60e7d89c1 100644 --- a/src/text/juce_XmlElement.cpp +++ b/src/text/juce_XmlElement.cpp @@ -31,7 +31,7 @@ BEGIN_JUCE_NAMESPACE #include "../io/streams/juce_MemoryOutputStream.h" #include "../io/files/juce_TemporaryFile.h" #include "../threads/juce_Thread.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== diff --git a/src/threads/juce_InterProcessLock.h b/src/threads/juce_InterProcessLock.h index 1a61caa697..4639daf414 100644 --- a/src/threads/juce_InterProcessLock.h +++ b/src/threads/juce_InterProcessLock.h @@ -27,7 +27,7 @@ #define __JUCE_INTERPROCESSLOCK_JUCEHEADER__ #include "../text/juce_String.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" //============================================================================== /** diff --git a/src/utilities/juce_PropertiesFile.cpp b/src/utilities/juce_PropertiesFile.cpp index 1b31ebfb2e..269e0706f8 100644 --- a/src/utilities/juce_PropertiesFile.cpp +++ b/src/utilities/juce_PropertiesFile.cpp @@ -35,7 +35,7 @@ BEGIN_JUCE_NAMESPACE #include "../io/streams/juce_SubregionStream.h" #include "../io/streams/juce_GZIPDecompressorInputStream.h" #include "../io/streams/juce_GZIPCompressorOutputStream.h" -#include "../containers/juce_ScopedPointer.h" +#include "../memory/juce_ScopedPointer.h" #include "../core/juce_SystemStats.h" #include "../threads/juce_InterProcessLock.h" #include "../threads/juce_ScopedLock.h"