| @@ -101,6 +101,7 @@ OBJECTS := \ | |||
| $(OBJDIR)/juce_ValueTree_f822be84.o \ | |||
| $(OBJDIR)/juce_Variant_4f31c35a.o \ | |||
| $(OBJDIR)/juce_FileLogger_7858478e.o \ | |||
| $(OBJDIR)/juce_Initialisation_fec765a9.o \ | |||
| $(OBJDIR)/juce_Logger_4f4f7f72.o \ | |||
| $(OBJDIR)/juce_PerformanceCounter_6422080e.o \ | |||
| $(OBJDIR)/juce_Random_36899d25.o \ | |||
| @@ -664,6 +665,11 @@ $(OBJDIR)/juce_FileLogger_7858478e.o: ../../src/core/juce_FileLogger.cpp | |||
| @echo "Compiling juce_FileLogger.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/juce_Initialisation_fec765a9.o: ../../src/core/juce_Initialisation.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling juce_Initialisation.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/juce_Logger_4f4f7f72.o: ../../src/core/juce_Logger.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling juce_Logger.cpp" | |||
| @@ -70,6 +70,7 @@ | |||
| A230949FF8848D5E923F9083 = { isa = PBXBuildFile; fileRef = 5D27EE211D9BFF6A58C4DC42; }; | |||
| 11162E9812CFB0E738A7E2E6 = { isa = PBXBuildFile; fileRef = 4DF9D333038A442870668D31; }; | |||
| C682BEA7DB70FDC7C6BA2D6E = { isa = PBXBuildFile; fileRef = D66C00E06B06EAD3B5257DD6; }; | |||
| 77104E86801B6CAD01F963F4 = { isa = PBXBuildFile; fileRef = 5B789AAC295BA4BB6D5AD4A3; }; | |||
| 6A53DA58B55E2DE7241BF2C8 = { isa = PBXBuildFile; fileRef = 4555F03DBD059EEDECEF9F85; }; | |||
| 0FF71870483AC46D5B7AC5B0 = { isa = PBXBuildFile; fileRef = DF6CAC67C0F2D379BDA03062; }; | |||
| 029702B3954F6968AE804B21 = { isa = PBXBuildFile; fileRef = 2C6C4AB5D82221AB303FBB34; }; | |||
| @@ -416,6 +417,23 @@ | |||
| A22A0F77C15B1E4A8F2EB42A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageCollector.h; path = ../../src/audio/midi/juce_MidiMessageCollector.h; sourceTree = SOURCE_ROOT; }; | |||
| 78D29BB5C76CCF7C21EC0DAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiMessageSequence.cpp; path = ../../src/audio/midi/juce_MidiMessageSequence.cpp; sourceTree = SOURCE_ROOT; }; | |||
| DD3886D45B5988B4DAC2D049 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageSequence.h; path = ../../src/audio/midi/juce_MidiMessageSequence.h; sourceTree = SOURCE_ROOT; }; | |||
| 1D420B75C62607886A571698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = "../../extras/audio plugins/wrapper/AU/juce_AU_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; | |||
| 451684777825E63BCAD84F80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = SOURCE_ROOT; }; | |||
| 34AB1C83D6D5BB468415EF9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 1DF9F1811D91207E3399ED73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 0756D78F534D94A6D21DEB66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 7AA357732543414F6B93B193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = SOURCE_ROOT; }; | |||
| E99897FE7C6D6BF9FFDEBC08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_WinUtilities.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 84BB474B771F9ED7E2267589 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 8B169373A9223571680BFB71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 4238044BB69E2FAEC7B16982 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; | |||
| 6C5940264E5E38729E74EFD8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFilterStreamer.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 955532BC480632ECF12F0481 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFilterStreamer.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.h"; sourceTree = SOURCE_ROOT; }; | |||
| 235F9F5E2A3113B6B774869C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StandaloneFilterWindow.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 014FB7F784D205EC810AAA52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandaloneFilterWindow.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.h"; sourceTree = SOURCE_ROOT; }; | |||
| 6B3896A2CB1BB379BCDD9575 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IncludeCharacteristics.h; path = "../../extras/audio plugins/wrapper/juce_IncludeCharacteristics.h"; sourceTree = SOURCE_ROOT; }; | |||
| 6F4941C73B96CE8028AD7999 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHeaders.h; path = "../../extras/audio plugins/wrapper/juce_PluginHeaders.h"; sourceTree = SOURCE_ROOT; }; | |||
| 21EAF73E1E8D839ABDF6B1CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = "../../extras/audio plugins/wrapper/juce_PluginHostType.h"; sourceTree = SOURCE_ROOT; }; | |||
| AA6DF2B7514484F0A2B06DAA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioUnitPluginFormat.h; path = ../../src/audio/plugins/formats/juce_AudioUnitPluginFormat.h; sourceTree = SOURCE_ROOT; }; | |||
| 68D759C0812F1B2D8B1F0288 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AudioUnitPluginFormat.mm; path = ../../src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm; sourceTree = SOURCE_ROOT; }; | |||
| 6125D4A328E474BE7A48EF59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectXPluginFormat.h; path = ../../src/audio/plugins/formats/juce_DirectXPluginFormat.h; sourceTree = SOURCE_ROOT; }; | |||
| @@ -487,6 +505,7 @@ | |||
| 45AFA4791D59FBB1B548FB2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../src/core/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; | |||
| D66C00E06B06EAD3B5257DD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileLogger.cpp; path = ../../src/core/juce_FileLogger.cpp; sourceTree = SOURCE_ROOT; }; | |||
| C8441B7B3E4CCD4A257B4BFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileLogger.h; path = ../../src/core/juce_FileLogger.h; sourceTree = SOURCE_ROOT; }; | |||
| 5B789AAC295BA4BB6D5AD4A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Initialisation.cpp; path = ../../src/core/juce_Initialisation.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 92ACFFCCCD1C85A0F8C6F80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Initialisation.h; path = ../../src/core/juce_Initialisation.h; sourceTree = SOURCE_ROOT; }; | |||
| 4555F03DBD059EEDECEF9F85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Logger.cpp; path = ../../src/core/juce_Logger.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 63F44EC0485FCA050814967E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Logger.h; path = ../../src/core/juce_Logger.h; sourceTree = SOURCE_ROOT; }; | |||
| @@ -1087,6 +1106,32 @@ | |||
| A22A0F77C15B1E4A8F2EB42A, | |||
| 78D29BB5C76CCF7C21EC0DAF, | |||
| DD3886D45B5988B4DAC2D049 ); name = midi; sourceTree = "<group>"; }; | |||
| 844109733F09B5915AF75797 = { isa = PBXGroup; children = ( | |||
| 1D420B75C62607886A571698 ); name = AU; sourceTree = "<group>"; }; | |||
| FAA6189E385BD13EFEFE2E08 = { isa = PBXGroup; children = ( | |||
| 451684777825E63BCAD84F80, | |||
| 34AB1C83D6D5BB468415EF9F, | |||
| 1DF9F1811D91207E3399ED73, | |||
| 0756D78F534D94A6D21DEB66, | |||
| 7AA357732543414F6B93B193, | |||
| E99897FE7C6D6BF9FFDEBC08, | |||
| 84BB474B771F9ED7E2267589 ); name = RTAS; sourceTree = "<group>"; }; | |||
| EBF4EE8E84A562DE2EBAE6BB = { isa = PBXGroup; children = ( | |||
| 8B169373A9223571680BFB71, | |||
| 4238044BB69E2FAEC7B16982 ); name = VST; sourceTree = "<group>"; }; | |||
| 0F0D49D13522C94A0F37D4AB = { isa = PBXGroup; children = ( | |||
| 6C5940264E5E38729E74EFD8, | |||
| 955532BC480632ECF12F0481, | |||
| 235F9F5E2A3113B6B774869C, | |||
| 014FB7F784D205EC810AAA52 ); name = Standalone; sourceTree = "<group>"; }; | |||
| 2805C9C796CD7D77C2D662BF = { isa = PBXGroup; children = ( | |||
| 844109733F09B5915AF75797, | |||
| FAA6189E385BD13EFEFE2E08, | |||
| EBF4EE8E84A562DE2EBAE6BB, | |||
| 0F0D49D13522C94A0F37D4AB, | |||
| 6B3896A2CB1BB379BCDD9575, | |||
| 6F4941C73B96CE8028AD7999, | |||
| 21EAF73E1E8D839ABDF6B1CF ); name = "wrapper code"; sourceTree = "<group>"; }; | |||
| 6FDCF1A0063FC0ABA27273A0 = { isa = PBXGroup; children = ( | |||
| AA6DF2B7514484F0A2B06DAA, | |||
| 68D759C0812F1B2D8B1F0288, | |||
| @@ -1097,6 +1142,7 @@ | |||
| BE58578E96493E70D76E080F, | |||
| F13BFC8AE68ECB6E063BD8D4 ); name = formats; sourceTree = "<group>"; }; | |||
| 7AA82894558E047D7D5111E1 = { isa = PBXGroup; children = ( | |||
| 2805C9C796CD7D77C2D662BF, | |||
| 6FDCF1A0063FC0ABA27273A0, | |||
| 2CC1A8309CB8301FF9A22371, | |||
| C4C9911456CA7EADB36E53E3, | |||
| @@ -1174,6 +1220,7 @@ | |||
| 45AFA4791D59FBB1B548FB2C, | |||
| D66C00E06B06EAD3B5257DD6, | |||
| C8441B7B3E4CCD4A257B4BFE, | |||
| 5B789AAC295BA4BB6D5AD4A3, | |||
| 92ACFFCCCD1C85A0F8C6F80F, | |||
| 4555F03DBD059EEDECEF9F85, | |||
| 63F44EC0485FCA050814967E, | |||
| @@ -1911,6 +1958,7 @@ | |||
| A230949FF8848D5E923F9083, | |||
| 11162E9812CFB0E738A7E2E6, | |||
| C682BEA7DB70FDC7C6BA2D6E, | |||
| 77104E86801B6CAD01F963F4, | |||
| 6A53DA58B55E2DE7241BF2C8, | |||
| 0FF71870483AC46D5B7AC5B0, | |||
| 029702B3954F6968AE804B21, | |||
| @@ -196,6 +196,105 @@ | |||
| <File RelativePath="..\..\src\audio\midi\juce_MidiMessageSequence.h"/> | |||
| </Filter> | |||
| <Filter Name="plugins"> | |||
| <Filter Name="wrapper code"> | |||
| <Filter Name="AU"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\AU\juce_AU_Wrapper.mm"/> | |||
| </Filter> | |||
| <Filter Name="RTAS"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode_Header.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode1.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode2.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode3.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_MacUtilities.mm"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_WinUtilities.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_Wrapper.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| </Filter> | |||
| <Filter Name="VST"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.mm"/> | |||
| </Filter> | |||
| <Filter Name="Standalone"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.h"/> | |||
| </Filter> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_IncludeCharacteristics.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_PluginHeaders.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_PluginHostType.h"/> | |||
| </Filter> | |||
| <Filter Name="formats"> | |||
| <File RelativePath="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.mm"/> | |||
| @@ -278,6 +377,7 @@ | |||
| <File RelativePath="..\..\src\core\juce_ByteOrder.h"/> | |||
| <File RelativePath="..\..\src\core\juce_FileLogger.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_FileLogger.h"/> | |||
| <File RelativePath="..\..\src\core\juce_Initialisation.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_Initialisation.h"/> | |||
| <File RelativePath="..\..\src\core\juce_Logger.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_Logger.h"/> | |||
| @@ -196,6 +196,105 @@ | |||
| <File RelativePath="..\..\src\audio\midi\juce_MidiMessageSequence.h"/> | |||
| </Filter> | |||
| <Filter Name="plugins"> | |||
| <Filter Name="wrapper code"> | |||
| <Filter Name="AU"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\AU\juce_AU_Wrapper.mm"/> | |||
| </Filter> | |||
| <Filter Name="RTAS"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode_Header.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode1.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode2.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode3.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_MacUtilities.mm"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_WinUtilities.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_Wrapper.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| </Filter> | |||
| <Filter Name="VST"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.mm"/> | |||
| </Filter> | |||
| <Filter Name="Standalone"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.h"/> | |||
| </Filter> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_IncludeCharacteristics.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_PluginHeaders.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_PluginHostType.h"/> | |||
| </Filter> | |||
| <Filter Name="formats"> | |||
| <File RelativePath="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.mm"/> | |||
| @@ -278,6 +377,7 @@ | |||
| <File RelativePath="..\..\src\core\juce_ByteOrder.h"/> | |||
| <File RelativePath="..\..\src\core\juce_FileLogger.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_FileLogger.h"/> | |||
| <File RelativePath="..\..\src\core\juce_Initialisation.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_Initialisation.h"/> | |||
| <File RelativePath="..\..\src\core\juce_Logger.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_Logger.h"/> | |||
| @@ -198,6 +198,105 @@ | |||
| <File RelativePath="..\..\src\audio\midi\juce_MidiMessageSequence.h"/> | |||
| </Filter> | |||
| <Filter Name="plugins"> | |||
| <Filter Name="wrapper code"> | |||
| <Filter Name="AU"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\AU\juce_AU_Wrapper.mm"/> | |||
| </Filter> | |||
| <Filter Name="RTAS"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode_Header.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode1.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode2.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode3.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_MacUtilities.mm"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_WinUtilities.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_Wrapper.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| </Filter> | |||
| <Filter Name="VST"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.mm"/> | |||
| </Filter> | |||
| <Filter Name="Standalone"> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.cpp"> | |||
| <FileConfiguration Name="Debug|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| <FileConfiguration Name="Release|Win32" | |||
| ExcludedFromBuild="true"> | |||
| <Tool Name="VCCLCompilerTool"/> | |||
| </FileConfiguration> | |||
| </File> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.h"/> | |||
| </Filter> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_IncludeCharacteristics.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_PluginHeaders.h"/> | |||
| <File RelativePath="..\..\extras\audio plugins\wrapper\juce_PluginHostType.h"/> | |||
| </Filter> | |||
| <Filter Name="formats"> | |||
| <File RelativePath="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.mm"/> | |||
| @@ -280,6 +379,7 @@ | |||
| <File RelativePath="..\..\src\core\juce_ByteOrder.h"/> | |||
| <File RelativePath="..\..\src\core\juce_FileLogger.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_FileLogger.h"/> | |||
| <File RelativePath="..\..\src\core\juce_Initialisation.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_Initialisation.h"/> | |||
| <File RelativePath="..\..\src\core\juce_Logger.cpp"/> | |||
| <File RelativePath="..\..\src\core\juce_Logger.h"/> | |||
| @@ -184,6 +184,7 @@ | |||
| <ClCompile Include="..\..\src\containers\juce_ValueTree.cpp"/> | |||
| <ClCompile Include="..\..\src\containers\juce_Variant.cpp"/> | |||
| <ClCompile Include="..\..\src\core\juce_FileLogger.cpp"/> | |||
| <ClCompile Include="..\..\src\core\juce_Initialisation.cpp"/> | |||
| <ClCompile Include="..\..\src\core\juce_Logger.cpp"/> | |||
| <ClCompile Include="..\..\src\core\juce_PerformanceCounter.cpp"/> | |||
| <ClCompile Include="..\..\src\core\juce_Random.cpp"/> | |||
| @@ -468,6 +469,12 @@ | |||
| <ClInclude Include="..\..\src\audio\midi\juce_MidiMessage.h"/> | |||
| <ClInclude Include="..\..\src\audio\midi\juce_MidiMessageCollector.h"/> | |||
| <ClInclude Include="..\..\src\audio\midi\juce_MidiMessageSequence.h"/> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode_Header.h"/> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.h"/> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.h"/> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\juce_IncludeCharacteristics.h"/> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\juce_PluginHeaders.h"/> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\juce_PluginHostType.h"/> | |||
| <ClInclude Include="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.h"/> | |||
| <ClInclude Include="..\..\src\audio\plugins\formats\juce_DirectXPluginFormat.h"/> | |||
| <ClInclude Include="..\..\src\audio\plugins\formats\juce_LADSPAPluginFormat.h"/> | |||
| @@ -32,6 +32,21 @@ | |||
| <Filter Include="Juce\Source\audio\plugins"> | |||
| <UniqueIdentifier>{726F1543-3280-C554-0844-B5AF99C2392D}</UniqueIdentifier> | |||
| </Filter> | |||
| <Filter Include="Juce\Source\audio\plugins\wrapper code"> | |||
| <UniqueIdentifier>{9C8B462A-0783-D028-ACCC-B099F374113E}</UniqueIdentifier> | |||
| </Filter> | |||
| <Filter Include="Juce\Source\audio\plugins\wrapper code\AU"> | |||
| <UniqueIdentifier>{7576D1E4-5D21-3FA6-7AB5-DCA6983C448C}</UniqueIdentifier> | |||
| </Filter> | |||
| <Filter Include="Juce\Source\audio\plugins\wrapper code\RTAS"> | |||
| <UniqueIdentifier>{2CF49E64-7F33-4B2A-255E-A9CD74998334}</UniqueIdentifier> | |||
| </Filter> | |||
| <Filter Include="Juce\Source\audio\plugins\wrapper code\VST"> | |||
| <UniqueIdentifier>{9958BD40-C957-0509-6285-D04460D9AA99}</UniqueIdentifier> | |||
| </Filter> | |||
| <Filter Include="Juce\Source\audio\plugins\wrapper code\Standalone"> | |||
| <UniqueIdentifier>{6936CA53-77BA-C4D2-1DB8-7BE972C31D08}</UniqueIdentifier> | |||
| </Filter> | |||
| <Filter Include="Juce\Source\audio\plugins\formats"> | |||
| <UniqueIdentifier>{46220919-DA8A-82C3-B033-1939CFCB5579}</UniqueIdentifier> | |||
| </Filter> | |||
| @@ -271,6 +286,39 @@ | |||
| <ClCompile Include="..\..\src\audio\midi\juce_MidiMessageSequence.cpp"> | |||
| <Filter>Juce\Source\audio\midi</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\AU\juce_AU_Wrapper.mm"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\AU</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode1.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode2.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode3.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_MacUtilities.mm"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_WinUtilities.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_Wrapper.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\VST</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\VST\juce_VST_Wrapper.mm"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\VST</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\Standalone</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.cpp"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\Standalone</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.mm"> | |||
| <Filter>Juce\Source\audio\plugins\formats</Filter> | |||
| </ClCompile> | |||
| @@ -352,6 +400,9 @@ | |||
| <ClCompile Include="..\..\src\core\juce_FileLogger.cpp"> | |||
| <Filter>Juce\Source\core</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\src\core\juce_Initialisation.cpp"> | |||
| <Filter>Juce\Source\core</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\src\core\juce_Logger.cpp"> | |||
| <Filter>Juce\Source\core</Filter> | |||
| </ClCompile> | |||
| @@ -1278,6 +1329,24 @@ | |||
| <ClInclude Include="..\..\src\audio\midi\juce_MidiMessageSequence.h"> | |||
| <Filter>Juce\Source\audio\midi</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\RTAS\juce_RTAS_DigiCode_Header.h"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\RTAS</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\Standalone\juce_AudioFilterStreamer.h"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\Standalone</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\Standalone\juce_StandaloneFilterWindow.h"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code\Standalone</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\juce_IncludeCharacteristics.h"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\juce_PluginHeaders.h"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\extras\audio plugins\wrapper\juce_PluginHostType.h"> | |||
| <Filter>Juce\Source\audio\plugins\wrapper code</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\src\audio\plugins\formats\juce_AudioUnitPluginFormat.h"> | |||
| <Filter>Juce\Source\audio\plugins\formats</Filter> | |||
| </ClInclude> | |||
| @@ -70,6 +70,7 @@ | |||
| A230949FF8848D5E923F9083 = { isa = PBXBuildFile; fileRef = 5D27EE211D9BFF6A58C4DC42; }; | |||
| 11162E9812CFB0E738A7E2E6 = { isa = PBXBuildFile; fileRef = 4DF9D333038A442870668D31; }; | |||
| C682BEA7DB70FDC7C6BA2D6E = { isa = PBXBuildFile; fileRef = D66C00E06B06EAD3B5257DD6; }; | |||
| 77104E86801B6CAD01F963F4 = { isa = PBXBuildFile; fileRef = 5B789AAC295BA4BB6D5AD4A3; }; | |||
| 6A53DA58B55E2DE7241BF2C8 = { isa = PBXBuildFile; fileRef = 4555F03DBD059EEDECEF9F85; }; | |||
| 0FF71870483AC46D5B7AC5B0 = { isa = PBXBuildFile; fileRef = DF6CAC67C0F2D379BDA03062; }; | |||
| 029702B3954F6968AE804B21 = { isa = PBXBuildFile; fileRef = 2C6C4AB5D82221AB303FBB34; }; | |||
| @@ -416,6 +417,23 @@ | |||
| A22A0F77C15B1E4A8F2EB42A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageCollector.h; path = ../../src/audio/midi/juce_MidiMessageCollector.h; sourceTree = SOURCE_ROOT; }; | |||
| 78D29BB5C76CCF7C21EC0DAF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiMessageSequence.cpp; path = ../../src/audio/midi/juce_MidiMessageSequence.cpp; sourceTree = SOURCE_ROOT; }; | |||
| DD3886D45B5988B4DAC2D049 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageSequence.h; path = ../../src/audio/midi/juce_MidiMessageSequence.h; sourceTree = SOURCE_ROOT; }; | |||
| 1D420B75C62607886A571698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = "../../extras/audio plugins/wrapper/AU/juce_AU_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; | |||
| 451684777825E63BCAD84F80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = SOURCE_ROOT; }; | |||
| 34AB1C83D6D5BB468415EF9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 1DF9F1811D91207E3399ED73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 0756D78F534D94A6D21DEB66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 7AA357732543414F6B93B193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = SOURCE_ROOT; }; | |||
| E99897FE7C6D6BF9FFDEBC08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_WinUtilities.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 84BB474B771F9ED7E2267589 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 8B169373A9223571680BFB71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 4238044BB69E2FAEC7B16982 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; | |||
| 6C5940264E5E38729E74EFD8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFilterStreamer.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 955532BC480632ECF12F0481 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFilterStreamer.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.h"; sourceTree = SOURCE_ROOT; }; | |||
| 235F9F5E2A3113B6B774869C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StandaloneFilterWindow.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp"; sourceTree = SOURCE_ROOT; }; | |||
| 014FB7F784D205EC810AAA52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandaloneFilterWindow.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.h"; sourceTree = SOURCE_ROOT; }; | |||
| 6B3896A2CB1BB379BCDD9575 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IncludeCharacteristics.h; path = "../../extras/audio plugins/wrapper/juce_IncludeCharacteristics.h"; sourceTree = SOURCE_ROOT; }; | |||
| 6F4941C73B96CE8028AD7999 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHeaders.h; path = "../../extras/audio plugins/wrapper/juce_PluginHeaders.h"; sourceTree = SOURCE_ROOT; }; | |||
| 21EAF73E1E8D839ABDF6B1CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = "../../extras/audio plugins/wrapper/juce_PluginHostType.h"; sourceTree = SOURCE_ROOT; }; | |||
| AA6DF2B7514484F0A2B06DAA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioUnitPluginFormat.h; path = ../../src/audio/plugins/formats/juce_AudioUnitPluginFormat.h; sourceTree = SOURCE_ROOT; }; | |||
| 68D759C0812F1B2D8B1F0288 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AudioUnitPluginFormat.mm; path = ../../src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm; sourceTree = SOURCE_ROOT; }; | |||
| 6125D4A328E474BE7A48EF59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectXPluginFormat.h; path = ../../src/audio/plugins/formats/juce_DirectXPluginFormat.h; sourceTree = SOURCE_ROOT; }; | |||
| @@ -487,6 +505,7 @@ | |||
| 45AFA4791D59FBB1B548FB2C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ByteOrder.h; path = ../../src/core/juce_ByteOrder.h; sourceTree = SOURCE_ROOT; }; | |||
| D66C00E06B06EAD3B5257DD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileLogger.cpp; path = ../../src/core/juce_FileLogger.cpp; sourceTree = SOURCE_ROOT; }; | |||
| C8441B7B3E4CCD4A257B4BFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileLogger.h; path = ../../src/core/juce_FileLogger.h; sourceTree = SOURCE_ROOT; }; | |||
| 5B789AAC295BA4BB6D5AD4A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Initialisation.cpp; path = ../../src/core/juce_Initialisation.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 92ACFFCCCD1C85A0F8C6F80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Initialisation.h; path = ../../src/core/juce_Initialisation.h; sourceTree = SOURCE_ROOT; }; | |||
| 4555F03DBD059EEDECEF9F85 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Logger.cpp; path = ../../src/core/juce_Logger.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 63F44EC0485FCA050814967E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Logger.h; path = ../../src/core/juce_Logger.h; sourceTree = SOURCE_ROOT; }; | |||
| @@ -1087,6 +1106,32 @@ | |||
| A22A0F77C15B1E4A8F2EB42A, | |||
| 78D29BB5C76CCF7C21EC0DAF, | |||
| DD3886D45B5988B4DAC2D049 ); name = midi; sourceTree = "<group>"; }; | |||
| 844109733F09B5915AF75797 = { isa = PBXGroup; children = ( | |||
| 1D420B75C62607886A571698 ); name = AU; sourceTree = "<group>"; }; | |||
| FAA6189E385BD13EFEFE2E08 = { isa = PBXGroup; children = ( | |||
| 451684777825E63BCAD84F80, | |||
| 34AB1C83D6D5BB468415EF9F, | |||
| 1DF9F1811D91207E3399ED73, | |||
| 0756D78F534D94A6D21DEB66, | |||
| 7AA357732543414F6B93B193, | |||
| E99897FE7C6D6BF9FFDEBC08, | |||
| 84BB474B771F9ED7E2267589 ); name = RTAS; sourceTree = "<group>"; }; | |||
| EBF4EE8E84A562DE2EBAE6BB = { isa = PBXGroup; children = ( | |||
| 8B169373A9223571680BFB71, | |||
| 4238044BB69E2FAEC7B16982 ); name = VST; sourceTree = "<group>"; }; | |||
| 0F0D49D13522C94A0F37D4AB = { isa = PBXGroup; children = ( | |||
| 6C5940264E5E38729E74EFD8, | |||
| 955532BC480632ECF12F0481, | |||
| 235F9F5E2A3113B6B774869C, | |||
| 014FB7F784D205EC810AAA52 ); name = Standalone; sourceTree = "<group>"; }; | |||
| 2805C9C796CD7D77C2D662BF = { isa = PBXGroup; children = ( | |||
| 844109733F09B5915AF75797, | |||
| FAA6189E385BD13EFEFE2E08, | |||
| EBF4EE8E84A562DE2EBAE6BB, | |||
| 0F0D49D13522C94A0F37D4AB, | |||
| 6B3896A2CB1BB379BCDD9575, | |||
| 6F4941C73B96CE8028AD7999, | |||
| 21EAF73E1E8D839ABDF6B1CF ); name = "wrapper code"; sourceTree = "<group>"; }; | |||
| 6FDCF1A0063FC0ABA27273A0 = { isa = PBXGroup; children = ( | |||
| AA6DF2B7514484F0A2B06DAA, | |||
| 68D759C0812F1B2D8B1F0288, | |||
| @@ -1097,6 +1142,7 @@ | |||
| BE58578E96493E70D76E080F, | |||
| F13BFC8AE68ECB6E063BD8D4 ); name = formats; sourceTree = "<group>"; }; | |||
| 7AA82894558E047D7D5111E1 = { isa = PBXGroup; children = ( | |||
| 2805C9C796CD7D77C2D662BF, | |||
| 6FDCF1A0063FC0ABA27273A0, | |||
| 2CC1A8309CB8301FF9A22371, | |||
| C4C9911456CA7EADB36E53E3, | |||
| @@ -1174,6 +1220,7 @@ | |||
| 45AFA4791D59FBB1B548FB2C, | |||
| D66C00E06B06EAD3B5257DD6, | |||
| C8441B7B3E4CCD4A257B4BFE, | |||
| 5B789AAC295BA4BB6D5AD4A3, | |||
| 92ACFFCCCD1C85A0F8C6F80F, | |||
| 4555F03DBD059EEDECEF9F85, | |||
| 63F44EC0485FCA050814967E, | |||
| @@ -1784,7 +1831,7 @@ | |||
| SYMROOT = ../../bin; | |||
| CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; | |||
| DEPLOYMENT_LOCATION = YES; | |||
| SDKROOT = iphonesimulator3.0; | |||
| SDKROOT = iphonesimulator3.2; | |||
| ONLY_ACTIVE_ARCH = YES; | |||
| COPY_PHASE_STRIP = NO; | |||
| GCC_DYNAMIC_NO_PIC = NO; | |||
| @@ -1803,7 +1850,7 @@ | |||
| SYMROOT = ../../bin; | |||
| CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; | |||
| DEPLOYMENT_LOCATION = YES; | |||
| SDKROOT = iphonesimulator3.0; | |||
| SDKROOT = iphonesimulator3.2; | |||
| GCC_GENERATE_DEBUGGING_SYMBOLS = NO; | |||
| GCC_SYMBOLS_PRIVATE_EXTERN = YES; | |||
| GCC_PREPROCESSOR_DEFINITIONS = ( | |||
| @@ -1911,6 +1958,7 @@ | |||
| A230949FF8848D5E923F9083, | |||
| 11162E9812CFB0E738A7E2E6, | |||
| C682BEA7DB70FDC7C6BA2D6E, | |||
| 77104E86801B6CAD01F963F4, | |||
| 6A53DA58B55E2DE7241BF2C8, | |||
| 0FF71870483AC46D5B7AC5B0, | |||
| 029702B3954F6968AE804B21, | |||
| @@ -215,6 +215,50 @@ | |||
| resource="0" file="src/audio/midi/juce_MidiMessageSequence.h"/> | |||
| </GROUP> | |||
| <GROUP id="rWnJUOyOY" name="plugins"> | |||
| <GROUP id="2KbZnNZ" name="wrapper code"> | |||
| <GROUP id="XD6F6id" name="AU"> | |||
| <FILE id="g8u7Ehw" name="juce_AU_Wrapper.mm" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/AU/juce_AU_Wrapper.mm"/> | |||
| </GROUP> | |||
| <GROUP id="3smzJJ1" name="RTAS"> | |||
| <FILE id="Oi5d14V" name="juce_RTAS_DigiCode_Header.h" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode_Header.h"/> | |||
| <FILE id="cEggbzN" name="juce_RTAS_DigiCode1.cpp" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode1.cpp"/> | |||
| <FILE id="dVVlniW" name="juce_RTAS_DigiCode2.cpp" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode2.cpp"/> | |||
| <FILE id="ydwdTzy" name="juce_RTAS_DigiCode3.cpp" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode3.cpp"/> | |||
| <FILE id="ehXpXBw" name="juce_RTAS_MacUtilities.mm" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm"/> | |||
| <FILE id="0mzLwTq" name="juce_RTAS_WinUtilities.cpp" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_WinUtilities.cpp"/> | |||
| <FILE id="z4sBC3E" name="juce_RTAS_Wrapper.cpp" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp"/> | |||
| </GROUP> | |||
| <GROUP id="YuP52Pz" name="VST"> | |||
| <FILE id="VDMcLoB" name="juce_VST_Wrapper.cpp" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/VST/juce_VST_Wrapper.cpp"/> | |||
| <FILE id="XhNhfUW" name="juce_VST_Wrapper.mm" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm"/> | |||
| </GROUP> | |||
| <GROUP id="hhHHjJZ" name="Standalone"> | |||
| <FILE id="0aPHUJq" name="juce_AudioFilterStreamer.cpp" compile="0" | |||
| resource="0" file="extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp"/> | |||
| <FILE id="6ml8N6N" name="juce_AudioFilterStreamer.h" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.h"/> | |||
| <FILE id="l0R8qQC" name="juce_StandaloneFilterWindow.cpp" compile="0" | |||
| resource="0" file="extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp"/> | |||
| <FILE id="OZmMutP" name="juce_StandaloneFilterWindow.h" compile="0" | |||
| resource="0" file="extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.h"/> | |||
| </GROUP> | |||
| <FILE id="oIRLyr" name="juce_IncludeCharacteristics.h" compile="0" | |||
| resource="0" file="extras/audio plugins/wrapper/juce_IncludeCharacteristics.h"/> | |||
| <FILE id="UXGF34T" name="juce_PluginHeaders.h" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/juce_PluginHeaders.h"/> | |||
| <FILE id="FYLoUYQ" name="juce_PluginHostType.h" compile="0" resource="0" | |||
| file="extras/audio plugins/wrapper/juce_PluginHostType.h"/> | |||
| </GROUP> | |||
| <GROUP id="8kNdYQE9H" name="formats"> | |||
| <FILE id="rzrBqySg9" name="juce_AudioUnitPluginFormat.h" compile="0" | |||
| resource="0" file="src/audio/plugins/formats/juce_AudioUnitPluginFormat.h"/> | |||
| @@ -365,6 +409,8 @@ | |||
| file="src/core/juce_FileLogger.cpp"/> | |||
| <FILE id="7nItXGiB" name="juce_FileLogger.h" compile="0" resource="0" | |||
| file="src/core/juce_FileLogger.h"/> | |||
| <FILE id="eux3SL3" name="juce_Initialisation.cpp" compile="1" resource="0" | |||
| file="src/core/juce_Initialisation.cpp"/> | |||
| <FILE id="nsfdNZAs" name="juce_Initialisation.h" compile="0" resource="0" | |||
| file="src/core/juce_Initialisation.h"/> | |||
| <FILE id="43AWfo8b2" name="juce_Logger.cpp" compile="1" resource="0" | |||
| @@ -102,6 +102,7 @@ | |||
| #include "../src/core/juce_RelativeTime.cpp" | |||
| #include "../src/core/juce_SystemStats.cpp" | |||
| #include "../src/core/juce_Time.cpp" | |||
| #include "../src/core/juce_Initialisation.cpp" | |||
| #include "../src/containers/juce_BigInteger.cpp" | |||
| #include "../src/containers/juce_MemoryBlock.cpp" | |||
| #include "../src/containers/juce_PropertySet.cpp" | |||
| @@ -35,7 +35,7 @@ class XCodeProjectExporter : public ProjectExporter | |||
| public: | |||
| //============================================================================== | |||
| static const char* getNameMac() { return "XCode (MacOSX)"; } | |||
| static const char* getNameiPhone() { return "XCode (iPhone)"; } | |||
| static const char* getNameiOS() { return "XCode (iOS)"; } | |||
| static const char* getValueTreeTypeName (bool iPhone) { return iPhone ? "XCODE_IPHONE" : "XCODE_MAC"; } | |||
| //============================================================================== | |||
| @@ -43,12 +43,12 @@ public: | |||
| : ProjectExporter (project_, settings_), | |||
| iPhone (iPhone_) | |||
| { | |||
| name = iPhone ? getNameiPhone() : getNameMac(); | |||
| name = iPhone ? getNameiOS() : getNameMac(); | |||
| projectIDSalt = hashCode64 (project.getProjectUID()); | |||
| if (getTargetLocation().toString().isEmpty()) | |||
| getTargetLocation() = getDefaultBuildsRootFolder() + (iPhone ? "iPhone" : "MacOSX"); | |||
| getTargetLocation() = getDefaultBuildsRootFolder() + (iPhone ? "iOS" : "MacOSX"); | |||
| if (getVSTFolder().toString().isEmpty()) | |||
| getVSTFolder() = "~/SDKs/vstsdk2.4"; | |||
| @@ -566,7 +566,7 @@ private: | |||
| if (iPhone) | |||
| { | |||
| s.add ("SDKROOT = iphonesimulator3.0"); | |||
| s.add ("SDKROOT = iphonesimulator3.2"); | |||
| } | |||
| else | |||
| { | |||
| @@ -49,7 +49,7 @@ const StringArray ProjectExporter::getExporterNames() | |||
| { | |||
| StringArray s; | |||
| s.add (XCodeProjectExporter::getNameMac()); | |||
| s.add (XCodeProjectExporter::getNameiPhone()); | |||
| s.add (XCodeProjectExporter::getNameiOS()); | |||
| s.add (MSVCProjectExporterVC6::getName()); | |||
| s.add (MSVCProjectExporterVC2005::getName()); | |||
| s.add (MSVCProjectExporterVC2008::getName()); | |||
| @@ -70,7 +70,7 @@ | |||
| GCC_OPTIMIZATION_LEVEL = 0; | |||
| INFOPLIST_FILE = Info.plist; | |||
| INSTALL_PATH = "$(HOME)/Applications"; | |||
| SDKROOT = iphonesimulator3.0; | |||
| SDKROOT = iphonesimulator3.2; | |||
| ONLY_ACTIVE_ARCH = YES; | |||
| COPY_PHASE_STRIP = NO; | |||
| GCC_DYNAMIC_NO_PIC = NO; | |||
| @@ -86,7 +86,7 @@ | |||
| GCC_OPTIMIZATION_LEVEL = s; | |||
| INFOPLIST_FILE = Info.plist; | |||
| INSTALL_PATH = "$(HOME)/Applications"; | |||
| SDKROOT = iphonesimulator3.0; | |||
| SDKROOT = iphonesimulator3.2; | |||
| GCC_GENERATE_DEBUGGING_SYMBOLS = NO; | |||
| GCC_SYMBOLS_PRIVATE_EXTERN = YES; | |||
| GCC_PREPROCESSOR_DEFINITIONS = ( | |||
| @@ -167,7 +167,7 @@ | |||
| GCC_OPTIMIZATION_LEVEL = 0; | |||
| INFOPLIST_FILE = Info.plist; | |||
| INSTALL_PATH = "$(HOME)/Applications"; | |||
| SDKROOT = iphonesimulator3.0; | |||
| SDKROOT = iphonesimulator3.2; | |||
| ONLY_ACTIVE_ARCH = YES; | |||
| COPY_PHASE_STRIP = NO; | |||
| GCC_DYNAMIC_NO_PIC = NO; | |||
| @@ -183,7 +183,7 @@ | |||
| GCC_OPTIMIZATION_LEVEL = s; | |||
| INFOPLIST_FILE = Info.plist; | |||
| INSTALL_PATH = "$(HOME)/Applications"; | |||
| SDKROOT = iphonesimulator3.0; | |||
| SDKROOT = iphonesimulator3.2; | |||
| GCC_GENERATE_DEBUGGING_SYMBOLS = NO; | |||
| GCC_SYMBOLS_PRIVATE_EXTERN = YES; | |||
| GCC_PREPROCESSOR_DEFINITIONS = ( | |||
| @@ -80,7 +80,7 @@ END_JUCE_NAMESPACE | |||
| of 3rd party header files, you may need to use the juce_WithoutMacros.h file - see | |||
| the comments in that file for more information. | |||
| */ | |||
| #if (JUCE_MAC || JUCE_IPHONE) && ! JUCE_DONT_DEFINE_MACROS | |||
| #if (JUCE_MAC || JUCE_IOS) && ! JUCE_DONT_DEFINE_MACROS | |||
| #define Component JUCE_NAMESPACE::Component | |||
| #define MemoryBlock JUCE_NAMESPACE::MemoryBlock | |||
| #define Point JUCE_NAMESPACE::Point | |||
| @@ -151,51 +151,4 @@ END_JUCE_NAMESPACE | |||
| #endif | |||
| //============================================================================== | |||
| /* | |||
| To start a JUCE app, use this macro: START_JUCE_APPLICATION (AppSubClass) where | |||
| AppSubClass is the name of a class derived from JUCEApplication. | |||
| See the JUCEApplication class documentation (juce_Application.h) for more details. | |||
| */ | |||
| #if defined (JUCE_GCC) || defined (__MWERKS__) | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int argc, char* argv[]) \ | |||
| { \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (argc, (const char**) argv, new AppClass()); \ | |||
| } | |||
| #elif JUCE_WINDOWS | |||
| #ifdef _CONSOLE | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int, char* argv[]) \ | |||
| { \ | |||
| JUCE_NAMESPACE::String commandLineString (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams()); \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (commandLineString, new AppClass()); \ | |||
| } | |||
| #elif ! defined (_AFXDLL) | |||
| #ifdef _WINDOWS_ | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::String commandLineString (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams()); \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (commandLineString, new AppClass()); \ | |||
| } | |||
| #else | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int __stdcall WinMain (int, int, const char*, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::String commandLineString (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams()); \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (commandLineString, new AppClass()); \ | |||
| } | |||
| #endif | |||
| #endif | |||
| #endif | |||
| #endif // __JUCE_JUCEHEADER__ | |||
| @@ -101,11 +101,11 @@ | |||
| If you're building on Windows, you'll need to have the Apple QuickTime SDK | |||
| installed, and its header files will need to be on your include path. | |||
| */ | |||
| #if ! (defined (JUCE_QUICKTIME) || JUCE_LINUX || JUCE_IPHONE || (JUCE_WINDOWS && ! JUCE_MSVC)) | |||
| #if ! (defined (JUCE_QUICKTIME) || JUCE_LINUX || JUCE_IOS || (JUCE_WINDOWS && ! JUCE_MSVC)) | |||
| #define JUCE_QUICKTIME 0 | |||
| #endif | |||
| #if (JUCE_IPHONE || JUCE_LINUX) && JUCE_QUICKTIME | |||
| #if (JUCE_IOS || JUCE_LINUX) && JUCE_QUICKTIME | |||
| #undef JUCE_QUICKTIME | |||
| #endif | |||
| @@ -64,7 +64,7 @@ | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 52 | |||
| #define JUCE_BUILDNUMBER 40 | |||
| #define JUCE_BUILDNUMBER 41 | |||
| /** Current Juce version number. | |||
| @@ -103,6 +103,7 @@ | |||
| #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR | |||
| #define JUCE_IPHONE 1 | |||
| #define JUCE_IOS 1 | |||
| #else | |||
| #define JUCE_MAC 1 | |||
| #endif | |||
| @@ -167,7 +168,7 @@ | |||
| #endif | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #ifndef NDEBUG | |||
| #define JUCE_DEBUG 1 | |||
| @@ -293,11 +294,11 @@ | |||
| If you're building on Windows, you'll need to have the Apple QuickTime SDK | |||
| installed, and its header files will need to be on your include path. | |||
| */ | |||
| #if ! (defined (JUCE_QUICKTIME) || JUCE_LINUX || JUCE_IPHONE || (JUCE_WINDOWS && ! JUCE_MSVC)) | |||
| #if ! (defined (JUCE_QUICKTIME) || JUCE_LINUX || JUCE_IOS || (JUCE_WINDOWS && ! JUCE_MSVC)) | |||
| #define JUCE_QUICKTIME 0 | |||
| #endif | |||
| #if (JUCE_IPHONE || JUCE_LINUX) && JUCE_QUICKTIME | |||
| #if (JUCE_IOS || JUCE_LINUX) && JUCE_QUICKTIME | |||
| #undef JUCE_QUICKTIME | |||
| #endif | |||
| @@ -562,7 +563,7 @@ | |||
| #endif | |||
| #elif JUCE_MAC | |||
| #define juce_breakDebugger Debugger(); | |||
| #elif JUCE_IPHONE | |||
| #elif JUCE_IOS | |||
| #define juce_breakDebugger kill (0, SIGTRAP); | |||
| #elif JUCE_LINUX | |||
| #define juce_breakDebugger kill (0, SIGTRAP); | |||
| @@ -712,7 +713,7 @@ | |||
| #include <intrin.h> | |||
| #endif | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| #include <libkern/OSAtomic.h> | |||
| #endif | |||
| @@ -1385,7 +1386,7 @@ inline uint16 ByteOrder::swap (uint16 n) | |||
| inline uint32 ByteOrder::swap (uint32 n) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| return OSSwapInt32 (n); | |||
| #elif JUCE_GCC | |||
| asm("bswap %%eax" : "=a"(n) : "a"(n)); | |||
| @@ -1404,7 +1405,7 @@ inline uint32 ByteOrder::swap (uint32 n) | |||
| inline uint64 ByteOrder::swap (uint64 value) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| return OSSwapInt64 (value); | |||
| #elif JUCE_USE_INTRINSICS | |||
| return _byteswap_uint64 (value); | |||
| @@ -5858,11 +5859,11 @@ private: | |||
| /* | |||
| The following code is in the header so that the atomics can be inlined where possible... | |||
| */ | |||
| #if (JUCE_IPHONE && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2 || ! defined (__IPHONE_3_2))) \ | |||
| #if (JUCE_IOS && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2 || ! defined (__IPHONE_3_2))) \ | |||
| || (JUCE_MAC && (JUCE_PPC || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))) | |||
| #define JUCE_ATOMICS_MAC 1 // Older OSX builds using gcc4.1 or earlier | |||
| #if JUCE_PPC || JUCE_IPHONE | |||
| #if JUCE_PPC || JUCE_IOS | |||
| // None of these atomics are available for PPC or for iPhoneOS 3.1 or earlier!! | |||
| template <typename Type> static Type OSAtomicAdd64Barrier (Type b, volatile Type* a) throw() { jassertfalse; return *a += b; } | |||
| template <typename Type> static Type OSAtomicIncrement64Barrier (volatile Type* a) throw() { jassertfalse; return ++*a; } | |||
| @@ -5875,7 +5876,7 @@ private: | |||
| #elif JUCE_GCC | |||
| #define JUCE_ATOMICS_GCC 1 // GCC with intrinsics | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #define JUCE_64BIT_ATOMICS_UNAVAILABLE 1 // (on the iphone, the 64-bit ops will compile but not link) | |||
| #endif | |||
| @@ -13729,6 +13730,51 @@ public: | |||
| ~ScopedJuceInitialiser_GUI() { shutdownJuce_GUI(); } | |||
| }; | |||
| /* | |||
| To start a JUCE app, use this macro: START_JUCE_APPLICATION (AppSubClass) where | |||
| AppSubClass is the name of a class derived from JUCEApplication. | |||
| See the JUCEApplication class documentation (juce_Application.h) for more details. | |||
| */ | |||
| #if defined (JUCE_GCC) || defined (__MWERKS__) | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int argc, char* argv[]) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (argc, (const char**) argv, new AppClass()); \ | |||
| } | |||
| #elif JUCE_WINDOWS | |||
| #ifdef _CONSOLE | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int, char* argv[]) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams(), new AppClass()); \ | |||
| } | |||
| #elif ! defined (_AFXDLL) | |||
| #ifdef _WINDOWS_ | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams(), new AppClass()); \ | |||
| } | |||
| #else | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int __stdcall WinMain (int, int, const char*, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams(), new AppClass()); \ | |||
| } | |||
| #endif | |||
| #endif | |||
| #endif | |||
| #endif // __JUCE_INITIALISATION_JUCEHEADER__ | |||
| /*** End of inlined file: juce_Initialisation.h ***/ | |||
| @@ -13857,7 +13903,7 @@ public: | |||
| const String& bodyText, | |||
| const StringArray& filesToAttach); | |||
| #if JUCE_MAC || JUCE_IPHONE || DOXYGEN | |||
| #if JUCE_MAC || JUCE_IOS || DOXYGEN | |||
| /** MAC ONLY - Turns a Core CF String into a juce one. */ | |||
| static const String cfStringToJuceString (CFStringRef cfString); | |||
| @@ -14008,7 +14054,7 @@ private: | |||
| PlatformUtilities& operator= (const PlatformUtilities&); | |||
| }; | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| /** A handy C++ wrapper that creates and deletes an NSAutoreleasePool object | |||
| using RAII. | |||
| @@ -14026,6 +14072,12 @@ private: | |||
| ScopedAutoReleasePool& operator= (const ScopedAutoReleasePool&); | |||
| }; | |||
| #define JUCE_AUTORELEASEPOOL const ScopedAutoReleasePool pool; | |||
| #else | |||
| #define JUCE_AUTORELEASEPOOL | |||
| #endif | |||
| #if JUCE_LINUX | |||
| @@ -19652,10 +19704,12 @@ public: | |||
| /** Called when the component is in the process of being deleted. | |||
| This callback is made from inside the destructor, so be very, very cautious | |||
| about what you do inside the callback. | |||
| about what you do in here. | |||
| It will be called before the component has been removed from its parent, and | |||
| before any child components have been removed. | |||
| In particular, bear in mind that it's the Component base class's destructor that calls | |||
| this - so if the object that's being deleted is a subclass of Component, then the | |||
| subclass layers of the object will already have been destructed when it gets to this | |||
| point! | |||
| */ | |||
| virtual void componentBeingDeleted (Component& component); | |||
| }; | |||
| @@ -20539,6 +20593,12 @@ public: | |||
| x = newX; y = newY; w = newWidth; h = newHeight; | |||
| } | |||
| /** Changes the rectangle's X coordinate */ | |||
| void setX (const ValueType newX) throw() { x = newX; } | |||
| /** Changes the rectangle's Y coordinate */ | |||
| void setY (const ValueType newY) throw() { y = newY; } | |||
| /** Changes the rectangle's width */ | |||
| void setWidth (const ValueType newWidth) throw() { w = newWidth; } | |||
| @@ -25362,8 +25422,15 @@ public: | |||
| /** Destructor. | |||
| Note that when a component is deleted, any child components it might | |||
| contain are NOT deleted unless you explicitly call deleteAllChildren() first. | |||
| Note that when a component is deleted, any child components it contain are NOT | |||
| automatically deleted. It's your responsibilty to manage their lifespan - you | |||
| may want to use helper methods like deleteAllChildren(), or less haphazard | |||
| approaches like using ScopedPointers or normal object aggregation to manage them. | |||
| If the component being deleted is currently the child of another one, then during | |||
| deletion, it will be removed from its parent, and the parent will receive a childrenChanged() | |||
| callback. Any ComponentListener objects that have registered with it will also have their | |||
| ComponentListener::componentBeingDeleted() methods called. | |||
| */ | |||
| virtual ~Component(); | |||
| @@ -25829,29 +25896,37 @@ public: | |||
| /** Adds a child component to this one. | |||
| @param child the new component to add. If the component passed-in is already | |||
| the child of another component, it'll first be removed from that. | |||
| Adding a child component does not mean that the component will own or delete the child - it's | |||
| your responsibility to delete the component. Note that it's safe to delete a component | |||
| without first removing it from its parent - doing so will automatically remove it and | |||
| send out the appropriate notifications before the deletion completes. | |||
| If the child is already a child of this component, then no action will be taken, and its | |||
| z-order will be left unchanged. | |||
| @param child the new component to add. If the component passed-in is already | |||
| the child of another component, it'll first be removed from it current parent. | |||
| @param zOrder The index in the child-list at which this component should be inserted. | |||
| A value of -1 will insert it in front of the others, 0 is the back. | |||
| @see removeChildComponent, addAndMakeVisible, getChild, | |||
| ComponentListener::componentChildrenChanged | |||
| @see removeChildComponent, addAndMakeVisible, getChild, ComponentListener::componentChildrenChanged | |||
| */ | |||
| void addChildComponent (Component* child, int zOrder = -1); | |||
| /** Adds a child component to this one, and also makes the child visible if it isn't. | |||
| Quite a useful function, this is just the same as calling addChildComponent() | |||
| followed by setVisible (true) on the child. | |||
| followed by setVisible (true) on the child. See addChildComponent() for more details. | |||
| */ | |||
| void addAndMakeVisible (Component* child, int zOrder = -1); | |||
| /** Removes one of this component's child-components. | |||
| If the child passed-in isn't actually a child of this component (either because | |||
| it's invalid or is the child of a different parent), then nothing is done. | |||
| it's invalid or is the child of a different parent), then no action is taken. | |||
| Note that removing a child will not delete it! | |||
| Note that removing a child will not delete it! But it's ok to delete a component | |||
| without first removing it - doing so will automatically remove it and send out the | |||
| appropriate notifications before the deletion completes. | |||
| @see addChildComponent, ComponentListener::componentChildrenChanged | |||
| */ | |||
| @@ -25862,7 +25937,9 @@ public: | |||
| This will return a pointer to the component that was removed, or null if | |||
| the index was out-of-range. | |||
| Note that removing a child will not delete it! | |||
| Note that removing a child will not delete it! But it's ok to delete a component | |||
| without first removing it - doing so will automatically remove it and send out the | |||
| appropriate notifications before the deletion completes. | |||
| @see addChildComponent, ComponentListener::componentChildrenChanged | |||
| */ | |||
| @@ -27785,9 +27862,6 @@ public: | |||
| juce_UseDebuggingNewOperator | |||
| /** @internal */ | |||
| void releaseMessageListener(); | |||
| private: | |||
| // (for async invocation of commands) | |||
| class CommandTargetMessageInvoker : public MessageListener | |||
| @@ -28073,7 +28147,7 @@ public: | |||
| // These are used by the START_JUCE_APPLICATION() macro and aren't for public use. | |||
| /** @internal */ | |||
| static int main (String& commandLine, JUCEApplication* newApp); | |||
| static int main (const String& commandLine, JUCEApplication* newApp); | |||
| /** @internal */ | |||
| static int main (int argc, const char* argv[], JUCEApplication* newApp); | |||
| @@ -28092,6 +28166,10 @@ public: | |||
| bool perform (const InvocationInfo& info); | |||
| /** @internal */ | |||
| void actionListenerCallback (const String& message); | |||
| /** @internal */ | |||
| bool initialiseApp (const String& commandLine); | |||
| /** @internal */ | |||
| int shutdownApp(); | |||
| private: | |||
| @@ -28099,15 +28177,10 @@ private: | |||
| int appReturnValue; | |||
| bool stillInitialising; | |||
| ScopedPointer<InterProcessLock> appLock; | |||
| static JUCEApplication* appInstance; | |||
| JUCEApplication (const JUCEApplication&); | |||
| JUCEApplication& operator= (const JUCEApplication&); | |||
| public: | |||
| /** @internal */ | |||
| bool initialiseApp (String& commandLine); | |||
| /** @internal */ | |||
| static int shutdownAppAndClearUp(); | |||
| }; | |||
| #endif // __JUCE_APPLICATION_JUCEHEADER__ | |||
| @@ -56932,7 +57005,7 @@ public: | |||
| { | |||
| openGLDefault = 0, | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| openGLES1, /**< On the iPhone, this selects openGL ES 1.0 */ | |||
| openGLES2 /**< On the iPhone, this selects openGL ES 2.0 */ | |||
| #endif | |||
| @@ -61174,7 +61247,7 @@ END_JUCE_NAMESPACE | |||
| of 3rd party header files, you may need to use the juce_WithoutMacros.h file - see | |||
| the comments in that file for more information. | |||
| */ | |||
| #if (JUCE_MAC || JUCE_IPHONE) && ! JUCE_DONT_DEFINE_MACROS | |||
| #if (JUCE_MAC || JUCE_IOS) && ! JUCE_DONT_DEFINE_MACROS | |||
| #define Component JUCE_NAMESPACE::Component | |||
| #define MemoryBlock JUCE_NAMESPACE::MemoryBlock | |||
| #define Point JUCE_NAMESPACE::Point | |||
| @@ -61277,50 +61350,6 @@ END_JUCE_NAMESPACE | |||
| #endif | |||
| /* | |||
| To start a JUCE app, use this macro: START_JUCE_APPLICATION (AppSubClass) where | |||
| AppSubClass is the name of a class derived from JUCEApplication. | |||
| See the JUCEApplication class documentation (juce_Application.h) for more details. | |||
| */ | |||
| #if defined (JUCE_GCC) || defined (__MWERKS__) | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int argc, char* argv[]) \ | |||
| { \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (argc, (const char**) argv, new AppClass()); \ | |||
| } | |||
| #elif JUCE_WINDOWS | |||
| #ifdef _CONSOLE | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int, char* argv[]) \ | |||
| { \ | |||
| JUCE_NAMESPACE::String commandLineString (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams()); \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (commandLineString, new AppClass()); \ | |||
| } | |||
| #elif ! defined (_AFXDLL) | |||
| #ifdef _WINDOWS_ | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::String commandLineString (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams()); \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (commandLineString, new AppClass()); \ | |||
| } | |||
| #else | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int __stdcall WinMain (int, int, const char*, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::String commandLineString (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams()); \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (commandLineString, new AppClass()); \ | |||
| } | |||
| #endif | |||
| #endif | |||
| #endif | |||
| #endif // __JUCE_JUCEHEADER__ | |||
| /*** End of inlined file: juce.h ***/ | |||
| @@ -25,38 +25,25 @@ | |||
| #include "../core/juce_StandardHeader.h" | |||
| #if JUCE_MSVC | |||
| #pragma warning (push) | |||
| #pragma warning (disable: 4245 4514 4100) | |||
| #include <crtdbg.h> | |||
| #pragma warning (pop) | |||
| #endif | |||
| BEGIN_JUCE_NAMESPACE | |||
| #include "juce_Application.h" | |||
| #include "../utilities/juce_DeletedAtShutdown.h" | |||
| #include "../events/juce_MessageManager.h" | |||
| #include "../gui/graphics/contexts/juce_Graphics.h" | |||
| #include "../gui/components/windows/juce_AlertWindow.h" | |||
| #include "../gui/components/buttons/juce_TextButton.h" | |||
| #include "../gui/components/lookandfeel/juce_LookAndFeel.h" | |||
| #include "../core/juce_Time.h" | |||
| #include "../core/juce_Initialisation.h" | |||
| #include "../threads/juce_Process.h" | |||
| #include "../core/juce_PlatformUtilities.h" | |||
| #include "../text/juce_LocalisedStrings.h" | |||
| void juce_setCurrentThreadName (const String& name); | |||
| static JUCEApplication* appInstance = 0; | |||
| //============================================================================== | |||
| JUCEApplication::JUCEApplication() | |||
| : appReturnValue (0), | |||
| stillInitialising (true) | |||
| { | |||
| jassert (appInstance == 0); | |||
| appInstance = this; | |||
| } | |||
| JUCEApplication::~JUCEApplication() | |||
| @@ -66,8 +53,13 @@ JUCEApplication::~JUCEApplication() | |||
| appLock->exit(); | |||
| appLock = 0; | |||
| } | |||
| jassert (appInstance == this); | |||
| appInstance = 0; | |||
| } | |||
| JUCEApplication* JUCEApplication::appInstance = 0; | |||
| JUCEApplication* JUCEApplication::getInstance() throw() | |||
| { | |||
| return appInstance; | |||
| @@ -108,6 +100,12 @@ void JUCEApplication::setApplicationReturnValue (const int newReturnValue) throw | |||
| appReturnValue = newReturnValue; | |||
| } | |||
| void JUCEApplication::actionListenerCallback (const String& message) | |||
| { | |||
| if (message.startsWith (getApplicationName() + "/")) | |||
| anotherInstanceStarted (message.substring (getApplicationName().length() + 1)); | |||
| } | |||
| //============================================================================== | |||
| void JUCEApplication::unhandledException (const std::exception*, | |||
| const String&, | |||
| @@ -160,41 +158,11 @@ bool JUCEApplication::perform (const InvocationInfo& info) | |||
| } | |||
| //============================================================================== | |||
| int JUCEApplication::main (String& commandLine, JUCEApplication* const app) | |||
| { | |||
| if (! app->initialiseApp (commandLine)) | |||
| return 0; | |||
| // now loop until a quit message is received.. | |||
| JUCE_TRY | |||
| { | |||
| MessageManager::getInstance()->runDispatchLoop(); | |||
| } | |||
| #if JUCE_CATCH_UNHANDLED_EXCEPTIONS | |||
| catch (const std::exception& e) | |||
| { | |||
| app->unhandledException (&e, __FILE__, __LINE__); | |||
| } | |||
| catch (...) | |||
| { | |||
| app->unhandledException (0, __FILE__, __LINE__); | |||
| } | |||
| #endif | |||
| return shutdownAppAndClearUp(); | |||
| } | |||
| bool JUCEApplication::initialiseApp (String& commandLine) | |||
| bool JUCEApplication::initialiseApp (const String& commandLine) | |||
| { | |||
| jassert (appInstance == 0); | |||
| appInstance = this; | |||
| commandLineParameters = commandLine.trim(); | |||
| commandLine = String::empty; | |||
| initialiseJuce_GUI(); | |||
| #if ! JUCE_IPHONE | |||
| #if ! JUCE_IOS | |||
| jassert (appLock == 0); // initialiseApp must only be called once! | |||
| if (! moreThanOneInstanceAllowed()) | |||
| @@ -206,9 +174,6 @@ bool JUCEApplication::initialiseApp (String& commandLine) | |||
| appLock = 0; | |||
| MessageManager::broadcastMessage (getApplicationName() + "/" + commandLineParameters); | |||
| delete appInstance; | |||
| appInstance = 0; | |||
| DBG ("Another instance is running - quitting..."); | |||
| return false; | |||
| } | |||
| @@ -225,151 +190,66 @@ bool JUCEApplication::initialiseApp (String& commandLine) | |||
| return true; | |||
| } | |||
| int JUCEApplication::shutdownAppAndClearUp() | |||
| int JUCEApplication::shutdownApp() | |||
| { | |||
| jassert (appInstance != 0); | |||
| ScopedPointer<JUCEApplication> app (appInstance); | |||
| int returnValue = 0; | |||
| jassert (appInstance == this); | |||
| MessageManager::getInstance()->deregisterBroadcastListener (static_cast <JUCEApplication*> (app)); | |||
| MessageManager::getInstance()->deregisterBroadcastListener (this); | |||
| static bool reentrancyCheck = false; | |||
| if (! reentrancyCheck) | |||
| JUCE_TRY | |||
| { | |||
| reentrancyCheck = true; | |||
| JUCE_TRY | |||
| { | |||
| // give the app a chance to clean up.. | |||
| app->shutdown(); | |||
| } | |||
| #if JUCE_CATCH_UNHANDLED_EXCEPTIONS | |||
| catch (const std::exception& e) | |||
| { | |||
| app->unhandledException (&e, __FILE__, __LINE__); | |||
| } | |||
| catch (...) | |||
| { | |||
| app->unhandledException (0, __FILE__, __LINE__); | |||
| } | |||
| #endif | |||
| JUCE_TRY | |||
| { | |||
| app->releaseMessageListener(); | |||
| // give the app a chance to clean up.. | |||
| shutdown(); | |||
| } | |||
| JUCE_CATCH_EXCEPTION | |||
| shutdownJuce_GUI(); | |||
| return getApplicationReturnValue(); | |||
| } | |||
| returnValue = app->getApplicationReturnValue(); | |||
| //============================================================================== | |||
| int JUCEApplication::main (const String& commandLine, JUCEApplication* const app) | |||
| { | |||
| const ScopedPointer<JUCEApplication> appDeleter (app); | |||
| appInstance = 0; | |||
| app = 0; | |||
| } | |||
| JUCE_CATCH_ALL_ASSERT | |||
| if (! app->initialiseApp (commandLine)) | |||
| return 0; | |||
| reentrancyCheck = false; | |||
| JUCE_TRY | |||
| { | |||
| // loop until a quit message is received.. | |||
| MessageManager::getInstance()->runDispatchLoop(); | |||
| } | |||
| JUCE_CATCH_EXCEPTION | |||
| return returnValue; | |||
| return app->shutdownApp(); | |||
| } | |||
| #if JUCE_IPHONE | |||
| extern int juce_IPhoneMain (int argc, const char* argv[], JUCEApplication* app); | |||
| #if JUCE_IOS | |||
| extern int juce_iOSMain (int argc, const char* argv[]); | |||
| #endif | |||
| #if ! JUCE_WINDOWS | |||
| extern const char* juce_Argv0; | |||
| extern const char* juce_Argv0; | |||
| #endif | |||
| int JUCEApplication::main (int argc, const char* argv[], JUCEApplication* const newApp) | |||
| { | |||
| #if ! JUCE_WINDOWS | |||
| juce_Argv0 = argv[0]; | |||
| #endif | |||
| JUCE_AUTORELEASEPOOL | |||
| #if JUCE_IPHONE | |||
| const ScopedAutoReleasePool pool; | |||
| return juce_IPhoneMain (argc, argv, newApp); | |||
| #else | |||
| #if JUCE_MAC | |||
| const ScopedAutoReleasePool pool; | |||
| #if ! JUCE_WINDOWS | |||
| juce_Argv0 = argv[0]; | |||
| #endif | |||
| #if JUCE_IOS | |||
| const ScopedPointer<JUCEApplication> appDeleter (newApp); | |||
| return juce_iOSMain (argc, argv); | |||
| #else | |||
| String cmd; | |||
| for (int i = 1; i < argc; ++i) | |||
| cmd << argv[i] << ' '; | |||
| return JUCEApplication::main (cmd, newApp); | |||
| #endif | |||
| } | |||
| void JUCEApplication::actionListenerCallback (const String& message) | |||
| { | |||
| if (message.startsWith (getApplicationName() + "/")) | |||
| anotherInstanceStarted (message.substring (getApplicationName().length() + 1)); | |||
| } | |||
| //============================================================================== | |||
| static bool juceInitialisedGUI = false; | |||
| void JUCE_PUBLIC_FUNCTION initialiseJuce_GUI() | |||
| { | |||
| if (! juceInitialisedGUI) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| const ScopedAutoReleasePool pool; | |||
| #endif | |||
| juceInitialisedGUI = true; | |||
| initialiseJuce_NonGUI(); | |||
| MessageManager::getInstance(); | |||
| LookAndFeel::setDefaultLookAndFeel (0); | |||
| juce_setCurrentThreadName ("Juce Message Thread"); | |||
| #if JUCE_WINDOWS && JUCE_DEBUG | |||
| // This section is just for catching people who mess up their project settings and | |||
| // turn RTTI off.. | |||
| try | |||
| { | |||
| TextButton tb (String::empty); | |||
| Component* c = &tb; | |||
| // Got an exception here? Then TURN ON RTTI in your compiler settings!! | |||
| c = dynamic_cast <Button*> (c); | |||
| } | |||
| catch (...) | |||
| { | |||
| // Ended up here? If so, TURN ON RTTI in your compiler settings!! And if you | |||
| // got as far as this catch statement, then why haven't you got exception catching | |||
| // turned on in the debugger??? | |||
| jassertfalse; | |||
| } | |||
| #endif | |||
| } | |||
| } | |||
| void JUCE_PUBLIC_FUNCTION shutdownJuce_GUI() | |||
| { | |||
| if (juceInitialisedGUI) | |||
| { | |||
| #if JUCE_MAC | |||
| const ScopedAutoReleasePool pool; | |||
| #endif | |||
| { | |||
| DeletedAtShutdown::deleteAll(); | |||
| LookAndFeel::clearDefaultLookAndFeel(); | |||
| } | |||
| delete MessageManager::getInstance(); | |||
| shutdownJuce_NonGUI(); | |||
| juceInitialisedGUI = false; | |||
| } | |||
| #endif | |||
| } | |||
| END_JUCE_NAMESPACE | |||
| @@ -263,7 +263,7 @@ public: | |||
| // These are used by the START_JUCE_APPLICATION() macro and aren't for public use. | |||
| /** @internal */ | |||
| static int main (String& commandLine, JUCEApplication* newApp); | |||
| static int main (const String& commandLine, JUCEApplication* newApp); | |||
| /** @internal */ | |||
| static int main (int argc, const char* argv[], JUCEApplication* newApp); | |||
| @@ -283,6 +283,10 @@ public: | |||
| bool perform (const InvocationInfo& info); | |||
| /** @internal */ | |||
| void actionListenerCallback (const String& message); | |||
| /** @internal */ | |||
| bool initialiseApp (const String& commandLine); | |||
| /** @internal */ | |||
| int shutdownApp(); | |||
| private: | |||
| //============================================================================== | |||
| @@ -290,15 +294,10 @@ private: | |||
| int appReturnValue; | |||
| bool stillInitialising; | |||
| ScopedPointer<InterProcessLock> appLock; | |||
| static JUCEApplication* appInstance; | |||
| JUCEApplication (const JUCEApplication&); | |||
| JUCEApplication& operator= (const JUCEApplication&); | |||
| public: | |||
| /** @internal */ | |||
| bool initialiseApp (String& commandLine); | |||
| /** @internal */ | |||
| static int shutdownAppAndClearUp(); | |||
| }; | |||
| @@ -37,11 +37,6 @@ ApplicationCommandTarget::ApplicationCommandTarget() | |||
| } | |||
| ApplicationCommandTarget::~ApplicationCommandTarget() | |||
| { | |||
| releaseMessageListener(); | |||
| } | |||
| void ApplicationCommandTarget::releaseMessageListener() | |||
| { | |||
| messageInvoker = 0; | |||
| } | |||
| @@ -235,9 +235,6 @@ public: | |||
| //============================================================================== | |||
| juce_UseDebuggingNewOperator | |||
| /** @internal */ | |||
| void releaseMessageListener(); | |||
| private: | |||
| // (for async invocation of commands) | |||
| class CommandTargetMessageInvoker : public MessageListener | |||
| @@ -26,7 +26,7 @@ | |||
| #include "../../core/juce_TargetPlatform.h" | |||
| #include "../../../juce_Config.h" | |||
| #if JUCE_QUICKTIME && ! (JUCE_64BIT || JUCE_IPHONE) | |||
| #if JUCE_QUICKTIME && ! (JUCE_64BIT || JUCE_IOS) | |||
| #if ! JUCE_WINDOWS | |||
| #include <QuickTime/Movies.h> | |||
| @@ -131,7 +131,7 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray <AudioIODeviceType>& | |||
| list.add (juce_createAudioIODeviceType_CoreAudio()); | |||
| #endif | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| list.add (juce_createAudioIODeviceType_iPhoneAudio()); | |||
| #endif | |||
| @@ -157,11 +157,11 @@ private: | |||
| /* | |||
| The following code is in the header so that the atomics can be inlined where possible... | |||
| */ | |||
| #if (JUCE_IPHONE && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2 || ! defined (__IPHONE_3_2))) \ | |||
| #if (JUCE_IOS && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2 || ! defined (__IPHONE_3_2))) \ | |||
| || (JUCE_MAC && (JUCE_PPC || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))) | |||
| #define JUCE_ATOMICS_MAC 1 // Older OSX builds using gcc4.1 or earlier | |||
| #if JUCE_PPC || JUCE_IPHONE | |||
| #if JUCE_PPC || JUCE_IOS | |||
| // None of these atomics are available for PPC or for iPhoneOS 3.1 or earlier!! | |||
| template <typename Type> static Type OSAtomicAdd64Barrier (Type b, volatile Type* a) throw() { jassertfalse; return *a += b; } | |||
| template <typename Type> static Type OSAtomicIncrement64Barrier (volatile Type* a) throw() { jassertfalse; return ++*a; } | |||
| @@ -175,7 +175,7 @@ private: | |||
| #elif JUCE_GCC | |||
| #define JUCE_ATOMICS_GCC 1 // GCC with intrinsics | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #define JUCE_64BIT_ATOMICS_UNAVAILABLE 1 // (on the iphone, the 64-bit ops will compile but not link) | |||
| #endif | |||
| @@ -116,7 +116,7 @@ inline uint16 ByteOrder::swap (uint16 n) | |||
| inline uint32 ByteOrder::swap (uint32 n) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| return OSSwapInt32 (n); | |||
| #elif JUCE_GCC | |||
| asm("bswap %%eax" : "=a"(n) : "a"(n)); | |||
| @@ -135,7 +135,7 @@ inline uint32 ByteOrder::swap (uint32 n) | |||
| inline uint64 ByteOrder::swap (uint64 value) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| return OSSwapInt64 (value); | |||
| #elif JUCE_USE_INTRINSICS | |||
| return _byteswap_uint64 (value); | |||
| @@ -0,0 +1,272 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||
| Copyright 2004-10 by Raw Material Software Ltd. | |||
| ------------------------------------------------------------------------------ | |||
| JUCE can be redistributed and/or modified under the terms of the GNU General | |||
| Public License (Version 2), as published by the Free Software Foundation. | |||
| A copy of the license is included in the JUCE distribution, or can be found | |||
| online at www.gnu.org/licenses. | |||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
| ------------------------------------------------------------------------------ | |||
| To release a closed-source product which uses JUCE, commercial licenses are | |||
| available: visit www.rawmaterialsoftware.com/juce for more information. | |||
| ============================================================================== | |||
| */ | |||
| #include "juce_StandardHeader.h" | |||
| BEGIN_JUCE_NAMESPACE | |||
| #include "juce_Atomic.h" | |||
| #include "juce_Random.h" | |||
| #include "juce_PlatformUtilities.h" | |||
| #include "juce_SystemStats.h" | |||
| #include "../text/juce_LocalisedStrings.h" | |||
| #include "../io/streams/juce_MemoryOutputStream.h" | |||
| #include "../io/streams/juce_MemoryInputStream.h" | |||
| #include "../threads/juce_Thread.h" | |||
| #if ! JUCE_ONLY_BUILD_CORE_LIBRARY | |||
| #include "../events/juce_MessageManager.h" | |||
| #include "../gui/components/buttons/juce_TextButton.h" | |||
| #include "../gui/components/lookandfeel/juce_LookAndFeel.h" | |||
| #endif | |||
| #if JUCE_WINDOWS | |||
| extern void juce_shutdownWin32Sockets(); // (defined in the sockets code) | |||
| #endif | |||
| #if JUCE_DEBUG | |||
| extern void juce_CheckForDanglingStreams(); // (in juce_OutputStream.cpp) | |||
| #endif | |||
| //============================================================================== | |||
| #if JUCE_DEBUG | |||
| namespace SimpleUnitTests | |||
| { | |||
| template <typename Type> | |||
| class AtomicTester | |||
| { | |||
| public: | |||
| AtomicTester() {} | |||
| static void testInteger() | |||
| { | |||
| Atomic<Type> a, b; | |||
| a.set ((Type) 10); | |||
| a += (Type) 15; | |||
| a.memoryBarrier(); | |||
| a -= (Type) 5; | |||
| ++a; ++a; --a; | |||
| a.memoryBarrier(); | |||
| testFloat(); | |||
| } | |||
| static void testFloat() | |||
| { | |||
| Atomic<Type> a, b; | |||
| a = (Type) 21; | |||
| a.memoryBarrier(); | |||
| /* These are some simple test cases to check the atomics - let me know | |||
| if any of these assertions fail on your system! | |||
| */ | |||
| jassert (a.get() == (Type) 21); | |||
| jassert (a.compareAndSetValue ((Type) 100, (Type) 50) == (Type) 21); | |||
| jassert (a.get() == (Type) 21); | |||
| jassert (a.compareAndSetValue ((Type) 101, a.get()) == (Type) 21); | |||
| jassert (a.get() == (Type) 101); | |||
| jassert (! a.compareAndSetBool ((Type) 300, (Type) 200)); | |||
| jassert (a.get() == (Type) 101); | |||
| jassert (a.compareAndSetBool ((Type) 200, a.get())); | |||
| jassert (a.get() == (Type) 200); | |||
| jassert (a.exchange ((Type) 300) == (Type) 200); | |||
| jassert (a.get() == (Type) 300); | |||
| b = a; | |||
| jassert (b.get() == a.get()); | |||
| } | |||
| }; | |||
| static void runBasicTests() | |||
| { | |||
| // Some simple test code, to keep an eye on things and make sure these functions | |||
| // work ok on all platforms. Let me know if any of these assertions fail on your system! | |||
| static_jassert (sizeof (pointer_sized_int) == sizeof (void*)); | |||
| static_jassert (sizeof (int8) == 1); | |||
| static_jassert (sizeof (uint8) == 1); | |||
| static_jassert (sizeof (int16) == 2); | |||
| static_jassert (sizeof (uint16) == 2); | |||
| static_jassert (sizeof (int32) == 4); | |||
| static_jassert (sizeof (uint32) == 4); | |||
| static_jassert (sizeof (int64) == 8); | |||
| static_jassert (sizeof (uint64) == 8); | |||
| char a1[7]; | |||
| jassert (numElementsInArray(a1) == 7); | |||
| int a2[3]; | |||
| jassert (numElementsInArray(a2) == 3); | |||
| jassert (ByteOrder::swap ((uint16) 0x1122) == 0x2211); | |||
| jassert (ByteOrder::swap ((uint32) 0x11223344) == 0x44332211); | |||
| jassert (ByteOrder::swap ((uint64) literal64bit (0x1122334455667788)) == literal64bit (0x8877665544332211)); | |||
| // Some quick stream tests.. | |||
| int randomInt = Random::getSystemRandom().nextInt(); | |||
| int64 randomInt64 = Random::getSystemRandom().nextInt64(); | |||
| double randomDouble = Random::getSystemRandom().nextDouble(); | |||
| String randomString; | |||
| for (int i = 50; --i >= 0;) | |||
| randomString << (juce_wchar) (Random::getSystemRandom().nextInt() & 0xffff); | |||
| MemoryOutputStream mo; | |||
| mo.writeInt (randomInt); | |||
| mo.writeIntBigEndian (randomInt); | |||
| mo.writeCompressedInt (randomInt); | |||
| mo.writeString (randomString); | |||
| mo.writeInt64 (randomInt64); | |||
| mo.writeInt64BigEndian (randomInt64); | |||
| mo.writeDouble (randomDouble); | |||
| mo.writeDoubleBigEndian (randomDouble); | |||
| MemoryInputStream mi (mo.getData(), mo.getDataSize(), false); | |||
| jassert (mi.readInt() == randomInt); | |||
| jassert (mi.readIntBigEndian() == randomInt); | |||
| jassert (mi.readCompressedInt() == randomInt); | |||
| jassert (mi.readString() == randomString); | |||
| jassert (mi.readInt64() == randomInt64); | |||
| jassert (mi.readInt64BigEndian() == randomInt64); | |||
| jassert (mi.readDouble() == randomDouble); | |||
| jassert (mi.readDoubleBigEndian() == randomDouble); | |||
| AtomicTester <int>::testInteger(); | |||
| AtomicTester <unsigned int>::testInteger(); | |||
| AtomicTester <int32>::testInteger(); | |||
| AtomicTester <uint32>::testInteger(); | |||
| AtomicTester <long>::testInteger(); | |||
| AtomicTester <void*>::testInteger(); | |||
| AtomicTester <int*>::testInteger(); | |||
| AtomicTester <float>::testFloat(); | |||
| #if ! JUCE_64BIT_ATOMICS_UNAVAILABLE // 64-bit intrinsics aren't available on some old platforms | |||
| AtomicTester <int64>::testInteger(); | |||
| AtomicTester <uint64>::testInteger(); | |||
| AtomicTester <double>::testFloat(); | |||
| #endif | |||
| } | |||
| } | |||
| #endif | |||
| //============================================================================== | |||
| static bool juceInitialisedNonGUI = false; | |||
| void JUCE_PUBLIC_FUNCTION initialiseJuce_NonGUI() | |||
| { | |||
| if (! juceInitialisedNonGUI) | |||
| { | |||
| juceInitialisedNonGUI = true; | |||
| JUCE_AUTORELEASEPOOL | |||
| #if JUCE_DEBUG | |||
| SimpleUnitTests::runBasicTests(); | |||
| #endif | |||
| DBG (SystemStats::getJUCEVersion()); | |||
| SystemStats::initialiseStats(); | |||
| Random::getSystemRandom().setSeedRandomly(); // (mustn't call this before initialiseStats() because it relies on the time being set up) | |||
| } | |||
| } | |||
| void JUCE_PUBLIC_FUNCTION shutdownJuce_NonGUI() | |||
| { | |||
| if (juceInitialisedNonGUI) | |||
| { | |||
| juceInitialisedNonGUI = false; | |||
| JUCE_AUTORELEASEPOOL | |||
| LocalisedStrings::setCurrentMappings (0); | |||
| Thread::stopAllThreads (3000); | |||
| #if JUCE_WINDOWS | |||
| juce_shutdownWin32Sockets(); | |||
| #endif | |||
| #if JUCE_DEBUG | |||
| juce_CheckForDanglingStreams(); | |||
| #endif | |||
| } | |||
| } | |||
| //============================================================================== | |||
| #if ! JUCE_ONLY_BUILD_CORE_LIBRARY | |||
| void juce_setCurrentThreadName (const String& name); | |||
| static bool juceInitialisedGUI = false; | |||
| void JUCE_PUBLIC_FUNCTION initialiseJuce_GUI() | |||
| { | |||
| if (! juceInitialisedGUI) | |||
| { | |||
| juceInitialisedGUI = true; | |||
| JUCE_AUTORELEASEPOOL | |||
| initialiseJuce_NonGUI(); | |||
| MessageManager::getInstance(); | |||
| LookAndFeel::setDefaultLookAndFeel (0); | |||
| juce_setCurrentThreadName ("Juce Message Thread"); | |||
| #if JUCE_DEBUG | |||
| // This section is just for catching people who mess up their project settings and | |||
| // turn RTTI off.. | |||
| try | |||
| { | |||
| TextButton tb (String::empty); | |||
| Component* c = &tb; | |||
| // Got an exception here? Then TURN ON RTTI in your compiler settings!! | |||
| c = dynamic_cast <Button*> (c); | |||
| } | |||
| catch (...) | |||
| { | |||
| // Ended up here? If so, TURN ON RTTI in your compiler settings!! | |||
| jassertfalse; | |||
| } | |||
| #endif | |||
| } | |||
| } | |||
| void JUCE_PUBLIC_FUNCTION shutdownJuce_GUI() | |||
| { | |||
| if (juceInitialisedGUI) | |||
| { | |||
| juceInitialisedGUI = false; | |||
| JUCE_AUTORELEASEPOOL | |||
| DeletedAtShutdown::deleteAll(); | |||
| LookAndFeel::clearDefaultLookAndFeel(); | |||
| delete MessageManager::getInstance(); | |||
| shutdownJuce_NonGUI(); | |||
| } | |||
| } | |||
| #endif | |||
| END_JUCE_NAMESPACE | |||
| @@ -126,5 +126,51 @@ public: | |||
| }; | |||
| //============================================================================== | |||
| /* | |||
| To start a JUCE app, use this macro: START_JUCE_APPLICATION (AppSubClass) where | |||
| AppSubClass is the name of a class derived from JUCEApplication. | |||
| See the JUCEApplication class documentation (juce_Application.h) for more details. | |||
| */ | |||
| #if defined (JUCE_GCC) || defined (__MWERKS__) | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int argc, char* argv[]) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (argc, (const char**) argv, new AppClass()); \ | |||
| } | |||
| #elif JUCE_WINDOWS | |||
| #ifdef _CONSOLE | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int main (int, char* argv[]) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams(), new AppClass()); \ | |||
| } | |||
| #elif ! defined (_AFXDLL) | |||
| #ifdef _WINDOWS_ | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams(), new AppClass()); \ | |||
| } | |||
| #else | |||
| #define START_JUCE_APPLICATION(AppClass) \ | |||
| int __stdcall WinMain (int, int, const char*, int) \ | |||
| { \ | |||
| JUCE_NAMESPACE::ScopedJuceInitialiser_GUI libraryInitialiser; \ | |||
| return JUCE_NAMESPACE::JUCEApplication::main (JUCE_NAMESPACE::PlatformUtilities::getCurrentCommandLineParams(), new AppClass()); \ | |||
| } | |||
| #endif | |||
| #endif | |||
| #endif | |||
| #endif // __JUCE_INITIALISATION_JUCEHEADER__ | |||
| @@ -96,7 +96,7 @@ | |||
| #endif | |||
| #elif JUCE_MAC | |||
| #define juce_breakDebugger Debugger(); | |||
| #elif JUCE_IPHONE | |||
| #elif JUCE_IOS | |||
| #define juce_breakDebugger kill (0, SIGTRAP); | |||
| #elif JUCE_LINUX | |||
| #define juce_breakDebugger kill (0, SIGTRAP); | |||
| @@ -52,7 +52,7 @@ public: | |||
| const String& bodyText, | |||
| const StringArray& filesToAttach); | |||
| #if JUCE_MAC || JUCE_IPHONE || DOXYGEN | |||
| #if JUCE_MAC || JUCE_IOS || DOXYGEN | |||
| //============================================================================== | |||
| /** MAC ONLY - Turns a Core CF String into a juce one. */ | |||
| static const String cfStringToJuceString (CFStringRef cfString); | |||
| @@ -208,7 +208,7 @@ private: | |||
| //============================================================================== | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| /** A handy C++ wrapper that creates and deletes an NSAutoreleasePool object | |||
| using RAII. | |||
| @@ -226,6 +226,12 @@ private: | |||
| ScopedAutoReleasePool& operator= (const ScopedAutoReleasePool&); | |||
| }; | |||
| #define JUCE_AUTORELEASEPOOL const ScopedAutoReleasePool pool; | |||
| #else | |||
| #define JUCE_AUTORELEASEPOOL | |||
| #endif | |||
| @@ -33,7 +33,7 @@ | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 52 | |||
| #define JUCE_BUILDNUMBER 40 | |||
| #define JUCE_BUILDNUMBER 41 | |||
| /** Current Juce version number. | |||
| @@ -89,7 +89,7 @@ | |||
| #include <intrin.h> | |||
| #endif | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| #include <libkern/OSAtomic.h> | |||
| #endif | |||
| @@ -29,14 +29,8 @@ BEGIN_JUCE_NAMESPACE | |||
| #include "../text/juce_String.h" | |||
| #include "juce_SystemStats.h" | |||
| #include "juce_Random.h" | |||
| #include "juce_Time.h" | |||
| #include "juce_Atomic.h" | |||
| #include "../threads/juce_Thread.h" | |||
| #include "../text/juce_LocalisedStrings.h" | |||
| #include "juce_PlatformUtilities.h" | |||
| #include "../io/streams/juce_MemoryOutputStream.h" | |||
| #include "../io/streams/juce_MemoryInputStream.h" | |||
| //============================================================================== | |||
| @@ -69,186 +63,6 @@ const StringArray SystemStats::getMACAddressStrings() | |||
| return s; | |||
| } | |||
| //============================================================================== | |||
| static bool juceInitialisedNonGUI = false; | |||
| #if JUCE_DEBUG | |||
| template <typename Type> | |||
| class AtomicTester | |||
| { | |||
| public: | |||
| AtomicTester() {} | |||
| static void testInteger() | |||
| { | |||
| Atomic<Type> a, b; | |||
| a.set ((Type) 10); | |||
| a += (Type) 15; | |||
| a.memoryBarrier(); | |||
| a -= (Type) 5; | |||
| ++a; | |||
| ++a; | |||
| --a; | |||
| a.memoryBarrier(); | |||
| testFloat(); | |||
| } | |||
| static void testFloat() | |||
| { | |||
| Atomic<Type> a, b; | |||
| a = (Type) 21; | |||
| a.memoryBarrier(); | |||
| /* These are some simple test cases to check the atomics - let me know | |||
| if any of these assertions fail on your system! | |||
| */ | |||
| jassert (a.get() == (Type) 21); | |||
| jassert (a.compareAndSetValue ((Type) 100, (Type) 50) == (Type) 21); | |||
| jassert (a.get() == (Type) 21); | |||
| jassert (a.compareAndSetValue ((Type) 101, a.get()) == (Type) 21); | |||
| jassert (a.get() == (Type) 101); | |||
| jassert (! a.compareAndSetBool ((Type) 300, (Type) 200)); | |||
| jassert (a.get() == (Type) 101); | |||
| jassert (a.compareAndSetBool ((Type) 200, a.get())); | |||
| jassert (a.get() == (Type) 200); | |||
| jassert (a.exchange ((Type) 300) == (Type) 200); | |||
| jassert (a.get() == (Type) 300); | |||
| b = a; | |||
| jassert (b.get() == a.get()); | |||
| } | |||
| }; | |||
| static void juce_testAtomics() | |||
| { | |||
| AtomicTester <int>::testInteger(); | |||
| AtomicTester <unsigned int>::testInteger(); | |||
| AtomicTester <int32>::testInteger(); | |||
| AtomicTester <uint32>::testInteger(); | |||
| AtomicTester <long>::testInteger(); | |||
| AtomicTester <void*>::testInteger(); | |||
| AtomicTester <int*>::testInteger(); | |||
| AtomicTester <float>::testFloat(); | |||
| #if ! JUCE_64BIT_ATOMICS_UNAVAILABLE // 64-bit intrinsics aren't available on some old platforms | |||
| AtomicTester <int64>::testInteger(); | |||
| AtomicTester <uint64>::testInteger(); | |||
| AtomicTester <double>::testFloat(); | |||
| #endif | |||
| } | |||
| #endif | |||
| //============================================================================== | |||
| void JUCE_PUBLIC_FUNCTION initialiseJuce_NonGUI() | |||
| { | |||
| if (! juceInitialisedNonGUI) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| const ScopedAutoReleasePool pool; | |||
| #endif | |||
| #if JUCE_DEBUG | |||
| { | |||
| // Some simple test code to keep an eye on things and make sure these functions | |||
| // work ok on all platforms. Let me know if any of these assertions fail! | |||
| static_jassert (sizeof (pointer_sized_int) == sizeof (void*)); | |||
| static_jassert (sizeof (int8) == 1); | |||
| static_jassert (sizeof (uint8) == 1); | |||
| static_jassert (sizeof (int16) == 2); | |||
| static_jassert (sizeof (uint16) == 2); | |||
| static_jassert (sizeof (int32) == 4); | |||
| static_jassert (sizeof (uint32) == 4); | |||
| static_jassert (sizeof (int64) == 8); | |||
| static_jassert (sizeof (uint64) == 8); | |||
| char a1[7]; | |||
| jassert (numElementsInArray(a1) == 7); | |||
| int a2[3]; | |||
| jassert (numElementsInArray(a2) == 3); | |||
| juce_testAtomics(); | |||
| jassert (ByteOrder::swap ((uint16) 0x1122) == 0x2211); | |||
| jassert (ByteOrder::swap ((uint32) 0x11223344) == 0x44332211); | |||
| // Some quick stream tests.. | |||
| int randomInt = Random::getSystemRandom().nextInt(); | |||
| int64 randomInt64 = Random::getSystemRandom().nextInt64(); | |||
| double randomDouble = Random::getSystemRandom().nextDouble(); | |||
| String randomString; | |||
| for (int i = 50; --i >= 0;) | |||
| randomString << (juce_wchar) (Random::getSystemRandom().nextInt() & 0xffff); | |||
| MemoryOutputStream mo; | |||
| mo.writeInt (randomInt); | |||
| mo.writeIntBigEndian (randomInt); | |||
| mo.writeCompressedInt (randomInt); | |||
| mo.writeString (randomString); | |||
| mo.writeInt64 (randomInt64); | |||
| mo.writeInt64BigEndian (randomInt64); | |||
| mo.writeDouble (randomDouble); | |||
| mo.writeDoubleBigEndian (randomDouble); | |||
| MemoryInputStream mi (mo.getData(), mo.getDataSize(), false); | |||
| jassert (mi.readInt() == randomInt); | |||
| jassert (mi.readIntBigEndian() == randomInt); | |||
| jassert (mi.readCompressedInt() == randomInt); | |||
| jassert (mi.readString() == randomString); | |||
| jassert (mi.readInt64() == randomInt64); | |||
| jassert (mi.readInt64BigEndian() == randomInt64); | |||
| jassert (mi.readDouble() == randomDouble); | |||
| jassert (mi.readDoubleBigEndian() == randomDouble); | |||
| } | |||
| #endif | |||
| // Now the real initialisation.. | |||
| juceInitialisedNonGUI = true; | |||
| DBG (SystemStats::getJUCEVersion()); | |||
| SystemStats::initialiseStats(); | |||
| Random::getSystemRandom().setSeedRandomly(); // (mustn't call this before initialiseStats() because it relies on the time being set up) | |||
| } | |||
| } | |||
| //============================================================================== | |||
| #if JUCE_WINDOWS | |||
| extern void juce_shutdownWin32Sockets(); // (defined in the sockets code) | |||
| #endif | |||
| #if JUCE_DEBUG | |||
| extern void juce_CheckForDanglingStreams(); | |||
| #endif | |||
| //============================================================================== | |||
| void JUCE_PUBLIC_FUNCTION shutdownJuce_NonGUI() | |||
| { | |||
| if (juceInitialisedNonGUI) | |||
| { | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| const ScopedAutoReleasePool pool; | |||
| #endif | |||
| #if JUCE_WINDOWS | |||
| // need to shut down sockets if they were used.. | |||
| juce_shutdownWin32Sockets(); | |||
| #endif | |||
| LocalisedStrings::setCurrentMappings (0); | |||
| Thread::stopAllThreads (3000); | |||
| #if JUCE_DEBUG | |||
| juce_CheckForDanglingStreams(); | |||
| #endif | |||
| juceInitialisedNonGUI = false; | |||
| } | |||
| } | |||
| //============================================================================== | |||
| #ifdef JUCE_DLL | |||
| @@ -50,6 +50,7 @@ | |||
| #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR | |||
| #define JUCE_IPHONE 1 | |||
| #define JUCE_IOS 1 | |||
| #else | |||
| #define JUCE_MAC 1 | |||
| #endif | |||
| @@ -117,7 +118,7 @@ | |||
| #endif | |||
| //============================================================================== | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #ifndef NDEBUG | |||
| #define JUCE_DEBUG 1 | |||
| @@ -133,7 +133,7 @@ void MessageManager::deliverMessage (Message* const message) | |||
| } | |||
| //============================================================================== | |||
| #if ! (JUCE_MAC || JUCE_IPHONE) | |||
| #if ! (JUCE_MAC || JUCE_IOS) | |||
| void MessageManager::runDispatchLoop() | |||
| { | |||
| jassert (isThisTheMessageThread()); // must only be called by the message thread | |||
| @@ -75,8 +75,15 @@ public: | |||
| /** Destructor. | |||
| Note that when a component is deleted, any child components it might | |||
| contain are NOT deleted unless you explicitly call deleteAllChildren() first. | |||
| Note that when a component is deleted, any child components it contain are NOT | |||
| automatically deleted. It's your responsibilty to manage their lifespan - you | |||
| may want to use helper methods like deleteAllChildren(), or less haphazard | |||
| approaches like using ScopedPointers or normal object aggregation to manage them. | |||
| If the component being deleted is currently the child of another one, then during | |||
| deletion, it will be removed from its parent, and the parent will receive a childrenChanged() | |||
| callback. Any ComponentListener objects that have registered with it will also have their | |||
| ComponentListener::componentBeingDeleted() methods called. | |||
| */ | |||
| virtual ~Component(); | |||
| @@ -552,29 +559,37 @@ public: | |||
| /** Adds a child component to this one. | |||
| @param child the new component to add. If the component passed-in is already | |||
| the child of another component, it'll first be removed from that. | |||
| Adding a child component does not mean that the component will own or delete the child - it's | |||
| your responsibility to delete the component. Note that it's safe to delete a component | |||
| without first removing it from its parent - doing so will automatically remove it and | |||
| send out the appropriate notifications before the deletion completes. | |||
| If the child is already a child of this component, then no action will be taken, and its | |||
| z-order will be left unchanged. | |||
| @param child the new component to add. If the component passed-in is already | |||
| the child of another component, it'll first be removed from it current parent. | |||
| @param zOrder The index in the child-list at which this component should be inserted. | |||
| A value of -1 will insert it in front of the others, 0 is the back. | |||
| @see removeChildComponent, addAndMakeVisible, getChild, | |||
| ComponentListener::componentChildrenChanged | |||
| @see removeChildComponent, addAndMakeVisible, getChild, ComponentListener::componentChildrenChanged | |||
| */ | |||
| void addChildComponent (Component* child, int zOrder = -1); | |||
| /** Adds a child component to this one, and also makes the child visible if it isn't. | |||
| Quite a useful function, this is just the same as calling addChildComponent() | |||
| followed by setVisible (true) on the child. | |||
| followed by setVisible (true) on the child. See addChildComponent() for more details. | |||
| */ | |||
| void addAndMakeVisible (Component* child, int zOrder = -1); | |||
| /** Removes one of this component's child-components. | |||
| If the child passed-in isn't actually a child of this component (either because | |||
| it's invalid or is the child of a different parent), then nothing is done. | |||
| it's invalid or is the child of a different parent), then no action is taken. | |||
| Note that removing a child will not delete it! | |||
| Note that removing a child will not delete it! But it's ok to delete a component | |||
| without first removing it - doing so will automatically remove it and send out the | |||
| appropriate notifications before the deletion completes. | |||
| @see addChildComponent, ComponentListener::componentChildrenChanged | |||
| */ | |||
| @@ -585,7 +600,9 @@ public: | |||
| This will return a pointer to the component that was removed, or null if | |||
| the index was out-of-range. | |||
| Note that removing a child will not delete it! | |||
| Note that removing a child will not delete it! But it's ok to delete a component | |||
| without first removing it - doing so will automatically remove it and send out the | |||
| appropriate notifications before the deletion completes. | |||
| @see addChildComponent, ComponentListener::componentChildrenChanged | |||
| */ | |||
| @@ -99,10 +99,12 @@ public: | |||
| /** Called when the component is in the process of being deleted. | |||
| This callback is made from inside the destructor, so be very, very cautious | |||
| about what you do inside the callback. | |||
| about what you do in here. | |||
| It will be called before the component has been removed from its parent, and | |||
| before any child components have been removed. | |||
| In particular, bear in mind that it's the Component base class's destructor that calls | |||
| this - so if the object that's being deleted is a subclass of Component, then the | |||
| subclass layers of the object will already have been destructed when it gets to this | |||
| point! | |||
| */ | |||
| virtual void componentBeingDeleted (Component& component); | |||
| }; | |||
| @@ -58,7 +58,7 @@ public: | |||
| { | |||
| const ScopedLock sl (getLock()); | |||
| for (int i = getCursors().size(); --i >= 0;) | |||
| for (int i = 0; i < getCursors().size(); ++i) | |||
| { | |||
| SharedCursorHandle* const sc = getCursors().getUnchecked(i); | |||
| @@ -190,7 +190,7 @@ public: | |||
| { | |||
| openGLDefault = 0, | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| openGLES1, /**< On the iPhone, this selects openGL ES 1.0 */ | |||
| openGLES2 /**< On the iPhone, this selects openGL ES 2.0 */ | |||
| #endif | |||
| @@ -167,6 +167,12 @@ public: | |||
| x = newX; y = newY; w = newWidth; h = newHeight; | |||
| } | |||
| /** Changes the rectangle's X coordinate */ | |||
| void setX (const ValueType newX) throw() { x = newX; } | |||
| /** Changes the rectangle's Y coordinate */ | |||
| void setY (const ValueType newY) throw() { y = newY; } | |||
| /** Changes the rectangle's width */ | |||
| void setWidth (const ValueType newWidth) throw() { w = newWidth; } | |||
| @@ -131,6 +131,9 @@ public: | |||
| private: | |||
| const ReferenceCountedObjectPtr<Image::SharedImage> image; | |||
| const Rectangle<int> area; | |||
| SubsectionSharedImage (const SubsectionSharedImage&); | |||
| SubsectionSharedImage& operator= (const SubsectionSharedImage&); | |||
| }; | |||
| const Image Image::getClippedImage (const Rectangle<int>& area) const | |||
| @@ -40,7 +40,7 @@ | |||
| #include <sys/errno.h> | |||
| #include <unistd.h> | |||
| #include <netinet/in.h> | |||
| #elif (MACOSX_DEPLOYMENT_TARGET <= MAC_OS_X_VERSION_10_4) && ! JUCE_IPHONE | |||
| #elif (MACOSX_DEPLOYMENT_TARGET <= MAC_OS_X_VERSION_10_4) && ! JUCE_IOS | |||
| #include <CoreServices/CoreServices.h> | |||
| #endif | |||
| @@ -58,7 +58,7 @@ BEGIN_JUCE_NAMESPACE | |||
| #include "../../threads/juce_ScopedLock.h" | |||
| #include "../../threads/juce_Thread.h" | |||
| #if defined (JUCE_LINUX) || defined (JUCE_MAC) || defined (JUCE_IPHONE) | |||
| #if defined (JUCE_LINUX) || defined (JUCE_MAC) || defined (JUCE_IOS) | |||
| typedef socklen_t juce_socklen_t; | |||
| #else | |||
| typedef int juce_socklen_t; | |||
| @@ -32,7 +32,7 @@ | |||
| #include "../core/juce_TargetPlatform.h" | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| #include "mac/juce_mac_NativeIncludes.h" | |||
| @@ -98,7 +98,7 @@ BEGIN_JUCE_NAMESPACE | |||
| #include "common/juce_posix_SharedCode.h" | |||
| #include "mac/juce_mac_Files.mm" | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #include "mac/juce_iphone_MiscUtilities.mm" | |||
| #else | |||
| #include "mac/juce_mac_MiscUtilities.mm" | |||
| @@ -107,7 +107,7 @@ BEGIN_JUCE_NAMESPACE | |||
| #include "mac/juce_mac_Debugging.mm" | |||
| #if ! JUCE_ONLY_BUILD_CORE_LIBRARY | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #include "mac/juce_mac_Fonts.mm" | |||
| #include "mac/juce_mac_CoreGraphicsContext.mm" | |||
| #include "mac/juce_iphone_UIViewComponentPeer.mm" | |||
| @@ -29,8 +29,6 @@ | |||
| //============================================================================== | |||
| static JUCEApplication* juce_intialisingApp; | |||
| END_JUCE_NAMESPACE | |||
| @interface JuceAppStartupDelegate : NSObject <UIApplicationDelegate> | |||
| @@ -38,7 +36,7 @@ END_JUCE_NAMESPACE | |||
| } | |||
| - (void) applicationDidFinishLaunching: (UIApplication*) application; | |||
| - (void) applicationWillResignActive: (UIApplication*) application; | |||
| - (void) applicationWillTerminate: (UIApplication*) application; | |||
| @end | |||
| @@ -48,22 +46,25 @@ END_JUCE_NAMESPACE | |||
| { | |||
| String dummy; | |||
| if (! juce_intialisingApp->initialiseApp (dummy)) | |||
| if (! JUCEApplication::getInstance()->initialiseApp (dummy)) | |||
| exit (0); | |||
| } | |||
| - (void) applicationWillResignActive: (UIApplication*) application | |||
| - (void) applicationWillTerminate: (UIApplication*) application | |||
| { | |||
| JUCEApplication::shutdownAppAndClearUp(); | |||
| JUCEApplication::getInstance()->shutdownApp(); | |||
| // need to do this stuff because the OS kills the process before our scope-based cleanup code gets executed.. | |||
| delete JUCEApplication::getInstance(); | |||
| shutdownJuce_GUI(); | |||
| } | |||
| @end | |||
| BEGIN_JUCE_NAMESPACE | |||
| int juce_IPhoneMain (int argc, const char* argv[], JUCEApplication* app) | |||
| int juce_iOSMain (int argc, const char* argv[]) | |||
| { | |||
| juce_intialisingApp = app; | |||
| return UIApplicationMain (argc, const_cast<char**> (argv), nil, @"JuceAppStartupDelegate"); | |||
| } | |||
| @@ -429,7 +429,7 @@ public: | |||
| if (fillEntireClipAsTiles) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| CGContextDrawTiledImage (context, imageRect, image); | |||
| #else | |||
| #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 | |||
| @@ -89,7 +89,7 @@ bool File::isOnHardDisk() const | |||
| bool File::isOnRemovableDrive() const | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| return false; // xxx is this possible? | |||
| #else | |||
| const ScopedAutoReleasePool pool; | |||
| @@ -109,7 +109,7 @@ bool File::isOnRemovableDrive() const | |||
| static bool juce_isHiddenFile (const String& path) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| return File (path).getFileName().startsWithChar ('.'); | |||
| #else | |||
| FSRef ref; | |||
| @@ -238,7 +238,7 @@ const String File::getVersion() const | |||
| //============================================================================== | |||
| const File File::getLinkedTarget() const | |||
| { | |||
| #if JUCE_IPHONE || (defined (MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) | |||
| #if JUCE_IOS || (defined (MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) | |||
| NSString* dest = [[NSFileManager defaultManager] destinationOfSymbolicLinkAtPath: juceStringToNS (getFullPathName()) error: nil]; | |||
| #else | |||
| @@ -257,7 +257,7 @@ bool File::moveToTrash() const | |||
| if (! exists()) | |||
| return true; | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| return deleteFile(); //xxx is there a trashcan on the iPhone? | |||
| #else | |||
| const ScopedAutoReleasePool pool; | |||
| @@ -385,7 +385,7 @@ bool juce_launchExecutable (const String& pathAndArguments) | |||
| bool PlatformUtilities::openDocument (const String& fileName, const String& parameters) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| return [[UIApplication sharedApplication] openURL: [NSURL fileURLWithPath: juceStringToNS (fileName)]]; | |||
| #else | |||
| const ScopedAutoReleasePool pool; | |||
| @@ -428,7 +428,7 @@ bool PlatformUtilities::openDocument (const String& fileName, const String& para | |||
| void File::revealToUser() const | |||
| { | |||
| #if ! JUCE_IPHONE | |||
| #if ! JUCE_IOS | |||
| if (exists()) | |||
| [[NSWorkspace sharedWorkspace] selectFile: juceStringToNS (getFullPathName()) inFileViewerRootedAtPath: @""]; | |||
| else if (getParentDirectory().exists()) | |||
| @@ -437,7 +437,7 @@ void File::revealToUser() const | |||
| } | |||
| //============================================================================== | |||
| #if ! JUCE_IPHONE | |||
| #if ! JUCE_IOS | |||
| bool PlatformUtilities::makeFSRefFromPath (FSRef* destFSRef, const String& path) | |||
| { | |||
| return FSPathMakeRef ((const UInt8*) path.toUTF8(), destFSRef, 0) == noErr; | |||
| @@ -460,7 +460,7 @@ OSType PlatformUtilities::getTypeOfFile (const String& filename) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| #if JUCE_IPHONE || (defined (MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) | |||
| #if JUCE_IOS || (defined (MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) | |||
| NSDictionary* fileDict = [[NSFileManager defaultManager] attributesOfItemAtPath: juceStringToNS (filename) error: nil]; | |||
| #else | |||
| NSDictionary* fileDict = [[NSFileManager defaultManager] fileAttributesAtPath: juceStringToNS (filename) traverseLink: NO]; | |||
| @@ -471,7 +471,7 @@ OSType PlatformUtilities::getTypeOfFile (const String& filename) | |||
| bool PlatformUtilities::isBundle (const String& filename) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| return false; // xxx can't find a sensible way to do this without trying to open the bundle.. | |||
| #else | |||
| const ScopedAutoReleasePool pool; | |||
| @@ -55,7 +55,7 @@ public: | |||
| bool needsItalicTransform = false; | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| NSString* fontName = juceStringToNS (font.getTypefaceName()); | |||
| if (font.isItalic() || font.isBold()) | |||
| @@ -171,7 +171,7 @@ public: | |||
| ~MacTypeface() | |||
| { | |||
| #if ! JUCE_IPHONE | |||
| #if ! JUCE_IOS | |||
| [nsFont release]; | |||
| #endif | |||
| if (fontRef != 0) | |||
| @@ -289,7 +289,7 @@ public: | |||
| bool getOutlineForGlyph (int glyphNumber, Path& path) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| return false; | |||
| #else | |||
| if (nsFont == 0) | |||
| @@ -343,7 +343,7 @@ public: | |||
| private: | |||
| float ascent, unitsToHeightScaleFactor; | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #else | |||
| NSFont* nsFont; | |||
| @@ -495,7 +495,7 @@ const StringArray Font::findAllTypefaceNames() | |||
| const ScopedAutoReleasePool pool; | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| NSArray* fonts = [UIFont familyNames]; | |||
| #else | |||
| NSArray* fonts = [[NSFontManager sharedFontManager] availableFontFamilies]; | |||
| @@ -510,7 +510,7 @@ const StringArray Font::findAllTypefaceNames() | |||
| void Font::getPlatformDefaultFontNames (String& defaultSans, String& defaultSerif, String& defaultFixed) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| defaultSans = "Helvetica"; | |||
| defaultSerif = "Times New Roman"; | |||
| defaultFixed = "Courier New"; | |||
| @@ -411,14 +411,13 @@ static bool isEventBlockedByModalComps (NSEvent* e) | |||
| bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| jassert (isThisTheMessageThread()); // must only be called by the message thread | |||
| uint32 endTime = Time::getMillisecondCounter() + millisecondsToRunFor; | |||
| while (! quitMessagePosted) | |||
| { | |||
| const ScopedAutoReleasePool pool2; | |||
| const ScopedAutoReleasePool pool; | |||
| CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true); | |||
| @@ -37,7 +37,7 @@ | |||
| #define USE_COREGRAPHICS_RENDERING 1 | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| #import <Foundation/Foundation.h> | |||
| #import <UIKit/UIKit.h> | |||
| #import <AudioToolbox/AudioToolbox.h> | |||
| @@ -76,7 +76,7 @@ bool PlatformUtilities::launchEmailWithAttachments (const String& targetEmailAdd | |||
| const String& bodyText, | |||
| const StringArray& filesToAttach) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| //xxx probably need to use MFMailComposeViewController | |||
| jassertfalse; | |||
| return false; | |||
| @@ -373,13 +373,20 @@ public: | |||
| ~GLESContext() | |||
| { | |||
| makeInactive(); | |||
| [context release]; | |||
| deleteContext(); | |||
| [view removeFromSuperview]; | |||
| [view release]; | |||
| freeGLBuffers(); | |||
| } | |||
| void deleteContext() | |||
| { | |||
| makeInactive(); | |||
| [context release]; | |||
| context = nil; | |||
| } | |||
| bool makeActive() const throw() | |||
| { | |||
| jassert (context != 0); | |||
| @@ -79,7 +79,7 @@ CFStringRef PlatformUtilities::juceStringToCFString (const String& s) | |||
| const String PlatformUtilities::convertToPrecomposedUnicode (const String& s) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| const ScopedAutoReleasePool pool; | |||
| return nsStringToJuce ([juceStringToNS (s) precomposedStringWithCanonicalMapping]); | |||
| #else | |||
| @@ -142,7 +142,7 @@ const String PlatformUtilities::convertToPrecomposedUnicode (const String& s) | |||
| void SystemClipboard::copyTextToClipboard (const String& text) | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| [[UIPasteboard generalPasteboard] setValue: juceStringToNS (text) | |||
| forPasteboardType: @"public.text"]; | |||
| #else | |||
| @@ -156,7 +156,7 @@ void SystemClipboard::copyTextToClipboard (const String& text) | |||
| const String SystemClipboard::getTextFromClipboard() | |||
| { | |||
| #if JUCE_IPHONE | |||
| #if JUCE_IOS | |||
| NSString* text = [[UIPasteboard generalPasteboard] valueForPasteboardType: @"public.text"]; | |||
| #else | |||
| NSString* text = [[NSPasteboard generalPasteboard] stringForType: NSStringPboardType]; | |||
| @@ -101,7 +101,7 @@ void SystemStats::initialiseStats() | |||
| cpuFlags.has3DNow = false; | |||
| #endif | |||
| #if JUCE_IPHONE || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) | |||
| #if JUCE_IOS || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) | |||
| cpuFlags.numCpus = (int) [[NSProcessInfo processInfo] activeProcessorCount]; | |||
| #else | |||
| cpuFlags.numCpus = (int) MPProcessors(); | |||
| @@ -157,7 +157,7 @@ bool juce_dispatchNextMessageOnSystemQueue (const bool returnIfNoPendingMessages | |||
| } | |||
| else if (m.message == WM_QUIT) | |||
| { | |||
| if (JUCEApplication::getInstance()) | |||
| if (JUCEApplication::getInstance() != 0) | |||
| JUCEApplication::getInstance()->systemRequestedQuit(); | |||
| } | |||
| else if (! isEventBlockedByModalComps (m)) | |||
| @@ -295,7 +295,7 @@ const File PropertiesFile::getDefaultAppSettingsFile (const String& applicationN | |||
| // mustn't have illegal characters in this name.. | |||
| jassert (applicationName == File::createLegalFileName (applicationName)); | |||
| #if JUCE_MAC || JUCE_IPHONE | |||
| #if JUCE_MAC || JUCE_IOS | |||
| File dir (commonToAllUsers ? "/Library/Preferences" | |||
| : "~/Library/Preferences"); | |||