Browse Source

Added selection to treeview persistent state. Minor optimisations to AudioThumbnail. Added FTP password support for win32 networking. Cleaned up some file dependencies and altered some return value types to allow better c++0x forwarding behaviour.

tags/2021-05-28
Julian Storer 14 years ago
parent
commit
67e22bbb56
100 changed files with 11657 additions and 11562 deletions
  1. +6
    -0
      Builds/Linux/Makefile
  2. +6
    -0
      Builds/MacOSX/Juce.xcodeproj/project.pbxproj
  3. +2
    -0
      Builds/VisualStudio2005/Juce.vcproj
  4. +2
    -0
      Builds/VisualStudio2008/Juce.vcproj
  5. +2
    -0
      Builds/VisualStudio2008_DLL/Juce.vcproj
  6. +2
    -0
      Builds/VisualStudio2010/Juce.vcxproj
  7. +6
    -0
      Builds/VisualStudio2010/Juce.vcxproj.filters
  8. +6
    -0
      Builds/iOS/Juce.xcodeproj/project.pbxproj
  9. +4
    -0
      Juce.jucer
  10. +1
    -0
      amalgamation/juce_amalgamated_template.cpp
  11. +1
    -1
      extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.cpp
  12. +680
    -663
      juce_amalgamated.cpp
  13. +10472
    -10449
      juce_amalgamated.h
  14. +1
    -1
      src/application/juce_ApplicationCommandManager.cpp
  15. +1
    -1
      src/application/juce_ApplicationCommandManager.h
  16. +35
    -31
      src/audio/audio_file_formats/juce_AudioThumbnail.cpp
  17. +6
    -6
      src/audio/audio_file_formats/juce_WavAudioFormat.cpp
  18. +6
    -6
      src/audio/audio_file_formats/juce_WavAudioFormat.h
  19. +1
    -5
      src/audio/devices/juce_AudioDeviceManager.cpp
  20. +3
    -2
      src/audio/devices/juce_AudioDeviceManager.h
  21. +0
    -1
      src/audio/devices/juce_AudioIODevice.h
  22. +1
    -1
      src/audio/devices/juce_AudioIODeviceType.h
  23. +5
    -10
      src/audio/midi/juce_MidiFile.cpp
  24. +40
    -43
      src/audio/midi/juce_MidiMessage.cpp
  25. +47
    -47
      src/audio/midi/juce_MidiMessage.h
  26. +1
    -0
      src/audio/midi/juce_MidiMessageCollector.h
  27. +1
    -1
      src/audio/plugin_host/juce_PluginDirectoryScanner.cpp
  28. +1
    -1
      src/audio/plugin_host/juce_PluginDirectoryScanner.h
  29. +2
    -1
      src/audio/synthesisers/juce_Synthesiser.cpp
  30. +1
    -1
      src/containers/juce_DynamicObject.cpp
  31. +1
    -1
      src/containers/juce_HashMap.h
  32. +2
    -2
      src/containers/juce_NamedValueSet.cpp
  33. +2
    -2
      src/containers/juce_NamedValueSet.h
  34. +2
    -2
      src/containers/juce_PropertySet.cpp
  35. +2
    -2
      src/containers/juce_PropertySet.h
  36. +3
    -3
      src/containers/juce_Value.cpp
  37. +3
    -3
      src/containers/juce_Value.h
  38. +3
    -3
      src/containers/juce_ValueTree.cpp
  39. +3
    -3
      src/containers/juce_ValueTree.h
  40. +59
    -57
      src/containers/juce_Variant.cpp
  41. +26
    -37
      src/containers/juce_Variant.h
  42. +1
    -1
      src/core/juce_FileLogger.h
  43. +1
    -0
      src/core/juce_Initialisation.cpp
  44. +3
    -3
      src/core/juce_RelativeTime.cpp
  45. +3
    -3
      src/core/juce_RelativeTime.h
  46. +3
    -3
      src/core/juce_Result.cpp
  47. +4
    -4
      src/core/juce_Result.h
  48. +1
    -1
      src/core/juce_StandardHeader.h
  49. +14
    -14
      src/core/juce_Time.cpp
  50. +16
    -16
      src/core/juce_Time.h
  51. +1
    -1
      src/core/juce_Uuid.cpp
  52. +1
    -1
      src/core/juce_Uuid.h
  53. +5
    -6
      src/cryptography/juce_MD5.cpp
  54. +3
    -3
      src/cryptography/juce_MD5.h
  55. +4
    -4
      src/cryptography/juce_Primes.cpp
  56. +4
    -4
      src/cryptography/juce_Primes.h
  57. +2
    -2
      src/cryptography/juce_RSAKey.cpp
  58. +2
    -2
      src/cryptography/juce_RSAKey.h
  59. +1
    -0
      src/events/juce_InterprocessConnection.cpp
  60. +1
    -0
      src/events/juce_InterprocessConnection.h
  61. +2
    -2
      src/events/juce_Message.cpp
  62. +1
    -0
      src/events/juce_MessageListener.cpp
  63. +2
    -1
      src/events/juce_MessageManager.cpp
  64. +3
    -3
      src/events/juce_MessageManager.h
  65. +1
    -2
      src/events/juce_Timer.cpp
  66. +1
    -1
      src/gui/components/buttons/juce_HyperlinkButton.cpp
  67. +1
    -1
      src/gui/components/buttons/juce_HyperlinkButton.h
  68. +4
    -4
      src/gui/components/buttons/juce_ImageButton.cpp
  69. +4
    -4
      src/gui/components/buttons/juce_ImageButton.h
  70. +4
    -4
      src/gui/components/controls/juce_ComboBox.cpp
  71. +4
    -6
      src/gui/components/controls/juce_ComboBox.h
  72. +1
    -1
      src/gui/components/controls/juce_ImageComponent.cpp
  73. +1
    -1
      src/gui/components/controls/juce_ImageComponent.h
  74. +5
    -5
      src/gui/components/controls/juce_TextEditor.cpp
  75. +3
    -3
      src/gui/components/controls/juce_TextEditor.h
  76. +34
    -5
      src/gui/components/controls/juce_TreeView.cpp
  77. +9
    -5
      src/gui/components/controls/juce_TreeView.h
  78. +1
    -1
      src/gui/components/filebrowser/juce_DirectoryContentsList.cpp
  79. +1
    -1
      src/gui/components/filebrowser/juce_DirectoryContentsList.h
  80. +3
    -3
      src/gui/components/filebrowser/juce_FileBrowserComponent.cpp
  81. +3
    -3
      src/gui/components/filebrowser/juce_FileBrowserComponent.h
  82. +1
    -1
      src/gui/components/filebrowser/juce_FileChooser.cpp
  83. +1
    -1
      src/gui/components/filebrowser/juce_FileChooser.h
  84. +1
    -1
      src/gui/components/filebrowser/juce_FileListComponent.cpp
  85. +1
    -1
      src/gui/components/filebrowser/juce_FileTreeComponent.cpp
  86. +2
    -2
      src/gui/components/filebrowser/juce_FilenameComponent.cpp
  87. +2
    -2
      src/gui/components/filebrowser/juce_FilenameComponent.h
  88. +13
    -13
      src/gui/components/juce_Component.cpp
  89. +16
    -16
      src/gui/components/juce_Component.h
  90. +0
    -1
      src/gui/components/juce_Desktop.h
  91. +2
    -2
      src/gui/components/keyboard/juce_KeyPress.cpp
  92. +2
    -2
      src/gui/components/keyboard/juce_KeyPress.h
  93. +1
    -1
      src/gui/components/layout/juce_TabbedButtonBar.cpp
  94. +1
    -1
      src/gui/components/layout/juce_TabbedButtonBar.h
  95. +1
    -1
      src/gui/components/layout/juce_TabbedComponent.cpp
  96. +1
    -1
      src/gui/components/layout/juce_TabbedComponent.h
  97. +2
    -2
      src/gui/components/mouse/juce_MouseEvent.cpp
  98. +2
    -2
      src/gui/components/mouse/juce_MouseEvent.h
  99. +1
    -1
      src/gui/components/positioning/juce_RelativeCoordinate.cpp
  100. +1
    -1
      src/gui/components/positioning/juce_RelativeCoordinate.h

+ 6
- 0
Builds/Linux/Makefile View File

@@ -253,6 +253,7 @@ OBJECTS := \
$(OBJDIR)/juce_SVGParser_b79416c5.o \
$(OBJDIR)/juce_DropShadowEffect_da52d75.o \
$(OBJDIR)/juce_GlowEffect_c0959893.o \
$(OBJDIR)/juce_CustomTypeface_b93a3eff.o \
$(OBJDIR)/juce_Font_fa88db26.o \
$(OBJDIR)/juce_GlyphArrangement_f0797295.o \
$(OBJDIR)/juce_TextLayout_d18f700e.o \
@@ -1455,6 +1456,11 @@ $(OBJDIR)/juce_GlowEffect_c0959893.o: ../../src/gui/graphics/effects/juce_GlowEf
@echo "Compiling juce_GlowEffect.cpp"
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
$(OBJDIR)/juce_CustomTypeface_b93a3eff.o: ../../src/gui/graphics/fonts/juce_CustomTypeface.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling juce_CustomTypeface.cpp"
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
$(OBJDIR)/juce_Font_fa88db26.o: ../../src/gui/graphics/fonts/juce_Font.cpp
-@mkdir -p $(OBJDIR)
@echo "Compiling juce_Font.cpp"


+ 6
- 0
Builds/MacOSX/Juce.xcodeproj/project.pbxproj View File

@@ -222,6 +222,7 @@
645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; };
38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; };
E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; };
60E1742796432D042C59B9B3 = { isa = PBXBuildFile; fileRef = BA17B023595ECD8166A231D1; };
B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; };
EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; };
803FFCA3DAC0C004A80143B4 = { isa = PBXBuildFile; fileRef = 91CB423DBC5F3CBEDD9CF2EF; };
@@ -859,6 +860,8 @@
CB649686575473223C859482 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GlowEffect.cpp; path = ../../src/gui/graphics/effects/juce_GlowEffect.cpp; sourceTree = SOURCE_ROOT; };
FD1FA4ABB4226372235643E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GlowEffect.h; path = ../../src/gui/graphics/effects/juce_GlowEffect.h; sourceTree = SOURCE_ROOT; };
18DB9BD10F140F132A3279C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageEffectFilter.h; path = ../../src/gui/graphics/effects/juce_ImageEffectFilter.h; sourceTree = SOURCE_ROOT; };
BA17B023595ECD8166A231D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CustomTypeface.cpp; path = ../../src/gui/graphics/fonts/juce_CustomTypeface.cpp; sourceTree = SOURCE_ROOT; };
6B4E90767D784246EC4E1944 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CustomTypeface.h; path = ../../src/gui/graphics/fonts/juce_CustomTypeface.h; sourceTree = SOURCE_ROOT; };
78068AA59A5DCFCCAAEA79D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Font.cpp; path = ../../src/gui/graphics/fonts/juce_Font.cpp; sourceTree = SOURCE_ROOT; };
0401EA0E883CCAAAC6960A27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Font.h; path = ../../src/gui/graphics/fonts/juce_Font.h; sourceTree = SOURCE_ROOT; };
61D06B694603F608CDA0703B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GlyphArrangement.cpp; path = ../../src/gui/graphics/fonts/juce_GlyphArrangement.cpp; sourceTree = SOURCE_ROOT; };
@@ -1663,6 +1666,8 @@
FD1FA4ABB4226372235643E4,
18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = "<group>"; };
58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = (
BA17B023595ECD8166A231D1,
6B4E90767D784246EC4E1944,
78068AA59A5DCFCCAAEA79D0,
0401EA0E883CCAAAC6960A27,
61D06B694603F608CDA0703B,
@@ -2260,6 +2265,7 @@
645AF66C048A4815F5A8ECDD,
38EFE824E76B3BB99824C265,
E23C5C51305DC7CE30E4DAB7,
60E1742796432D042C59B9B3,
B92F53BABB6A9AC8348B001E,
EBC3AA015D24C62FA0307F51,
803FFCA3DAC0C004A80143B4,


+ 2
- 0
Builds/VisualStudio2005/Juce.vcproj View File

@@ -736,6 +736,8 @@
<File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/>
</Filter>
<Filter Name="fonts">
<File RelativePath="..\..\src\gui\graphics\fonts\juce_CustomTypeface.cpp"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_CustomTypeface.h"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.cpp"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/>


+ 2
- 0
Builds/VisualStudio2008/Juce.vcproj View File

@@ -736,6 +736,8 @@
<File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/>
</Filter>
<Filter Name="fonts">
<File RelativePath="..\..\src\gui\graphics\fonts\juce_CustomTypeface.cpp"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_CustomTypeface.h"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.cpp"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/>


+ 2
- 0
Builds/VisualStudio2008_DLL/Juce.vcproj View File

@@ -738,6 +738,8 @@
<File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/>
</Filter>
<Filter Name="fonts">
<File RelativePath="..\..\src\gui\graphics\fonts\juce_CustomTypeface.cpp"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_CustomTypeface.h"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.cpp"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/>
<File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/>


+ 2
- 0
Builds/VisualStudio2010/Juce.vcxproj View File

@@ -336,6 +336,7 @@
<ClCompile Include="..\..\src\gui\graphics\drawables\juce_SVGParser.cpp"/>
<ClCompile Include="..\..\src\gui\graphics\effects\juce_DropShadowEffect.cpp"/>
<ClCompile Include="..\..\src\gui\graphics\effects\juce_GlowEffect.cpp"/>
<ClCompile Include="..\..\src\gui\graphics\fonts\juce_CustomTypeface.cpp"/>
<ClCompile Include="..\..\src\gui\graphics\fonts\juce_Font.cpp"/>
<ClCompile Include="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/>
<ClCompile Include="..\..\src\gui\graphics\fonts\juce_TextLayout.cpp"/>
@@ -722,6 +723,7 @@
<ClInclude Include="..\..\src\gui\graphics\effects\juce_DropShadowEffect.h"/>
<ClInclude Include="..\..\src\gui\graphics\effects\juce_GlowEffect.h"/>
<ClInclude Include="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/>
<ClInclude Include="..\..\src\gui\graphics\fonts\juce_CustomTypeface.h"/>
<ClInclude Include="..\..\src\gui\graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\src\gui\graphics\fonts\juce_TextLayout.h"/>


+ 6
- 0
Builds/VisualStudio2010/Juce.vcxproj.filters View File

@@ -865,6 +865,9 @@
<ClCompile Include="..\..\src\gui\graphics\effects\juce_GlowEffect.cpp">
<Filter>Juce\Source\gui\graphics\effects</Filter>
</ClCompile>
<ClCompile Include="..\..\src\gui\graphics\fonts\juce_CustomTypeface.cpp">
<Filter>Juce\Source\gui\graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\src\gui\graphics\fonts\juce_Font.cpp">
<Filter>Juce\Source\gui\graphics\fonts</Filter>
</ClCompile>
@@ -2097,6 +2100,9 @@
<ClInclude Include="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h">
<Filter>Juce\Source\gui\graphics\effects</Filter>
</ClInclude>
<ClInclude Include="..\..\src\gui\graphics\fonts\juce_CustomTypeface.h">
<Filter>Juce\Source\gui\graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\src\gui\graphics\fonts\juce_Font.h">
<Filter>Juce\Source\gui\graphics\fonts</Filter>
</ClInclude>


+ 6
- 0
Builds/iOS/Juce.xcodeproj/project.pbxproj View File

@@ -222,6 +222,7 @@
645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; };
38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; };
E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; };
60E1742796432D042C59B9B3 = { isa = PBXBuildFile; fileRef = BA17B023595ECD8166A231D1; };
B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; };
EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; };
803FFCA3DAC0C004A80143B4 = { isa = PBXBuildFile; fileRef = 91CB423DBC5F3CBEDD9CF2EF; };
@@ -859,6 +860,8 @@
CB649686575473223C859482 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GlowEffect.cpp; path = ../../src/gui/graphics/effects/juce_GlowEffect.cpp; sourceTree = SOURCE_ROOT; };
FD1FA4ABB4226372235643E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GlowEffect.h; path = ../../src/gui/graphics/effects/juce_GlowEffect.h; sourceTree = SOURCE_ROOT; };
18DB9BD10F140F132A3279C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageEffectFilter.h; path = ../../src/gui/graphics/effects/juce_ImageEffectFilter.h; sourceTree = SOURCE_ROOT; };
BA17B023595ECD8166A231D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_CustomTypeface.cpp; path = ../../src/gui/graphics/fonts/juce_CustomTypeface.cpp; sourceTree = SOURCE_ROOT; };
6B4E90767D784246EC4E1944 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CustomTypeface.h; path = ../../src/gui/graphics/fonts/juce_CustomTypeface.h; sourceTree = SOURCE_ROOT; };
78068AA59A5DCFCCAAEA79D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Font.cpp; path = ../../src/gui/graphics/fonts/juce_Font.cpp; sourceTree = SOURCE_ROOT; };
0401EA0E883CCAAAC6960A27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Font.h; path = ../../src/gui/graphics/fonts/juce_Font.h; sourceTree = SOURCE_ROOT; };
61D06B694603F608CDA0703B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GlyphArrangement.cpp; path = ../../src/gui/graphics/fonts/juce_GlyphArrangement.cpp; sourceTree = SOURCE_ROOT; };
@@ -1663,6 +1666,8 @@
FD1FA4ABB4226372235643E4,
18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = "<group>"; };
58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = (
BA17B023595ECD8166A231D1,
6B4E90767D784246EC4E1944,
78068AA59A5DCFCCAAEA79D0,
0401EA0E883CCAAAC6960A27,
61D06B694603F608CDA0703B,
@@ -2264,6 +2269,7 @@
645AF66C048A4815F5A8ECDD,
38EFE824E76B3BB99824C265,
E23C5C51305DC7CE30E4DAB7,
60E1742796432D042C59B9B3,
B92F53BABB6A9AC8348B001E,
EBC3AA015D24C62FA0307F51,
803FFCA3DAC0C004A80143B4,


+ 4
- 0
Juce.jucer View File

@@ -1092,6 +1092,10 @@
file="src/gui/graphics/effects/juce_ImageEffectFilter.h"/>
</GROUP>
<GROUP id="nw92NleR1" name="fonts">
<FILE id="BQmnc2" name="juce_CustomTypeface.cpp" compile="1" resource="0"
file="src/gui/graphics/fonts/juce_CustomTypeface.cpp"/>
<FILE id="qq3mPn" name="juce_CustomTypeface.h" compile="0" resource="0"
file="src/gui/graphics/fonts/juce_CustomTypeface.h"/>
<FILE id="2zj67pVi" name="juce_Font.cpp" compile="1" resource="0" file="src/gui/graphics/fonts/juce_Font.cpp"/>
<FILE id="Ln7yTYyJY" name="juce_Font.h" compile="0" resource="0" file="src/gui/graphics/fonts/juce_Font.h"/>
<FILE id="rVpLDxysZ" name="juce_GlyphArrangement.cpp" compile="1" resource="0"


+ 1
- 0
amalgamation/juce_amalgamated_template.cpp View File

@@ -365,6 +365,7 @@
#include "../src/gui/graphics/fonts/juce_GlyphArrangement.cpp"
#include "../src/gui/graphics/fonts/juce_TextLayout.cpp"
#include "../src/gui/graphics/fonts/juce_Typeface.cpp"
#include "../src/gui/graphics/fonts/juce_CustomTypeface.cpp"
#include "../src/gui/graphics/geometry/juce_AffineTransform.cpp"
#include "../src/gui/graphics/geometry/juce_Path.cpp"
#include "../src/gui/graphics/geometry/juce_PathIterator.cpp"


+ 1
- 1
extras/Introjucer/Source/Project/jucer_ProjectTreeViewBase.cpp View File

@@ -360,7 +360,7 @@ void ProjectTreeViewBase::itemDropped (const DragAndDropTarget::SourceDetails& d
moveSelectedItemsTo (selectedNodes, insertIndex);
if (oldOpenness != nullptr)
tree->restoreOpennessState (*oldOpenness);
tree->restoreOpennessState (*oldOpenness, false);
}
}


+ 680
- 663
juce_amalgamated.cpp
File diff suppressed because it is too large
View File


+ 10472
- 10449
juce_amalgamated.h
File diff suppressed because it is too large
View File


+ 1
- 1
src/application/juce_ApplicationCommandManager.cpp View File

@@ -154,7 +154,7 @@ const String ApplicationCommandManager::getDescriptionOfCommand (const CommandID
: String::empty;
}
const StringArray ApplicationCommandManager::getCommandCategories() const
StringArray ApplicationCommandManager::getCommandCategories() const
{
StringArray s;


+ 1
- 1
src/application/juce_ApplicationCommandManager.h View File

@@ -194,7 +194,7 @@ public:
@see getCommandsInCategory()
*/
const StringArray getCommandCategories() const;
StringArray getCommandCategories() const;
/** Returns a list of all the command UIDs in a particular category.


+ 35
- 31
src/audio/audio_file_formats/juce_AudioThumbnail.cpp View File

@@ -30,55 +30,57 @@ BEGIN_JUCE_NAMESPACE
#include "juce_AudioThumbnail.h"
#include "juce_AudioThumbnailCache.h"
#include "../../events/juce_MessageManager.h"
#include "../../io/streams/juce_BufferedInputStream.h"
//==============================================================================
struct AudioThumbnail::MinMaxValue
{
char minValue;
char maxValue;
MinMaxValue() noexcept : minValue (0), maxValue (0)
MinMaxValue() noexcept
{
values[0] = 0;
values[1] = 0;
}
inline void set (const char newMin, const char newMax) noexcept
{
minValue = newMin;
maxValue = newMax;
values[0] = newMin;
values[1] = newMax;
}
inline char getMinValue() const noexcept { return values[0]; }
inline char getMaxValue() const noexcept { return values[1]; }
inline void setFloat (const float newMin, const float newMax) noexcept
{
minValue = (char) jlimit (-128, 127, roundFloatToInt (newMin * 127.0f));
maxValue = (char) jlimit (-128, 127, roundFloatToInt (newMax * 127.0f));
values[0] = (char) jlimit (-128, 127, roundFloatToInt (newMin * 127.0f));
values[1] = (char) jlimit (-128, 127, roundFloatToInt (newMax * 127.0f));
if (maxValue == minValue)
maxValue = (char) jmin (127, maxValue + 1);
if (values[0] == values[1])
{
if (values[1] == 127)
values[0]--;
else
values[1]++;
}
}
inline bool isNonZero() const noexcept
{
return maxValue > minValue;
return values[1] > values[0];
}
inline int getPeak() const noexcept
{
return jmax (std::abs ((int) minValue),
std::abs ((int) maxValue));
return jmax (std::abs ((int) values[0]),
std::abs ((int) values[1]));
}
inline void read (InputStream& input)
{
minValue = input.readByte();
maxValue = input.readByte();
}
inline void read (InputStream& input) { input.read (values, 2); }
inline void write (OutputStream& output) { output.write (values, 2); }
inline void write (OutputStream& output)
{
output.writeByte (minValue);
output.writeByte (maxValue);
}
private:
char values[2];
};
//==============================================================================
@@ -294,8 +296,8 @@ public:
{
const MinMaxValue& v = data.getReference (startSample);
if (v.minValue < mn) mn = v.minValue;
if (v.maxValue > mx) mx = v.maxValue;
if (v.getMinValue() < mn) mn = v.getMinValue();
if (v.getMaxValue() > mx) mx = v.getMaxValue();
++startSample;
}
@@ -397,8 +399,8 @@ public:
for (int w = clip.getWidth(); --w >= 0;)
{
if (cacheData->isNonZero())
g.drawVerticalLine (x, jmax (midY - cacheData->maxValue * vscale - 0.3f, topY),
jmin (midY - cacheData->minValue * vscale + 0.3f, bottomY));
g.drawVerticalLine (x, jmax (midY - cacheData->getMaxValue() * vscale - 0.3f, topY),
jmin (midY - cacheData->getMinValue() * vscale + 0.3f, bottomY));
++x;
++cacheData;
@@ -568,10 +570,12 @@ void AudioThumbnail::createChannels (const int length)
}
//==============================================================================
void AudioThumbnail::loadFrom (InputStream& input)
void AudioThumbnail::loadFrom (InputStream& rawInput)
{
clear();
BufferedInputStream input (rawInput, 4096);
if (input.readByte() != 'j' || input.readByte() != 'a' || input.readByte() != 't' || input.readByte() != 'm')
return;
@@ -581,7 +585,7 @@ void AudioThumbnail::loadFrom (InputStream& input)
int32 numThumbnailSamples = input.readInt(); // Number of samples in the thumbnail data.
numChannels = input.readInt(); // Number of audio channels.
sampleRate = input.readInt(); // Source sample rate.
input.skipNextBytes (16); // reserved area
input.skipNextBytes (16); // (reserved)
createChannels (numThumbnailSamples);
@@ -762,8 +766,8 @@ void AudioThumbnail::getApproximateMinMax (const double startTime, const double
data->getMinMax (jmax (0, firstThumbIndex), lastThumbIndex, result);
}
minValue = result.minValue / 128.0f;
maxValue = result.maxValue / 128.0f;
minValue = result.getMinValue() / 128.0f;
maxValue = result.getMaxValue() / 128.0f;
}
void AudioThumbnail::drawChannel (Graphics& g, const Rectangle<int>& area, double startTime,


+ 6
- 6
src/audio/audio_file_formats/juce_WavAudioFormat.cpp View File

@@ -48,12 +48,12 @@ const char* const WavAudioFormat::bwavOriginationTime = "bwav origination time"
const char* const WavAudioFormat::bwavTimeReference = "bwav time reference";
const char* const WavAudioFormat::bwavCodingHistory = "bwav coding history";
const StringPairArray WavAudioFormat::createBWAVMetadata (const String& description,
const String& originator,
const String& originatorRef,
const Time& date,
const int64 timeReferenceSamples,
const String& codingHistory)
StringPairArray WavAudioFormat::createBWAVMetadata (const String& description,
const String& originator,
const String& originatorRef,
const Time& date,
const int64 timeReferenceSamples,
const String& codingHistory)
{
StringPairArray m;


+ 6
- 6
src/audio/audio_file_formats/juce_WavAudioFormat.h View File

@@ -111,12 +111,12 @@ public:
This just makes it easier than using the property names directly, and it
fills out the time and date in the right format.
*/
static const StringPairArray createBWAVMetadata (const String& description,
const String& originator,
const String& originatorRef,
const Time& dateAndTime,
const int64 timeReferenceSamples,
const String& codingHistory);
static StringPairArray createBWAVMetadata (const String& description,
const String& originator,
const String& originatorRef,
const Time& dateAndTime,
const int64 timeReferenceSamples,
const String& codingHistory);
//==============================================================================
const Array <int> getPossibleSampleRates();


+ 1
- 5
src/audio/devices/juce_AudioDeviceManager.cpp View File

@@ -28,10 +28,6 @@
BEGIN_JUCE_NAMESPACE
#include "juce_AudioDeviceManager.h"
#include "../../gui/components/juce_Desktop.h"
#include "../../text/juce_LocalisedStrings.h"
#include "../dsp/juce_AudioSampleBuffer.h"
#include "../../core/juce_SystemStats.h"
//==============================================================================
@@ -816,7 +812,7 @@ void AudioDeviceManager::setDefaultMidiOutput (const String& deviceName)
{
if (defaultMidiOutputName != deviceName)
{
SortedSet <AudioIODeviceCallback*> oldCallbacks;
Array <AudioIODeviceCallback*> oldCallbacks;
{
const ScopedLock sl (audioCallbackLock);


+ 3
- 2
src/audio/devices/juce_AudioDeviceManager.h View File

@@ -30,8 +30,9 @@
#include "../midi/juce_MidiInput.h"
#include "../midi/juce_MidiOutput.h"
#include "../../text/juce_XmlElement.h"
#include "../../gui/components/controls/juce_ComboBox.h"
#include "../../events/juce_ChangeBroadcaster.h"
#include "../dsp/juce_AudioSampleBuffer.h"
#include "../../containers/juce_OwnedArray.h"
//==============================================================================
@@ -450,7 +451,7 @@ private:
AudioDeviceSetup currentSetup;
ScopedPointer <AudioIODevice> currentAudioDevice;
SortedSet <AudioIODeviceCallback*> callbacks;
Array <AudioIODeviceCallback*> callbacks;
int numInputChansNeeded, numOutputChansNeeded;
String currentDeviceType;
BigInteger inputChannels, outputChannels;


+ 0
- 1
src/audio/devices/juce_AudioIODevice.h View File

@@ -28,7 +28,6 @@
#include "../../text/juce_StringArray.h"
#include "../../maths/juce_BigInteger.h"
#include "../../containers/juce_OwnedArray.h"
class AudioIODevice;


+ 1
- 1
src/audio/devices/juce_AudioIODeviceType.h View File

@@ -28,7 +28,7 @@
#include "juce_AudioIODevice.h"
class AudioDeviceManager;
class Component;
//==============================================================================
/**


+ 5
- 10
src/audio/midi/juce_MidiFile.cpp View File

@@ -168,14 +168,10 @@ namespace MidiFileHelpers
{
const double diff = (first->message.getTimeStamp() - second->message.getTimeStamp());
if (diff > 0)
return 1;
else if (diff < 0)
return -1;
else if (first->message.isNoteOff() && second->message.isNoteOn())
return -1;
else if (first->message.isNoteOn() && second->message.isNoteOff())
return 1;
if (diff > 0) return 1;
if (diff < 0) return -1;
if (first->message.isNoteOff() && second->message.isNoteOn()) return -1;
if (first->message.isNoteOn() && second->message.isNoteOff()) return 1;
return 0;
}
@@ -397,7 +393,6 @@ bool MidiFile::writeTo (OutputStream& out)
writeTrack (out, i);
out.flush();
return true;
}
@@ -443,7 +438,7 @@ void MidiFile::writeTrack (OutputStream& mainOut, const int trackNum)
mainOut.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MTrk"));
mainOut.writeIntBigEndian ((int) out.getDataSize());
mainOut.write (out.getData(), (int) out.getDataSize());
mainOut << out;
}
END_JUCE_NAMESPACE

+ 40
- 43
src/audio/midi/juce_MidiMessage.cpp View File

@@ -387,9 +387,9 @@ int MidiMessage::getAfterTouchValue() const noexcept
return data[2];
}
const MidiMessage MidiMessage::aftertouchChange (const int channel,
const int noteNum,
const int aftertouchValue) noexcept
MidiMessage MidiMessage::aftertouchChange (const int channel,
const int noteNum,
const int aftertouchValue) noexcept
{
jassert (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16
jassert (isPositiveAndBelow (noteNum, (int) 128));
@@ -411,8 +411,7 @@ int MidiMessage::getChannelPressureValue() const noexcept
return data[1];
}
const MidiMessage MidiMessage::channelPressureChange (const int channel,
const int pressure) noexcept
MidiMessage MidiMessage::channelPressureChange (const int channel, const int pressure) noexcept
{
jassert (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16
jassert (isPositiveAndBelow (pressure, (int) 128));
@@ -441,8 +440,7 @@ int MidiMessage::getProgramChangeNumber() const noexcept
return data[1];
}
const MidiMessage MidiMessage::programChange (const int channel,
const int programNumber) noexcept
MidiMessage MidiMessage::programChange (const int channel, const int programNumber) noexcept
{
jassert (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16
@@ -460,8 +458,7 @@ int MidiMessage::getPitchWheelValue() const noexcept
return data[1] | (data[2] << 7);
}
const MidiMessage MidiMessage::pitchWheel (const int channel,
const int position) noexcept
MidiMessage MidiMessage::pitchWheel (const int channel, const int position) noexcept
{
jassert (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16
jassert (isPositiveAndBelow (position, (int) 0x4000));
@@ -492,7 +489,7 @@ int MidiMessage::getControllerValue() const noexcept
return data[2];
}
const MidiMessage MidiMessage::controllerEvent (const int channel, const int controllerType, const int value) noexcept
MidiMessage MidiMessage::controllerEvent (const int channel, const int controllerType, const int value) noexcept
{
// the channel must be between 1 and 16 inclusive
jassert (channel > 0 && channel <= 16);
@@ -501,12 +498,12 @@ const MidiMessage MidiMessage::controllerEvent (const int channel, const int con
controllerType & 127, value & 127);
}
const MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const float velocity) noexcept
MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const float velocity) noexcept
{
return noteOn (channel, noteNumber, (uint8) (velocity * 127.0f));
}
const MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const uint8 velocity) noexcept
MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const uint8 velocity) noexcept
{
jassert (channel > 0 && channel <= 16);
jassert (isPositiveAndBelow (noteNumber, (int) 128));
@@ -515,7 +512,7 @@ const MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber,
noteNumber & 127, MidiHelpers::validVelocity (velocity));
}
const MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, uint8 velocity) noexcept
MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, uint8 velocity) noexcept
{
jassert (channel > 0 && channel <= 16);
jassert (isPositiveAndBelow (noteNumber, (int) 128));
@@ -524,7 +521,7 @@ const MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber,
noteNumber & 127, MidiHelpers::validVelocity (velocity));
}
const MidiMessage MidiMessage::allNotesOff (const int channel) noexcept
MidiMessage MidiMessage::allNotesOff (const int channel) noexcept
{
return controllerEvent (channel, 123, 0);
}
@@ -534,7 +531,7 @@ bool MidiMessage::isAllNotesOff() const noexcept
return (data[0] & 0xf0) == 0xb0 && data[1] == 123;
}
const MidiMessage MidiMessage::allSoundOff (const int channel) noexcept
MidiMessage MidiMessage::allSoundOff (const int channel) noexcept
{
return controllerEvent (channel, 120, 0);
}
@@ -544,12 +541,12 @@ bool MidiMessage::isAllSoundOff() const noexcept
return (data[0] & 0xf0) == 0xb0 && data[1] == 120;
}
const MidiMessage MidiMessage::allControllersOff (const int channel) noexcept
MidiMessage MidiMessage::allControllersOff (const int channel) noexcept
{
return controllerEvent (channel, 121, 0);
}
const MidiMessage MidiMessage::masterVolume (const float volume)
MidiMessage MidiMessage::masterVolume (const float volume)
{
const int vol = jlimit (0, 0x3fff, roundToInt (volume * 0x4000));
@@ -567,7 +564,7 @@ bool MidiMessage::isSysEx() const noexcept
return *data == 0xf0;
}
const MidiMessage MidiMessage::createSysExMessage (const uint8* sysexData, const int dataSize)
MidiMessage MidiMessage::createSysExMessage (const uint8* sysexData, const int dataSize)
{
HeapBlock<uint8> m (dataSize + 2);
@@ -627,7 +624,7 @@ bool MidiMessage::isTextMetaEvent() const noexcept
return t > 0 && t < 16;
}
const String MidiMessage::getTextFromTextMetaEvent() const
String MidiMessage::getTextFromTextMetaEvent() const
{
return String (reinterpret_cast <const char*> (getMetaEventData()), getMetaEventLength());
}
@@ -682,7 +679,7 @@ double MidiMessage::getTempoMetaEventTickLength (const short timeFormat) const n
}
}
const MidiMessage MidiMessage::tempoMetaEvent (int microsecondsPerQuarterNote) noexcept
MidiMessage MidiMessage::tempoMetaEvent (int microsecondsPerQuarterNote) noexcept
{
const uint8 d[] = { 0xff, 81, 3,
(uint8) (microsecondsPerQuarterNote >> 16),
@@ -712,7 +709,7 @@ void MidiMessage::getTimeSignatureInfo (int& numerator, int& denominator) const
}
}
const MidiMessage MidiMessage::timeSignatureMetaEvent (const int numerator, const int denominator)
MidiMessage MidiMessage::timeSignatureMetaEvent (const int numerator, const int denominator)
{
int n = 1;
int powerOfTwo = 0;
@@ -729,7 +726,7 @@ const MidiMessage MidiMessage::timeSignatureMetaEvent (const int numerator, cons
return MidiMessage (d, 7, 0.0);
}
const MidiMessage MidiMessage::midiChannelMetaEvent (const int channel) noexcept
MidiMessage MidiMessage::midiChannelMetaEvent (const int channel) noexcept
{
const uint8 d[] = { 0xff, 0x20, 0x01, (uint8) jlimit (0, 0xff, channel - 1) };
@@ -746,7 +743,7 @@ int MidiMessage::getKeySignatureNumberOfSharpsOrFlats() const noexcept
return (int) *getMetaEventData();
}
const MidiMessage MidiMessage::endOfTrack() noexcept
MidiMessage MidiMessage::endOfTrack() noexcept
{
return MidiMessage (0xff, 0x2f, 0, 0.0);
}
@@ -755,30 +752,30 @@ const MidiMessage MidiMessage::endOfTrack() noexcept
bool MidiMessage::isSongPositionPointer() const noexcept { return *data == 0xf2; }
int MidiMessage::getSongPositionPointerMidiBeat() const noexcept { return data[1] | (data[2] << 7); }
const MidiMessage MidiMessage::songPositionPointer (const int positionInMidiBeats) noexcept
MidiMessage MidiMessage::songPositionPointer (const int positionInMidiBeats) noexcept
{
return MidiMessage (0xf2,
positionInMidiBeats & 127,
(positionInMidiBeats >> 7) & 127);
}
bool MidiMessage::isMidiStart() const noexcept { return *data == 0xfa; }
const MidiMessage MidiMessage::midiStart() noexcept { return MidiMessage (0xfa); }
bool MidiMessage::isMidiStart() const noexcept { return *data == 0xfa; }
MidiMessage MidiMessage::midiStart() noexcept { return MidiMessage (0xfa); }
bool MidiMessage::isMidiContinue() const noexcept { return *data == 0xfb; }
const MidiMessage MidiMessage::midiContinue() noexcept { return MidiMessage (0xfb); }
bool MidiMessage::isMidiContinue() const noexcept { return *data == 0xfb; }
MidiMessage MidiMessage::midiContinue() noexcept { return MidiMessage (0xfb); }
bool MidiMessage::isMidiStop() const noexcept { return *data == 0xfc; }
const MidiMessage MidiMessage::midiStop() noexcept { return MidiMessage (0xfc); }
bool MidiMessage::isMidiStop() const noexcept { return *data == 0xfc; }
MidiMessage MidiMessage::midiStop() noexcept { return MidiMessage (0xfc); }
bool MidiMessage::isMidiClock() const noexcept { return *data == 0xf8; }
const MidiMessage MidiMessage::midiClock() noexcept { return MidiMessage (0xf8); }
bool MidiMessage::isMidiClock() const noexcept { return *data == 0xf8; }
MidiMessage MidiMessage::midiClock() noexcept { return MidiMessage (0xf8); }
bool MidiMessage::isQuarterFrame() const noexcept { return *data == 0xf1; }
int MidiMessage::getQuarterFrameSequenceNumber() const noexcept { return ((int) data[1]) >> 4; }
int MidiMessage::getQuarterFrameValue() const noexcept { return ((int) data[1]) & 0x0f; }
const MidiMessage MidiMessage::quarterFrame (const int sequenceNumber, const int value) noexcept
MidiMessage MidiMessage::quarterFrame (const int sequenceNumber, const int value) noexcept
{
return MidiMessage (0xf1, (sequenceNumber << 4) | value);
}
@@ -804,9 +801,9 @@ void MidiMessage::getFullFrameParameters (int& hours, int& minutes, int& seconds
frames = data[8];
}
const MidiMessage MidiMessage::fullFrame (const int hours, const int minutes,
const int seconds, const int frames,
MidiMessage::SmpteTimecodeType timecodeType)
MidiMessage MidiMessage::fullFrame (const int hours, const int minutes,
const int seconds, const int frames,
MidiMessage::SmpteTimecodeType timecodeType)
{
const uint8 d[] = { 0xf0, 0x7f, 0x7f, 0x01, 0x01,
(uint8) ((hours & 0x01f) | (timecodeType << 5)),
@@ -833,7 +830,7 @@ MidiMessage::MidiMachineControlCommand MidiMessage::getMidiMachineControlCommand
return (MidiMachineControlCommand) data[4];
}
const MidiMessage MidiMessage::midiMachineControlCommand (MidiMessage::MidiMachineControlCommand command)
MidiMessage MidiMessage::midiMachineControlCommand (MidiMessage::MidiMachineControlCommand command)
{
const uint8 d[] = { 0xf0, 0x7f, 0, 6, (uint8) command, 0xf7 };
@@ -862,7 +859,7 @@ bool MidiMessage::isMidiMachineControlGoto (int& hours, int& minutes, int& secon
return false;
}
const MidiMessage MidiMessage::midiMachineControlGoto (int hours, int minutes, int seconds, int frames)
MidiMessage MidiMessage::midiMachineControlGoto (int hours, int minutes, int seconds, int frames)
{
const uint8 d[] = { 0xf0, 0x7f, 0, 6, 0x44, 6, 1,
(uint8) hours,
@@ -875,7 +872,7 @@ const MidiMessage MidiMessage::midiMachineControlGoto (int hours, int minutes, i
}
//==============================================================================
const String MidiMessage::getMidiNoteName (int note, bool useSharps, bool includeOctaveNumber, int octaveNumForMiddleC)
String MidiMessage::getMidiNoteName (int note, bool useSharps, bool includeOctaveNumber, int octaveNumForMiddleC)
{
static const char* const sharpNoteNames[] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" };
static const char* const flatNoteNames[] = { "C", "Db", "D", "Eb", "E", "F", "Gb", "G", "Ab", "A", "Bb", "B" };
@@ -900,7 +897,7 @@ const double MidiMessage::getMidiNoteInHertz (int noteNumber, const double frequ
return frequencyOfA * pow (2.0, noteNumber / 12.0);
}
const String MidiMessage::getGMInstrumentName (const int n)
String MidiMessage::getGMInstrumentName (const int n)
{
const char* names[] =
{
@@ -932,7 +929,7 @@ const String MidiMessage::getGMInstrumentName (const int n)
return isPositiveAndBelow (n, (int) 128) ? names[n] : (const char*) 0;
}
const String MidiMessage::getGMInstrumentBankName (const int n)
String MidiMessage::getGMInstrumentBankName (const int n)
{
const char* names[] =
{
@@ -945,7 +942,7 @@ const String MidiMessage::getGMInstrumentBankName (const int n)
return isPositiveAndBelow (n, (int) 16) ? names[n] : (const char*) 0;
}
const String MidiMessage::getRhythmInstrumentName (const int n)
String MidiMessage::getRhythmInstrumentName (const int n)
{
const char* names[] =
{
@@ -963,7 +960,7 @@ const String MidiMessage::getRhythmInstrumentName (const int n)
return (n >= 35 && n <= 81) ? names [n - 35] : (const char*) nullptr;
}
const String MidiMessage::getControllerName (const int n)
String MidiMessage::getControllerName (const int n)
{
const char* names[] =
{


+ 47
- 47
src/audio/midi/juce_MidiMessage.h View File

@@ -219,7 +219,7 @@ public:
@param velocity in the range 0 to 1.0
@see isNoteOn
*/
static const MidiMessage noteOn (int channel, int noteNumber, float velocity) noexcept;
static MidiMessage noteOn (int channel, int noteNumber, float velocity) noexcept;
/** Creates a key-down message (using an integer velocity).
@@ -228,7 +228,7 @@ public:
@param velocity in the range 0 to 127
@see isNoteOn
*/
static const MidiMessage noteOn (int channel, int noteNumber, uint8 velocity) noexcept;
static MidiMessage noteOn (int channel, int noteNumber, uint8 velocity) noexcept;
/** Returns true if this message is a 'key-up' event.
@@ -246,7 +246,7 @@ public:
@param velocity in the range 0 to 127
@see isNoteOff
*/
static const MidiMessage noteOff (int channel, int noteNumber, uint8 velocity = 0) noexcept;
static MidiMessage noteOff (int channel, int noteNumber, uint8 velocity = 0) noexcept;
/** Returns true if this message is a 'key-down' or 'key-up' event.
@@ -343,7 +343,7 @@ public:
@param programNumber the midi program number, 0 to 127
@see isProgramChange, getGMInstrumentName
*/
static const MidiMessage programChange (int channel, int programNumber) noexcept;
static MidiMessage programChange (int channel, int programNumber) noexcept;
//==============================================================================
/** Returns true if the message is a pitch-wheel move.
@@ -368,7 +368,7 @@ public:
@param position the wheel position, in the range 0 to 16383
@see isPitchWheel
*/
static const MidiMessage pitchWheel (int channel, int position) noexcept;
static MidiMessage pitchWheel (int channel, int position) noexcept;
//==============================================================================
/** Returns true if the message is an aftertouch event.
@@ -397,9 +397,9 @@ public:
@param aftertouchAmount the amount of aftertouch, 0 to 127
@see isAftertouch
*/
static const MidiMessage aftertouchChange (int channel,
int noteNumber,
int aftertouchAmount) noexcept;
static MidiMessage aftertouchChange (int channel,
int noteNumber,
int aftertouchAmount) noexcept;
/** Returns true if the message is a channel-pressure change event.
@@ -424,7 +424,7 @@ public:
@param pressure the pressure, 0 to 127
@see isChannelPressure
*/
static const MidiMessage channelPressureChange (int channel, int pressure) noexcept;
static MidiMessage channelPressureChange (int channel, int pressure) noexcept;
//==============================================================================
/** Returns true if this is a midi controller message.
@@ -465,9 +465,9 @@ public:
@param value the controller value
@see isController
*/
static const MidiMessage controllerEvent (int channel,
int controllerType,
int value) noexcept;
static MidiMessage controllerEvent (int channel,
int controllerType,
int value) noexcept;
/** Checks whether this message is an all-notes-off message.
@@ -486,20 +486,20 @@ public:
@param channel the midi channel, in the range 1 to 16
@see isAllNotesOff
*/
static const MidiMessage allNotesOff (int channel) noexcept;
static MidiMessage allNotesOff (int channel) noexcept;
/** Creates an all-sound-off message.
@param channel the midi channel, in the range 1 to 16
@see isAllSoundOff
*/
static const MidiMessage allSoundOff (int channel) noexcept;
static MidiMessage allSoundOff (int channel) noexcept;
/** Creates an all-controllers-off message.
@param channel the midi channel, in the range 1 to 16
*/
static const MidiMessage allControllersOff (int channel) noexcept;
static MidiMessage allControllersOff (int channel) noexcept;
//==============================================================================
/** Returns true if this event is a meta-event.
@@ -545,7 +545,7 @@ public:
@see isEndOfTrackMetaEvent
*/
static const MidiMessage endOfTrack() noexcept;
static MidiMessage endOfTrack() noexcept;
/** Returns true if this is an 'track name' meta-event.
@@ -563,7 +563,7 @@ public:
@see isTextMetaEvent
*/
const String getTextFromTextMetaEvent() const;
String getTextFromTextMetaEvent() const;
//==============================================================================
/** Returns true if this is a 'tempo' meta-event.
@@ -590,7 +590,7 @@ public:
@see isTempoMetaEvent
*/
static const MidiMessage tempoMetaEvent (int microsecondsPerQuarterNote) noexcept;
static MidiMessage tempoMetaEvent (int microsecondsPerQuarterNote) noexcept;
//==============================================================================
/** Returns true if this is a 'time-signature' meta-event.
@@ -609,7 +609,7 @@ public:
@see isTimeSignatureMetaEvent
*/
static const MidiMessage timeSignatureMetaEvent (int numerator, int denominator);
static MidiMessage timeSignatureMetaEvent (int numerator, int denominator);
//==============================================================================
/** Returns true if this is a 'key-signature' meta-event.
@@ -646,7 +646,7 @@ public:
@param channel the midi channel, in the range 1 to 16
@see isMidiChannelMetaEvent
*/
static const MidiMessage midiChannelMetaEvent (int channel) noexcept;
static MidiMessage midiChannelMetaEvent (int channel) noexcept;
//==============================================================================
/** Returns true if this is an active-sense message. */
@@ -660,7 +660,7 @@ public:
bool isMidiStart() const noexcept;
/** Creates a midi start event. */
static const MidiMessage midiStart() noexcept;
static MidiMessage midiStart() noexcept;
/** Returns true if this is a midi continue event.
@@ -669,7 +669,7 @@ public:
bool isMidiContinue() const noexcept;
/** Creates a midi continue event. */
static const MidiMessage midiContinue() noexcept;
static MidiMessage midiContinue() noexcept;
/** Returns true if this is a midi stop event.
@@ -678,7 +678,7 @@ public:
bool isMidiStop() const noexcept;
/** Creates a midi stop event. */
static const MidiMessage midiStop() noexcept;
static MidiMessage midiStop() noexcept;
/** Returns true if this is a midi clock event.
@@ -687,7 +687,7 @@ public:
bool isMidiClock() const noexcept;
/** Creates a midi clock event. */
static const MidiMessage midiClock() noexcept;
static MidiMessage midiClock() noexcept;
/** Returns true if this is a song-position-pointer message.
@@ -709,7 +709,7 @@ public:
@see isSongPositionPointer, getSongPositionPointerMidiBeat
*/
static const MidiMessage songPositionPointer (int positionInMidiBeats) noexcept;
static MidiMessage songPositionPointer (int positionInMidiBeats) noexcept;
//==============================================================================
/** Returns true if this is a quarter-frame midi timecode message.
@@ -738,7 +738,7 @@ public:
@param sequenceNumber a value 0 to 7 for the upper nybble of the message's data byte
@param value a value 0 to 15 for the lower nybble of the message's data byte
*/
static const MidiMessage quarterFrame (int sequenceNumber, int value) noexcept;
static MidiMessage quarterFrame (int sequenceNumber, int value) noexcept;
/** SMPTE timecode types.
@@ -769,11 +769,11 @@ public:
/** Creates a full-frame MTC message.
*/
static const MidiMessage fullFrame (int hours,
int minutes,
int seconds,
int frames,
SmpteTimecodeType timecodeType);
static MidiMessage fullFrame (int hours,
int minutes,
int seconds,
int frames,
SmpteTimecodeType timecodeType);
//==============================================================================
/** Types of MMC command.
@@ -807,7 +807,7 @@ public:
/** Creates an MMC message.
*/
static const MidiMessage midiMachineControlCommand (MidiMachineControlCommand command);
static MidiMessage midiMachineControlCommand (MidiMachineControlCommand command);
/** Checks whether this is an MMC "goto" message.
@@ -826,25 +826,25 @@ public:
@see isMidiMachineControlGoto
*/
static const MidiMessage midiMachineControlGoto (int hours,
int minutes,
int seconds,
int frames);
static MidiMessage midiMachineControlGoto (int hours,
int minutes,
int seconds,
int frames);
//==============================================================================
/** Creates a master-volume change message.
@param volume the volume, 0 to 1.0
*/
static const MidiMessage masterVolume (float volume);
static MidiMessage masterVolume (float volume);
//==============================================================================
/** Creates a system-exclusive message.
The data passed in is wrapped with header and tail bytes of 0xf0 and 0xf7.
*/
static const MidiMessage createSysExMessage (const uint8* sysexData,
int dataSize);
static MidiMessage createSysExMessage (const uint8* sysexData,
int dataSize);
//==============================================================================
@@ -878,10 +878,10 @@ public:
@see getMidiNoteInHertz
*/
static const String getMidiNoteName (int noteNumber,
bool useSharps,
bool includeOctaveNumber,
int octaveNumForMiddleC);
static String getMidiNoteName (int noteNumber,
bool useSharps,
bool includeOctaveNumber,
int octaveNumForMiddleC);
/** Returns the frequency of a midi note number.
@@ -895,25 +895,25 @@ public:
@param midiInstrumentNumber the program number 0 to 127
@see getProgramChangeNumber
*/
static const String getGMInstrumentName (int midiInstrumentNumber);
static String getGMInstrumentName (int midiInstrumentNumber);
/** Returns the name of a bank of GM instruments.
@param midiBankNumber the bank, 0 to 15
*/
static const String getGMInstrumentBankName (int midiBankNumber);
static String getGMInstrumentBankName (int midiBankNumber);
/** Returns the standard name of a channel 10 percussion sound.
@param midiNoteNumber the key number, 35 to 81
*/
static const String getRhythmInstrumentName (int midiNoteNumber);
static String getRhythmInstrumentName (int midiNoteNumber);
/** Returns the name of a controller type number.
@see getControllerNumber
*/
static const String getControllerName (int controllerNumber);
static String getControllerName (int controllerNumber);
private:
//==============================================================================


+ 1
- 0
src/audio/midi/juce_MidiMessageCollector.h View File

@@ -29,6 +29,7 @@
#include "juce_MidiInput.h"
#include "juce_MidiKeyboardState.h"
//==============================================================================
/**
Collects incoming realtime MIDI messages and turns them into blocks suitable for


+ 1
- 1
src/audio/plugin_host/juce_PluginDirectoryScanner.cpp View File

@@ -111,7 +111,7 @@ bool PluginDirectoryScanner::skipNextFile()
return nextIndex < filesOrIdentifiersToScan.size();
}
const StringArray PluginDirectoryScanner::getDeadMansPedalFile()
StringArray PluginDirectoryScanner::getDeadMansPedalFile()
{
StringArray lines;


+ 1
- 1
src/audio/plugin_host/juce_PluginDirectoryScanner.h View File

@@ -115,7 +115,7 @@ private:
int nextIndex;
float progress;
const StringArray getDeadMansPedalFile();
StringArray getDeadMansPedalFile();
void setDeadMansPedalFile (const StringArray& newContents);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PluginDirectoryScanner);


+ 2
- 1
src/audio/synthesisers/juce_Synthesiser.cpp View File

@@ -402,8 +402,9 @@ void Synthesiser::handleSostenutoPedal (int midiChannel, bool isDown)
}
}
void Synthesiser::handleSoftPedal (int midiChannel, bool isDown)
void Synthesiser::handleSoftPedal (int midiChannel, bool /*isDown*/)
{
(void) midiChannel;
jassert (midiChannel > 0 && midiChannel <= 16);
}


+ 1
- 1
src/containers/juce_DynamicObject.cpp View File

@@ -69,7 +69,7 @@ const var DynamicObject::invokeMethod (const Identifier& methodName,
const var* parameters,
int numParameters)
{
return properties [methodName].invoke (var (this), parameters, numParameters);
return properties [methodName].invokeMethod (this, parameters, numParameters);
}
void DynamicObject::setMethod (const Identifier& name,


+ 1
- 1
src/containers/juce_HashMap.h View File

@@ -43,7 +43,7 @@ public:
/** Generates a simple hash from an integer. */
static int generateHash (const int key, const int upperLimit) noexcept { return std::abs (key) % upperLimit; }
/** Generates a simple hash from a string. */
static int generateHash (const String& key, const int upperLimit) noexcept { return key.hashCode() % upperLimit; }
static int generateHash (const String& key, const int upperLimit) noexcept { return (int) (((uint32) key.hashCode()) % upperLimit); }
/** Generates a simple hash from a variant. */
static int generateHash (const var& key, const int upperLimit) noexcept { return generateHash (key.toString(), upperLimit); }
};


+ 2
- 2
src/containers/juce_NamedValueSet.cpp View File

@@ -121,7 +121,7 @@ const var& NamedValueSet::operator[] (const Identifier& name) const
return var::null;
}
const var NamedValueSet::getWithDefault (const Identifier& name, const var& defaultReturnValue) const
var NamedValueSet::getWithDefault (const Identifier& name, const var& defaultReturnValue) const
{
const var* const v = getVarPointer (name);
return v != nullptr ? *v : defaultReturnValue;
@@ -195,7 +195,7 @@ const Identifier NamedValueSet::getName (const int index) const
return v->name;
}
const var NamedValueSet::getValueAt (const int index) const
var NamedValueSet::getValueAt (const int index) const
{
const NamedValue* const v = values[index];
jassert (v != nullptr);


+ 2
- 2
src/containers/juce_NamedValueSet.h View File

@@ -68,7 +68,7 @@ public:
/** Tries to return the named value, but if no such value is found, this will
instead return the supplied default value.
*/
const var getWithDefault (const Identifier& name, const var& defaultReturnValue) const;
var getWithDefault (const Identifier& name, const var& defaultReturnValue) const;
/** Changes or adds a named value.
@returns true if a value was changed or added; false if the
@@ -93,7 +93,7 @@ public:
/** Returns the value of the item at a given index.
The index must be between 0 and size() - 1.
*/
const var getValueAt (int index) const;
var getValueAt (int index) const;
/** Removes all values. */
void clear();


+ 2
- 2
src/containers/juce_PropertySet.cpp View File

@@ -71,8 +71,8 @@ void PropertySet::clear()
}
}
const String PropertySet::getValue (const String& keyName,
const String& defaultValue) const noexcept
String PropertySet::getValue (const String& keyName,
const String& defaultValue) const noexcept
{
const ScopedLock sl (lock);


+ 2
- 2
src/containers/juce_PropertySet.h View File

@@ -73,8 +73,8 @@ public:
@param keyName the name of the property to retrieve
@param defaultReturnValue a value to return if the named property doesn't actually exist
*/
const String getValue (const String& keyName,
const String& defaultReturnValue = String::empty) const noexcept;
String getValue (const String& keyName,
const String& defaultReturnValue = String::empty) const noexcept;
/** Returns one of the properties as an integer.


+ 3
- 3
src/containers/juce_Value.cpp View File

@@ -133,12 +133,12 @@ Value::~Value()
}
//==============================================================================
const var Value::getValue() const
var Value::getValue() const
{
return value->getValue();
}
Value::operator const var() const
Value::operator var() const
{
return getValue();
}
@@ -148,7 +148,7 @@ void Value::setValue (const var& newValue)
value->setValue (newValue);
}
const String Value::toString() const
String Value::toString() const
{
return value->getValue().toString();
}


+ 3
- 3
src/containers/juce_Value.h View File

@@ -71,16 +71,16 @@ public:
//==============================================================================
/** Returns the current value. */
const var getValue() const;
var getValue() const;
/** Returns the current value. */
operator const var() const;
operator var() const;
/** Returns the value as a string.
This is alternative to writing things like "myValue.getValue().toString()".
*/
const String toString() const;
String toString() const;
/** Sets the current value.


+ 3
- 3
src/containers/juce_ValueTree.cpp View File

@@ -643,7 +643,7 @@ bool ValueTree::hasType (const Identifier& typeName) const
return object != nullptr && object->type == typeName;
}
const Identifier ValueTree::getType() const
Identifier ValueTree::getType() const
{
return object != nullptr ? object->type : Identifier();
}
@@ -672,7 +672,7 @@ const var& ValueTree::getProperty (const Identifier& name) const
return object == nullptr ? var::null : object->getProperty (name);
}
const var ValueTree::getProperty (const Identifier& name, const var& defaultReturnValue) const
var ValueTree::getProperty (const Identifier& name, const var& defaultReturnValue) const
{
return object == nullptr ? defaultReturnValue : object->getProperty (name, defaultReturnValue);
}
@@ -707,7 +707,7 @@ int ValueTree::getNumProperties() const
return object == nullptr ? 0 : object->properties.size();
}
const Identifier ValueTree::getPropertyName (const int index) const
Identifier ValueTree::getPropertyName (const int index) const
{
return object == nullptr ? Identifier()
: object->properties.getName (index);


+ 3
- 3
src/containers/juce_ValueTree.h View File

@@ -133,7 +133,7 @@ public:
The type is specified when the ValueTree is created.
@see hasType
*/
const Identifier getType() const;
Identifier getType() const;
/** Returns true if the node has this type.
The comparison is case-sensitive.
@@ -153,7 +153,7 @@ public:
You can also use operator[] and getProperty to get a property.
@see var, getProperty, setProperty, hasProperty
*/
const var getProperty (const Identifier& name, const var& defaultReturnValue) const;
var getProperty (const Identifier& name, const var& defaultReturnValue) const;
/** Returns the value of a named property.
If no such property has been set, this will return a void variant. This is the same as
@@ -192,7 +192,7 @@ public:
/** Returns the identifier of the property with a given index.
@see getNumProperties
*/
const Identifier getPropertyName (int index) const;
Identifier getPropertyName (int index) const;
/** Returns a Value object that can be used to control and respond to one of the tree's properties.


+ 59
- 57
src/containers/juce_Variant.cpp View File

@@ -51,18 +51,18 @@ public:
virtual int toInt (const ValueUnion&) const noexcept { return 0; }
virtual int64 toInt64 (const ValueUnion&) const noexcept { return 0; }
virtual double toDouble (const ValueUnion&) const noexcept { return 0; }
virtual const String toString (const ValueUnion&) const { return String::empty; }
virtual String toString (const ValueUnion&) const { return String::empty; }
virtual bool toBool (const ValueUnion&) const noexcept { return false; }
virtual ReferenceCountedObject* toObject (const ValueUnion&) const noexcept { return nullptr; }
virtual bool isVoid() const noexcept { return false; }
virtual bool isInt() const noexcept { return false; }
virtual bool isInt64() const noexcept { return false; }
virtual bool isBool() const noexcept { return false; }
virtual bool isDouble() const noexcept { return false; }
virtual bool isString() const noexcept { return false; }
virtual bool isObject() const noexcept { return false; }
virtual bool isMethod() const noexcept { return false; }
virtual bool isVoid() const noexcept { return false; }
virtual bool isInt() const noexcept { return false; }
virtual bool isInt64() const noexcept { return false; }
virtual bool isBool() const noexcept { return false; }
virtual bool isDouble() const noexcept { return false; }
virtual bool isString() const noexcept { return false; }
virtual bool isObject() const noexcept { return false; }
virtual bool isMethod() const noexcept { return false; }
virtual void cleanUp (ValueUnion&) const noexcept {}
virtual void createCopy (ValueUnion& dest, const ValueUnion& source) const { dest = source; }
@@ -92,7 +92,7 @@ public:
int toInt (const ValueUnion& data) const noexcept { return data.intValue; };
int64 toInt64 (const ValueUnion& data) const noexcept { return (int64) data.intValue; };
double toDouble (const ValueUnion& data) const noexcept { return (double) data.intValue; }
const String toString (const ValueUnion& data) const { return String (data.intValue); }
String toString (const ValueUnion& data) const { return String (data.intValue); }
bool toBool (const ValueUnion& data) const noexcept { return data.intValue != 0; }
bool isInt() const noexcept { return true; }
@@ -119,7 +119,7 @@ public:
int toInt (const ValueUnion& data) const noexcept { return (int) data.int64Value; };
int64 toInt64 (const ValueUnion& data) const noexcept { return data.int64Value; };
double toDouble (const ValueUnion& data) const noexcept { return (double) data.int64Value; }
const String toString (const ValueUnion& data) const { return String (data.int64Value); }
String toString (const ValueUnion& data) const { return String (data.int64Value); }
bool toBool (const ValueUnion& data) const noexcept { return data.int64Value != 0; }
bool isInt64() const noexcept { return true; }
@@ -146,7 +146,7 @@ public:
int toInt (const ValueUnion& data) const noexcept { return (int) data.doubleValue; };
int64 toInt64 (const ValueUnion& data) const noexcept { return (int64) data.doubleValue; };
double toDouble (const ValueUnion& data) const noexcept { return data.doubleValue; }
const String toString (const ValueUnion& data) const { return String (data.doubleValue); }
String toString (const ValueUnion& data) const { return String (data.doubleValue); }
bool toBool (const ValueUnion& data) const noexcept { return data.doubleValue != 0; }
bool isDouble() const noexcept { return true; }
@@ -173,7 +173,7 @@ public:
int toInt (const ValueUnion& data) const noexcept { return data.boolValue ? 1 : 0; };
int64 toInt64 (const ValueUnion& data) const noexcept { return data.boolValue ? 1 : 0; };
double toDouble (const ValueUnion& data) const noexcept { return data.boolValue ? 1.0 : 0.0; }
const String toString (const ValueUnion& data) const { return String::charToString (data.boolValue ? '1' : '0'); }
String toString (const ValueUnion& data) const { return String::charToString (data.boolValue ? '1' : '0'); }
bool toBool (const ValueUnion& data) const noexcept { return data.boolValue; }
bool isBool() const noexcept { return true; }
@@ -196,32 +196,37 @@ public:
VariantType_String() noexcept {}
static const VariantType_String instance;
void cleanUp (ValueUnion& data) const noexcept { delete data.stringValue; }
void createCopy (ValueUnion& dest, const ValueUnion& source) const { dest.stringValue = new String (*source.stringValue); }
void cleanUp (ValueUnion& data) const noexcept { getString (data)-> ~String(); }
void createCopy (ValueUnion& dest, const ValueUnion& source) const { new (dest.stringValue) String (*getString (source)); }
int toInt (const ValueUnion& data) const noexcept { return data.stringValue->getIntValue(); };
int64 toInt64 (const ValueUnion& data) const noexcept { return data.stringValue->getLargeIntValue(); };
double toDouble (const ValueUnion& data) const noexcept { return data.stringValue->getDoubleValue(); }
const String toString (const ValueUnion& data) const { return *data.stringValue; }
bool toBool (const ValueUnion& data) const noexcept { return data.stringValue->getIntValue() != 0
|| data.stringValue->trim().equalsIgnoreCase ("true")
|| data.stringValue->trim().equalsIgnoreCase ("yes"); }
bool isString() const noexcept { return true; }
int toInt (const ValueUnion& data) const noexcept { return getString (data)->getIntValue(); };
int64 toInt64 (const ValueUnion& data) const noexcept { return getString (data)->getLargeIntValue(); };
double toDouble (const ValueUnion& data) const noexcept { return getString (data)->getDoubleValue(); }
String toString (const ValueUnion& data) const { return *getString (data); }
bool toBool (const ValueUnion& data) const noexcept { return getString (data)->getIntValue() != 0
|| getString (data)->trim().equalsIgnoreCase ("true")
|| getString (data)->trim().equalsIgnoreCase ("yes"); }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const noexcept
{
return otherType.toString (otherData) == *data.stringValue;
return otherType.toString (otherData) == *getString (data);
}
void writeToStream (const ValueUnion& data, OutputStream& output) const
{
const int len = data.stringValue->getNumBytesAsUTF8() + 1;
const String* const s = getString (data);
const int len = s->getNumBytesAsUTF8() + 1;
HeapBlock<char> temp (len);
s->copyToUTF8 (temp, len);
output.writeCompressedInt (len + 1);
output.writeByte (varMarker_String);
HeapBlock<char> temp (len);
data.stringValue->copyToUTF8 (temp, len);
output.write (temp, len);
}
private:
static inline const String* getString (const ValueUnion& data) noexcept { return reinterpret_cast <const String*> (data.stringValue); }
static inline String* getString (ValueUnion& data) noexcept { return reinterpret_cast <String*> (data.stringValue); }
};
//==============================================================================
@@ -234,7 +239,7 @@ public:
void cleanUp (ValueUnion& data) const noexcept { if (data.objectValue != nullptr) data.objectValue->decReferenceCount(); }
void createCopy (ValueUnion& dest, const ValueUnion& source) const { dest.objectValue = source.objectValue; if (dest.objectValue != nullptr) dest.objectValue->incReferenceCount(); }
const String toString (const ValueUnion& data) const { return "Object 0x" + String::toHexString ((int) (pointer_sized_int) data.objectValue); }
String toString (const ValueUnion& data) const { return "Object 0x" + String::toHexString ((int) (pointer_sized_int) data.objectValue); }
bool toBool (const ValueUnion& data) const noexcept { return data.objectValue != 0; }
ReferenceCountedObject* toObject (const ValueUnion& data) const noexcept { return data.objectValue; }
bool isObject() const noexcept { return true; }
@@ -258,7 +263,7 @@ public:
VariantType_Method() noexcept {}
static const VariantType_Method instance;
const String toString (const ValueUnion&) const { return "Method"; }
String toString (const ValueUnion&) const { return "Method"; }
bool toBool (const ValueUnion& data) const noexcept { return data.methodValue != 0; }
bool isMethod() const noexcept { return true; }
@@ -325,17 +330,17 @@ var::var (const double value_) noexcept : type (&VariantType_Double::instance)
var::var (const String& value_) : type (&VariantType_String::instance)
{
value.stringValue = new String (value_);
new (value.stringValue) String (value_);
}
var::var (const char* const value_) : type (&VariantType_String::instance)
{
value.stringValue = new String (value_);
new (value.stringValue) String (value_);
}
var::var (const wchar_t* const value_) : type (&VariantType_String::instance)
{
value.stringValue = new String (value_);
new (value.stringValue) String (value_);
}
var::var (ReferenceCountedObject* const object) : type (&VariantType_Object::instance)
@@ -352,22 +357,22 @@ var::var (MethodFunction method_) noexcept : type (&VariantType_Method::instance
}
//==============================================================================
bool var::isVoid() const noexcept { return type->isVoid(); }
bool var::isInt() const noexcept { return type->isInt(); }
bool var::isInt64() const noexcept { return type->isInt64(); }
bool var::isBool() const noexcept { return type->isBool(); }
bool var::isDouble() const noexcept { return type->isDouble(); }
bool var::isString() const noexcept { return type->isString(); }
bool var::isObject() const noexcept { return type->isObject(); }
bool var::isMethod() const noexcept { return type->isMethod(); }
bool var::isVoid() const noexcept { return type->isVoid(); }
bool var::isInt() const noexcept { return type->isInt(); }
bool var::isInt64() const noexcept { return type->isInt64(); }
bool var::isBool() const noexcept { return type->isBool(); }
bool var::isDouble() const noexcept { return type->isDouble(); }
bool var::isString() const noexcept { return type->isString(); }
bool var::isObject() const noexcept { return type->isObject(); }
bool var::isMethod() const noexcept { return type->isMethod(); }
var::operator int() const noexcept { return type->toInt (value); }
var::operator int64() const noexcept { return type->toInt64 (value); }
var::operator bool() const noexcept { return type->toBool (value); }
var::operator float() const noexcept { return (float) type->toDouble (value); }
var::operator double() const noexcept { return type->toDouble (value); }
const String var::toString() const { return type->toString (value); }
var::operator const String() const { return type->toString (value); }
String var::toString() const { return type->toString (value); }
var::operator String() const { return type->toString (value); }
ReferenceCountedObject* var::getObject() const noexcept { return type->toObject (value); }
DynamicObject* var::getDynamicObject() const noexcept { return dynamic_cast <DynamicObject*> (getObject()); }
@@ -414,7 +419,7 @@ void var::writeToStream (OutputStream& output) const
type->writeToStream (value, output);
}
const var var::readFromStream (InputStream& input)
var var::readFromStream (InputStream& input)
{
const int numBytes = input.readCompressedInt();
@@ -441,60 +446,57 @@ const var var::readFromStream (InputStream& input)
return var::null;
}
const var var::operator[] (const Identifier& propertyName) const
var var::operator[] (const Identifier& propertyName) const
{
DynamicObject* const o = getDynamicObject();
return o != nullptr ? o->getProperty (propertyName) : var::null;
}
const var var::invoke (const Identifier& method, const var* arguments, int numArguments) const
var var::invoke (const Identifier& method, const var* arguments, int numArguments) const
{
DynamicObject* const o = getDynamicObject();
return o != nullptr ? o->invokeMethod (method, arguments, numArguments) : var::null;
}
const var var::invoke (const var& targetObject, const var* arguments, int numArguments) const
var var::invokeMethod (DynamicObject* const target, const var* const arguments, const int numArguments) const
{
if (isMethod())
{
DynamicObject* const target = targetObject.getDynamicObject();
jassert (target != nullptr);
if (target != nullptr)
return (target->*(value.methodValue)) (arguments, numArguments);
}
if (isMethod())
return (target->*(value.methodValue)) (arguments, numArguments);
return var::null;
}
const var var::call (const Identifier& method) const
var var::call (const Identifier& method) const
{
return invoke (method, nullptr, 0);
}
const var var::call (const Identifier& method, const var& arg1) const
var var::call (const Identifier& method, const var& arg1) const
{
return invoke (method, &arg1, 1);
}
const var var::call (const Identifier& method, const var& arg1, const var& arg2) const
var var::call (const Identifier& method, const var& arg1, const var& arg2) const
{
var args[] = { arg1, arg2 };
return invoke (method, args, 2);
}
const var var::call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3)
var var::call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3)
{
var args[] = { arg1, arg2, arg3 };
return invoke (method, args, 3);
}
const var var::call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4) const
var var::call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4) const
{
var args[] = { arg1, arg2, arg3, arg4 };
return invoke (method, args, 4);
}
const var var::call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4, const var& arg5) const
var var::call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4, const var& arg5) const
{
var args[] = { arg1, arg2, arg3, arg4, arg5 };
return invoke (method, args, 5);


+ 26
- 37
src/containers/juce_Variant.h View File

@@ -91,8 +91,8 @@ public:
operator bool() const noexcept;
operator float() const noexcept;
operator double() const noexcept;
operator const String() const;
const String toString() const;
operator String() const;
String toString() const;
ReferenceCountedObject* getObject() const noexcept;
DynamicObject* getDynamicObject() const noexcept;
@@ -115,32 +115,27 @@ public:
The data in the stream must have been written using writeToStream(), or this
will have unpredictable results.
*/
static const var readFromStream (InputStream& input);
static var readFromStream (InputStream& input);
//==============================================================================
/** If this variant is an object, this returns one of its properties. */
const var operator[] (const Identifier& propertyName) const;
var operator[] (const Identifier& propertyName) const;
//==============================================================================
/** If this variant is an object, this invokes one of its methods with no arguments. */
const var call (const Identifier& method) const;
var call (const Identifier& method) const;
/** If this variant is an object, this invokes one of its methods with one argument. */
const var call (const Identifier& method, const var& arg1) const;
var call (const Identifier& method, const var& arg1) const;
/** If this variant is an object, this invokes one of its methods with 2 arguments. */
const var call (const Identifier& method, const var& arg1, const var& arg2) const;
var call (const Identifier& method, const var& arg1, const var& arg2) const;
/** If this variant is an object, this invokes one of its methods with 3 arguments. */
const var call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3);
var call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3);
/** If this variant is an object, this invokes one of its methods with 4 arguments. */
const var call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4) const;
var call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4) const;
/** If this variant is an object, this invokes one of its methods with 5 arguments. */
const var call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4, const var& arg5) const;
var call (const Identifier& method, const var& arg1, const var& arg2, const var& arg3, const var& arg4, const var& arg5) const;
/** If this variant is an object, this invokes one of its methods with a list of arguments. */
const var invoke (const Identifier& method, const var* arguments, int numArguments) const;
//==============================================================================
/** If this variant is a method pointer, this invokes it on a target object. */
const var invoke (const var& targetObject, const var* arguments, int numArguments) const;
var invoke (const Identifier& method, const var* arguments, int numArguments) const;
//==============================================================================
/** Returns true if this var has the same value as the one supplied.
@@ -156,27 +151,18 @@ public:
*/
bool equalsWithSameType (const var& other) const noexcept;
private:
class VariantType;
friend class VariantType;
class VariantType_Void;
friend class VariantType_Void;
class VariantType_Int;
friend class VariantType_Int;
class VariantType_Int64;
friend class VariantType_Int64;
class VariantType_Double;
friend class VariantType_Double;
class VariantType_Float;
friend class VariantType_Float;
class VariantType_Bool;
friend class VariantType_Bool;
class VariantType_String;
friend class VariantType_String;
class VariantType_Object;
friend class VariantType_Object;
class VariantType_Method;
friend class VariantType_Method;
//==============================================================================
class VariantType; friend class VariantType;
class VariantType_Void; friend class VariantType_Void;
class VariantType_Int; friend class VariantType_Int;
class VariantType_Int64; friend class VariantType_Int64;
class VariantType_Double; friend class VariantType_Double;
class VariantType_Bool; friend class VariantType_Bool;
class VariantType_String; friend class VariantType_String;
class VariantType_Object; friend class VariantType_Object;
class VariantType_Method; friend class VariantType_Method;
union ValueUnion
{
@@ -184,13 +170,16 @@ private:
int64 int64Value;
bool boolValue;
double doubleValue;
String* stringValue;
char stringValue [sizeof (String)];
ReferenceCountedObject* objectValue;
MethodFunction methodValue;
};
const VariantType* type;
ValueUnion value;
friend class DynamicObject;
var invokeMethod (DynamicObject*, const var*, int) const;
};
/** Compares the values of two var objects, using the var::equals() comparison. */


+ 1
- 1
src/core/juce_FileLogger.h View File

@@ -67,7 +67,7 @@ public:
//==============================================================================
void logMessage (const String& message);
const File getLogFile() const { return logFile; }
File getLogFile() const { return logFile; }
//==============================================================================
/** Helper function to create a log file in the correct place for this platform.


+ 1
- 0
src/core/juce_Initialisation.cpp View File

@@ -28,6 +28,7 @@
BEGIN_JUCE_NAMESPACE
#include "juce_PlatformUtilities.h"
#include "../utilities/juce_DeletedAtShutdown.h"
#if ! JUCE_ONLY_BUILD_CORE_LIBRARY
#include "../events/juce_MessageManager.h"


+ 3
- 3
src/core/juce_RelativeTime.cpp View File

@@ -62,7 +62,7 @@ double RelativeTime::inDays() const noexcept { return seconds / (60.0 * 6
double RelativeTime::inWeeks() const noexcept { return seconds / (60.0 * 60.0 * 24.0 * 7.0); }
//==============================================================================
const String RelativeTime::getDescription (const String& returnValueForZeroTime) const
String RelativeTime::getDescription (const String& returnValueForZeroTime) const
{
if (seconds < 0.001 && seconds > -0.001)
return returnValueForZeroTime;
@@ -172,8 +172,8 @@ bool operator< (const RelativeTime& t1, const RelativeTime& t2) noexcept { retu
bool operator>= (const RelativeTime& t1, const RelativeTime& t2) noexcept { return t1.inSeconds() >= t2.inSeconds(); }
bool operator<= (const RelativeTime& t1, const RelativeTime& t2) noexcept { return t1.inSeconds() <= t2.inSeconds(); }
const RelativeTime operator+ (const RelativeTime& t1, const RelativeTime& t2) noexcept { RelativeTime t (t1); return t += t2; }
const RelativeTime operator- (const RelativeTime& t1, const RelativeTime& t2) noexcept { RelativeTime t (t1); return t -= t2; }
RelativeTime operator+ (const RelativeTime& t1, const RelativeTime& t2) noexcept { RelativeTime t (t1); return t += t2; }
RelativeTime operator- (const RelativeTime& t1, const RelativeTime& t2) noexcept { RelativeTime t (t1); return t -= t2; }
END_JUCE_NAMESPACE

+ 3
- 3
src/core/juce_RelativeTime.h View File

@@ -134,7 +134,7 @@ public:
@see inMilliseconds, inSeconds, inMinutes, inHours, inDays, inWeeks
*/
const String getDescription (const String& returnValueForZeroTime = "0") const;
String getDescription (const String& returnValueForZeroTime = "0") const;
//==============================================================================
@@ -169,9 +169,9 @@ bool operator<= (const RelativeTime& t1, const RelativeTime& t2) noexcept;
//==============================================================================
/** Adds two RelativeTimes together. */
const RelativeTime operator+ (const RelativeTime& t1, const RelativeTime& t2) noexcept;
RelativeTime operator+ (const RelativeTime& t1, const RelativeTime& t2) noexcept;
/** Subtracts two RelativeTimes. */
const RelativeTime operator- (const RelativeTime& t1, const RelativeTime& t2) noexcept;
RelativeTime operator- (const RelativeTime& t1, const RelativeTime& t2) noexcept;


+ 3
- 3
src/core/juce_Result.cpp View File

@@ -57,17 +57,17 @@ bool Result::operator!= (const Result& other) const noexcept
return errorMessage != other.errorMessage;
}
const Result Result::ok() noexcept
Result Result::ok() noexcept
{
return Result (String::empty);
}
const Result Result::fail (const String& errorMessage) noexcept
Result Result::fail (const String& errorMessage) noexcept
{
return Result (errorMessage.isEmpty() ? "Unknown Error" : errorMessage);
}
const String Result::getErrorMessage() const noexcept
const String& Result::getErrorMessage() const noexcept
{
return errorMessage;
}


+ 4
- 4
src/core/juce_Result.h View File

@@ -36,7 +36,7 @@
E.g.
@code
const Result myOperation()
Result myOperation()
{
if (doSomeKindOfFoobar())
return Result::ok();
@@ -62,13 +62,13 @@ class Result
public:
//==============================================================================
/** Creates and returns a 'successful' result. */
static const Result ok() noexcept;
static Result ok() noexcept;
/** Creates a 'failure' result.
If you pass a blank error message in here, a default "Unknown Error" message
will be used instead.
*/
static const Result fail (const String& errorMessage) noexcept;
static Result fail (const String& errorMessage) noexcept;
//==============================================================================
/** Returns true if this result indicates a success. */
@@ -93,7 +93,7 @@ public:
/** Returns the error message that was set when this result was created.
For a successful result, this will be an empty string;
*/
const String getErrorMessage() const noexcept;
const String& getErrorMessage() const noexcept;
//==============================================================================
Result (const Result& other);


+ 1
- 1
src/core/juce_StandardHeader.h View File

@@ -33,7 +33,7 @@
*/
#define JUCE_MAJOR_VERSION 1
#define JUCE_MINOR_VERSION 53
#define JUCE_BUILDNUMBER 94
#define JUCE_BUILDNUMBER 95
/** Current Juce version number.


+ 14
- 14
src/core/juce_Time.cpp View File

@@ -320,16 +320,16 @@ int64 Time::secondsToHighResolutionTicks (const double seconds) noexcept
//==============================================================================
const Time JUCE_CALLTYPE Time::getCurrentTime() noexcept
Time JUCE_CALLTYPE Time::getCurrentTime() noexcept
{
return Time (currentTimeMillis());
}
//==============================================================================
const String Time::toString (const bool includeDate,
const bool includeTime,
const bool includeSeconds,
const bool use24HourClock) const noexcept
String Time::toString (const bool includeDate,
const bool includeTime,
const bool includeSeconds,
const bool use24HourClock) const noexcept
{
String result;
@@ -363,7 +363,7 @@ const String Time::toString (const bool includeDate,
return result.trimEnd();
}
const String Time::formatted (const String& format) const
String Time::formatted (const String& format) const
{
int bufferSize = 128;
HeapBlock<juce_wchar> buffer (128);
@@ -411,7 +411,7 @@ bool Time::isDaylightSavingTime() const noexcept
return TimeHelpers::millisToLocal (millisSinceEpoch).tm_isdst != 0;
}
const String Time::getTimeZone() const noexcept
String Time::getTimeZone() const noexcept
{
String zone[2];
@@ -451,17 +451,17 @@ const String Time::getTimeZone() const noexcept
return zone[0].substring (0, 3);
}
const String Time::getMonthName (const bool threeLetterVersion) const
String Time::getMonthName (const bool threeLetterVersion) const
{
return getMonthName (getMonth(), threeLetterVersion);
}
const String Time::getWeekdayName (const bool threeLetterVersion) const
String Time::getWeekdayName (const bool threeLetterVersion) const
{
return getWeekdayName (getDayOfWeek(), threeLetterVersion);
}
const String Time::getMonthName (int monthNumber, const bool threeLetterVersion)
String Time::getMonthName (int monthNumber, const bool threeLetterVersion)
{
const char* const shortMonthNames[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
const char* const longMonthNames[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
@@ -472,7 +472,7 @@ const String Time::getMonthName (int monthNumber, const bool threeLetterVersion)
: longMonthNames [monthNumber]);
}
const String Time::getWeekdayName (int day, const bool threeLetterVersion)
String Time::getWeekdayName (int day, const bool threeLetterVersion)
{
const char* const shortDayNames[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
const char* const longDayNames[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
@@ -487,9 +487,9 @@ const String Time::getWeekdayName (int day, const bool threeLetterVersion)
Time& Time::operator+= (const RelativeTime& delta) { millisSinceEpoch += delta.inMilliseconds(); return *this; }
Time& Time::operator-= (const RelativeTime& delta) { millisSinceEpoch -= delta.inMilliseconds(); return *this; }
const Time operator+ (const Time& time, const RelativeTime& delta) { Time t (time); return t += delta; }
const Time operator- (const Time& time, const RelativeTime& delta) { Time t (time); return t -= delta; }
const Time operator+ (const RelativeTime& delta, const Time& time) { Time t (time); return t += delta; }
Time operator+ (const Time& time, const RelativeTime& delta) { Time t (time); return t += delta; }
Time operator- (const Time& time, const RelativeTime& delta) { Time t (time); return t -= delta; }
Time operator+ (const RelativeTime& delta, const Time& time) { Time t (time); return t += delta; }
const RelativeTime operator- (const Time& time1, const Time& time2) { return RelativeTime::milliseconds (time1.toMilliseconds() - time2.toMilliseconds()); }
bool operator== (const Time& time1, const Time& time2) { return time1.toMilliseconds() == time2.toMilliseconds(); }


+ 16
- 16
src/core/juce_Time.h View File

@@ -100,7 +100,7 @@ public:
@see currentTimeMillis
*/
static const Time JUCE_CALLTYPE getCurrentTime() noexcept;
static Time JUCE_CALLTYPE getCurrentTime() noexcept;
/** Returns the time as a number of milliseconds.
@@ -129,7 +129,7 @@ public:
it'll return the long form, e.g. "January"
@see getMonth
*/
const String getMonthName (bool threeLetterVersion) const;
String getMonthName (bool threeLetterVersion) const;
/** Returns the day of the month.
@@ -148,7 +148,7 @@ public:
@param threeLetterVersion if true, it'll return a 3-letter abbreviation, e.g. "Tue"; if
false, it'll return the full version, e.g. "Tuesday".
*/
const String getWeekdayName (bool threeLetterVersion) const;
String getWeekdayName (bool threeLetterVersion) const;
/** Returns the number of hours since midnight.
@@ -194,7 +194,7 @@ public:
bool isDaylightSavingTime() const noexcept;
/** Returns a 3-character string to indicate the local timezone. */
const String getTimeZone() const noexcept;
String getTimeZone() const noexcept;
//==============================================================================
/** Quick way of getting a string version of a date and time.
@@ -209,10 +209,10 @@ public:
hour notation.
@see formatted
*/
const String toString (bool includeDate,
bool includeTime,
bool includeSeconds = true,
bool use24HourClock = false) const noexcept;
String toString (bool includeDate,
bool includeTime,
bool includeSeconds = true,
bool use24HourClock = false) const noexcept;
/** Converts this date/time to a string with a user-defined format.
@@ -245,7 +245,7 @@ public:
@see toString
*/
const String formatted (const String& format) const;
String formatted (const String& format) const;
//==============================================================================
/** Adds a RelativeTime to this time. */
@@ -268,8 +268,8 @@ public:
@param threeLetterVersion if true, it'll return a 3-letter abbreviation, e.g. "Tue"; if
false, it'll return the full version, e.g. "Tuesday".
*/
static const String getWeekdayName (int dayNumber,
bool threeLetterVersion);
static String getWeekdayName (int dayNumber,
bool threeLetterVersion);
/** Returns the name of one of the months.
@@ -277,8 +277,8 @@ public:
@param threeLetterVersion if true, it'll be a 3-letter abbreviation, e.g. "Jan"; if false
it'll return the long form, e.g. "January"
*/
static const String getMonthName (int monthNumber,
bool threeLetterVersion);
static String getMonthName (int monthNumber,
bool threeLetterVersion);
//==============================================================================
// Static methods for getting system timers directly..
@@ -374,12 +374,12 @@ private:
//==============================================================================
/** Adds a RelativeTime to a Time. */
JUCE_API const Time operator+ (const Time& time, const RelativeTime& delta);
JUCE_API Time operator+ (const Time& time, const RelativeTime& delta);
/** Adds a RelativeTime to a Time. */
JUCE_API const Time operator+ (const RelativeTime& delta, const Time& time);
JUCE_API Time operator+ (const RelativeTime& delta, const Time& time);
/** Subtracts a RelativeTime from a Time. */
JUCE_API const Time operator- (const Time& time, const RelativeTime& delta);
JUCE_API Time operator- (const Time& time, const RelativeTime& delta);
/** Returns the relative time difference between two times. */
JUCE_API const RelativeTime operator- (const Time& time1, const Time& time2);


+ 1
- 1
src/core/juce_Uuid.cpp View File

@@ -103,7 +103,7 @@ bool Uuid::isNull() const noexcept
}
//==============================================================================
const String Uuid::toString() const
String Uuid::toString() const
{
return String::toHexString (value.asBytes, sizeof (value.asBytes), 0);
}


+ 1
- 1
src/core/juce_Uuid.h View File

@@ -73,7 +73,7 @@ public:
@returns a 32 character hex string.
*/
const String toString() const;
String toString() const;
/** Creates an ID from an encoded string version.


+ 5
- 6
src/cryptography/juce_MD5.cpp View File

@@ -29,7 +29,6 @@ BEGIN_JUCE_NAMESPACE
#include "juce_MD5.h"
#include "../io/files/juce_FileInputStream.h"
#include "../memory/juce_ScopedPointer.h"
//==============================================================================
@@ -111,10 +110,10 @@ MD5::MD5 (InputStream& input, int64 numBytesToRead)
MD5::MD5 (const File& file)
{
const ScopedPointer <FileInputStream> fin (file.createInputStream());
FileInputStream fin (file);
if (fin != nullptr)
processStream (*fin, -1);
if (fin.getStatus().wasOk())
processStream (fin, -1);
else
zerostruct (result);
}
@@ -288,12 +287,12 @@ void MD5::ProcessContext::transform (const void* const bufferToTransform)
}
//==============================================================================
const MemoryBlock MD5::getRawChecksumData() const
MemoryBlock MD5::getRawChecksumData() const
{
return MemoryBlock (result, sizeof (result));
}
const String MD5::toHexString() const
String MD5::toHexString() const
{
return String::toHexString (result, sizeof (result), 0);
}


+ 3
- 3
src/cryptography/juce_MD5.h View File

@@ -86,10 +86,10 @@ public:
//==============================================================================
/** Returns the checksum as a 16-byte block of data. */
const MemoryBlock getRawChecksumData() const;
MemoryBlock getRawChecksumData() const;
/** Returns the checksum as a 32-digit hex string. */
const String toHexString() const;
String toHexString() const;
//==============================================================================
@@ -117,7 +117,7 @@ private:
void finish (void* result);
};
void processStream (InputStream& input, int64 numBytesToRead);
void processStream (InputStream&, int64 numBytesToRead);
JUCE_LEAK_DETECTOR (MD5);
};


+ 4
- 4
src/cryptography/juce_Primes.cpp View File

@@ -159,10 +159,10 @@ namespace PrimesHelpers
}
//==============================================================================
const BigInteger Primes::createProbablePrime (const int bitLength,
const int certainty,
const int* randomSeeds,
int numRandomSeeds)
BigInteger Primes::createProbablePrime (const int bitLength,
const int certainty,
const int* randomSeeds,
int numRandomSeeds)
{
using namespace PrimesHelpers;
int defaultSeeds [16];


+ 4
- 4
src/cryptography/juce_Primes.h View File

@@ -50,10 +50,10 @@ public:
which to seed the random number generation, improving the security of the
keys generated.
*/
static const BigInteger createProbablePrime (int bitLength,
int certainty,
const int* randomSeeds = 0,
int numRandomSeeds = 0);
static BigInteger createProbablePrime (int bitLength,
int certainty,
const int* randomSeeds = 0,
int numRandomSeeds = 0);
/** Tests a number to see if it's prime.


+ 2
- 2
src/cryptography/juce_RSAKey.cpp View File

@@ -64,7 +64,7 @@ bool RSAKey::operator!= (const RSAKey& other) const noexcept
return ! operator== (other);
}
const String RSAKey::toString() const
String RSAKey::toString() const
{
return part1.toString (16) + "," + part2.toString (16);
}
@@ -96,7 +96,7 @@ bool RSAKey::applyToValue (BigInteger& value) const
return true;
}
const BigInteger RSAKey::findBestCommonDivisor (const BigInteger& p, const BigInteger& q)
BigInteger RSAKey::findBestCommonDivisor (const BigInteger& p, const BigInteger& q)
{
// try 3, 5, 9, 17, etc first because these only contain 2 bits and so
// are fast to divide + multiply


+ 2
- 2
src/cryptography/juce_RSAKey.h View File

@@ -63,7 +63,7 @@ public:
This can be reloaded using the constructor that takes a string.
*/
const String toString() const;
String toString() const;
//==============================================================================
/** Encodes or decodes a value.
@@ -108,7 +108,7 @@ protected:
private:
//==============================================================================
static const BigInteger findBestCommonDivisor (const BigInteger& p, const BigInteger& q);
static BigInteger findBestCommonDivisor (const BigInteger& p, const BigInteger& q);
JUCE_LEAK_DETECTOR (RSAKey);
};


+ 1
- 0
src/events/juce_InterprocessConnection.cpp View File

@@ -29,6 +29,7 @@ BEGIN_JUCE_NAMESPACE
#include "juce_InterprocessConnection.h"
#include "../memory/juce_ScopedPointer.h"
#include "../memory/juce_MemoryBlock.h"
//==============================================================================


+ 1
- 0
src/events/juce_InterprocessConnection.h View File

@@ -32,6 +32,7 @@
#include "../io/files/juce_NamedPipe.h"
#include "../memory/juce_ScopedPointer.h"
class InterprocessConnectionServer;
class MemoryBlock;
//==============================================================================


+ 2
- 2
src/events/juce_Message.cpp View File

@@ -36,7 +36,7 @@ Message::Message() noexcept
intParameter2 (0),
intParameter3 (0),
pointerParameter (nullptr),
messageRecipient (0)
messageRecipient (nullptr)
{
}
@@ -48,7 +48,7 @@ Message::Message (const int intParameter1_,
intParameter2 (intParameter2_),
intParameter3 (intParameter3_),
pointerParameter (pointerParameter_),
messageRecipient (0)
messageRecipient (nullptr)
{
}


+ 1
- 0
src/events/juce_MessageListener.cpp View File

@@ -28,6 +28,7 @@
BEGIN_JUCE_NAMESPACE
#include "juce_MessageManager.h"
#include "juce_MessageListener.h"
//==============================================================================


+ 2
- 1
src/events/juce_MessageManager.cpp View File

@@ -31,9 +31,10 @@ BEGIN_JUCE_NAMESPACE
#include "juce_ActionBroadcaster.h"
#include "../application/juce_Application.h"
#include "../gui/components/juce_Component.h"
#include "../threads/juce_Thread.h"
#include "../threads/juce_ThreadPool.h"
#include "../core/juce_Time.h"
//==============================================================================
MessageManager* MessageManager::instance = nullptr;


+ 3
- 3
src/events/juce_MessageManager.h View File

@@ -26,15 +26,15 @@
#ifndef __JUCE_MESSAGEMANAGER_JUCEHEADER__
#define __JUCE_MESSAGEMANAGER_JUCEHEADER__
#include "../utilities/juce_DeletedAtShutdown.h"
#include "../containers/juce_SortedSet.h"
#include "../memory/juce_ScopedPointer.h"
#include "../threads/juce_Thread.h"
#include "../threads/juce_ThreadPool.h"
#include "juce_ActionBroadcaster.h"
#include "juce_CallbackMessage.h"
class Component;
class MessageManagerLock;
class ThreadPoolJob;
class ActionListener;
class ActionBroadcaster;
//==============================================================================


+ 1
- 2
src/events/juce_Timer.cpp View File

@@ -28,13 +28,12 @@
BEGIN_JUCE_NAMESPACE
#include "juce_Timer.h"
#include "juce_MessageManager.h"
#include "juce_AsyncUpdater.h"
#include "../containers/juce_SortedSet.h"
#include "../application/juce_Application.h"
#include "../utilities/juce_DeletedAtShutdown.h"
#include "../core/juce_Time.h"
#include "../threads/juce_Thread.h"
#include "../threads/juce_SpinLock.h"
//==============================================================================


+ 1
- 1
src/gui/components/buttons/juce_HyperlinkButton.cpp View File

@@ -64,7 +64,7 @@ void HyperlinkButton::setURL (const URL& newURL) noexcept
setTooltip (newURL.toString (false));
}
const Font HyperlinkButton::getFontToUse() const
Font HyperlinkButton::getFontToUse() const
{
Font f (font);


+ 1
- 1
src/gui/components/buttons/juce_HyperlinkButton.h View File

@@ -110,7 +110,7 @@ private:
bool resizeFont;
Justification justification;
const Font getFontToUse() const;
Font getFontToUse() const;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HyperlinkButton);
};


+ 4
- 4
src/gui/components/buttons/juce_ImageButton.cpp View File

@@ -90,7 +90,7 @@ void ImageButton::setImages (const bool resizeButtonNowToFitThisImage,
repaint();
}
const Image ImageButton::getCurrentImage() const
Image ImageButton::getCurrentImage() const
{
if (isDown() || getToggleState())
return getDownImage();
@@ -101,18 +101,18 @@ const Image ImageButton::getCurrentImage() const
return getNormalImage();
}
const Image ImageButton::getNormalImage() const
Image ImageButton::getNormalImage() const
{
return normalImage;
}
const Image ImageButton::getOverImage() const
Image ImageButton::getOverImage() const
{
return overImage.isValid() ? overImage
: normalImage;
}
const Image ImageButton::getDownImage() const
Image ImageButton::getDownImage() const
{
return downImage.isValid() ? downImage
: getOverImage();


+ 4
- 4
src/gui/components/buttons/juce_ImageButton.h View File

@@ -111,21 +111,21 @@ public:
float hitTestAlphaThreshold = 0.0f);
/** Returns the currently set 'normal' image. */
const Image getNormalImage() const;
Image getNormalImage() const;
/** Returns the image that's drawn when the mouse is over the button.
If a valid 'over' image has been set, this will return it; otherwise it'll
just return the normal image.
*/
const Image getOverImage() const;
Image getOverImage() const;
/** Returns the image that's drawn when the button is held down.
If a valid 'down' image has been set, this will return it; otherwise it'll
return the 'over' image or normal image, depending on what's available.
*/
const Image getDownImage() const;
Image getDownImage() const;
protected:
//==============================================================================
@@ -145,7 +145,7 @@ private:
float normalOpacity, overOpacity, downOpacity;
Colour normalOverlay, overOverlay, downOverlay;
const Image getCurrentImage() const;
Image getCurrentImage() const;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ImageButton);
};


+ 4
- 4
src/gui/components/controls/juce_ComboBox.cpp View File

@@ -222,7 +222,7 @@ int ComboBox::getNumItems() const noexcept
return n;
}
const String ComboBox::getItemText (const int index) const
String ComboBox::getItemText (const int index) const
{
const ItemInfo* const item = getItemForIndex (index);
@@ -315,7 +315,7 @@ void ComboBox::valueChanged (Value&)
}
//==============================================================================
const String ComboBox::getText() const
String ComboBox::getText() const
{
return label->getText();
}
@@ -365,7 +365,7 @@ void ComboBox::setTextWhenNothingSelected (const String& newMessage)
}
}
const String ComboBox::getTextWhenNothingSelected() const
String ComboBox::getTextWhenNothingSelected() const
{
return textWhenNothingSelected;
}
@@ -375,7 +375,7 @@ void ComboBox::setTextWhenNoChoicesAvailable (const String& newMessage)
noChoicesMessage = newMessage;
}
const String ComboBox::getTextWhenNoChoicesAvailable() const
String ComboBox::getTextWhenNoChoicesAvailable() const
{
return noChoicesMessage;
}


+ 4
- 6
src/gui/components/controls/juce_ComboBox.h View File

@@ -156,12 +156,10 @@ public:
int getNumItems() const noexcept;
/** Returns the text for one of the items in the list.
Note that this doesn't include headers or separators.
@param index the item's index from 0 to (getNumItems() - 1)
*/
const String getItemText (int index) const;
String getItemText (int index) const;
/** Returns the ID for one of the items in the list.
@@ -238,7 +236,7 @@ public:
@see setText, getSelectedId, getSelectedItemIndex
*/
const String getText() const;
String getText() const;
/** Sets the contents of the combo-box's text field.
@@ -300,7 +298,7 @@ public:
@see setTextWhenNothingSelected
*/
const String getTextWhenNothingSelected() const;
String getTextWhenNothingSelected() const;
/** Sets the message to show when there are no items in the list, and the user clicks
@@ -314,7 +312,7 @@ public:
/** Returns the text shown when no items have been added to the list.
@see setTextWhenNoChoicesAvailable
*/
const String getTextWhenNoChoicesAvailable() const;
String getTextWhenNoChoicesAvailable() const;
//==============================================================================
/** Gives the ComboBox a tooltip. */


+ 1
- 1
src/gui/components/controls/juce_ImageComponent.cpp View File

@@ -69,7 +69,7 @@ void ImageComponent::setImagePlacement (const RectanglePlacement& newPlacement)
}
}
const Image ImageComponent::getImage() const
const Image& ImageComponent::getImage() const
{
return image;
}


+ 1
- 1
src/gui/components/controls/juce_ImageComponent.h View File

@@ -56,7 +56,7 @@ public:
const RectanglePlacement& placementToUse);
/** Returns the current image. */
const Image getImage() const;
const Image& getImage() const;
/** Sets the method of positioning that will be used to fit the image within the component's bounds.
By default the positioning is centred, and will fit the image inside the component's bounds


+ 5
- 5
src/gui/components/controls/juce_TextEditor.cpp View File

@@ -51,7 +51,7 @@ struct TextAtom
bool isWhitespace() const { return CharacterFunctions::isWhitespace (atomText[0]); }
bool isNewLine() const { return atomText[0] == '\r' || atomText[0] == '\n'; }
const String getText (const juce_wchar passwordCharacter) const
String getText (const juce_wchar passwordCharacter) const
{
if (passwordCharacter == 0)
return atomText;
@@ -60,7 +60,7 @@ struct TextAtom
atomText.length());
}
const String getTrimmedText (const juce_wchar passwordCharacter) const
String getTrimmedText (const juce_wchar passwordCharacter) const
{
if (passwordCharacter == 0)
return atomText.substring (0, numChars);
@@ -1128,7 +1128,7 @@ void TextEditor::setSelectAllWhenFocused (const bool b)
}
//==============================================================================
const Font TextEditor::getFont() const
const Font& TextEditor::getFont() const
{
return currentFont;
}
@@ -2458,7 +2458,7 @@ void TextEditor::remove (const Range<int>& range,
}
//==============================================================================
const String TextEditor::getText() const
String TextEditor::getText() const
{
MemoryOutputStream mo;
mo.preallocate (getTotalNumChars());
@@ -2498,7 +2498,7 @@ const String TextEditor::getTextInRange (const Range<int>& range) const
return mo.toString();
}
const String TextEditor::getHighlightedText() const
String TextEditor::getHighlightedText() const
{
return getTextInRange (selection);
}


+ 3
- 3
src/gui/components/controls/juce_TextEditor.h View File

@@ -254,7 +254,7 @@ public:
@see setFont
*/
const Font getFont() const;
const Font& getFont() const;
//==============================================================================
/** If set to true, focusing on the editor will highlight all its text.
@@ -336,7 +336,7 @@ public:
//==============================================================================
/** Returns the entire contents of the editor. */
const String getText() const;
String getText() const;
/** Returns a section of the contents of the editor. */
const String getTextInRange (const Range<int>& textRange) const;
@@ -444,7 +444,7 @@ public:
const Range<int> getHighlightedRegion() const { return selection; }
/** Returns the section of text that is currently selected. */
const String getHighlightedText() const;
String getHighlightedText() const;
/** Finds the index of the character at a given position.


+ 34
- 5
src/gui/components/controls/juce_TreeView.cpp View File

@@ -626,6 +626,17 @@ TreeViewItem* TreeView::findItemFromIdentifierString (const String& identifierSt
}
//==============================================================================
static void addAllSelectedItemIds (TreeViewItem* item, XmlElement& parent)
{
if (item->isSelected())
parent.createNewChildElement ("SELECTED")->setAttribute ("id", item->getItemIdentifierString());
const int numSubItems = item->getNumSubItems();
for (int i = 0; i < numSubItems; ++i)
addAllSelectedItemIds (item->getSubItem(i), parent);
}
XmlElement* TreeView::getOpennessState (const bool alsoIncludeScrollPosition) const
{
XmlElement* e = nullptr;
@@ -634,14 +645,19 @@ XmlElement* TreeView::getOpennessState (const bool alsoIncludeScrollPosition) co
{
e = rootItem->getOpennessState();
if (e != nullptr && alsoIncludeScrollPosition)
e->setAttribute ("scrollPos", viewport->getViewPositionY());
if (e != nullptr)
{
if (alsoIncludeScrollPosition)
e->setAttribute ("scrollPos", viewport->getViewPositionY());
addAllSelectedItemIds (rootItem, *e);
}
}
return e;
}
void TreeView::restoreOpennessState (const XmlElement& newState)
void TreeView::restoreOpennessState (const XmlElement& newState, const bool restoreStoredSelection)
{
if (rootItem != nullptr)
{
@@ -650,6 +666,19 @@ void TreeView::restoreOpennessState (const XmlElement& newState)
if (newState.hasAttribute ("scrollPos"))
viewport->setViewPosition (viewport->getViewPositionX(),
newState.getIntAttribute ("scrollPos"));
if (restoreStoredSelection)
{
clearSelectedItems();
forEachXmlChildElementWithTagName (newState, e, "SELECTED")
{
TreeViewItem* const item = rootItem->findItemFromIdentifierString (e->getStringAttribute ("id"));
if (item != nullptr)
item->setSelected (true, false);
}
}
}
}
@@ -1702,7 +1731,7 @@ TreeViewItem* TreeViewItem::getNextVisibleItem (const bool recurse) const noexce
return nullptr;
}
const String TreeViewItem::getItemIdentifierString() const
String TreeViewItem::getItemIdentifierString() const
{
String s;
@@ -1723,7 +1752,7 @@ TreeViewItem* TreeViewItem::findItemFromIdentifierString (const String& identifi
{
const String remainingPath (identifierString.substring (thisId.length() + 1));
bool wasOpen = isOpen();
const bool wasOpen = isOpen();
setOpen (true);
for (int i = subItems.size(); --i >= 0;)


+ 9
- 5
src/gui/components/controls/juce_TreeView.h View File

@@ -455,7 +455,7 @@ public:
item and all its parents, so these must all be correctly implemented for it to work.
@see TreeView::findItemFromIdentifierString, getUniqueName
*/
const String getItemIdentifierString() const;
String getItemIdentifierString() const;
//==============================================================================
/**
@@ -510,8 +510,8 @@ private:
void updatePositions (int newY);
int getIndentX() const noexcept;
void setOwnerView (TreeView* newOwner) noexcept;
void paintRecursively (Graphics& g, int width);
void setOwnerView (TreeView*) noexcept;
void paintRecursively (Graphics&, int width);
TreeViewItem* getTopLevelItem() noexcept;
TreeViewItem* findItemRecursively (int y) noexcept;
TreeViewItem* getDeepestOpenParentItem() noexcept;
@@ -521,7 +521,7 @@ private:
int countSelectedItemsRecursively (int depth) const noexcept;
TreeViewItem* getSelectedItemWithIndex (int index) noexcept;
TreeViewItem* getNextVisibleItem (bool recurse) const noexcept;
TreeViewItem* findItemFromIdentifierString (const String& identifierString);
TreeViewItem* findItemFromIdentifierString (const String&);
#if JUCE_CATCH_DEPRECATED_CODE_MISUSE
// The parameters for these methods have changed - please update your code!
@@ -734,9 +734,13 @@ public:
the getOpennessState() method. If any of the nodes named in the original
XML aren't present in this tree, they will be ignored.
If restoreStoredSelection is true, it will also try to re-select any items that
were selected in the stored state.
@see getOpennessState
*/
void restoreOpennessState (const XmlElement& newState);
void restoreOpennessState (const XmlElement& newState,
bool restoreStoredSelection);
//==============================================================================
/** A set of colour IDs to use to change the colour of various aspects of the treeview.


+ 1
- 1
src/gui/components/filebrowser/juce_DirectoryContentsList.cpp View File

@@ -141,7 +141,7 @@ bool DirectoryContentsList::getFileInfo (const int index,
return false;
}
const File DirectoryContentsList::getFile (const int index) const
File DirectoryContentsList::getFile (const int index) const
{
const ScopedLock sl (fileListLock);
const FileInfo* const info = files [index];


+ 1
- 1
src/gui/components/filebrowser/juce_DirectoryContentsList.h View File

@@ -175,7 +175,7 @@ public:
return value will be File::nonexistent
@see getNumFiles, getFileInfo
*/
const File getFile (int index) const;
File getFile (int index) const;
/** Returns the file filter being used.


+ 3
- 3
src/gui/components/filebrowser/juce_FileBrowserComponent.cpp View File

@@ -158,7 +158,7 @@ int FileBrowserComponent::getNumSelectedFiles() const noexcept
return chosenFiles.size();
}
const File FileBrowserComponent::getSelectedFile (int index) const noexcept
File FileBrowserComponent::getSelectedFile (int index) const noexcept
{
if ((flags & canSelectDirectories) != 0 && filenameBox.getText().isEmpty())
return currentRoot;
@@ -177,7 +177,7 @@ bool FileBrowserComponent::currentFileIsValid() const
return getSelectedFile (0).exists();
}
const File FileBrowserComponent::getHighlightedFile() const noexcept
File FileBrowserComponent::getHighlightedFile() const noexcept
{
return fileListComponent->getSelectedFile (0);
}
@@ -209,7 +209,7 @@ bool FileBrowserComponent::isFileOrDirSuitable (const File& f) const
}
//==============================================================================
const File FileBrowserComponent::getRoot() const
const File& FileBrowserComponent::getRoot() const
{
return currentRoot;
}


+ 3
- 3
src/gui/components/filebrowser/juce_FileBrowserComponent.h View File

@@ -111,7 +111,7 @@ public:
to get - see getNumSelectedFiles() to find out how many files were chosen.
@see getHighlightedFile
*/
const File getSelectedFile (int index) const noexcept;
File getSelectedFile (int index) const noexcept;
/** Deselects any files that are currently selected.
*/
@@ -132,11 +132,11 @@ public:
this will only return one of them.
@see getSelectedFile
*/
const File getHighlightedFile() const noexcept;
File getHighlightedFile() const noexcept;
//==============================================================================
/** Returns the directory whose contents are currently being shown in the listbox. */
const File getRoot() const;
const File& getRoot() const;
/** Changes the directory that's being shown in the listbox. */
void setRoot (const File& newRootDirectory);


+ 1
- 1
src/gui/components/filebrowser/juce_FileChooser.cpp View File

@@ -155,7 +155,7 @@ bool FileChooser::showDialog (const bool selectsDirectories,
}
#endif
const File FileChooser::getResult() const
File FileChooser::getResult() const
{
// if you've used a multiple-file select, you should use the getResults() method
// to retrieve all the files that were chosen.


+ 1
- 1
src/gui/components/filebrowser/juce_FileChooser.h View File

@@ -157,7 +157,7 @@ public:
@see getResults
*/
const File getResult() const;
File getResult() const;
/** Returns a list of all the files that were chosen during the last call to a
browse method.


+ 1
- 1
src/gui/components/filebrowser/juce_FileListComponent.cpp View File

@@ -32,7 +32,7 @@ BEGIN_JUCE_NAMESPACE
#include "../../graphics/imaging/juce_ImageCache.h"
#include "../../../events/juce_AsyncUpdater.h"
const Image juce_createIconForFile (const File& file);
Image juce_createIconForFile (const File& file);
//==============================================================================


+ 1
- 1
src/gui/components/filebrowser/juce_FileTreeComponent.cpp View File

@@ -32,7 +32,7 @@ BEGIN_JUCE_NAMESPACE
#include "../../graphics/imaging/juce_ImageCache.h"
#include "../../../events/juce_AsyncUpdater.h"
const Image juce_createIconForFile (const File& file);
Image juce_createIconForFile (const File& file);
//==============================================================================


+ 2
- 2
src/gui/components/filebrowser/juce_FilenameComponent.cpp View File

@@ -161,7 +161,7 @@ void FilenameComponent::fileDragExit (const StringArray&)
}
//==============================================================================
const File FilenameComponent::getCurrentFile() const
File FilenameComponent::getCurrentFile() const
{
File f (filenameBox.getText());
@@ -197,7 +197,7 @@ void FilenameComponent::setFilenameIsEditable (const bool shouldBeEditable)
filenameBox.setEditableText (shouldBeEditable);
}
const StringArray FilenameComponent::getRecentlyUsedFilenames() const
StringArray FilenameComponent::getRecentlyUsedFilenames() const
{
StringArray names;


+ 2
- 2
src/gui/components/filebrowser/juce_FilenameComponent.h View File

@@ -109,7 +109,7 @@ public:
//==============================================================================
/** Returns the currently displayed filename. */
const File getCurrentFile() const;
File getCurrentFile() const;
/** Changes the current filename.
@@ -140,7 +140,7 @@ public:
@see setRecentlyUsedFilenames
*/
const StringArray getRecentlyUsedFilenames() const;
StringArray getRecentlyUsedFilenames() const;
/** Sets all the entries on the recent files list.


+ 13
- 13
src/gui/components/juce_Component.cpp View File

@@ -935,25 +935,25 @@ int Component::getParentHeight() const noexcept
int Component::getScreenX() const { return getScreenPosition().getX(); }
int Component::getScreenY() const { return getScreenPosition().getY(); }
const Point<int> Component::getScreenPosition() const { return localPointToGlobal (Point<int>()); }
const Rectangle<int> Component::getScreenBounds() const { return localAreaToGlobal (getLocalBounds()); }
Point<int> Component::getScreenPosition() const { return localPointToGlobal (Point<int>()); }
Rectangle<int> Component::getScreenBounds() const { return localAreaToGlobal (getLocalBounds()); }
const Point<int> Component::getLocalPoint (const Component* source, const Point<int>& point) const
Point<int> Component::getLocalPoint (const Component* source, const Point<int>& point) const
{
return ComponentHelpers::convertCoordinate (this, source, point);
}
const Rectangle<int> Component::getLocalArea (const Component* source, const Rectangle<int>& area) const
Rectangle<int> Component::getLocalArea (const Component* source, const Rectangle<int>& area) const
{
return ComponentHelpers::convertCoordinate (this, source, area);
}
const Point<int> Component::localPointToGlobal (const Point<int>& point) const
Point<int> Component::localPointToGlobal (const Point<int>& point) const
{
return ComponentHelpers::convertCoordinate (nullptr, this, point);
}
const Rectangle<int> Component::localAreaToGlobal (const Rectangle<int>& area) const
Rectangle<int> Component::localAreaToGlobal (const Rectangle<int>& area) const
{
return ComponentHelpers::convertCoordinate (nullptr, this, area);
}
@@ -1225,7 +1225,7 @@ void Component::setTransform (const AffineTransform& newTransform)
}
}
const AffineTransform Component::getTransform() const
AffineTransform Component::getTransform() const
{
return affineTransform != nullptr ? *affineTransform : AffineTransform::identity;
}
@@ -1954,8 +1954,8 @@ void Component::setPaintingIsUnclipped (const bool shouldPaintWithoutClipping) n
}
//==============================================================================
const Image Component::createComponentSnapshot (const Rectangle<int>& areaToGrab,
const bool clipImageToComponentBounds)
Image Component::createComponentSnapshot (const Rectangle<int>& areaToGrab,
const bool clipImageToComponentBounds)
{
Rectangle<int> r (areaToGrab);
@@ -2113,12 +2113,12 @@ void Component::setPositioner (Positioner* newPositioner)
}
//==============================================================================
const Rectangle<int> Component::getLocalBounds() const noexcept
Rectangle<int> Component::getLocalBounds() const noexcept
{
return Rectangle<int> (getWidth(), getHeight());
}
const Rectangle<int> Component::getBoundsInParent() const noexcept
Rectangle<int> Component::getBoundsInParent() const noexcept
{
return affineTransform == nullptr ? bounds
: bounds.toFloat().transformed (*affineTransform).getSmallestIntegerContainer();
@@ -2969,13 +2969,13 @@ bool JUCE_CALLTYPE Component::isMouseButtonDownAnywhere() noexcept
return ModifierKeys::getCurrentModifiers().isAnyMouseButtonDown();
}
const Point<int> Component::getMouseXYRelative() const
Point<int> Component::getMouseXYRelative() const
{
return getLocalPoint (nullptr, Desktop::getMousePosition());
}
//==============================================================================
const Rectangle<int> Component::getParentMonitorArea() const
Rectangle<int> Component::getParentMonitorArea() const
{
return Desktop::getInstance().getMonitorAreaContaining (getScreenBounds().getCentre());
}


+ 16
- 16
src/gui/components/juce_Component.h View File

@@ -305,7 +305,7 @@ public:
int getRight() const noexcept { return bounds.getRight(); }
/** Returns the component's top-left position as a Point. */
const Point<int> getPosition() const noexcept { return bounds.getPosition(); }
Point<int> getPosition() const noexcept { return bounds.getPosition(); }
/** Returns the y coordinate of the bottom edge of this component.
This is a distance in pixels from the top edge of the component's parent.
@@ -329,7 +329,7 @@ public:
This is like getBounds(), but returns the rectangle in local coordinates, In practice, it'll
return a rectangle with position (0, 0), and the same size as this component.
*/
const Rectangle<int> getLocalBounds() const noexcept;
Rectangle<int> getLocalBounds() const noexcept;
/** Returns the area of this component's parent which this component covers.
@@ -338,7 +338,7 @@ public:
the smallest rectangle that fully covers the component's transformed bounding box.
If this component has no parent, the return value will simply be the same as getBounds().
*/
const Rectangle<int> getBoundsInParent() const noexcept;
Rectangle<int> getBoundsInParent() const noexcept;
/** Returns the region of this component that's not obscured by other, opaque components.
@@ -365,12 +365,12 @@ public:
/** Returns the position of this component's top-left corner relative to the screen's top-left.
@see getScreenBounds
*/
const Point<int> getScreenPosition() const;
Point<int> getScreenPosition() const;
/** Returns the bounds of this component, relative to the screen's top-left.
@see getScreenPosition
*/
const Rectangle<int> getScreenBounds() const;
Rectangle<int> getScreenBounds() const;
/** Converts a point to be relative to this component's coordinate space.
@@ -378,8 +378,8 @@ public:
component. If the sourceComponent parameter is null, the source point is assumed to be a global
screen coordinate.
*/
const Point<int> getLocalPoint (const Component* sourceComponent,
const Point<int>& pointRelativeToSourceComponent) const;
Point<int> getLocalPoint (const Component* sourceComponent,
const Point<int>& pointRelativeToSourceComponent) const;
/** Converts a rectangle to be relative to this component's coordinate space.
@@ -391,13 +391,13 @@ public:
may not actually be rectanglular when converted to the target space, so in that situation this will return
the smallest rectangle that fully contains the transformed area.
*/
const Rectangle<int> getLocalArea (const Component* sourceComponent,
const Rectangle<int>& areaRelativeToSourceComponent) const;
Rectangle<int> getLocalArea (const Component* sourceComponent,
const Rectangle<int>& areaRelativeToSourceComponent) const;
/** Converts a point relative to this component's top-left into a screen coordinate.
@see getLocalPoint, localAreaToGlobal
*/
const Point<int> localPointToGlobal (const Point<int>& localPoint) const;
Point<int> localPointToGlobal (const Point<int>& localPoint) const;
/** Converts a rectangle from this component's coordinate space to a screen coordinate.
@@ -406,7 +406,7 @@ public:
the smallest rectangle that fully contains the transformed area.
@see getLocalPoint, localPointToGlobal
*/
const Rectangle<int> localAreaToGlobal (const Rectangle<int>& localArea) const;
Rectangle<int> localAreaToGlobal (const Rectangle<int>& localArea) const;
//==============================================================================
/** Moves the component to a new position.
@@ -621,7 +621,7 @@ public:
For more details about transforms, see setTransform().
@see setTransform
*/
const AffineTransform getTransform() const;
AffineTransform getTransform() const;
/** Returns true if a non-identity transform is being applied to this component.
For more details about transforms, see setTransform().
@@ -662,7 +662,7 @@ public:
monitors, it will return the area of the monitor that contains the component's
centre.
*/
const Rectangle<int> getParentMonitorArea() const;
Rectangle<int> getParentMonitorArea() const;
//==============================================================================
/** Returns the number of child components that this component contains.
@@ -1022,8 +1022,8 @@ public:
@see paintEntireComponent
*/
const Image createComponentSnapshot (const Rectangle<int>& areaToGrab,
bool clipImageToComponentBounds = true);
Image createComponentSnapshot (const Rectangle<int>& areaToGrab,
bool clipImageToComponentBounds = true);
/** Draws this component and all its subcomponents onto the specified graphics
context.
@@ -1792,7 +1792,7 @@ public:
/** Returns the mouse's current position, relative to this component.
The return value is relative to the component's top-left corner.
*/
const Point<int> getMouseXYRelative() const;
Point<int> getMouseXYRelative() const;
//==============================================================================
/** Called when this component's size has been changed.


+ 0
- 1
src/gui/components/juce_Desktop.h View File

@@ -27,7 +27,6 @@
#define __JUCE_DESKTOP_JUCEHEADER__
#include "juce_Component.h"
#include "../../core/juce_Time.h"
#include "../../utilities/juce_DeletedAtShutdown.h"
#include "../../events/juce_Timer.h"
#include "../../events/juce_AsyncUpdater.h"


+ 2
- 2
src/gui/components/keyboard/juce_KeyPress.cpp View File

@@ -227,7 +227,7 @@ const KeyPress KeyPress::createFromDescription (const String& desc)
return KeyPress (key, ModifierKeys (modifiers), 0);
}
const String KeyPress::getTextDescription() const
String KeyPress::getTextDescription() const
{
String desc;
@@ -277,7 +277,7 @@ const String KeyPress::getTextDescription() const
return desc;
}
const String KeyPress::getTextDescriptionWithIcons() const
String KeyPress::getTextDescriptionWithIcons() const
{
#if JUCE_MAC
return getTextDescription().replace ("shift + ", String::charToString (0x21e7))


+ 2
- 2
src/gui/components/keyboard/juce_KeyPress.h View File

@@ -146,14 +146,14 @@ public:
To store a keypress in a file, use this method, along with createFromDescription()
to retrieve it later.
*/
const String getTextDescription() const;
String getTextDescription() const;
/** Creates a textual description of the key combination, using unicode icon symbols if possible.
On OSX, this uses the Apple symbols for command, option, shift, etc, instead of the textual
modifier key descriptions that are returned by getTextDescription()
*/
const String getTextDescriptionWithIcons() const;
String getTextDescriptionWithIcons() const;
//==============================================================================
/** Checks whether the user is currently holding down the keys that make up this


+ 1
- 1
src/gui/components/layout/juce_TabbedButtonBar.cpp View File

@@ -278,7 +278,7 @@ const String TabbedButtonBar::getCurrentTabName() const
return tab == nullptr ? String::empty : tab->name;
}
const StringArray TabbedButtonBar::getTabNames() const
StringArray TabbedButtonBar::getTabNames() const
{
StringArray names;


+ 1
- 1
src/gui/components/layout/juce_TabbedButtonBar.h View File

@@ -183,7 +183,7 @@ public:
int getNumTabs() const;
/** Returns a list of all the tab names in the bar. */
const StringArray getTabNames() const;
StringArray getTabNames() const;
/** Changes the currently selected tab.


+ 1
- 1
src/gui/components/layout/juce_TabbedComponent.cpp View File

@@ -188,7 +188,7 @@ int TabbedComponent::getNumTabs() const
return tabs->getNumTabs();
}
const StringArray TabbedComponent::getTabNames() const
StringArray TabbedComponent::getTabNames() const
{
return tabs->getTabNames();
}


+ 1
- 1
src/gui/components/layout/juce_TabbedComponent.h View File

@@ -128,7 +128,7 @@ public:
int getNumTabs() const;
/** Returns a list of all the tab names in the bar. */
const StringArray getTabNames() const;
StringArray getTabNames() const;
/** Returns the content component that was added for the given index.


+ 2
- 2
src/gui/components/mouse/juce_MouseEvent.cpp View File

@@ -61,7 +61,7 @@ MouseEvent::~MouseEvent() noexcept
}
//==============================================================================
const MouseEvent MouseEvent::getEventRelativeTo (Component* const otherComponent) const noexcept
MouseEvent MouseEvent::getEventRelativeTo (Component* const otherComponent) const noexcept
{
if (otherComponent == nullptr)
{
@@ -75,7 +75,7 @@ const MouseEvent MouseEvent::getEventRelativeTo (Component* const otherComponent
mouseDownTime, numberOfClicks, wasMovedSinceMouseDown);
}
const MouseEvent MouseEvent::withNewPosition (const Point<int>& newPosition) const noexcept
MouseEvent MouseEvent::withNewPosition (const Point<int>& newPosition) const noexcept
{
return MouseEvent (source, newPosition, mods, eventComponent, originalComponent,
eventTime, mouseDownPos, mouseDownTime,


+ 2
- 2
src/gui/components/mouse/juce_MouseEvent.h View File

@@ -284,13 +284,13 @@ public:
The x and y positions of the event that is returned will have been
adjusted to be relative to the new component.
*/
const MouseEvent getEventRelativeTo (Component* otherComponent) const noexcept;
MouseEvent getEventRelativeTo (Component* otherComponent) const noexcept;
/** Creates a copy of this event with a different position.
All other members of the event object are the same, but the x and y are
replaced with these new values.
*/
const MouseEvent withNewPosition (const Point<int>& newPosition) const noexcept;
MouseEvent withNewPosition (const Point<int>& newPosition) const noexcept;
//==============================================================================
/** Changes the application-wide setting for the double-click time limit.


+ 1
- 1
src/gui/components/positioning/juce_RelativeCoordinate.cpp View File

@@ -160,7 +160,7 @@ bool RelativeCoordinate::isDynamic() const
return term.usesAnySymbols();
}
const String RelativeCoordinate::toString() const
String RelativeCoordinate::toString() const
{
return term.toString();
}


+ 1
- 1
src/gui/components/positioning/juce_RelativeCoordinate.h View File

@@ -102,7 +102,7 @@ public:
/** Returns a string which represents this coordinate.
For details of the string syntax, see the constructor notes.
*/
const String toString() const;
String toString() const;
//==============================================================================
/** A set of static strings that are commonly used by the RelativeCoordinate class.


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save