| @@ -253,6 +253,7 @@ OBJECTS := \ | |||||
| $(OBJDIR)/juce_SVGParser_b79416c5.o \ | $(OBJDIR)/juce_SVGParser_b79416c5.o \ | ||||
| $(OBJDIR)/juce_DropShadowEffect_da52d75.o \ | $(OBJDIR)/juce_DropShadowEffect_da52d75.o \ | ||||
| $(OBJDIR)/juce_GlowEffect_c0959893.o \ | $(OBJDIR)/juce_GlowEffect_c0959893.o \ | ||||
| $(OBJDIR)/juce_CustomTypeface_b93a3eff.o \ | |||||
| $(OBJDIR)/juce_Font_fa88db26.o \ | $(OBJDIR)/juce_Font_fa88db26.o \ | ||||
| $(OBJDIR)/juce_GlyphArrangement_f0797295.o \ | $(OBJDIR)/juce_GlyphArrangement_f0797295.o \ | ||||
| $(OBJDIR)/juce_TextLayout_d18f700e.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" | @echo "Compiling juce_GlowEffect.cpp" | ||||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | @$(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 | $(OBJDIR)/juce_Font_fa88db26.o: ../../src/gui/graphics/fonts/juce_Font.cpp | ||||
| -@mkdir -p $(OBJDIR) | -@mkdir -p $(OBJDIR) | ||||
| @echo "Compiling juce_Font.cpp" | @echo "Compiling juce_Font.cpp" | ||||
| @@ -222,6 +222,7 @@ | |||||
| 645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; }; | 645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; }; | ||||
| 38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; }; | 38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; }; | ||||
| E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; }; | E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; }; | ||||
| 60E1742796432D042C59B9B3 = { isa = PBXBuildFile; fileRef = BA17B023595ECD8166A231D1; }; | |||||
| B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; }; | B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; }; | ||||
| EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; }; | EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; }; | ||||
| 803FFCA3DAC0C004A80143B4 = { isa = PBXBuildFile; fileRef = 91CB423DBC5F3CBEDD9CF2EF; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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, | FD1FA4ABB4226372235643E4, | ||||
| 18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = "<group>"; }; | 18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = "<group>"; }; | ||||
| 58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = ( | 58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = ( | ||||
| BA17B023595ECD8166A231D1, | |||||
| 6B4E90767D784246EC4E1944, | |||||
| 78068AA59A5DCFCCAAEA79D0, | 78068AA59A5DCFCCAAEA79D0, | ||||
| 0401EA0E883CCAAAC6960A27, | 0401EA0E883CCAAAC6960A27, | ||||
| 61D06B694603F608CDA0703B, | 61D06B694603F608CDA0703B, | ||||
| @@ -2260,6 +2265,7 @@ | |||||
| 645AF66C048A4815F5A8ECDD, | 645AF66C048A4815F5A8ECDD, | ||||
| 38EFE824E76B3BB99824C265, | 38EFE824E76B3BB99824C265, | ||||
| E23C5C51305DC7CE30E4DAB7, | E23C5C51305DC7CE30E4DAB7, | ||||
| 60E1742796432D042C59B9B3, | |||||
| B92F53BABB6A9AC8348B001E, | B92F53BABB6A9AC8348B001E, | ||||
| EBC3AA015D24C62FA0307F51, | EBC3AA015D24C62FA0307F51, | ||||
| 803FFCA3DAC0C004A80143B4, | 803FFCA3DAC0C004A80143B4, | ||||
| @@ -736,6 +736,8 @@ | |||||
| <File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/> | <File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| </Filter> | </Filter> | ||||
| <Filter Name="fonts"> | <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.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/> | <File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/> | ||||
| <File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | <File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | ||||
| @@ -736,6 +736,8 @@ | |||||
| <File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/> | <File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| </Filter> | </Filter> | ||||
| <Filter Name="fonts"> | <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.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/> | <File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/> | ||||
| <File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | <File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | ||||
| @@ -738,6 +738,8 @@ | |||||
| <File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/> | <File RelativePath="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| </Filter> | </Filter> | ||||
| <Filter Name="fonts"> | <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.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/> | <File RelativePath="..\..\src\gui\graphics\fonts\juce_Font.h"/> | ||||
| <File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | <File RelativePath="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | ||||
| @@ -336,6 +336,7 @@ | |||||
| <ClCompile Include="..\..\src\gui\graphics\drawables\juce_SVGParser.cpp"/> | <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_DropShadowEffect.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\graphics\effects\juce_GlowEffect.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_Font.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | <ClCompile Include="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\graphics\fonts\juce_TextLayout.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_DropShadowEffect.h"/> | ||||
| <ClInclude Include="..\..\src\gui\graphics\effects\juce_GlowEffect.h"/> | <ClInclude Include="..\..\src\gui\graphics\effects\juce_GlowEffect.h"/> | ||||
| <ClInclude Include="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.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_Font.h"/> | ||||
| <ClInclude Include="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.h"/> | <ClInclude Include="..\..\src\gui\graphics\fonts\juce_GlyphArrangement.h"/> | ||||
| <ClInclude Include="..\..\src\gui\graphics\fonts\juce_TextLayout.h"/> | <ClInclude Include="..\..\src\gui\graphics\fonts\juce_TextLayout.h"/> | ||||
| @@ -865,6 +865,9 @@ | |||||
| <ClCompile Include="..\..\src\gui\graphics\effects\juce_GlowEffect.cpp"> | <ClCompile Include="..\..\src\gui\graphics\effects\juce_GlowEffect.cpp"> | ||||
| <Filter>Juce\Source\gui\graphics\effects</Filter> | <Filter>Juce\Source\gui\graphics\effects</Filter> | ||||
| </ClCompile> | </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"> | <ClCompile Include="..\..\src\gui\graphics\fonts\juce_Font.cpp"> | ||||
| <Filter>Juce\Source\gui\graphics\fonts</Filter> | <Filter>Juce\Source\gui\graphics\fonts</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| @@ -2097,6 +2100,9 @@ | |||||
| <ClInclude Include="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"> | <ClInclude Include="..\..\src\gui\graphics\effects\juce_ImageEffectFilter.h"> | ||||
| <Filter>Juce\Source\gui\graphics\effects</Filter> | <Filter>Juce\Source\gui\graphics\effects</Filter> | ||||
| </ClInclude> | </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"> | <ClInclude Include="..\..\src\gui\graphics\fonts\juce_Font.h"> | ||||
| <Filter>Juce\Source\gui\graphics\fonts</Filter> | <Filter>Juce\Source\gui\graphics\fonts</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -222,6 +222,7 @@ | |||||
| 645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; }; | 645AF66C048A4815F5A8ECDD = { isa = PBXBuildFile; fileRef = 2BFC199D03DEEC329D6A7CB1; }; | ||||
| 38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; }; | 38EFE824E76B3BB99824C265 = { isa = PBXBuildFile; fileRef = 32EA297812F1C88B42099501; }; | ||||
| E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; }; | E23C5C51305DC7CE30E4DAB7 = { isa = PBXBuildFile; fileRef = CB649686575473223C859482; }; | ||||
| 60E1742796432D042C59B9B3 = { isa = PBXBuildFile; fileRef = BA17B023595ECD8166A231D1; }; | |||||
| B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; }; | B92F53BABB6A9AC8348B001E = { isa = PBXBuildFile; fileRef = 78068AA59A5DCFCCAAEA79D0; }; | ||||
| EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; }; | EBC3AA015D24C62FA0307F51 = { isa = PBXBuildFile; fileRef = 61D06B694603F608CDA0703B; }; | ||||
| 803FFCA3DAC0C004A80143B4 = { isa = PBXBuildFile; fileRef = 91CB423DBC5F3CBEDD9CF2EF; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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, | FD1FA4ABB4226372235643E4, | ||||
| 18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = "<group>"; }; | 18DB9BD10F140F132A3279C3 ); name = effects; sourceTree = "<group>"; }; | ||||
| 58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = ( | 58FE42C578BFFD1F8F545B39 = { isa = PBXGroup; children = ( | ||||
| BA17B023595ECD8166A231D1, | |||||
| 6B4E90767D784246EC4E1944, | |||||
| 78068AA59A5DCFCCAAEA79D0, | 78068AA59A5DCFCCAAEA79D0, | ||||
| 0401EA0E883CCAAAC6960A27, | 0401EA0E883CCAAAC6960A27, | ||||
| 61D06B694603F608CDA0703B, | 61D06B694603F608CDA0703B, | ||||
| @@ -2264,6 +2269,7 @@ | |||||
| 645AF66C048A4815F5A8ECDD, | 645AF66C048A4815F5A8ECDD, | ||||
| 38EFE824E76B3BB99824C265, | 38EFE824E76B3BB99824C265, | ||||
| E23C5C51305DC7CE30E4DAB7, | E23C5C51305DC7CE30E4DAB7, | ||||
| 60E1742796432D042C59B9B3, | |||||
| B92F53BABB6A9AC8348B001E, | B92F53BABB6A9AC8348B001E, | ||||
| EBC3AA015D24C62FA0307F51, | EBC3AA015D24C62FA0307F51, | ||||
| 803FFCA3DAC0C004A80143B4, | 803FFCA3DAC0C004A80143B4, | ||||
| @@ -1092,6 +1092,10 @@ | |||||
| file="src/gui/graphics/effects/juce_ImageEffectFilter.h"/> | file="src/gui/graphics/effects/juce_ImageEffectFilter.h"/> | ||||
| </GROUP> | </GROUP> | ||||
| <GROUP id="nw92NleR1" name="fonts"> | <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="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="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" | <FILE id="rVpLDxysZ" name="juce_GlyphArrangement.cpp" compile="1" resource="0" | ||||
| @@ -365,6 +365,7 @@ | |||||
| #include "../src/gui/graphics/fonts/juce_GlyphArrangement.cpp" | #include "../src/gui/graphics/fonts/juce_GlyphArrangement.cpp" | ||||
| #include "../src/gui/graphics/fonts/juce_TextLayout.cpp" | #include "../src/gui/graphics/fonts/juce_TextLayout.cpp" | ||||
| #include "../src/gui/graphics/fonts/juce_Typeface.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_AffineTransform.cpp" | ||||
| #include "../src/gui/graphics/geometry/juce_Path.cpp" | #include "../src/gui/graphics/geometry/juce_Path.cpp" | ||||
| #include "../src/gui/graphics/geometry/juce_PathIterator.cpp" | #include "../src/gui/graphics/geometry/juce_PathIterator.cpp" | ||||
| @@ -360,7 +360,7 @@ void ProjectTreeViewBase::itemDropped (const DragAndDropTarget::SourceDetails& d | |||||
| moveSelectedItemsTo (selectedNodes, insertIndex); | moveSelectedItemsTo (selectedNodes, insertIndex); | ||||
| if (oldOpenness != nullptr) | if (oldOpenness != nullptr) | ||||
| tree->restoreOpennessState (*oldOpenness); | |||||
| tree->restoreOpennessState (*oldOpenness, false); | |||||
| } | } | ||||
| } | } | ||||
| @@ -154,7 +154,7 @@ const String ApplicationCommandManager::getDescriptionOfCommand (const CommandID | |||||
| : String::empty; | : String::empty; | ||||
| } | } | ||||
| const StringArray ApplicationCommandManager::getCommandCategories() const | |||||
| StringArray ApplicationCommandManager::getCommandCategories() const | |||||
| { | { | ||||
| StringArray s; | StringArray s; | ||||
| @@ -194,7 +194,7 @@ public: | |||||
| @see getCommandsInCategory() | @see getCommandsInCategory() | ||||
| */ | */ | ||||
| const StringArray getCommandCategories() const; | |||||
| StringArray getCommandCategories() const; | |||||
| /** Returns a list of all the command UIDs in a particular category. | /** Returns a list of all the command UIDs in a particular category. | ||||
| @@ -30,55 +30,57 @@ BEGIN_JUCE_NAMESPACE | |||||
| #include "juce_AudioThumbnail.h" | #include "juce_AudioThumbnail.h" | ||||
| #include "juce_AudioThumbnailCache.h" | #include "juce_AudioThumbnailCache.h" | ||||
| #include "../../events/juce_MessageManager.h" | #include "../../events/juce_MessageManager.h" | ||||
| #include "../../io/streams/juce_BufferedInputStream.h" | |||||
| //============================================================================== | //============================================================================== | ||||
| struct AudioThumbnail::MinMaxValue | 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 | 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 | 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 | inline bool isNonZero() const noexcept | ||||
| { | { | ||||
| return maxValue > minValue; | |||||
| return values[1] > values[0]; | |||||
| } | } | ||||
| inline int getPeak() const noexcept | 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); | 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; | ++startSample; | ||||
| } | } | ||||
| @@ -397,8 +399,8 @@ public: | |||||
| for (int w = clip.getWidth(); --w >= 0;) | for (int w = clip.getWidth(); --w >= 0;) | ||||
| { | { | ||||
| if (cacheData->isNonZero()) | 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; | ++x; | ||||
| ++cacheData; | ++cacheData; | ||||
| @@ -568,10 +570,12 @@ void AudioThumbnail::createChannels (const int length) | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| void AudioThumbnail::loadFrom (InputStream& input) | |||||
| void AudioThumbnail::loadFrom (InputStream& rawInput) | |||||
| { | { | ||||
| clear(); | clear(); | ||||
| BufferedInputStream input (rawInput, 4096); | |||||
| if (input.readByte() != 'j' || input.readByte() != 'a' || input.readByte() != 't' || input.readByte() != 'm') | if (input.readByte() != 'j' || input.readByte() != 'a' || input.readByte() != 't' || input.readByte() != 'm') | ||||
| return; | return; | ||||
| @@ -581,7 +585,7 @@ void AudioThumbnail::loadFrom (InputStream& input) | |||||
| int32 numThumbnailSamples = input.readInt(); // Number of samples in the thumbnail data. | int32 numThumbnailSamples = input.readInt(); // Number of samples in the thumbnail data. | ||||
| numChannels = input.readInt(); // Number of audio channels. | numChannels = input.readInt(); // Number of audio channels. | ||||
| sampleRate = input.readInt(); // Source sample rate. | sampleRate = input.readInt(); // Source sample rate. | ||||
| input.skipNextBytes (16); // reserved area | |||||
| input.skipNextBytes (16); // (reserved) | |||||
| createChannels (numThumbnailSamples); | createChannels (numThumbnailSamples); | ||||
| @@ -762,8 +766,8 @@ void AudioThumbnail::getApproximateMinMax (const double startTime, const double | |||||
| data->getMinMax (jmax (0, firstThumbIndex), lastThumbIndex, result); | 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, | void AudioThumbnail::drawChannel (Graphics& g, const Rectangle<int>& area, double startTime, | ||||
| @@ -48,12 +48,12 @@ const char* const WavAudioFormat::bwavOriginationTime = "bwav origination time" | |||||
| const char* const WavAudioFormat::bwavTimeReference = "bwav time reference"; | const char* const WavAudioFormat::bwavTimeReference = "bwav time reference"; | ||||
| const char* const WavAudioFormat::bwavCodingHistory = "bwav coding history"; | 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; | StringPairArray m; | ||||
| @@ -111,12 +111,12 @@ public: | |||||
| This just makes it easier than using the property names directly, and it | This just makes it easier than using the property names directly, and it | ||||
| fills out the time and date in the right format. | 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(); | const Array <int> getPossibleSampleRates(); | ||||
| @@ -28,10 +28,6 @@ | |||||
| BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
| #include "juce_AudioDeviceManager.h" | #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) | if (defaultMidiOutputName != deviceName) | ||||
| { | { | ||||
| SortedSet <AudioIODeviceCallback*> oldCallbacks; | |||||
| Array <AudioIODeviceCallback*> oldCallbacks; | |||||
| { | { | ||||
| const ScopedLock sl (audioCallbackLock); | const ScopedLock sl (audioCallbackLock); | ||||
| @@ -30,8 +30,9 @@ | |||||
| #include "../midi/juce_MidiInput.h" | #include "../midi/juce_MidiInput.h" | ||||
| #include "../midi/juce_MidiOutput.h" | #include "../midi/juce_MidiOutput.h" | ||||
| #include "../../text/juce_XmlElement.h" | #include "../../text/juce_XmlElement.h" | ||||
| #include "../../gui/components/controls/juce_ComboBox.h" | |||||
| #include "../../events/juce_ChangeBroadcaster.h" | |||||
| #include "../dsp/juce_AudioSampleBuffer.h" | #include "../dsp/juce_AudioSampleBuffer.h" | ||||
| #include "../../containers/juce_OwnedArray.h" | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -450,7 +451,7 @@ private: | |||||
| AudioDeviceSetup currentSetup; | AudioDeviceSetup currentSetup; | ||||
| ScopedPointer <AudioIODevice> currentAudioDevice; | ScopedPointer <AudioIODevice> currentAudioDevice; | ||||
| SortedSet <AudioIODeviceCallback*> callbacks; | |||||
| Array <AudioIODeviceCallback*> callbacks; | |||||
| int numInputChansNeeded, numOutputChansNeeded; | int numInputChansNeeded, numOutputChansNeeded; | ||||
| String currentDeviceType; | String currentDeviceType; | ||||
| BigInteger inputChannels, outputChannels; | BigInteger inputChannels, outputChannels; | ||||
| @@ -28,7 +28,6 @@ | |||||
| #include "../../text/juce_StringArray.h" | #include "../../text/juce_StringArray.h" | ||||
| #include "../../maths/juce_BigInteger.h" | #include "../../maths/juce_BigInteger.h" | ||||
| #include "../../containers/juce_OwnedArray.h" | |||||
| class AudioIODevice; | class AudioIODevice; | ||||
| @@ -28,7 +28,7 @@ | |||||
| #include "juce_AudioIODevice.h" | #include "juce_AudioIODevice.h" | ||||
| class AudioDeviceManager; | class AudioDeviceManager; | ||||
| class Component; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** | /** | ||||
| @@ -168,14 +168,10 @@ namespace MidiFileHelpers | |||||
| { | { | ||||
| const double diff = (first->message.getTimeStamp() - second->message.getTimeStamp()); | 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; | return 0; | ||||
| } | } | ||||
| @@ -397,7 +393,6 @@ bool MidiFile::writeTo (OutputStream& out) | |||||
| writeTrack (out, i); | writeTrack (out, i); | ||||
| out.flush(); | out.flush(); | ||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -443,7 +438,7 @@ void MidiFile::writeTrack (OutputStream& mainOut, const int trackNum) | |||||
| mainOut.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MTrk")); | mainOut.writeIntBigEndian ((int) ByteOrder::bigEndianInt ("MTrk")); | ||||
| mainOut.writeIntBigEndian ((int) out.getDataSize()); | mainOut.writeIntBigEndian ((int) out.getDataSize()); | ||||
| mainOut.write (out.getData(), (int) out.getDataSize()); | |||||
| mainOut << out; | |||||
| } | } | ||||
| END_JUCE_NAMESPACE | END_JUCE_NAMESPACE | ||||
| @@ -387,9 +387,9 @@ int MidiMessage::getAfterTouchValue() const noexcept | |||||
| return data[2]; | 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 (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16 | ||||
| jassert (isPositiveAndBelow (noteNum, (int) 128)); | jassert (isPositiveAndBelow (noteNum, (int) 128)); | ||||
| @@ -411,8 +411,7 @@ int MidiMessage::getChannelPressureValue() const noexcept | |||||
| return data[1]; | 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 (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16 | ||||
| jassert (isPositiveAndBelow (pressure, (int) 128)); | jassert (isPositiveAndBelow (pressure, (int) 128)); | ||||
| @@ -441,8 +440,7 @@ int MidiMessage::getProgramChangeNumber() const noexcept | |||||
| return data[1]; | 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 | 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); | 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 (channel > 0 && channel <= 16); // valid channels are numbered 1 to 16 | ||||
| jassert (isPositiveAndBelow (position, (int) 0x4000)); | jassert (isPositiveAndBelow (position, (int) 0x4000)); | ||||
| @@ -492,7 +489,7 @@ int MidiMessage::getControllerValue() const noexcept | |||||
| return data[2]; | 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 | // the channel must be between 1 and 16 inclusive | ||||
| jassert (channel > 0 && channel <= 16); | jassert (channel > 0 && channel <= 16); | ||||
| @@ -501,12 +498,12 @@ const MidiMessage MidiMessage::controllerEvent (const int channel, const int con | |||||
| controllerType & 127, value & 127); | 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)); | 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 (channel > 0 && channel <= 16); | ||||
| jassert (isPositiveAndBelow (noteNumber, (int) 128)); | jassert (isPositiveAndBelow (noteNumber, (int) 128)); | ||||
| @@ -515,7 +512,7 @@ const MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, | |||||
| noteNumber & 127, MidiHelpers::validVelocity (velocity)); | 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 (channel > 0 && channel <= 16); | ||||
| jassert (isPositiveAndBelow (noteNumber, (int) 128)); | jassert (isPositiveAndBelow (noteNumber, (int) 128)); | ||||
| @@ -524,7 +521,7 @@ const MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, | |||||
| noteNumber & 127, MidiHelpers::validVelocity (velocity)); | 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); | return controllerEvent (channel, 123, 0); | ||||
| } | } | ||||
| @@ -534,7 +531,7 @@ bool MidiMessage::isAllNotesOff() const noexcept | |||||
| return (data[0] & 0xf0) == 0xb0 && data[1] == 123; | 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); | return controllerEvent (channel, 120, 0); | ||||
| } | } | ||||
| @@ -544,12 +541,12 @@ bool MidiMessage::isAllSoundOff() const noexcept | |||||
| return (data[0] & 0xf0) == 0xb0 && data[1] == 120; | 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); | 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)); | const int vol = jlimit (0, 0x3fff, roundToInt (volume * 0x4000)); | ||||
| @@ -567,7 +564,7 @@ bool MidiMessage::isSysEx() const noexcept | |||||
| return *data == 0xf0; | 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); | HeapBlock<uint8> m (dataSize + 2); | ||||
| @@ -627,7 +624,7 @@ bool MidiMessage::isTextMetaEvent() const noexcept | |||||
| return t > 0 && t < 16; | return t > 0 && t < 16; | ||||
| } | } | ||||
| const String MidiMessage::getTextFromTextMetaEvent() const | |||||
| String MidiMessage::getTextFromTextMetaEvent() const | |||||
| { | { | ||||
| return String (reinterpret_cast <const char*> (getMetaEventData()), getMetaEventLength()); | 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, | const uint8 d[] = { 0xff, 81, 3, | ||||
| (uint8) (microsecondsPerQuarterNote >> 16), | (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 n = 1; | ||||
| int powerOfTwo = 0; | int powerOfTwo = 0; | ||||
| @@ -729,7 +726,7 @@ const MidiMessage MidiMessage::timeSignatureMetaEvent (const int numerator, cons | |||||
| return MidiMessage (d, 7, 0.0); | 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) }; | const uint8 d[] = { 0xff, 0x20, 0x01, (uint8) jlimit (0, 0xff, channel - 1) }; | ||||
| @@ -746,7 +743,7 @@ int MidiMessage::getKeySignatureNumberOfSharpsOrFlats() const noexcept | |||||
| return (int) *getMetaEventData(); | return (int) *getMetaEventData(); | ||||
| } | } | ||||
| const MidiMessage MidiMessage::endOfTrack() noexcept | |||||
| MidiMessage MidiMessage::endOfTrack() noexcept | |||||
| { | { | ||||
| return MidiMessage (0xff, 0x2f, 0, 0.0); | return MidiMessage (0xff, 0x2f, 0, 0.0); | ||||
| } | } | ||||
| @@ -755,30 +752,30 @@ const MidiMessage MidiMessage::endOfTrack() noexcept | |||||
| bool MidiMessage::isSongPositionPointer() const noexcept { return *data == 0xf2; } | bool MidiMessage::isSongPositionPointer() const noexcept { return *data == 0xf2; } | ||||
| int MidiMessage::getSongPositionPointerMidiBeat() const noexcept { return data[1] | (data[2] << 7); } | 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, | return MidiMessage (0xf2, | ||||
| positionInMidiBeats & 127, | positionInMidiBeats & 127, | ||||
| (positionInMidiBeats >> 7) & 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; } | bool MidiMessage::isQuarterFrame() const noexcept { return *data == 0xf1; } | ||||
| int MidiMessage::getQuarterFrameSequenceNumber() const noexcept { return ((int) data[1]) >> 4; } | int MidiMessage::getQuarterFrameSequenceNumber() const noexcept { return ((int) data[1]) >> 4; } | ||||
| int MidiMessage::getQuarterFrameValue() const noexcept { return ((int) data[1]) & 0x0f; } | 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); | return MidiMessage (0xf1, (sequenceNumber << 4) | value); | ||||
| } | } | ||||
| @@ -804,9 +801,9 @@ void MidiMessage::getFullFrameParameters (int& hours, int& minutes, int& seconds | |||||
| frames = data[8]; | 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, | const uint8 d[] = { 0xf0, 0x7f, 0x7f, 0x01, 0x01, | ||||
| (uint8) ((hours & 0x01f) | (timecodeType << 5)), | (uint8) ((hours & 0x01f) | (timecodeType << 5)), | ||||
| @@ -833,7 +830,7 @@ MidiMessage::MidiMachineControlCommand MidiMessage::getMidiMachineControlCommand | |||||
| return (MidiMachineControlCommand) data[4]; | 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 }; | 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; | 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, | const uint8 d[] = { 0xf0, 0x7f, 0, 6, 0x44, 6, 1, | ||||
| (uint8) hours, | (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 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" }; | 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); | return frequencyOfA * pow (2.0, noteNumber / 12.0); | ||||
| } | } | ||||
| const String MidiMessage::getGMInstrumentName (const int n) | |||||
| String MidiMessage::getGMInstrumentName (const int n) | |||||
| { | { | ||||
| const char* names[] = | const char* names[] = | ||||
| { | { | ||||
| @@ -932,7 +929,7 @@ const String MidiMessage::getGMInstrumentName (const int n) | |||||
| return isPositiveAndBelow (n, (int) 128) ? names[n] : (const char*) 0; | 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[] = | const char* names[] = | ||||
| { | { | ||||
| @@ -945,7 +942,7 @@ const String MidiMessage::getGMInstrumentBankName (const int n) | |||||
| return isPositiveAndBelow (n, (int) 16) ? names[n] : (const char*) 0; | 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[] = | 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; | 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[] = | const char* names[] = | ||||
| { | { | ||||
| @@ -219,7 +219,7 @@ public: | |||||
| @param velocity in the range 0 to 1.0 | @param velocity in the range 0 to 1.0 | ||||
| @see isNoteOn | @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). | /** Creates a key-down message (using an integer velocity). | ||||
| @@ -228,7 +228,7 @@ public: | |||||
| @param velocity in the range 0 to 127 | @param velocity in the range 0 to 127 | ||||
| @see isNoteOn | @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. | /** Returns true if this message is a 'key-up' event. | ||||
| @@ -246,7 +246,7 @@ public: | |||||
| @param velocity in the range 0 to 127 | @param velocity in the range 0 to 127 | ||||
| @see isNoteOff | @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. | /** 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 | @param programNumber the midi program number, 0 to 127 | ||||
| @see isProgramChange, getGMInstrumentName | @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. | /** 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 | @param position the wheel position, in the range 0 to 16383 | ||||
| @see isPitchWheel | @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. | /** Returns true if the message is an aftertouch event. | ||||
| @@ -397,9 +397,9 @@ public: | |||||
| @param aftertouchAmount the amount of aftertouch, 0 to 127 | @param aftertouchAmount the amount of aftertouch, 0 to 127 | ||||
| @see isAftertouch | @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. | /** Returns true if the message is a channel-pressure change event. | ||||
| @@ -424,7 +424,7 @@ public: | |||||
| @param pressure the pressure, 0 to 127 | @param pressure the pressure, 0 to 127 | ||||
| @see isChannelPressure | @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. | /** Returns true if this is a midi controller message. | ||||
| @@ -465,9 +465,9 @@ public: | |||||
| @param value the controller value | @param value the controller value | ||||
| @see isController | @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. | /** 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 | @param channel the midi channel, in the range 1 to 16 | ||||
| @see isAllNotesOff | @see isAllNotesOff | ||||
| */ | */ | ||||
| static const MidiMessage allNotesOff (int channel) noexcept; | |||||
| static MidiMessage allNotesOff (int channel) noexcept; | |||||
| /** Creates an all-sound-off message. | /** Creates an all-sound-off message. | ||||
| @param channel the midi channel, in the range 1 to 16 | @param channel the midi channel, in the range 1 to 16 | ||||
| @see isAllSoundOff | @see isAllSoundOff | ||||
| */ | */ | ||||
| static const MidiMessage allSoundOff (int channel) noexcept; | |||||
| static MidiMessage allSoundOff (int channel) noexcept; | |||||
| /** Creates an all-controllers-off message. | /** Creates an all-controllers-off message. | ||||
| @param channel the midi channel, in the range 1 to 16 | @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. | /** Returns true if this event is a meta-event. | ||||
| @@ -545,7 +545,7 @@ public: | |||||
| @see isEndOfTrackMetaEvent | @see isEndOfTrackMetaEvent | ||||
| */ | */ | ||||
| static const MidiMessage endOfTrack() noexcept; | |||||
| static MidiMessage endOfTrack() noexcept; | |||||
| /** Returns true if this is an 'track name' meta-event. | /** Returns true if this is an 'track name' meta-event. | ||||
| @@ -563,7 +563,7 @@ public: | |||||
| @see isTextMetaEvent | @see isTextMetaEvent | ||||
| */ | */ | ||||
| const String getTextFromTextMetaEvent() const; | |||||
| String getTextFromTextMetaEvent() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns true if this is a 'tempo' meta-event. | /** Returns true if this is a 'tempo' meta-event. | ||||
| @@ -590,7 +590,7 @@ public: | |||||
| @see isTempoMetaEvent | @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. | /** Returns true if this is a 'time-signature' meta-event. | ||||
| @@ -609,7 +609,7 @@ public: | |||||
| @see isTimeSignatureMetaEvent | @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. | /** 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 | @param channel the midi channel, in the range 1 to 16 | ||||
| @see isMidiChannelMetaEvent | @see isMidiChannelMetaEvent | ||||
| */ | */ | ||||
| static const MidiMessage midiChannelMetaEvent (int channel) noexcept; | |||||
| static MidiMessage midiChannelMetaEvent (int channel) noexcept; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns true if this is an active-sense message. */ | /** Returns true if this is an active-sense message. */ | ||||
| @@ -660,7 +660,7 @@ public: | |||||
| bool isMidiStart() const noexcept; | bool isMidiStart() const noexcept; | ||||
| /** Creates a midi start event. */ | /** Creates a midi start event. */ | ||||
| static const MidiMessage midiStart() noexcept; | |||||
| static MidiMessage midiStart() noexcept; | |||||
| /** Returns true if this is a midi continue event. | /** Returns true if this is a midi continue event. | ||||
| @@ -669,7 +669,7 @@ public: | |||||
| bool isMidiContinue() const noexcept; | bool isMidiContinue() const noexcept; | ||||
| /** Creates a midi continue event. */ | /** Creates a midi continue event. */ | ||||
| static const MidiMessage midiContinue() noexcept; | |||||
| static MidiMessage midiContinue() noexcept; | |||||
| /** Returns true if this is a midi stop event. | /** Returns true if this is a midi stop event. | ||||
| @@ -678,7 +678,7 @@ public: | |||||
| bool isMidiStop() const noexcept; | bool isMidiStop() const noexcept; | ||||
| /** Creates a midi stop event. */ | /** Creates a midi stop event. */ | ||||
| static const MidiMessage midiStop() noexcept; | |||||
| static MidiMessage midiStop() noexcept; | |||||
| /** Returns true if this is a midi clock event. | /** Returns true if this is a midi clock event. | ||||
| @@ -687,7 +687,7 @@ public: | |||||
| bool isMidiClock() const noexcept; | bool isMidiClock() const noexcept; | ||||
| /** Creates a midi clock event. */ | /** Creates a midi clock event. */ | ||||
| static const MidiMessage midiClock() noexcept; | |||||
| static MidiMessage midiClock() noexcept; | |||||
| /** Returns true if this is a song-position-pointer message. | /** Returns true if this is a song-position-pointer message. | ||||
| @@ -709,7 +709,7 @@ public: | |||||
| @see isSongPositionPointer, getSongPositionPointerMidiBeat | @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. | /** 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 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 | @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. | /** SMPTE timecode types. | ||||
| @@ -769,11 +769,11 @@ public: | |||||
| /** Creates a full-frame MTC message. | /** 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. | /** Types of MMC command. | ||||
| @@ -807,7 +807,7 @@ public: | |||||
| /** Creates an MMC message. | /** Creates an MMC message. | ||||
| */ | */ | ||||
| static const MidiMessage midiMachineControlCommand (MidiMachineControlCommand command); | |||||
| static MidiMessage midiMachineControlCommand (MidiMachineControlCommand command); | |||||
| /** Checks whether this is an MMC "goto" message. | /** Checks whether this is an MMC "goto" message. | ||||
| @@ -826,25 +826,25 @@ public: | |||||
| @see isMidiMachineControlGoto | @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. | /** Creates a master-volume change message. | ||||
| @param volume the volume, 0 to 1.0 | @param volume the volume, 0 to 1.0 | ||||
| */ | */ | ||||
| static const MidiMessage masterVolume (float volume); | |||||
| static MidiMessage masterVolume (float volume); | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Creates a system-exclusive message. | /** Creates a system-exclusive message. | ||||
| The data passed in is wrapped with header and tail bytes of 0xf0 and 0xf7. | 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 | @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. | /** Returns the frequency of a midi note number. | ||||
| @@ -895,25 +895,25 @@ public: | |||||
| @param midiInstrumentNumber the program number 0 to 127 | @param midiInstrumentNumber the program number 0 to 127 | ||||
| @see getProgramChangeNumber | @see getProgramChangeNumber | ||||
| */ | */ | ||||
| static const String getGMInstrumentName (int midiInstrumentNumber); | |||||
| static String getGMInstrumentName (int midiInstrumentNumber); | |||||
| /** Returns the name of a bank of GM instruments. | /** Returns the name of a bank of GM instruments. | ||||
| @param midiBankNumber the bank, 0 to 15 | @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. | /** Returns the standard name of a channel 10 percussion sound. | ||||
| @param midiNoteNumber the key number, 35 to 81 | @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. | /** Returns the name of a controller type number. | ||||
| @see getControllerNumber | @see getControllerNumber | ||||
| */ | */ | ||||
| static const String getControllerName (int controllerNumber); | |||||
| static String getControllerName (int controllerNumber); | |||||
| private: | private: | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -29,6 +29,7 @@ | |||||
| #include "juce_MidiInput.h" | #include "juce_MidiInput.h" | ||||
| #include "juce_MidiKeyboardState.h" | #include "juce_MidiKeyboardState.h" | ||||
| //============================================================================== | //============================================================================== | ||||
| /** | /** | ||||
| Collects incoming realtime MIDI messages and turns them into blocks suitable for | Collects incoming realtime MIDI messages and turns them into blocks suitable for | ||||
| @@ -111,7 +111,7 @@ bool PluginDirectoryScanner::skipNextFile() | |||||
| return nextIndex < filesOrIdentifiersToScan.size(); | return nextIndex < filesOrIdentifiersToScan.size(); | ||||
| } | } | ||||
| const StringArray PluginDirectoryScanner::getDeadMansPedalFile() | |||||
| StringArray PluginDirectoryScanner::getDeadMansPedalFile() | |||||
| { | { | ||||
| StringArray lines; | StringArray lines; | ||||
| @@ -115,7 +115,7 @@ private: | |||||
| int nextIndex; | int nextIndex; | ||||
| float progress; | float progress; | ||||
| const StringArray getDeadMansPedalFile(); | |||||
| StringArray getDeadMansPedalFile(); | |||||
| void setDeadMansPedalFile (const StringArray& newContents); | void setDeadMansPedalFile (const StringArray& newContents); | ||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PluginDirectoryScanner); | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PluginDirectoryScanner); | ||||
| @@ -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); | jassert (midiChannel > 0 && midiChannel <= 16); | ||||
| } | } | ||||
| @@ -69,7 +69,7 @@ const var DynamicObject::invokeMethod (const Identifier& methodName, | |||||
| const var* parameters, | const var* parameters, | ||||
| int numParameters) | int numParameters) | ||||
| { | { | ||||
| return properties [methodName].invoke (var (this), parameters, numParameters); | |||||
| return properties [methodName].invokeMethod (this, parameters, numParameters); | |||||
| } | } | ||||
| void DynamicObject::setMethod (const Identifier& name, | void DynamicObject::setMethod (const Identifier& name, | ||||
| @@ -43,7 +43,7 @@ public: | |||||
| /** Generates a simple hash from an integer. */ | /** Generates a simple hash from an integer. */ | ||||
| static int generateHash (const int key, const int upperLimit) noexcept { return std::abs (key) % upperLimit; } | static int generateHash (const int key, const int upperLimit) noexcept { return std::abs (key) % upperLimit; } | ||||
| /** Generates a simple hash from a string. */ | /** 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. */ | /** Generates a simple hash from a variant. */ | ||||
| static int generateHash (const var& key, const int upperLimit) noexcept { return generateHash (key.toString(), upperLimit); } | static int generateHash (const var& key, const int upperLimit) noexcept { return generateHash (key.toString(), upperLimit); } | ||||
| }; | }; | ||||
| @@ -121,7 +121,7 @@ const var& NamedValueSet::operator[] (const Identifier& name) const | |||||
| return var::null; | 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); | const var* const v = getVarPointer (name); | ||||
| return v != nullptr ? *v : defaultReturnValue; | return v != nullptr ? *v : defaultReturnValue; | ||||
| @@ -195,7 +195,7 @@ const Identifier NamedValueSet::getName (const int index) const | |||||
| return v->name; | return v->name; | ||||
| } | } | ||||
| const var NamedValueSet::getValueAt (const int index) const | |||||
| var NamedValueSet::getValueAt (const int index) const | |||||
| { | { | ||||
| const NamedValue* const v = values[index]; | const NamedValue* const v = values[index]; | ||||
| jassert (v != nullptr); | jassert (v != nullptr); | ||||
| @@ -68,7 +68,7 @@ public: | |||||
| /** Tries to return the named value, but if no such value is found, this will | /** Tries to return the named value, but if no such value is found, this will | ||||
| instead return the supplied default value. | 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. | /** Changes or adds a named value. | ||||
| @returns true if a value was changed or added; false if the | @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. | /** Returns the value of the item at a given index. | ||||
| The index must be between 0 and size() - 1. | The index must be between 0 and size() - 1. | ||||
| */ | */ | ||||
| const var getValueAt (int index) const; | |||||
| var getValueAt (int index) const; | |||||
| /** Removes all values. */ | /** Removes all values. */ | ||||
| void clear(); | void clear(); | ||||
| @@ -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); | const ScopedLock sl (lock); | ||||
| @@ -73,8 +73,8 @@ public: | |||||
| @param keyName the name of the property to retrieve | @param keyName the name of the property to retrieve | ||||
| @param defaultReturnValue a value to return if the named property doesn't actually exist | @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. | /** Returns one of the properties as an integer. | ||||
| @@ -133,12 +133,12 @@ Value::~Value() | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| const var Value::getValue() const | |||||
| var Value::getValue() const | |||||
| { | { | ||||
| return value->getValue(); | return value->getValue(); | ||||
| } | } | ||||
| Value::operator const var() const | |||||
| Value::operator var() const | |||||
| { | { | ||||
| return getValue(); | return getValue(); | ||||
| } | } | ||||
| @@ -148,7 +148,7 @@ void Value::setValue (const var& newValue) | |||||
| value->setValue (newValue); | value->setValue (newValue); | ||||
| } | } | ||||
| const String Value::toString() const | |||||
| String Value::toString() const | |||||
| { | { | ||||
| return value->getValue().toString(); | return value->getValue().toString(); | ||||
| } | } | ||||
| @@ -71,16 +71,16 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns the current value. */ | /** Returns the current value. */ | ||||
| const var getValue() const; | |||||
| var getValue() const; | |||||
| /** Returns the current value. */ | /** Returns the current value. */ | ||||
| operator const var() const; | |||||
| operator var() const; | |||||
| /** Returns the value as a string. | /** Returns the value as a string. | ||||
| This is alternative to writing things like "myValue.getValue().toString()". | This is alternative to writing things like "myValue.getValue().toString()". | ||||
| */ | */ | ||||
| const String toString() const; | |||||
| String toString() const; | |||||
| /** Sets the current value. | /** Sets the current value. | ||||
| @@ -643,7 +643,7 @@ bool ValueTree::hasType (const Identifier& typeName) const | |||||
| return object != nullptr && object->type == typeName; | return object != nullptr && object->type == typeName; | ||||
| } | } | ||||
| const Identifier ValueTree::getType() const | |||||
| Identifier ValueTree::getType() const | |||||
| { | { | ||||
| return object != nullptr ? object->type : Identifier(); | 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); | 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); | return object == nullptr ? defaultReturnValue : object->getProperty (name, defaultReturnValue); | ||||
| } | } | ||||
| @@ -707,7 +707,7 @@ int ValueTree::getNumProperties() const | |||||
| return object == nullptr ? 0 : object->properties.size(); | 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() | return object == nullptr ? Identifier() | ||||
| : object->properties.getName (index); | : object->properties.getName (index); | ||||
| @@ -133,7 +133,7 @@ public: | |||||
| The type is specified when the ValueTree is created. | The type is specified when the ValueTree is created. | ||||
| @see hasType | @see hasType | ||||
| */ | */ | ||||
| const Identifier getType() const; | |||||
| Identifier getType() const; | |||||
| /** Returns true if the node has this type. | /** Returns true if the node has this type. | ||||
| The comparison is case-sensitive. | The comparison is case-sensitive. | ||||
| @@ -153,7 +153,7 @@ public: | |||||
| You can also use operator[] and getProperty to get a property. | You can also use operator[] and getProperty to get a property. | ||||
| @see var, getProperty, setProperty, hasProperty | @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. | /** 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 | 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. | /** Returns the identifier of the property with a given index. | ||||
| @see getNumProperties | @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. | /** Returns a Value object that can be used to control and respond to one of the tree's properties. | ||||
| @@ -51,18 +51,18 @@ public: | |||||
| virtual int toInt (const ValueUnion&) const noexcept { return 0; } | virtual int toInt (const ValueUnion&) const noexcept { return 0; } | ||||
| virtual int64 toInt64 (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 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 bool toBool (const ValueUnion&) const noexcept { return false; } | ||||
| virtual ReferenceCountedObject* toObject (const ValueUnion&) const noexcept { return nullptr; } | 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 cleanUp (ValueUnion&) const noexcept {} | ||||
| virtual void createCopy (ValueUnion& dest, const ValueUnion& source) const { dest = source; } | 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; }; | int toInt (const ValueUnion& data) const noexcept { return data.intValue; }; | ||||
| int64 toInt64 (const ValueUnion& data) const noexcept { return (int64) data.intValue; }; | int64 toInt64 (const ValueUnion& data) const noexcept { return (int64) data.intValue; }; | ||||
| double toDouble (const ValueUnion& data) const noexcept { return (double) 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 toBool (const ValueUnion& data) const noexcept { return data.intValue != 0; } | ||||
| bool isInt() const noexcept { return true; } | bool isInt() const noexcept { return true; } | ||||
| @@ -119,7 +119,7 @@ public: | |||||
| int toInt (const ValueUnion& data) const noexcept { return (int) data.int64Value; }; | int toInt (const ValueUnion& data) const noexcept { return (int) data.int64Value; }; | ||||
| int64 toInt64 (const ValueUnion& data) const noexcept { return data.int64Value; }; | int64 toInt64 (const ValueUnion& data) const noexcept { return data.int64Value; }; | ||||
| double toDouble (const ValueUnion& data) const noexcept { return (double) 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 toBool (const ValueUnion& data) const noexcept { return data.int64Value != 0; } | ||||
| bool isInt64() const noexcept { return true; } | bool isInt64() const noexcept { return true; } | ||||
| @@ -146,7 +146,7 @@ public: | |||||
| int toInt (const ValueUnion& data) const noexcept { return (int) data.doubleValue; }; | int toInt (const ValueUnion& data) const noexcept { return (int) data.doubleValue; }; | ||||
| int64 toInt64 (const ValueUnion& data) const noexcept { return (int64) data.doubleValue; }; | int64 toInt64 (const ValueUnion& data) const noexcept { return (int64) data.doubleValue; }; | ||||
| double toDouble (const ValueUnion& data) const noexcept { return 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 toBool (const ValueUnion& data) const noexcept { return data.doubleValue != 0; } | ||||
| bool isDouble() const noexcept { return true; } | bool isDouble() const noexcept { return true; } | ||||
| @@ -173,7 +173,7 @@ public: | |||||
| int toInt (const ValueUnion& data) const noexcept { return data.boolValue ? 1 : 0; }; | int toInt (const ValueUnion& data) const noexcept { return data.boolValue ? 1 : 0; }; | ||||
| int64 toInt64 (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; } | 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 toBool (const ValueUnion& data) const noexcept { return data.boolValue; } | ||||
| bool isBool() const noexcept { return true; } | bool isBool() const noexcept { return true; } | ||||
| @@ -196,32 +196,37 @@ public: | |||||
| VariantType_String() noexcept {} | VariantType_String() noexcept {} | ||||
| static const VariantType_String instance; | 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; } | 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 | 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 | 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.writeCompressedInt (len + 1); | ||||
| output.writeByte (varMarker_String); | output.writeByte (varMarker_String); | ||||
| HeapBlock<char> temp (len); | |||||
| data.stringValue->copyToUTF8 (temp, len); | |||||
| output.write (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 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(); } | 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; } | bool toBool (const ValueUnion& data) const noexcept { return data.objectValue != 0; } | ||||
| ReferenceCountedObject* toObject (const ValueUnion& data) const noexcept { return data.objectValue; } | ReferenceCountedObject* toObject (const ValueUnion& data) const noexcept { return data.objectValue; } | ||||
| bool isObject() const noexcept { return true; } | bool isObject() const noexcept { return true; } | ||||
| @@ -258,7 +263,7 @@ public: | |||||
| VariantType_Method() noexcept {} | VariantType_Method() noexcept {} | ||||
| static const VariantType_Method instance; | 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 toBool (const ValueUnion& data) const noexcept { return data.methodValue != 0; } | ||||
| bool isMethod() const noexcept { return true; } | 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) | 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) | 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) | 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) | 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 int() const noexcept { return type->toInt (value); } | ||||
| var::operator int64() const noexcept { return type->toInt64 (value); } | var::operator int64() const noexcept { return type->toInt64 (value); } | ||||
| var::operator bool() const noexcept { return type->toBool (value); } | var::operator bool() const noexcept { return type->toBool (value); } | ||||
| var::operator float() const noexcept { return (float) type->toDouble (value); } | var::operator float() const noexcept { return (float) type->toDouble (value); } | ||||
| var::operator double() const noexcept { return 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); } | ReferenceCountedObject* var::getObject() const noexcept { return type->toObject (value); } | ||||
| DynamicObject* var::getDynamicObject() const noexcept { return dynamic_cast <DynamicObject*> (getObject()); } | DynamicObject* var::getDynamicObject() const noexcept { return dynamic_cast <DynamicObject*> (getObject()); } | ||||
| @@ -414,7 +419,7 @@ void var::writeToStream (OutputStream& output) const | |||||
| type->writeToStream (value, output); | type->writeToStream (value, output); | ||||
| } | } | ||||
| const var var::readFromStream (InputStream& input) | |||||
| var var::readFromStream (InputStream& input) | |||||
| { | { | ||||
| const int numBytes = input.readCompressedInt(); | const int numBytes = input.readCompressedInt(); | ||||
| @@ -441,60 +446,57 @@ const var var::readFromStream (InputStream& input) | |||||
| return var::null; | return var::null; | ||||
| } | } | ||||
| const var var::operator[] (const Identifier& propertyName) const | |||||
| var var::operator[] (const Identifier& propertyName) const | |||||
| { | { | ||||
| DynamicObject* const o = getDynamicObject(); | DynamicObject* const o = getDynamicObject(); | ||||
| return o != nullptr ? o->getProperty (propertyName) : var::null; | 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(); | DynamicObject* const o = getDynamicObject(); | ||||
| return o != nullptr ? o->invokeMethod (method, arguments, numArguments) : var::null; | 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; | return var::null; | ||||
| } | } | ||||
| const var var::call (const Identifier& method) const | |||||
| var var::call (const Identifier& method) const | |||||
| { | { | ||||
| return invoke (method, nullptr, 0); | 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); | 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 }; | var args[] = { arg1, arg2 }; | ||||
| return invoke (method, args, 2); | 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 }; | var args[] = { arg1, arg2, arg3 }; | ||||
| return invoke (method, args, 3); | 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 }; | var args[] = { arg1, arg2, arg3, arg4 }; | ||||
| return invoke (method, args, 4); | 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 }; | var args[] = { arg1, arg2, arg3, arg4, arg5 }; | ||||
| return invoke (method, args, 5); | return invoke (method, args, 5); | ||||
| @@ -91,8 +91,8 @@ public: | |||||
| operator bool() const noexcept; | operator bool() const noexcept; | ||||
| operator float() const noexcept; | operator float() const noexcept; | ||||
| operator double() const noexcept; | operator double() const noexcept; | ||||
| operator const String() const; | |||||
| const String toString() const; | |||||
| operator String() const; | |||||
| String toString() const; | |||||
| ReferenceCountedObject* getObject() const noexcept; | ReferenceCountedObject* getObject() const noexcept; | ||||
| DynamicObject* getDynamicObject() const noexcept; | DynamicObject* getDynamicObject() const noexcept; | ||||
| @@ -115,32 +115,27 @@ public: | |||||
| The data in the stream must have been written using writeToStream(), or this | The data in the stream must have been written using writeToStream(), or this | ||||
| will have unpredictable results. | 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. */ | /** 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. */ | /** 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. */ | /** 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. */ | /** 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. */ | /** 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. */ | /** 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. */ | /** 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. */ | /** 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. | /** 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; | bool equalsWithSameType (const var& other) const noexcept; | ||||
| private: | 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 | union ValueUnion | ||||
| { | { | ||||
| @@ -184,13 +170,16 @@ private: | |||||
| int64 int64Value; | int64 int64Value; | ||||
| bool boolValue; | bool boolValue; | ||||
| double doubleValue; | double doubleValue; | ||||
| String* stringValue; | |||||
| char stringValue [sizeof (String)]; | |||||
| ReferenceCountedObject* objectValue; | ReferenceCountedObject* objectValue; | ||||
| MethodFunction methodValue; | MethodFunction methodValue; | ||||
| }; | }; | ||||
| const VariantType* type; | const VariantType* type; | ||||
| ValueUnion value; | ValueUnion value; | ||||
| friend class DynamicObject; | |||||
| var invokeMethod (DynamicObject*, const var*, int) const; | |||||
| }; | }; | ||||
| /** Compares the values of two var objects, using the var::equals() comparison. */ | /** Compares the values of two var objects, using the var::equals() comparison. */ | ||||
| @@ -67,7 +67,7 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| void logMessage (const String& message); | 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. | /** Helper function to create a log file in the correct place for this platform. | ||||
| @@ -28,6 +28,7 @@ | |||||
| BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
| #include "juce_PlatformUtilities.h" | #include "juce_PlatformUtilities.h" | ||||
| #include "../utilities/juce_DeletedAtShutdown.h" | |||||
| #if ! JUCE_ONLY_BUILD_CORE_LIBRARY | #if ! JUCE_ONLY_BUILD_CORE_LIBRARY | ||||
| #include "../events/juce_MessageManager.h" | #include "../events/juce_MessageManager.h" | ||||
| @@ -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); } | 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) | if (seconds < 0.001 && seconds > -0.001) | ||||
| return returnValueForZeroTime; | 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(); } | ||||
| 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 | END_JUCE_NAMESPACE | ||||
| @@ -134,7 +134,7 @@ public: | |||||
| @see inMilliseconds, inSeconds, inMinutes, inHours, inDays, inWeeks | @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. */ | /** 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. */ | /** Subtracts two RelativeTimes. */ | ||||
| const RelativeTime operator- (const RelativeTime& t1, const RelativeTime& t2) noexcept; | |||||
| RelativeTime operator- (const RelativeTime& t1, const RelativeTime& t2) noexcept; | |||||
| @@ -57,17 +57,17 @@ bool Result::operator!= (const Result& other) const noexcept | |||||
| return errorMessage != other.errorMessage; | return errorMessage != other.errorMessage; | ||||
| } | } | ||||
| const Result Result::ok() noexcept | |||||
| Result Result::ok() noexcept | |||||
| { | { | ||||
| return Result (String::empty); | 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); | return Result (errorMessage.isEmpty() ? "Unknown Error" : errorMessage); | ||||
| } | } | ||||
| const String Result::getErrorMessage() const noexcept | |||||
| const String& Result::getErrorMessage() const noexcept | |||||
| { | { | ||||
| return errorMessage; | return errorMessage; | ||||
| } | } | ||||
| @@ -36,7 +36,7 @@ | |||||
| E.g. | E.g. | ||||
| @code | @code | ||||
| const Result myOperation() | |||||
| Result myOperation() | |||||
| { | { | ||||
| if (doSomeKindOfFoobar()) | if (doSomeKindOfFoobar()) | ||||
| return Result::ok(); | return Result::ok(); | ||||
| @@ -62,13 +62,13 @@ class Result | |||||
| public: | public: | ||||
| //============================================================================== | //============================================================================== | ||||
| /** Creates and returns a 'successful' result. */ | /** Creates and returns a 'successful' result. */ | ||||
| static const Result ok() noexcept; | |||||
| static Result ok() noexcept; | |||||
| /** Creates a 'failure' result. | /** Creates a 'failure' result. | ||||
| If you pass a blank error message in here, a default "Unknown Error" message | If you pass a blank error message in here, a default "Unknown Error" message | ||||
| will be used instead. | 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. */ | /** 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. | /** Returns the error message that was set when this result was created. | ||||
| For a successful result, this will be an empty string; | For a successful result, this will be an empty string; | ||||
| */ | */ | ||||
| const String getErrorMessage() const noexcept; | |||||
| const String& getErrorMessage() const noexcept; | |||||
| //============================================================================== | //============================================================================== | ||||
| Result (const Result& other); | Result (const Result& other); | ||||
| @@ -33,7 +33,7 @@ | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 53 | #define JUCE_MINOR_VERSION 53 | ||||
| #define JUCE_BUILDNUMBER 94 | |||||
| #define JUCE_BUILDNUMBER 95 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -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()); | 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; | String result; | ||||
| @@ -363,7 +363,7 @@ const String Time::toString (const bool includeDate, | |||||
| return result.trimEnd(); | return result.trimEnd(); | ||||
| } | } | ||||
| const String Time::formatted (const String& format) const | |||||
| String Time::formatted (const String& format) const | |||||
| { | { | ||||
| int bufferSize = 128; | int bufferSize = 128; | ||||
| HeapBlock<juce_wchar> buffer (128); | HeapBlock<juce_wchar> buffer (128); | ||||
| @@ -411,7 +411,7 @@ bool Time::isDaylightSavingTime() const noexcept | |||||
| return TimeHelpers::millisToLocal (millisSinceEpoch).tm_isdst != 0; | return TimeHelpers::millisToLocal (millisSinceEpoch).tm_isdst != 0; | ||||
| } | } | ||||
| const String Time::getTimeZone() const noexcept | |||||
| String Time::getTimeZone() const noexcept | |||||
| { | { | ||||
| String zone[2]; | String zone[2]; | ||||
| @@ -451,17 +451,17 @@ const String Time::getTimeZone() const noexcept | |||||
| return zone[0].substring (0, 3); | 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); | return getMonthName (getMonth(), threeLetterVersion); | ||||
| } | } | ||||
| const String Time::getWeekdayName (const bool threeLetterVersion) const | |||||
| String Time::getWeekdayName (const bool threeLetterVersion) const | |||||
| { | { | ||||
| return getWeekdayName (getDayOfWeek(), threeLetterVersion); | 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 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" }; | 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]); | : 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 shortDayNames[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; | ||||
| const char* const longDayNames[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; | 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; } | ||||
| 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()); } | 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(); } | bool operator== (const Time& time1, const Time& time2) { return time1.toMilliseconds() == time2.toMilliseconds(); } | ||||
| @@ -100,7 +100,7 @@ public: | |||||
| @see currentTimeMillis | @see currentTimeMillis | ||||
| */ | */ | ||||
| static const Time JUCE_CALLTYPE getCurrentTime() noexcept; | |||||
| static Time JUCE_CALLTYPE getCurrentTime() noexcept; | |||||
| /** Returns the time as a number of milliseconds. | /** Returns the time as a number of milliseconds. | ||||
| @@ -129,7 +129,7 @@ public: | |||||
| it'll return the long form, e.g. "January" | it'll return the long form, e.g. "January" | ||||
| @see getMonth | @see getMonth | ||||
| */ | */ | ||||
| const String getMonthName (bool threeLetterVersion) const; | |||||
| String getMonthName (bool threeLetterVersion) const; | |||||
| /** Returns the day of the month. | /** 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 | @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". | 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. | /** Returns the number of hours since midnight. | ||||
| @@ -194,7 +194,7 @@ public: | |||||
| bool isDaylightSavingTime() const noexcept; | bool isDaylightSavingTime() const noexcept; | ||||
| /** Returns a 3-character string to indicate the local timezone. */ | /** 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. | /** Quick way of getting a string version of a date and time. | ||||
| @@ -209,10 +209,10 @@ public: | |||||
| hour notation. | hour notation. | ||||
| @see formatted | @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. | /** Converts this date/time to a string with a user-defined format. | ||||
| @@ -245,7 +245,7 @@ public: | |||||
| @see toString | @see toString | ||||
| */ | */ | ||||
| const String formatted (const String& format) const; | |||||
| String formatted (const String& format) const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Adds a RelativeTime to this time. */ | /** 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 | @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". | 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. | /** 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 | @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" | 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.. | // Static methods for getting system timers directly.. | ||||
| @@ -374,12 +374,12 @@ private: | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Adds a RelativeTime to a Time. */ | /** 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. */ | /** 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. */ | /** 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. */ | /** Returns the relative time difference between two times. */ | ||||
| JUCE_API const RelativeTime operator- (const Time& time1, const Time& time2); | JUCE_API const RelativeTime operator- (const Time& time1, const Time& time2); | ||||
| @@ -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); | return String::toHexString (value.asBytes, sizeof (value.asBytes), 0); | ||||
| } | } | ||||
| @@ -73,7 +73,7 @@ public: | |||||
| @returns a 32 character hex string. | @returns a 32 character hex string. | ||||
| */ | */ | ||||
| const String toString() const; | |||||
| String toString() const; | |||||
| /** Creates an ID from an encoded string version. | /** Creates an ID from an encoded string version. | ||||
| @@ -29,7 +29,6 @@ BEGIN_JUCE_NAMESPACE | |||||
| #include "juce_MD5.h" | #include "juce_MD5.h" | ||||
| #include "../io/files/juce_FileInputStream.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) | 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 | else | ||||
| zerostruct (result); | 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)); | return MemoryBlock (result, sizeof (result)); | ||||
| } | } | ||||
| const String MD5::toHexString() const | |||||
| String MD5::toHexString() const | |||||
| { | { | ||||
| return String::toHexString (result, sizeof (result), 0); | return String::toHexString (result, sizeof (result), 0); | ||||
| } | } | ||||
| @@ -86,10 +86,10 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns the checksum as a 16-byte block of data. */ | /** 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. */ | /** 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 finish (void* result); | ||||
| }; | }; | ||||
| void processStream (InputStream& input, int64 numBytesToRead); | |||||
| void processStream (InputStream&, int64 numBytesToRead); | |||||
| JUCE_LEAK_DETECTOR (MD5); | JUCE_LEAK_DETECTOR (MD5); | ||||
| }; | }; | ||||
| @@ -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; | using namespace PrimesHelpers; | ||||
| int defaultSeeds [16]; | int defaultSeeds [16]; | ||||
| @@ -50,10 +50,10 @@ public: | |||||
| which to seed the random number generation, improving the security of the | which to seed the random number generation, improving the security of the | ||||
| keys generated. | 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. | /** Tests a number to see if it's prime. | ||||
| @@ -64,7 +64,7 @@ bool RSAKey::operator!= (const RSAKey& other) const noexcept | |||||
| return ! operator== (other); | return ! operator== (other); | ||||
| } | } | ||||
| const String RSAKey::toString() const | |||||
| String RSAKey::toString() const | |||||
| { | { | ||||
| return part1.toString (16) + "," + part2.toString (16); | return part1.toString (16) + "," + part2.toString (16); | ||||
| } | } | ||||
| @@ -96,7 +96,7 @@ bool RSAKey::applyToValue (BigInteger& value) const | |||||
| return true; | 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 | // try 3, 5, 9, 17, etc first because these only contain 2 bits and so | ||||
| // are fast to divide + multiply | // are fast to divide + multiply | ||||
| @@ -63,7 +63,7 @@ public: | |||||
| This can be reloaded using the constructor that takes a string. | This can be reloaded using the constructor that takes a string. | ||||
| */ | */ | ||||
| const String toString() const; | |||||
| String toString() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Encodes or decodes a value. | /** Encodes or decodes a value. | ||||
| @@ -108,7 +108,7 @@ protected: | |||||
| private: | private: | ||||
| //============================================================================== | //============================================================================== | ||||
| static const BigInteger findBestCommonDivisor (const BigInteger& p, const BigInteger& q); | |||||
| static BigInteger findBestCommonDivisor (const BigInteger& p, const BigInteger& q); | |||||
| JUCE_LEAK_DETECTOR (RSAKey); | JUCE_LEAK_DETECTOR (RSAKey); | ||||
| }; | }; | ||||
| @@ -29,6 +29,7 @@ BEGIN_JUCE_NAMESPACE | |||||
| #include "juce_InterprocessConnection.h" | #include "juce_InterprocessConnection.h" | ||||
| #include "../memory/juce_ScopedPointer.h" | #include "../memory/juce_ScopedPointer.h" | ||||
| #include "../memory/juce_MemoryBlock.h" | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -32,6 +32,7 @@ | |||||
| #include "../io/files/juce_NamedPipe.h" | #include "../io/files/juce_NamedPipe.h" | ||||
| #include "../memory/juce_ScopedPointer.h" | #include "../memory/juce_ScopedPointer.h" | ||||
| class InterprocessConnectionServer; | class InterprocessConnectionServer; | ||||
| class MemoryBlock; | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -36,7 +36,7 @@ Message::Message() noexcept | |||||
| intParameter2 (0), | intParameter2 (0), | ||||
| intParameter3 (0), | intParameter3 (0), | ||||
| pointerParameter (nullptr), | pointerParameter (nullptr), | ||||
| messageRecipient (0) | |||||
| messageRecipient (nullptr) | |||||
| { | { | ||||
| } | } | ||||
| @@ -48,7 +48,7 @@ Message::Message (const int intParameter1_, | |||||
| intParameter2 (intParameter2_), | intParameter2 (intParameter2_), | ||||
| intParameter3 (intParameter3_), | intParameter3 (intParameter3_), | ||||
| pointerParameter (pointerParameter_), | pointerParameter (pointerParameter_), | ||||
| messageRecipient (0) | |||||
| messageRecipient (nullptr) | |||||
| { | { | ||||
| } | } | ||||
| @@ -28,6 +28,7 @@ | |||||
| BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
| #include "juce_MessageManager.h" | #include "juce_MessageManager.h" | ||||
| #include "juce_MessageListener.h" | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -31,9 +31,10 @@ BEGIN_JUCE_NAMESPACE | |||||
| #include "juce_ActionBroadcaster.h" | #include "juce_ActionBroadcaster.h" | ||||
| #include "../application/juce_Application.h" | #include "../application/juce_Application.h" | ||||
| #include "../gui/components/juce_Component.h" | #include "../gui/components/juce_Component.h" | ||||
| #include "../threads/juce_Thread.h" | |||||
| #include "../threads/juce_ThreadPool.h" | |||||
| #include "../core/juce_Time.h" | #include "../core/juce_Time.h" | ||||
| //============================================================================== | //============================================================================== | ||||
| MessageManager* MessageManager::instance = nullptr; | MessageManager* MessageManager::instance = nullptr; | ||||
| @@ -26,15 +26,15 @@ | |||||
| #ifndef __JUCE_MESSAGEMANAGER_JUCEHEADER__ | #ifndef __JUCE_MESSAGEMANAGER_JUCEHEADER__ | ||||
| #define __JUCE_MESSAGEMANAGER_JUCEHEADER__ | #define __JUCE_MESSAGEMANAGER_JUCEHEADER__ | ||||
| #include "../utilities/juce_DeletedAtShutdown.h" | |||||
| #include "../containers/juce_SortedSet.h" | #include "../containers/juce_SortedSet.h" | ||||
| #include "../memory/juce_ScopedPointer.h" | #include "../memory/juce_ScopedPointer.h" | ||||
| #include "../threads/juce_Thread.h" | #include "../threads/juce_Thread.h" | ||||
| #include "../threads/juce_ThreadPool.h" | |||||
| #include "juce_ActionBroadcaster.h" | |||||
| #include "juce_CallbackMessage.h" | #include "juce_CallbackMessage.h" | ||||
| class Component; | class Component; | ||||
| class MessageManagerLock; | class MessageManagerLock; | ||||
| class ThreadPoolJob; | |||||
| class ActionListener; | |||||
| class ActionBroadcaster; | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -28,13 +28,12 @@ | |||||
| BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
| #include "juce_Timer.h" | #include "juce_Timer.h" | ||||
| #include "juce_MessageManager.h" | |||||
| #include "juce_AsyncUpdater.h" | #include "juce_AsyncUpdater.h" | ||||
| #include "../containers/juce_SortedSet.h" | |||||
| #include "../application/juce_Application.h" | #include "../application/juce_Application.h" | ||||
| #include "../utilities/juce_DeletedAtShutdown.h" | #include "../utilities/juce_DeletedAtShutdown.h" | ||||
| #include "../core/juce_Time.h" | #include "../core/juce_Time.h" | ||||
| #include "../threads/juce_Thread.h" | #include "../threads/juce_Thread.h" | ||||
| #include "../threads/juce_SpinLock.h" | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -64,7 +64,7 @@ void HyperlinkButton::setURL (const URL& newURL) noexcept | |||||
| setTooltip (newURL.toString (false)); | setTooltip (newURL.toString (false)); | ||||
| } | } | ||||
| const Font HyperlinkButton::getFontToUse() const | |||||
| Font HyperlinkButton::getFontToUse() const | |||||
| { | { | ||||
| Font f (font); | Font f (font); | ||||
| @@ -110,7 +110,7 @@ private: | |||||
| bool resizeFont; | bool resizeFont; | ||||
| Justification justification; | Justification justification; | ||||
| const Font getFontToUse() const; | |||||
| Font getFontToUse() const; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HyperlinkButton); | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HyperlinkButton); | ||||
| }; | }; | ||||
| @@ -90,7 +90,7 @@ void ImageButton::setImages (const bool resizeButtonNowToFitThisImage, | |||||
| repaint(); | repaint(); | ||||
| } | } | ||||
| const Image ImageButton::getCurrentImage() const | |||||
| Image ImageButton::getCurrentImage() const | |||||
| { | { | ||||
| if (isDown() || getToggleState()) | if (isDown() || getToggleState()) | ||||
| return getDownImage(); | return getDownImage(); | ||||
| @@ -101,18 +101,18 @@ const Image ImageButton::getCurrentImage() const | |||||
| return getNormalImage(); | return getNormalImage(); | ||||
| } | } | ||||
| const Image ImageButton::getNormalImage() const | |||||
| Image ImageButton::getNormalImage() const | |||||
| { | { | ||||
| return normalImage; | return normalImage; | ||||
| } | } | ||||
| const Image ImageButton::getOverImage() const | |||||
| Image ImageButton::getOverImage() const | |||||
| { | { | ||||
| return overImage.isValid() ? overImage | return overImage.isValid() ? overImage | ||||
| : normalImage; | : normalImage; | ||||
| } | } | ||||
| const Image ImageButton::getDownImage() const | |||||
| Image ImageButton::getDownImage() const | |||||
| { | { | ||||
| return downImage.isValid() ? downImage | return downImage.isValid() ? downImage | ||||
| : getOverImage(); | : getOverImage(); | ||||
| @@ -111,21 +111,21 @@ public: | |||||
| float hitTestAlphaThreshold = 0.0f); | float hitTestAlphaThreshold = 0.0f); | ||||
| /** Returns the currently set 'normal' image. */ | /** 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. | /** 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 | If a valid 'over' image has been set, this will return it; otherwise it'll | ||||
| just return the normal image. | just return the normal image. | ||||
| */ | */ | ||||
| const Image getOverImage() const; | |||||
| Image getOverImage() const; | |||||
| /** Returns the image that's drawn when the button is held down. | /** 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 | 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. | return the 'over' image or normal image, depending on what's available. | ||||
| */ | */ | ||||
| const Image getDownImage() const; | |||||
| Image getDownImage() const; | |||||
| protected: | protected: | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -145,7 +145,7 @@ private: | |||||
| float normalOpacity, overOpacity, downOpacity; | float normalOpacity, overOpacity, downOpacity; | ||||
| Colour normalOverlay, overOverlay, downOverlay; | Colour normalOverlay, overOverlay, downOverlay; | ||||
| const Image getCurrentImage() const; | |||||
| Image getCurrentImage() const; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ImageButton); | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ImageButton); | ||||
| }; | }; | ||||
| @@ -222,7 +222,7 @@ int ComboBox::getNumItems() const noexcept | |||||
| return n; | return n; | ||||
| } | } | ||||
| const String ComboBox::getItemText (const int index) const | |||||
| String ComboBox::getItemText (const int index) const | |||||
| { | { | ||||
| const ItemInfo* const item = getItemForIndex (index); | 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(); | return label->getText(); | ||||
| } | } | ||||
| @@ -365,7 +365,7 @@ void ComboBox::setTextWhenNothingSelected (const String& newMessage) | |||||
| } | } | ||||
| } | } | ||||
| const String ComboBox::getTextWhenNothingSelected() const | |||||
| String ComboBox::getTextWhenNothingSelected() const | |||||
| { | { | ||||
| return textWhenNothingSelected; | return textWhenNothingSelected; | ||||
| } | } | ||||
| @@ -375,7 +375,7 @@ void ComboBox::setTextWhenNoChoicesAvailable (const String& newMessage) | |||||
| noChoicesMessage = newMessage; | noChoicesMessage = newMessage; | ||||
| } | } | ||||
| const String ComboBox::getTextWhenNoChoicesAvailable() const | |||||
| String ComboBox::getTextWhenNoChoicesAvailable() const | |||||
| { | { | ||||
| return noChoicesMessage; | return noChoicesMessage; | ||||
| } | } | ||||
| @@ -156,12 +156,10 @@ public: | |||||
| int getNumItems() const noexcept; | int getNumItems() const noexcept; | ||||
| /** Returns the text for one of the items in the list. | /** Returns the text for one of the items in the list. | ||||
| Note that this doesn't include headers or separators. | Note that this doesn't include headers or separators. | ||||
| @param index the item's index from 0 to (getNumItems() - 1) | @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. | /** Returns the ID for one of the items in the list. | ||||
| @@ -238,7 +236,7 @@ public: | |||||
| @see setText, getSelectedId, getSelectedItemIndex | @see setText, getSelectedId, getSelectedItemIndex | ||||
| */ | */ | ||||
| const String getText() const; | |||||
| String getText() const; | |||||
| /** Sets the contents of the combo-box's text field. | /** Sets the contents of the combo-box's text field. | ||||
| @@ -300,7 +298,7 @@ public: | |||||
| @see setTextWhenNothingSelected | @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 | /** 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. | /** Returns the text shown when no items have been added to the list. | ||||
| @see setTextWhenNoChoicesAvailable | @see setTextWhenNoChoicesAvailable | ||||
| */ | */ | ||||
| const String getTextWhenNoChoicesAvailable() const; | |||||
| String getTextWhenNoChoicesAvailable() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Gives the ComboBox a tooltip. */ | /** Gives the ComboBox a tooltip. */ | ||||
| @@ -69,7 +69,7 @@ void ImageComponent::setImagePlacement (const RectanglePlacement& newPlacement) | |||||
| } | } | ||||
| } | } | ||||
| const Image ImageComponent::getImage() const | |||||
| const Image& ImageComponent::getImage() const | |||||
| { | { | ||||
| return image; | return image; | ||||
| } | } | ||||
| @@ -56,7 +56,7 @@ public: | |||||
| const RectanglePlacement& placementToUse); | const RectanglePlacement& placementToUse); | ||||
| /** Returns the current image. */ | /** 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. | /** 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 | By default the positioning is centred, and will fit the image inside the component's bounds | ||||
| @@ -51,7 +51,7 @@ struct TextAtom | |||||
| bool isWhitespace() const { return CharacterFunctions::isWhitespace (atomText[0]); } | bool isWhitespace() const { return CharacterFunctions::isWhitespace (atomText[0]); } | ||||
| bool isNewLine() const { return atomText[0] == '\r' || atomText[0] == '\n'; } | 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) | if (passwordCharacter == 0) | ||||
| return atomText; | return atomText; | ||||
| @@ -60,7 +60,7 @@ struct TextAtom | |||||
| atomText.length()); | atomText.length()); | ||||
| } | } | ||||
| const String getTrimmedText (const juce_wchar passwordCharacter) const | |||||
| String getTrimmedText (const juce_wchar passwordCharacter) const | |||||
| { | { | ||||
| if (passwordCharacter == 0) | if (passwordCharacter == 0) | ||||
| return atomText.substring (0, numChars); | 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; | return currentFont; | ||||
| } | } | ||||
| @@ -2458,7 +2458,7 @@ void TextEditor::remove (const Range<int>& range, | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| const String TextEditor::getText() const | |||||
| String TextEditor::getText() const | |||||
| { | { | ||||
| MemoryOutputStream mo; | MemoryOutputStream mo; | ||||
| mo.preallocate (getTotalNumChars()); | mo.preallocate (getTotalNumChars()); | ||||
| @@ -2498,7 +2498,7 @@ const String TextEditor::getTextInRange (const Range<int>& range) const | |||||
| return mo.toString(); | return mo.toString(); | ||||
| } | } | ||||
| const String TextEditor::getHighlightedText() const | |||||
| String TextEditor::getHighlightedText() const | |||||
| { | { | ||||
| return getTextInRange (selection); | return getTextInRange (selection); | ||||
| } | } | ||||
| @@ -254,7 +254,7 @@ public: | |||||
| @see setFont | @see setFont | ||||
| */ | */ | ||||
| const Font getFont() const; | |||||
| const Font& getFont() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** If set to true, focusing on the editor will highlight all its text. | /** 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. */ | /** Returns the entire contents of the editor. */ | ||||
| const String getText() const; | |||||
| String getText() const; | |||||
| /** Returns a section of the contents of the editor. */ | /** Returns a section of the contents of the editor. */ | ||||
| const String getTextInRange (const Range<int>& textRange) const; | const String getTextInRange (const Range<int>& textRange) const; | ||||
| @@ -444,7 +444,7 @@ public: | |||||
| const Range<int> getHighlightedRegion() const { return selection; } | const Range<int> getHighlightedRegion() const { return selection; } | ||||
| /** Returns the section of text that is currently selected. */ | /** 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. | /** Finds the index of the character at a given position. | ||||
| @@ -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* TreeView::getOpennessState (const bool alsoIncludeScrollPosition) const | ||||
| { | { | ||||
| XmlElement* e = nullptr; | XmlElement* e = nullptr; | ||||
| @@ -634,14 +645,19 @@ XmlElement* TreeView::getOpennessState (const bool alsoIncludeScrollPosition) co | |||||
| { | { | ||||
| e = rootItem->getOpennessState(); | 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; | return e; | ||||
| } | } | ||||
| void TreeView::restoreOpennessState (const XmlElement& newState) | |||||
| void TreeView::restoreOpennessState (const XmlElement& newState, const bool restoreStoredSelection) | |||||
| { | { | ||||
| if (rootItem != nullptr) | if (rootItem != nullptr) | ||||
| { | { | ||||
| @@ -650,6 +666,19 @@ void TreeView::restoreOpennessState (const XmlElement& newState) | |||||
| if (newState.hasAttribute ("scrollPos")) | if (newState.hasAttribute ("scrollPos")) | ||||
| viewport->setViewPosition (viewport->getViewPositionX(), | viewport->setViewPosition (viewport->getViewPositionX(), | ||||
| newState.getIntAttribute ("scrollPos")); | 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; | return nullptr; | ||||
| } | } | ||||
| const String TreeViewItem::getItemIdentifierString() const | |||||
| String TreeViewItem::getItemIdentifierString() const | |||||
| { | { | ||||
| String s; | String s; | ||||
| @@ -1723,7 +1752,7 @@ TreeViewItem* TreeViewItem::findItemFromIdentifierString (const String& identifi | |||||
| { | { | ||||
| const String remainingPath (identifierString.substring (thisId.length() + 1)); | const String remainingPath (identifierString.substring (thisId.length() + 1)); | ||||
| bool wasOpen = isOpen(); | |||||
| const bool wasOpen = isOpen(); | |||||
| setOpen (true); | setOpen (true); | ||||
| for (int i = subItems.size(); --i >= 0;) | for (int i = subItems.size(); --i >= 0;) | ||||
| @@ -455,7 +455,7 @@ public: | |||||
| item and all its parents, so these must all be correctly implemented for it to work. | item and all its parents, so these must all be correctly implemented for it to work. | ||||
| @see TreeView::findItemFromIdentifierString, getUniqueName | @see TreeView::findItemFromIdentifierString, getUniqueName | ||||
| */ | */ | ||||
| const String getItemIdentifierString() const; | |||||
| String getItemIdentifierString() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** | /** | ||||
| @@ -510,8 +510,8 @@ private: | |||||
| void updatePositions (int newY); | void updatePositions (int newY); | ||||
| int getIndentX() const noexcept; | 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* getTopLevelItem() noexcept; | ||||
| TreeViewItem* findItemRecursively (int y) noexcept; | TreeViewItem* findItemRecursively (int y) noexcept; | ||||
| TreeViewItem* getDeepestOpenParentItem() noexcept; | TreeViewItem* getDeepestOpenParentItem() noexcept; | ||||
| @@ -521,7 +521,7 @@ private: | |||||
| int countSelectedItemsRecursively (int depth) const noexcept; | int countSelectedItemsRecursively (int depth) const noexcept; | ||||
| TreeViewItem* getSelectedItemWithIndex (int index) noexcept; | TreeViewItem* getSelectedItemWithIndex (int index) noexcept; | ||||
| TreeViewItem* getNextVisibleItem (bool recurse) const noexcept; | TreeViewItem* getNextVisibleItem (bool recurse) const noexcept; | ||||
| TreeViewItem* findItemFromIdentifierString (const String& identifierString); | |||||
| TreeViewItem* findItemFromIdentifierString (const String&); | |||||
| #if JUCE_CATCH_DEPRECATED_CODE_MISUSE | #if JUCE_CATCH_DEPRECATED_CODE_MISUSE | ||||
| // The parameters for these methods have changed - please update your code! | // 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 | the getOpennessState() method. If any of the nodes named in the original | ||||
| XML aren't present in this tree, they will be ignored. | 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 | @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. | /** A set of colour IDs to use to change the colour of various aspects of the treeview. | ||||
| @@ -141,7 +141,7 @@ bool DirectoryContentsList::getFileInfo (const int index, | |||||
| return false; | return false; | ||||
| } | } | ||||
| const File DirectoryContentsList::getFile (const int index) const | |||||
| File DirectoryContentsList::getFile (const int index) const | |||||
| { | { | ||||
| const ScopedLock sl (fileListLock); | const ScopedLock sl (fileListLock); | ||||
| const FileInfo* const info = files [index]; | const FileInfo* const info = files [index]; | ||||
| @@ -175,7 +175,7 @@ public: | |||||
| return value will be File::nonexistent | return value will be File::nonexistent | ||||
| @see getNumFiles, getFileInfo | @see getNumFiles, getFileInfo | ||||
| */ | */ | ||||
| const File getFile (int index) const; | |||||
| File getFile (int index) const; | |||||
| /** Returns the file filter being used. | /** Returns the file filter being used. | ||||
| @@ -158,7 +158,7 @@ int FileBrowserComponent::getNumSelectedFiles() const noexcept | |||||
| return chosenFiles.size(); | 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()) | if ((flags & canSelectDirectories) != 0 && filenameBox.getText().isEmpty()) | ||||
| return currentRoot; | return currentRoot; | ||||
| @@ -177,7 +177,7 @@ bool FileBrowserComponent::currentFileIsValid() const | |||||
| return getSelectedFile (0).exists(); | return getSelectedFile (0).exists(); | ||||
| } | } | ||||
| const File FileBrowserComponent::getHighlightedFile() const noexcept | |||||
| File FileBrowserComponent::getHighlightedFile() const noexcept | |||||
| { | { | ||||
| return fileListComponent->getSelectedFile (0); | 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; | return currentRoot; | ||||
| } | } | ||||
| @@ -111,7 +111,7 @@ public: | |||||
| to get - see getNumSelectedFiles() to find out how many files were chosen. | to get - see getNumSelectedFiles() to find out how many files were chosen. | ||||
| @see getHighlightedFile | @see getHighlightedFile | ||||
| */ | */ | ||||
| const File getSelectedFile (int index) const noexcept; | |||||
| File getSelectedFile (int index) const noexcept; | |||||
| /** Deselects any files that are currently selected. | /** Deselects any files that are currently selected. | ||||
| */ | */ | ||||
| @@ -132,11 +132,11 @@ public: | |||||
| this will only return one of them. | this will only return one of them. | ||||
| @see getSelectedFile | @see getSelectedFile | ||||
| */ | */ | ||||
| const File getHighlightedFile() const noexcept; | |||||
| File getHighlightedFile() const noexcept; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns the directory whose contents are currently being shown in the listbox. */ | /** 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. */ | /** Changes the directory that's being shown in the listbox. */ | ||||
| void setRoot (const File& newRootDirectory); | void setRoot (const File& newRootDirectory); | ||||
| @@ -155,7 +155,7 @@ bool FileChooser::showDialog (const bool selectsDirectories, | |||||
| } | } | ||||
| #endif | #endif | ||||
| const File FileChooser::getResult() const | |||||
| File FileChooser::getResult() const | |||||
| { | { | ||||
| // if you've used a multiple-file select, you should use the getResults() method | // if you've used a multiple-file select, you should use the getResults() method | ||||
| // to retrieve all the files that were chosen. | // to retrieve all the files that were chosen. | ||||
| @@ -157,7 +157,7 @@ public: | |||||
| @see getResults | @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 | /** Returns a list of all the files that were chosen during the last call to a | ||||
| browse method. | browse method. | ||||
| @@ -32,7 +32,7 @@ BEGIN_JUCE_NAMESPACE | |||||
| #include "../../graphics/imaging/juce_ImageCache.h" | #include "../../graphics/imaging/juce_ImageCache.h" | ||||
| #include "../../../events/juce_AsyncUpdater.h" | #include "../../../events/juce_AsyncUpdater.h" | ||||
| const Image juce_createIconForFile (const File& file); | |||||
| Image juce_createIconForFile (const File& file); | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -32,7 +32,7 @@ BEGIN_JUCE_NAMESPACE | |||||
| #include "../../graphics/imaging/juce_ImageCache.h" | #include "../../graphics/imaging/juce_ImageCache.h" | ||||
| #include "../../../events/juce_AsyncUpdater.h" | #include "../../../events/juce_AsyncUpdater.h" | ||||
| const Image juce_createIconForFile (const File& file); | |||||
| Image juce_createIconForFile (const File& file); | |||||
| //============================================================================== | //============================================================================== | ||||
| @@ -161,7 +161,7 @@ void FilenameComponent::fileDragExit (const StringArray&) | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| const File FilenameComponent::getCurrentFile() const | |||||
| File FilenameComponent::getCurrentFile() const | |||||
| { | { | ||||
| File f (filenameBox.getText()); | File f (filenameBox.getText()); | ||||
| @@ -197,7 +197,7 @@ void FilenameComponent::setFilenameIsEditable (const bool shouldBeEditable) | |||||
| filenameBox.setEditableText (shouldBeEditable); | filenameBox.setEditableText (shouldBeEditable); | ||||
| } | } | ||||
| const StringArray FilenameComponent::getRecentlyUsedFilenames() const | |||||
| StringArray FilenameComponent::getRecentlyUsedFilenames() const | |||||
| { | { | ||||
| StringArray names; | StringArray names; | ||||
| @@ -109,7 +109,7 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns the currently displayed filename. */ | /** Returns the currently displayed filename. */ | ||||
| const File getCurrentFile() const; | |||||
| File getCurrentFile() const; | |||||
| /** Changes the current filename. | /** Changes the current filename. | ||||
| @@ -140,7 +140,7 @@ public: | |||||
| @see setRecentlyUsedFilenames | @see setRecentlyUsedFilenames | ||||
| */ | */ | ||||
| const StringArray getRecentlyUsedFilenames() const; | |||||
| StringArray getRecentlyUsedFilenames() const; | |||||
| /** Sets all the entries on the recent files list. | /** Sets all the entries on the recent files list. | ||||
| @@ -935,25 +935,25 @@ int Component::getParentHeight() const noexcept | |||||
| int Component::getScreenX() const { return getScreenPosition().getX(); } | int Component::getScreenX() const { return getScreenPosition().getX(); } | ||||
| int Component::getScreenY() const { return getScreenPosition().getY(); } | 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); | 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); | 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); | 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); | 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; | 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); | 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()); | return Rectangle<int> (getWidth(), getHeight()); | ||||
| } | } | ||||
| const Rectangle<int> Component::getBoundsInParent() const noexcept | |||||
| Rectangle<int> Component::getBoundsInParent() const noexcept | |||||
| { | { | ||||
| return affineTransform == nullptr ? bounds | return affineTransform == nullptr ? bounds | ||||
| : bounds.toFloat().transformed (*affineTransform).getSmallestIntegerContainer(); | : bounds.toFloat().transformed (*affineTransform).getSmallestIntegerContainer(); | ||||
| @@ -2969,13 +2969,13 @@ bool JUCE_CALLTYPE Component::isMouseButtonDownAnywhere() noexcept | |||||
| return ModifierKeys::getCurrentModifiers().isAnyMouseButtonDown(); | return ModifierKeys::getCurrentModifiers().isAnyMouseButtonDown(); | ||||
| } | } | ||||
| const Point<int> Component::getMouseXYRelative() const | |||||
| Point<int> Component::getMouseXYRelative() const | |||||
| { | { | ||||
| return getLocalPoint (nullptr, Desktop::getMousePosition()); | return getLocalPoint (nullptr, Desktop::getMousePosition()); | ||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| const Rectangle<int> Component::getParentMonitorArea() const | |||||
| Rectangle<int> Component::getParentMonitorArea() const | |||||
| { | { | ||||
| return Desktop::getInstance().getMonitorAreaContaining (getScreenBounds().getCentre()); | return Desktop::getInstance().getMonitorAreaContaining (getScreenBounds().getCentre()); | ||||
| } | } | ||||
| @@ -305,7 +305,7 @@ public: | |||||
| int getRight() const noexcept { return bounds.getRight(); } | int getRight() const noexcept { return bounds.getRight(); } | ||||
| /** Returns the component's top-left position as a Point. */ | /** 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. | /** 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. | 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 | 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. | 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. | /** 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. | 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(). | 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. | /** 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. | /** Returns the position of this component's top-left corner relative to the screen's top-left. | ||||
| @see getScreenBounds | @see getScreenBounds | ||||
| */ | */ | ||||
| const Point<int> getScreenPosition() const; | |||||
| Point<int> getScreenPosition() const; | |||||
| /** Returns the bounds of this component, relative to the screen's top-left. | /** Returns the bounds of this component, relative to the screen's top-left. | ||||
| @see getScreenPosition | @see getScreenPosition | ||||
| */ | */ | ||||
| const Rectangle<int> getScreenBounds() const; | |||||
| Rectangle<int> getScreenBounds() const; | |||||
| /** Converts a point to be relative to this component's coordinate space. | /** 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 | component. If the sourceComponent parameter is null, the source point is assumed to be a global | ||||
| screen coordinate. | 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. | /** 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 | 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. | 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. | /** Converts a point relative to this component's top-left into a screen coordinate. | ||||
| @see getLocalPoint, localAreaToGlobal | @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. | /** 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. | the smallest rectangle that fully contains the transformed area. | ||||
| @see getLocalPoint, localPointToGlobal | @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. | /** Moves the component to a new position. | ||||
| @@ -621,7 +621,7 @@ public: | |||||
| For more details about transforms, see setTransform(). | For more details about transforms, see setTransform(). | ||||
| @see setTransform | @see setTransform | ||||
| */ | */ | ||||
| const AffineTransform getTransform() const; | |||||
| AffineTransform getTransform() const; | |||||
| /** Returns true if a non-identity transform is being applied to this component. | /** Returns true if a non-identity transform is being applied to this component. | ||||
| For more details about transforms, see setTransform(). | 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 | monitors, it will return the area of the monitor that contains the component's | ||||
| centre. | centre. | ||||
| */ | */ | ||||
| const Rectangle<int> getParentMonitorArea() const; | |||||
| Rectangle<int> getParentMonitorArea() const; | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Returns the number of child components that this component contains. | /** Returns the number of child components that this component contains. | ||||
| @@ -1022,8 +1022,8 @@ public: | |||||
| @see paintEntireComponent | @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 | /** Draws this component and all its subcomponents onto the specified graphics | ||||
| context. | context. | ||||
| @@ -1792,7 +1792,7 @@ public: | |||||
| /** Returns the mouse's current position, relative to this component. | /** Returns the mouse's current position, relative to this component. | ||||
| The return value is relative to the component's top-left corner. | 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. | /** Called when this component's size has been changed. | ||||
| @@ -27,7 +27,6 @@ | |||||
| #define __JUCE_DESKTOP_JUCEHEADER__ | #define __JUCE_DESKTOP_JUCEHEADER__ | ||||
| #include "juce_Component.h" | #include "juce_Component.h" | ||||
| #include "../../core/juce_Time.h" | |||||
| #include "../../utilities/juce_DeletedAtShutdown.h" | #include "../../utilities/juce_DeletedAtShutdown.h" | ||||
| #include "../../events/juce_Timer.h" | #include "../../events/juce_Timer.h" | ||||
| #include "../../events/juce_AsyncUpdater.h" | #include "../../events/juce_AsyncUpdater.h" | ||||
| @@ -227,7 +227,7 @@ const KeyPress KeyPress::createFromDescription (const String& desc) | |||||
| return KeyPress (key, ModifierKeys (modifiers), 0); | return KeyPress (key, ModifierKeys (modifiers), 0); | ||||
| } | } | ||||
| const String KeyPress::getTextDescription() const | |||||
| String KeyPress::getTextDescription() const | |||||
| { | { | ||||
| String desc; | String desc; | ||||
| @@ -277,7 +277,7 @@ const String KeyPress::getTextDescription() const | |||||
| return desc; | return desc; | ||||
| } | } | ||||
| const String KeyPress::getTextDescriptionWithIcons() const | |||||
| String KeyPress::getTextDescriptionWithIcons() const | |||||
| { | { | ||||
| #if JUCE_MAC | #if JUCE_MAC | ||||
| return getTextDescription().replace ("shift + ", String::charToString (0x21e7)) | return getTextDescription().replace ("shift + ", String::charToString (0x21e7)) | ||||
| @@ -146,14 +146,14 @@ public: | |||||
| To store a keypress in a file, use this method, along with createFromDescription() | To store a keypress in a file, use this method, along with createFromDescription() | ||||
| to retrieve it later. | 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. | /** 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 | On OSX, this uses the Apple symbols for command, option, shift, etc, instead of the textual | ||||
| modifier key descriptions that are returned by getTextDescription() | 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 | /** Checks whether the user is currently holding down the keys that make up this | ||||
| @@ -278,7 +278,7 @@ const String TabbedButtonBar::getCurrentTabName() const | |||||
| return tab == nullptr ? String::empty : tab->name; | return tab == nullptr ? String::empty : tab->name; | ||||
| } | } | ||||
| const StringArray TabbedButtonBar::getTabNames() const | |||||
| StringArray TabbedButtonBar::getTabNames() const | |||||
| { | { | ||||
| StringArray names; | StringArray names; | ||||
| @@ -183,7 +183,7 @@ public: | |||||
| int getNumTabs() const; | int getNumTabs() const; | ||||
| /** Returns a list of all the tab names in the bar. */ | /** Returns a list of all the tab names in the bar. */ | ||||
| const StringArray getTabNames() const; | |||||
| StringArray getTabNames() const; | |||||
| /** Changes the currently selected tab. | /** Changes the currently selected tab. | ||||
| @@ -188,7 +188,7 @@ int TabbedComponent::getNumTabs() const | |||||
| return tabs->getNumTabs(); | return tabs->getNumTabs(); | ||||
| } | } | ||||
| const StringArray TabbedComponent::getTabNames() const | |||||
| StringArray TabbedComponent::getTabNames() const | |||||
| { | { | ||||
| return tabs->getTabNames(); | return tabs->getTabNames(); | ||||
| } | } | ||||
| @@ -128,7 +128,7 @@ public: | |||||
| int getNumTabs() const; | int getNumTabs() const; | ||||
| /** Returns a list of all the tab names in the bar. */ | /** 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. | /** Returns the content component that was added for the given index. | ||||
| @@ -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) | if (otherComponent == nullptr) | ||||
| { | { | ||||
| @@ -75,7 +75,7 @@ const MouseEvent MouseEvent::getEventRelativeTo (Component* const otherComponent | |||||
| mouseDownTime, numberOfClicks, wasMovedSinceMouseDown); | 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, | return MouseEvent (source, newPosition, mods, eventComponent, originalComponent, | ||||
| eventTime, mouseDownPos, mouseDownTime, | eventTime, mouseDownPos, mouseDownTime, | ||||
| @@ -284,13 +284,13 @@ public: | |||||
| The x and y positions of the event that is returned will have been | The x and y positions of the event that is returned will have been | ||||
| adjusted to be relative to the new component. | 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. | /** 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 | All other members of the event object are the same, but the x and y are | ||||
| replaced with these new values. | 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. | /** Changes the application-wide setting for the double-click time limit. | ||||
| @@ -160,7 +160,7 @@ bool RelativeCoordinate::isDynamic() const | |||||
| return term.usesAnySymbols(); | return term.usesAnySymbols(); | ||||
| } | } | ||||
| const String RelativeCoordinate::toString() const | |||||
| String RelativeCoordinate::toString() const | |||||
| { | { | ||||
| return term.toString(); | return term.toString(); | ||||
| } | } | ||||
| @@ -102,7 +102,7 @@ public: | |||||
| /** Returns a string which represents this coordinate. | /** Returns a string which represents this coordinate. | ||||
| For details of the string syntax, see the constructor notes. | 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. | /** A set of static strings that are commonly used by the RelativeCoordinate class. | ||||