| @@ -53,6 +53,7 @@ OBJECTS := \ | |||
| $(OBJDIR)/juce_AudioSubsectionReader_65f61a0a.o \ | |||
| $(OBJDIR)/juce_AudioThumbnail_cb99b4b4.o \ | |||
| $(OBJDIR)/juce_AudioThumbnailCache_89a7c678.o \ | |||
| $(OBJDIR)/juce_CoreAudioFormat_1ce243da.o \ | |||
| $(OBJDIR)/juce_FlacAudioFormat_19c048f1.o \ | |||
| $(OBJDIR)/juce_OggVorbisAudioFormat_3f214fc9.o \ | |||
| $(OBJDIR)/juce_QuickTimeAudioFormat_8ad67271.o \ | |||
| @@ -456,6 +457,11 @@ $(OBJDIR)/juce_AudioThumbnailCache_89a7c678.o: ../../src/audio/audio_file_format | |||
| @echo "Compiling juce_AudioThumbnailCache.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/juce_CoreAudioFormat_1ce243da.o: ../../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling juce_CoreAudioFormat.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/juce_FlacAudioFormat_19c048f1.o: ../../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling juce_FlacAudioFormat.cpp" | |||
| @@ -20,6 +20,7 @@ | |||
| FB21B7E6A7CE55D3C0E3C37E = { isa = PBXBuildFile; fileRef = 59597FA0A88A08937801D198; }; | |||
| C1147D03F1F4D697CC30DD22 = { isa = PBXBuildFile; fileRef = 27C3C51DF2519B519B76E2EE; }; | |||
| C5CFF5508299C26380465290 = { isa = PBXBuildFile; fileRef = CB32D4EE59D5CA9DB12F944D; }; | |||
| 0ACCAC5ABDE686B0CA42BFED = { isa = PBXBuildFile; fileRef = 203AC66FFB20EAD2E7A594BD; }; | |||
| 2171BD82DA3A6744260CDE58 = { isa = PBXBuildFile; fileRef = E00781B15E47C9CB9E94869D; }; | |||
| 3C22C15ACEEF0454171D231B = { isa = PBXBuildFile; fileRef = DA868174D4D2059AC1BE7E71; }; | |||
| 6D421F7B7EE3A149389653C2 = { isa = PBXBuildFile; fileRef = 7CF036906034FABB44D2108F; }; | |||
| @@ -395,6 +396,8 @@ | |||
| 7B34E897026857C84399A09C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| CB32D4EE59D5CA9DB12F944D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 3442FA257104DC3F43E7F870 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 203AC66FFB20EAD2E7A594BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| C9F1015CA457A61082398E34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| E00781B15E47C9CB9E94869D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7C06BD13BF7E0097EB0A8D08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DA868174D4D2059AC1BE7E71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1145,6 +1148,8 @@ | |||
| 7B34E897026857C84399A09C, | |||
| CB32D4EE59D5CA9DB12F944D, | |||
| 3442FA257104DC3F43E7F870, | |||
| 203AC66FFB20EAD2E7A594BD, | |||
| C9F1015CA457A61082398E34, | |||
| E00781B15E47C9CB9E94869D, | |||
| 7C06BD13BF7E0097EB0A8D08, | |||
| DA868174D4D2059AC1BE7E71, | |||
| @@ -2078,6 +2083,7 @@ | |||
| FB21B7E6A7CE55D3C0E3C37E, | |||
| C1147D03F1F4D697CC30DD22, | |||
| C5CFF5508299C26380465290, | |||
| 0ACCAC5ABDE686B0CA42BFED, | |||
| 2171BD82DA3A6744260CDE58, | |||
| 3C22C15ACEEF0454171D231B, | |||
| 6D421F7B7EE3A149389653C2, | |||
| @@ -134,6 +134,8 @@ | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnail.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_OggVorbisAudioFormat.cpp"/> | |||
| @@ -134,6 +134,8 @@ | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnail.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_OggVorbisAudioFormat.cpp"/> | |||
| @@ -136,6 +136,8 @@ | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnail.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.cpp"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.h"/> | |||
| <File RelativePath="..\..\src\audio\audio_file_formats\juce_OggVorbisAudioFormat.cpp"/> | |||
| @@ -136,6 +136,7 @@ | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_AudioSubsectionReader.cpp"/> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_AudioThumbnail.cpp"/> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.cpp"/> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.cpp"/> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.cpp"/> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_OggVorbisAudioFormat.cpp"/> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_QuickTimeAudioFormat.cpp"/> | |||
| @@ -471,6 +472,7 @@ | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_AudioSubsectionReader.h"/> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_AudioThumbnail.h"/> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.h"/> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.h"/> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.h"/> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_OggVorbisAudioFormat.h"/> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_QuickTimeAudioFormat.h"/> | |||
| @@ -229,6 +229,9 @@ | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.cpp"> | |||
| <Filter>Juce\Source\audio\audio_file_formats</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.cpp"> | |||
| <Filter>Juce\Source\audio\audio_file_formats</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.cpp"> | |||
| <Filter>Juce\Source\audio\audio_file_formats</Filter> | |||
| </ClCompile> | |||
| @@ -1341,6 +1344,9 @@ | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_AudioThumbnailCache.h"> | |||
| <Filter>Juce\Source\audio\audio_file_formats</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_CoreAudioFormat.h"> | |||
| <Filter>Juce\Source\audio\audio_file_formats</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\src\audio\audio_file_formats\juce_FlacAudioFormat.h"> | |||
| <Filter>Juce\Source\audio\audio_file_formats</Filter> | |||
| </ClInclude> | |||
| @@ -20,6 +20,7 @@ | |||
| FB21B7E6A7CE55D3C0E3C37E = { isa = PBXBuildFile; fileRef = 59597FA0A88A08937801D198; }; | |||
| C1147D03F1F4D697CC30DD22 = { isa = PBXBuildFile; fileRef = 27C3C51DF2519B519B76E2EE; }; | |||
| C5CFF5508299C26380465290 = { isa = PBXBuildFile; fileRef = CB32D4EE59D5CA9DB12F944D; }; | |||
| 0ACCAC5ABDE686B0CA42BFED = { isa = PBXBuildFile; fileRef = 203AC66FFB20EAD2E7A594BD; }; | |||
| 2171BD82DA3A6744260CDE58 = { isa = PBXBuildFile; fileRef = E00781B15E47C9CB9E94869D; }; | |||
| 3C22C15ACEEF0454171D231B = { isa = PBXBuildFile; fileRef = DA868174D4D2059AC1BE7E71; }; | |||
| 6D421F7B7EE3A149389653C2 = { isa = PBXBuildFile; fileRef = 7CF036906034FABB44D2108F; }; | |||
| @@ -395,6 +396,8 @@ | |||
| 7B34E897026857C84399A09C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnail.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnail.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| CB32D4EE59D5CA9DB12F944D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 3442FA257104DC3F43E7F870 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioThumbnailCache.h"; path = "../../src/audio/audio_file_formats/juce_AudioThumbnailCache.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 203AC66FFB20EAD2E7A594BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| C9F1015CA457A61082398E34 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| E00781B15E47C9CB9E94869D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7C06BD13BF7E0097EB0A8D08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../src/audio/audio_file_formats/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DA868174D4D2059AC1BE7E71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1145,6 +1148,8 @@ | |||
| 7B34E897026857C84399A09C, | |||
| CB32D4EE59D5CA9DB12F944D, | |||
| 3442FA257104DC3F43E7F870, | |||
| 203AC66FFB20EAD2E7A594BD, | |||
| C9F1015CA457A61082398E34, | |||
| E00781B15E47C9CB9E94869D, | |||
| 7C06BD13BF7E0097EB0A8D08, | |||
| DA868174D4D2059AC1BE7E71, | |||
| @@ -2082,6 +2087,7 @@ | |||
| FB21B7E6A7CE55D3C0E3C37E, | |||
| C1147D03F1F4D697CC30DD22, | |||
| C5CFF5508299C26380465290, | |||
| 0ACCAC5ABDE686B0CA42BFED, | |||
| 2171BD82DA3A6744260CDE58, | |||
| 3C22C15ACEEF0454171D231B, | |||
| 6D421F7B7EE3A149389653C2, | |||
| @@ -101,6 +101,10 @@ | |||
| resource="0" file="src/audio/audio_file_formats/juce_AudioThumbnailCache.cpp"/> | |||
| <FILE id="h91HebVw" name="juce_AudioThumbnailCache.h" compile="0" resource="0" | |||
| file="src/audio/audio_file_formats/juce_AudioThumbnailCache.h"/> | |||
| <FILE id="VcGrF" name="juce_CoreAudioFormat.cpp" compile="1" resource="0" | |||
| file="src/audio/audio_file_formats/juce_CoreAudioFormat.cpp"/> | |||
| <FILE id="DNxcBz" name="juce_CoreAudioFormat.h" compile="0" resource="0" | |||
| file="src/audio/audio_file_formats/juce_CoreAudioFormat.h"/> | |||
| <FILE id="SW79IqLvV" name="juce_FlacAudioFormat.cpp" compile="1" resource="0" | |||
| file="src/audio/audio_file_formats/juce_FlacAudioFormat.cpp"/> | |||
| <FILE id="h5CmmFWmC" name="juce_FlacAudioFormat.h" compile="0" resource="0" | |||
| @@ -390,6 +390,7 @@ | |||
| #endif | |||
| #if JUCE_BUILD_NATIVE && ! JUCE_ONLY_BUILD_CORE_LIBRARY | |||
| #include "../src/audio/audio_file_formats/juce_CoreAudioFormat.cpp" | |||
| #include "../src/audio/audio_file_formats/juce_FlacAudioFormat.cpp" | |||
| #include "../src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp" | |||
| #endif | |||
| @@ -17,6 +17,7 @@ | |||
| DBE3CE9482B19CF1AE700805 = { isa = PBXBuildFile; fileRef = 23CF69B4C644D1E6E61E5C82; }; | |||
| 93C9F3F27602A33DDC9C2250 = { isa = PBXBuildFile; fileRef = 2767E1D082874D301D5D5F43; }; | |||
| 2E6836738CE7EB452FDC7E9A = { isa = PBXBuildFile; fileRef = D9FB1A5365FEEB854A0FF7BF; }; | |||
| 1FD6A59398E3618F79475867 = { isa = PBXBuildFile; fileRef = 55A5264E336AEDD1495796F5; }; | |||
| AADBA9EB828F8C6A5E38593B = { isa = PBXBuildFile; fileRef = 3417A0C1AE7900A7E07C1CA1; }; | |||
| D6D0659F3F3504012246F13D = { isa = PBXBuildFile; fileRef = AA3CBE4A2AC3E9411426F630; }; | |||
| 8BAE4D8EA7F247DA0A4D3A5C = { isa = PBXBuildFile; fileRef = F617CE0630ADB0628A34D6BF; }; | |||
| @@ -57,6 +58,7 @@ | |||
| 23CF69B4C644D1E6E61E5C82 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| 2767E1D082874D301D5D5F43 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| D9FB1A5365FEEB854A0FF7BF = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| 55A5264E336AEDD1495796F5 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| 12E1601866B3489844AFD645 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Introjucer.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| F4C5CF1AA7EB9298043D89D3 = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; | |||
| 3417A0C1AE7900A7E07C1CA1 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -238,7 +240,8 @@ | |||
| 6E1144678BD61868D73EF1FB, | |||
| 23CF69B4C644D1E6E61E5C82, | |||
| 2767E1D082874D301D5D5F43, | |||
| D9FB1A5365FEEB854A0FF7BF ); name = Frameworks; sourceTree = "<group>"; }; | |||
| D9FB1A5365FEEB854A0FF7BF, | |||
| 55A5264E336AEDD1495796F5 ); name = Frameworks; sourceTree = "<group>"; }; | |||
| 18794C3CE7D0C95A5A70F213 = { isa = PBXGroup; children = ( | |||
| 12E1601866B3489844AFD645 ); name = Products; sourceTree = "<group>"; }; | |||
| B01AA6CC1327A5DBCB35B7BF = { isa = PBXGroup; children = ( | |||
| @@ -361,7 +364,8 @@ | |||
| AA7B50F22523465B07D4A25B, | |||
| DBE3CE9482B19CF1AE700805, | |||
| 93C9F3F27602A33DDC9C2250, | |||
| 2E6836738CE7EB452FDC7E9A ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 2E6836738CE7EB452FDC7E9A, | |||
| 1FD6A59398E3618F79475867 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| EB946A866C16B958168C9A39 = { isa = PBXNativeTarget; buildConfigurationList = AC9DE3D3A6632D0494CC8609; buildPhases = ( | |||
| 87CCE4CB1FAB40B6F21DEACE, | |||
| 5362E03ADF975A126C1F2F7B, | |||
| @@ -647,7 +647,7 @@ private: | |||
| } | |||
| else | |||
| { | |||
| s.addTokens ("Cocoa Carbon IOKit CoreAudio CoreMIDI WebKit DiscRecording OpenGL QuartzCore QTKit QuickTime", false); | |||
| s.addTokens ("Cocoa Carbon IOKit CoreAudio CoreMIDI WebKit DiscRecording OpenGL QuartzCore QTKit QuickTime AudioToolbox", false); | |||
| if (isAU()) | |||
| s.addTokens ("AudioUnit CoreAudioKit AudioToolbox", false); | |||
| @@ -126,9 +126,7 @@ private: | |||
| MemoryOutputStream mo; | |||
| xml->writeToStream (mo, String::empty); | |||
| if (! FileHelpers::overwriteFileWithNewDataIfDifferent (projectFile, mo)) | |||
| errors.add ("Couldn't write to the target file!"); | |||
| replaceFileIfDifferent (projectFile, mo); | |||
| } | |||
| } | |||
| @@ -278,17 +276,6 @@ private: | |||
| } | |||
| } | |||
| bool replaceFileIfDifferent (const File& f, const MemoryOutputStream& newData) | |||
| { | |||
| if (! FileHelpers::overwriteFileWithNewDataIfDifferent (f, newData)) | |||
| { | |||
| errors.add ("Can't write to file: " + f.getFullPathName()); | |||
| return false; | |||
| } | |||
| return true; | |||
| } | |||
| void writeBinaryDataFiles() | |||
| { | |||
| binaryDataCpp = project.getGeneratedCodeFolder().getChildFile ("BinaryData.cpp"); | |||
| @@ -323,9 +310,7 @@ private: | |||
| ScopedPointer <ProjectExporter> exporter (project.createExporter (i)); | |||
| std::cout << "Writing files for: " << exporter->getName() << std::endl; | |||
| const File targetFolder (exporter->getTargetFolder()); | |||
| if (targetFolder.createDirectory()) | |||
| if (exporter->getTargetFolder().createDirectory()) | |||
| { | |||
| // start with a copy of the basic files, as each exporter may modify it. | |||
| const ValueTree generatedGroupCopy (generatedFilesGroup.getNode().createCopy()); | |||
| @@ -357,11 +342,15 @@ private: | |||
| } | |||
| } | |||
| File getSourceWrapperCpp (int fileIndex) const | |||
| bool replaceFileIfDifferent (const File& f, const MemoryOutputStream& newData) | |||
| { | |||
| return project.getGeneratedCodeFolder() | |||
| .getChildFile (project.getJuceSourceFilenameRoot() + (fileIndex != 0 ? String (fileIndex) : String::empty)) | |||
| .withFileExtension (".cpp"); | |||
| if (! FileHelpers::overwriteFileWithNewDataIfDifferent (f, newData)) | |||
| { | |||
| errors.add ("Can't write to file: " + f.getFullPathName()); | |||
| return false; | |||
| } | |||
| return true; | |||
| } | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectSaver); | |||
| @@ -17,6 +17,7 @@ | |||
| F1BAE9DCD179C8784FF28F8D = { isa = PBXBuildFile; fileRef = 4A96850C150C1C6D87A0D21A; }; | |||
| B9911F3AC6CADFB47D1EA8D7 = { isa = PBXBuildFile; fileRef = 4D3E0D18D24F78B6BDE0E5DA; }; | |||
| 452052BBDBAF17DCC06EF521 = { isa = PBXBuildFile; fileRef = E0C3359BB4B5260CEB917D46; }; | |||
| 36AEC0EAE7AB9D061AD9EFEF = { isa = PBXBuildFile; fileRef = 7B6D428682221857EAEA1C7D; }; | |||
| C0A3C433D146C7E1FFCADFB2 = { isa = PBXBuildFile; fileRef = 4ADECB09FD213B2E910EA229; }; | |||
| 78A66C2F9A9E2E6D011D8E5E = { isa = PBXBuildFile; fileRef = 885A20D277AD743C21C822B5; }; | |||
| CE5C46E66485B7D77B5ADB4E = { isa = PBXBuildFile; fileRef = 42291DB48BF81754D90FE200; }; | |||
| @@ -56,6 +57,7 @@ | |||
| 4A96850C150C1C6D87A0D21A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| 4D3E0D18D24F78B6BDE0E5DA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| E0C3359BB4B5260CEB917D46 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| 7B6D428682221857EAEA1C7D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| 39B98C60B57B831FE5215CDD = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| 1A9DEA62F6A3CD1FB5CF105B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; | |||
| 4ADECB09FD213B2E910EA229 = { isa = PBXFileReference; lastKnownFileType = file.icns; name = Icon.icns; path = Icon.icns; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -169,7 +171,8 @@ | |||
| 85E860BFDA9D53EF77C08873, | |||
| 4A96850C150C1C6D87A0D21A, | |||
| 4D3E0D18D24F78B6BDE0E5DA, | |||
| E0C3359BB4B5260CEB917D46 ); name = Frameworks; sourceTree = "<group>"; }; | |||
| E0C3359BB4B5260CEB917D46, | |||
| 7B6D428682221857EAEA1C7D ); name = Frameworks; sourceTree = "<group>"; }; | |||
| 3F406773369804D0FBF2789A = { isa = PBXGroup; children = ( | |||
| 39B98C60B57B831FE5215CDD ); name = Products; sourceTree = "<group>"; }; | |||
| D6A4B94A747BFCF299B17932 = { isa = PBXGroup; children = ( | |||
| @@ -289,7 +292,8 @@ | |||
| C1437C4A64EB72D2A86729D3, | |||
| F1BAE9DCD179C8784FF28F8D, | |||
| B9911F3AC6CADFB47D1EA8D7, | |||
| 452052BBDBAF17DCC06EF521 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 452052BBDBAF17DCC06EF521, | |||
| 36AEC0EAE7AB9D061AD9EFEF ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| F26B86DEACDEE5DFB60E10B1 = { isa = PBXNativeTarget; buildConfigurationList = C264FE1BF62B589B345E0C81; buildPhases = ( | |||
| AE930F136F638C3C939F7146, | |||
| 7A3A0C722E5F96990CA1B5F2, | |||
| @@ -17,6 +17,7 @@ | |||
| B1AED479824B53CD42E2CF43 = { isa = PBXBuildFile; fileRef = 099980A9C6DE98B28A9113C0; }; | |||
| 88941AD8669C6AF9710FE99D = { isa = PBXBuildFile; fileRef = 0D21F7B58311040CB1C01680; }; | |||
| 14235D597C71A211C34E35D7 = { isa = PBXBuildFile; fileRef = BFB630386598A251EE72BEFC; }; | |||
| F5A1BB88887D285B1DBA1FA4 = { isa = PBXBuildFile; fileRef = 3B604C2333F4A4ACEDDA5D33; }; | |||
| E88444FD7BDE1A966EC392A5 = { isa = PBXBuildFile; fileRef = 195A51222E92C3A93F2D6FFA; }; | |||
| 4D2A24E908E9A226C5A3D259 = { isa = PBXBuildFile; fileRef = F4A7A8C689EAE11C52879AFF; }; | |||
| EA2AB86C7C92284FED89D52F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; | |||
| @@ -30,6 +31,7 @@ | |||
| 099980A9C6DE98B28A9113C0 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| 0D21F7B58311040CB1C01680 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| BFB630386598A251EE72BEFC = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| 3B604C2333F4A4ACEDDA5D33 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| F8AC870D665D0F64E9129D83 = { isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = amalgamator; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| 195A51222E92C3A93F2D6FFA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; | |||
| AE2AAA898543257DC9074051 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -53,7 +55,8 @@ | |||
| 44DC6A5C8B7FDF348BB1B939, | |||
| 099980A9C6DE98B28A9113C0, | |||
| 0D21F7B58311040CB1C01680, | |||
| BFB630386598A251EE72BEFC ); name = Frameworks; sourceTree = "<group>"; }; | |||
| BFB630386598A251EE72BEFC, | |||
| 3B604C2333F4A4ACEDDA5D33 ); name = Frameworks; sourceTree = "<group>"; }; | |||
| FE436211E76A80250EE3B950 = { isa = PBXGroup; children = ( | |||
| F8AC870D665D0F64E9129D83 ); name = Products; sourceTree = "<group>"; }; | |||
| 5DCB99F3A59154C29483AE9B = { isa = PBXGroup; children = ( | |||
| @@ -141,7 +144,8 @@ | |||
| 804677E715BD0D17AB576A99, | |||
| B1AED479824B53CD42E2CF43, | |||
| 88941AD8669C6AF9710FE99D, | |||
| 14235D597C71A211C34E35D7 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 14235D597C71A211C34E35D7, | |||
| F5A1BB88887D285B1DBA1FA4 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| C15E717C5DA07024CAFE5177 = { isa = PBXNativeTarget; buildConfigurationList = 9257F9B896FDE4D0483F4D47; buildPhases = ( | |||
| 6D960AB00F450781A680A10C, | |||
| 492D061FDF3111EE0092E6B8, | |||
| @@ -17,6 +17,7 @@ | |||
| 0344374EE00EBC906608CCB7 = { isa = PBXBuildFile; fileRef = 4C20D27E2491F086AEA71044; }; | |||
| CB3A6CACC45FC3DD9525E611 = { isa = PBXBuildFile; fileRef = 4FC85A8AE0D46CDFD5E61304; }; | |||
| 57CAAF2DDA340BF5E764325B = { isa = PBXBuildFile; fileRef = F25D830DC35A0A240297BA70; }; | |||
| 48371E4CE630812E31DF1C28 = { isa = PBXBuildFile; fileRef = 8D069FF891B70C7001E05AB7; }; | |||
| F653CD6DB1550002BFB3EE47 = { isa = PBXBuildFile; fileRef = 77964D54171CB8F24F616C9F; }; | |||
| 71D47E0ED5F6A90682A5707C = { isa = PBXBuildFile; fileRef = BFD865C4B317E01BDD319AB0; }; | |||
| A778E9C39DD11828306AF2E8 = { isa = PBXBuildFile; fileRef = 178E79E571E8D29BCC89FDD8; }; | |||
| @@ -39,6 +40,7 @@ | |||
| 4C20D27E2491F086AEA71044 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| 4FC85A8AE0D46CDFD5E61304 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| F25D830DC35A0A240297BA70 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| 8D069FF891B70C7001E05AB7 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| 77964D54171CB8F24F616C9F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; | |||
| BFD865C4B317E01BDD319AB0 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; | |||
| 3B43D9C2C41077380D379A07 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Plugin Host.app"; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| @@ -89,6 +91,7 @@ | |||
| 4C20D27E2491F086AEA71044, | |||
| 4FC85A8AE0D46CDFD5E61304, | |||
| F25D830DC35A0A240297BA70, | |||
| 8D069FF891B70C7001E05AB7, | |||
| 77964D54171CB8F24F616C9F, | |||
| BFD865C4B317E01BDD319AB0 ); name = Frameworks; sourceTree = "<group>"; }; | |||
| 31DAB5E5452DF8F91208B6C4 = { isa = PBXGroup; children = ( | |||
| @@ -190,6 +193,7 @@ | |||
| 0344374EE00EBC906608CCB7, | |||
| CB3A6CACC45FC3DD9525E611, | |||
| 57CAAF2DDA340BF5E764325B, | |||
| 48371E4CE630812E31DF1C28, | |||
| F653CD6DB1550002BFB3EE47, | |||
| 71D47E0ED5F6A90682A5707C ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 04F5D340BA63D9F8DE145DFB = { isa = PBXNativeTarget; buildConfigurationList = D4FE5C8CF4B04CB35C5449CB; buildPhases = ( | |||
| @@ -17,6 +17,7 @@ | |||
| 68746D242F6A6102FDD5D03D = { isa = PBXBuildFile; fileRef = B050085463EEB5F8367314CB; }; | |||
| 205AA28314AC784F2CF1FA98 = { isa = PBXBuildFile; fileRef = B4F88060202011416CB3278B; }; | |||
| CBE9E6042991B0677E3136D2 = { isa = PBXBuildFile; fileRef = 678CC9E413A7CF979964CEF7; }; | |||
| AC674433358C3691C8AC20AF = { isa = PBXBuildFile; fileRef = E226D5DEE103B1E298BD6E3E; }; | |||
| 5B83F34400A1B5844680E1CE = { isa = PBXBuildFile; fileRef = DBC6733A66786D64D63E7016; }; | |||
| E504A4E425435E78197183F3 = { isa = PBXBuildFile; fileRef = 2307ABAB0264959E640E9E37; }; | |||
| AC674433358C3691C8AC20AF = { isa = PBXBuildFile; fileRef = E226D5DEE103B1E298BD6E3E; }; | |||
| @@ -63,6 +64,7 @@ | |||
| B050085463EEB5F8367314CB = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| B4F88060202011416CB3278B = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| 678CC9E413A7CF979964CEF7 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| E226D5DEE103B1E298BD6E3E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| DBC6733A66786D64D63E7016 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; | |||
| 2307ABAB0264959E640E9E37 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; | |||
| E226D5DEE103B1E298BD6E3E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| @@ -218,6 +220,7 @@ | |||
| B050085463EEB5F8367314CB, | |||
| B4F88060202011416CB3278B, | |||
| 678CC9E413A7CF979964CEF7, | |||
| E226D5DEE103B1E298BD6E3E, | |||
| DBC6733A66786D64D63E7016, | |||
| 2307ABAB0264959E640E9E37, | |||
| E226D5DEE103B1E298BD6E3E ); name = Frameworks; sourceTree = "<group>"; }; | |||
| @@ -354,6 +357,7 @@ | |||
| 68746D242F6A6102FDD5D03D, | |||
| 205AA28314AC784F2CF1FA98, | |||
| CBE9E6042991B0677E3136D2, | |||
| AC674433358C3691C8AC20AF, | |||
| 5B83F34400A1B5844680E1CE, | |||
| E504A4E425435E78197183F3, | |||
| AC674433358C3691C8AC20AF ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| @@ -17,6 +17,7 @@ | |||
| 489C322518A3C4F4DC8E8FE4 = { isa = PBXBuildFile; fileRef = 9088DD545C3708EA053CC371; }; | |||
| 008367830DF5DB21FBAAA93F = { isa = PBXBuildFile; fileRef = 94105561197974333B7BD632; }; | |||
| 9B12BA0402DA13494DFAE588 = { isa = PBXBuildFile; fileRef = 36A58EE4FBF01289682D7DAD; }; | |||
| 8C9019232ED599839765DF56 = { isa = PBXBuildFile; fileRef = C25FAADEC95C14D468751DD4; }; | |||
| 707392A801368BCEE86E5256 = { isa = PBXBuildFile; fileRef = 9049BFDEB4FA33D1BAC82FAC; }; | |||
| D51982959E41125E4F4E92FA = { isa = PBXBuildFile; fileRef = 8B9506611F425243DD224A90; }; | |||
| 7119161802FA9887683494D0 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; | |||
| @@ -30,6 +31,7 @@ | |||
| 9088DD545C3708EA053CC371 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| 94105561197974333B7BD632 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| 36A58EE4FBF01289682D7DAD = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| C25FAADEC95C14D468751DD4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| 7FABD4A9FCB57F9C63BD5D34 = { isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BinaryBuilder; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| 9049BFDEB4FA33D1BAC82FAC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; | |||
| 351908352BAB95A544A300F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -53,7 +55,8 @@ | |||
| DBDAB8F811D84F6C055C78DA, | |||
| 9088DD545C3708EA053CC371, | |||
| 94105561197974333B7BD632, | |||
| 36A58EE4FBF01289682D7DAD ); name = Frameworks; sourceTree = "<group>"; }; | |||
| 36A58EE4FBF01289682D7DAD, | |||
| C25FAADEC95C14D468751DD4 ); name = Frameworks; sourceTree = "<group>"; }; | |||
| 8532B0CC7DC2F05D888E79F2 = { isa = PBXGroup; children = ( | |||
| 7FABD4A9FCB57F9C63BD5D34 ); name = Products; sourceTree = "<group>"; }; | |||
| 07E3546C6DFA9084D23A33E9 = { isa = PBXGroup; children = ( | |||
| @@ -141,7 +144,8 @@ | |||
| 0735D492AB157E5F26F2293A, | |||
| 489C322518A3C4F4DC8E8FE4, | |||
| 008367830DF5DB21FBAAA93F, | |||
| 9B12BA0402DA13494DFAE588 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 9B12BA0402DA13494DFAE588, | |||
| 8C9019232ED599839765DF56 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 495DDE27E308E15C44991018 = { isa = PBXNativeTarget; buildConfigurationList = 195657633D555407C2EA0CE8; buildPhases = ( | |||
| F485685C969D78B9212B61AD, | |||
| C02C54CA659982168A3DA559, | |||
| @@ -17,6 +17,7 @@ | |||
| 9EA4F1C0E2356AB5C07CE95E = { isa = PBXBuildFile; fileRef = E6809DE026C8BEAB082B3DEB; }; | |||
| 569A272ED68671F2FE9903B8 = { isa = PBXBuildFile; fileRef = EA28150CE20A1AF43E5A30AB; }; | |||
| E12A6AAFEC6BB91A41D85FF2 = { isa = PBXBuildFile; fileRef = 8DBD4D8FD571C84A6C0CD817; }; | |||
| D397D8CEF8663F449B4439C0 = { isa = PBXBuildFile; fileRef = 18665A7A93EDBA956B64774E; }; | |||
| C67B5243DBC7218FEC5DBCC0 = { isa = PBXBuildFile; fileRef = E7507E799D8BDA92BDB78915; }; | |||
| 9B11A7532637EC12F1DC4B2E = { isa = PBXBuildFile; fileRef = 0DB195C2B3538434D7D20B51; }; | |||
| CFFBB821ECB7D85603624533 = { isa = PBXBuildFile; fileRef = 57FFE120531343D50B7D2D28; }; | |||
| @@ -34,6 +35,7 @@ | |||
| E6809DE026C8BEAB082B3DEB = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| EA28150CE20A1AF43E5A30AB = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; | |||
| 8DBD4D8FD571C84A6C0CD817 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; | |||
| 18665A7A93EDBA956B64774E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; | |||
| D5A29444C637255D66ACB7AE = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorld.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| B786F246076E6F5D363A6A2C = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; | |||
| E7507E799D8BDA92BDB78915 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -69,7 +71,8 @@ | |||
| 22D27893FB59F52DF84AD344, | |||
| E6809DE026C8BEAB082B3DEB, | |||
| EA28150CE20A1AF43E5A30AB, | |||
| 8DBD4D8FD571C84A6C0CD817 ); name = Frameworks; sourceTree = "<group>"; }; | |||
| 8DBD4D8FD571C84A6C0CD817, | |||
| 18665A7A93EDBA956B64774E ); name = Frameworks; sourceTree = "<group>"; }; | |||
| DC3A70675753A61E8C7CD36B = { isa = PBXGroup; children = ( | |||
| D5A29444C637255D66ACB7AE ); name = Products; sourceTree = "<group>"; }; | |||
| 4297D3C9A6348BA224516847 = { isa = PBXGroup; children = ( | |||
| @@ -163,7 +166,8 @@ | |||
| 6D3C942E85A6141029E184A4, | |||
| 9EA4F1C0E2356AB5C07CE95E, | |||
| 569A272ED68671F2FE9903B8, | |||
| E12A6AAFEC6BB91A41D85FF2 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| E12A6AAFEC6BB91A41D85FF2, | |||
| D397D8CEF8663F449B4439C0 ); runOnlyForDeploymentPostprocessing = 0; }; | |||
| 9F559EB2CC99871D47887B82 = { isa = PBXNativeTarget; buildConfigurationList = 6F5E160F06E7FAD8B5C96752; buildPhases = ( | |||
| 4B8D17F77F2E2E7A2419CB17, | |||
| 172414663F1A38D78D2B00C3, | |||
| @@ -10433,6 +10433,7 @@ public: | |||
| static String createRandomWideCharString() | |||
| { | |||
| juce_wchar buffer [50] = { 0 }; | |||
| Random r; | |||
| for (int i = 0; i < numElementsInArray (buffer) - 1; ++i) | |||
| { | |||
| @@ -22587,6 +22588,7 @@ void AudioFormatManager::registerBasicFormats() | |||
| #if JUCE_MAC | |||
| registerFormat (new AiffAudioFormat(), true); | |||
| registerFormat (new WavAudioFormat(), false); | |||
| registerFormat (new CoreAudioFormat(), false); | |||
| #else | |||
| registerFormat (new WavAudioFormat(), true); | |||
| registerFormat (new AiffAudioFormat(), false); | |||
| @@ -108434,6 +108436,219 @@ END_JUCE_NAMESPACE | |||
| #if JUCE_BUILD_NATIVE && ! JUCE_ONLY_BUILD_CORE_LIBRARY | |||
| /*** Start of inlined file: juce_CoreAudioFormat.cpp ***/ | |||
| #if JUCE_MAC || JUCE_IOS | |||
| #include <AudioToolbox/AudioToolbox.h> | |||
| BEGIN_JUCE_NAMESPACE | |||
| namespace | |||
| { | |||
| const char* const coreAudioFormatName = "CoreAudio supported file"; | |||
| StringArray findFileExtensionsForCoreAudioCodecs() | |||
| { | |||
| StringArray extensionsArray; | |||
| CFMutableArrayRef extensions = CFArrayCreateMutable (0, 0, 0); | |||
| UInt32 sizeOfArray = sizeof (CFMutableArrayRef); | |||
| if (AudioFileGetGlobalInfo (kAudioFileGlobalInfo_AllExtensions, 0, 0, &sizeOfArray, &extensions) == noErr) | |||
| { | |||
| const CFIndex numValues = CFArrayGetCount (extensions); | |||
| for (CFIndex i = 0; i < numValues; ++i) | |||
| extensionsArray.add ("." + String::fromCFString ((CFStringRef) CFArrayGetValueAtIndex (extensions, i))); | |||
| } | |||
| return extensionsArray; | |||
| } | |||
| } | |||
| class CoreAudioReader : public AudioFormatReader | |||
| { | |||
| public: | |||
| CoreAudioReader (InputStream* const inp) | |||
| : AudioFormatReader (inp, TRANS (coreAudioFormatName)), | |||
| ok (false) | |||
| { | |||
| usesFloatingPointData = true; | |||
| OSStatus status = AudioFileOpenWithCallbacks (this, | |||
| &readCallback, | |||
| 0, // write needs to be null to avoid permisisions errors | |||
| &getSizeCallback, | |||
| 0, // setSize needs to be null to avoid permisisions errors | |||
| 0, // AudioFileTypeID inFileTypeHint | |||
| &audioFileID); | |||
| if (status == noErr) | |||
| { | |||
| status = ExtAudioFileWrapAudioFileID (audioFileID, false, &audioFileRef); | |||
| if (status == noErr) | |||
| { | |||
| AudioStreamBasicDescription sourceAudioFormat; | |||
| UInt32 audioStreamBasicDescriptionSize = sizeof (AudioStreamBasicDescription); | |||
| ExtAudioFileGetProperty (audioFileRef, | |||
| kExtAudioFileProperty_FileDataFormat, | |||
| &audioStreamBasicDescriptionSize, | |||
| &sourceAudioFormat); | |||
| numChannels = sourceAudioFormat.mChannelsPerFrame; | |||
| sampleRate = sourceAudioFormat.mSampleRate; | |||
| bitsPerSample = sourceAudioFormat.mBitsPerChannel; | |||
| UInt32 sizeOfLengthProperty = sizeof (int64); | |||
| ExtAudioFileGetProperty (audioFileRef, | |||
| kExtAudioFileProperty_FileLengthFrames, | |||
| &sizeOfLengthProperty, | |||
| &lengthInSamples); | |||
| destinationAudioFormat.mSampleRate = sampleRate; | |||
| destinationAudioFormat.mFormatID = kAudioFormatLinearPCM; | |||
| destinationAudioFormat.mFormatFlags = kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsNonInterleaved; | |||
| destinationAudioFormat.mBitsPerChannel = sizeof (float) * 8; | |||
| destinationAudioFormat.mChannelsPerFrame = numChannels; | |||
| destinationAudioFormat.mBytesPerFrame = sizeof (float); | |||
| destinationAudioFormat.mFramesPerPacket = 1; | |||
| destinationAudioFormat.mBytesPerPacket = destinationAudioFormat.mFramesPerPacket * destinationAudioFormat.mBytesPerFrame; | |||
| status = ExtAudioFileSetProperty (audioFileRef, | |||
| kExtAudioFileProperty_ClientDataFormat, | |||
| sizeof (AudioStreamBasicDescription), | |||
| &destinationAudioFormat); | |||
| if (status == noErr) | |||
| { | |||
| bufferList.malloc (1, sizeof (AudioBufferList) + numChannels * sizeof (AudioBuffer)); | |||
| bufferList->mNumberBuffers = numChannels; | |||
| ok = true; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| ~CoreAudioReader() | |||
| { | |||
| ExtAudioFileDispose (audioFileRef); | |||
| AudioFileClose (audioFileID); | |||
| } | |||
| bool readSamples (int** destSamples, int numDestChannels, int startOffsetInDestBuffer, | |||
| int64 startSampleInFile, int numSamples) | |||
| { | |||
| OSStatus status = ExtAudioFileSeek (audioFileRef, startSampleInFile); | |||
| if (status != noErr) | |||
| return false; | |||
| const int numBytes = numSamples * sizeof (float); | |||
| audioDataBlock.ensureSize (numBytes * numChannels, false); | |||
| float* data = static_cast<float*> (audioDataBlock.getData()); | |||
| for (int j = numChannels; --j >= 0;) | |||
| { | |||
| bufferList->mBuffers[j].mNumberChannels = 1; | |||
| bufferList->mBuffers[j].mDataByteSize = numBytes; | |||
| bufferList->mBuffers[j].mData = data; | |||
| data += numSamples; | |||
| } | |||
| UInt32 numFramesToRead = numSamples; | |||
| status = ExtAudioFileRead (audioFileRef, &numFramesToRead, bufferList); | |||
| if (status != noErr) | |||
| return false; | |||
| for (int i = numDestChannels; --i >= 0;) | |||
| { | |||
| if (destSamples[i] != nullptr) | |||
| { | |||
| if (i < numChannels) | |||
| memcpy (destSamples[i] + startOffsetInDestBuffer, bufferList->mBuffers[i].mData, numBytes); | |||
| else | |||
| zeromem (destSamples[i] + startOffsetInDestBuffer, numBytes); | |||
| } | |||
| } | |||
| return true; | |||
| } | |||
| bool ok; | |||
| private: | |||
| AudioFileID audioFileID; | |||
| ExtAudioFileRef audioFileRef; | |||
| AudioStreamBasicDescription destinationAudioFormat; | |||
| MemoryBlock audioDataBlock; | |||
| HeapBlock<AudioBufferList> bufferList; | |||
| static SInt64 getSizeCallback (void* inClientData) | |||
| { | |||
| return static_cast<CoreAudioReader*> (inClientData)->input->getTotalLength(); | |||
| } | |||
| static OSStatus readCallback (void* inClientData, | |||
| SInt64 inPosition, | |||
| UInt32 requestCount, | |||
| void* buffer, | |||
| UInt32* actualCount) | |||
| { | |||
| CoreAudioReader* const reader = static_cast<CoreAudioReader*> (inClientData); | |||
| reader->input->setPosition (inPosition); | |||
| *actualCount = reader->input->read (buffer, requestCount); | |||
| return noErr; | |||
| } | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreAudioReader); | |||
| }; | |||
| CoreAudioFormat::CoreAudioFormat() | |||
| : AudioFormat (TRANS (coreAudioFormatName), findFileExtensionsForCoreAudioCodecs()) | |||
| { | |||
| } | |||
| CoreAudioFormat::~CoreAudioFormat() {} | |||
| const Array <int> CoreAudioFormat::getPossibleSampleRates() { return Array<int>(); } | |||
| const Array <int> CoreAudioFormat::getPossibleBitDepths() { return Array<int>(); } | |||
| bool CoreAudioFormat::canDoStereo() { return true; } | |||
| bool CoreAudioFormat::canDoMono() { return true; } | |||
| AudioFormatReader* CoreAudioFormat::createReaderFor (InputStream* sourceStream, | |||
| bool deleteStreamIfOpeningFails) | |||
| { | |||
| ScopedPointer <CoreAudioReader> r (new CoreAudioReader (sourceStream)); | |||
| if (r->ok) | |||
| return r.release(); | |||
| if (! deleteStreamIfOpeningFails) | |||
| r->input = nullptr; | |||
| return nullptr; | |||
| } | |||
| AudioFormatWriter* CoreAudioFormat::createWriterFor (OutputStream* streamToWriteTo, | |||
| double sampleRateToUse, | |||
| unsigned int numberOfChannels, | |||
| int bitsPerSample, | |||
| const StringPairArray& metadataValues, | |||
| int qualityOptionIndex) | |||
| { | |||
| jassertfalse; // not yet implemented! | |||
| return nullptr; | |||
| } | |||
| END_JUCE_NAMESPACE | |||
| #endif | |||
| /*** End of inlined file: juce_CoreAudioFormat.cpp ***/ | |||
| /*** Start of inlined file: juce_FlacAudioFormat.cpp ***/ | |||
| #if JUCE_USE_FLAC | |||
| @@ -131684,7 +131899,6 @@ END_JUCE_NAMESPACE | |||
| /*** End of inlined file: juce_FlacAudioFormat.cpp ***/ | |||
| /*** Start of inlined file: juce_OggVorbisAudioFormat.cpp ***/ | |||
| #if JUCE_USE_OGGVORBIS | |||
| @@ -194694,8 +194908,7 @@ public: | |||
| { | |||
| for (int i = numDestChannels; --i >= 0;) | |||
| if (destSamples[i] != nullptr) | |||
| zeromem (destSamples[i] + startOffsetInDestBuffer, | |||
| sizeof (int) * numSamples); | |||
| zeromem (destSamples[i] + startOffsetInDestBuffer, sizeof (int) * numSamples); | |||
| } | |||
| return true; | |||
| @@ -281982,8 +282195,8 @@ bool NSViewComponentPeer::handleKeyEvent (NSEvent* ev, bool isKeyDown) | |||
| String unmodified (nsStringToJuce ([ev charactersIgnoringModifiers])); | |||
| int keyCode = getKeyCodeFromEvent (ev); | |||
| DBG ("unicode: " + unicode + " " + String::toHexString ((int) unicode[0])); | |||
| DBG ("unmodified: " + unmodified + " " + String::toHexString ((int) unmodified[0])); | |||
| //DBG ("unicode: " + unicode + " " + String::toHexString ((int) unicode[0])); | |||
| //DBG ("unmodified: " + unmodified + " " + String::toHexString ((int) unmodified[0])); | |||
| if (unicode.isNotEmpty() || keyCode != 0) | |||
| { | |||
| @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 54 | |||
| #define JUCE_BUILDNUMBER 17 | |||
| #define JUCE_BUILDNUMBER 18 | |||
| /** Current Juce version number. | |||
| @@ -36941,7 +36941,7 @@ public: | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (AiffAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AiffAudioFormat); | |||
| }; | |||
| #endif // __JUCE_AIFFAUDIOFORMAT_JUCEHEADER__ | |||
| @@ -37725,6 +37725,58 @@ private: | |||
| /*** End of inlined file: juce_AudioThumbnailCache.h ***/ | |||
| #endif | |||
| #ifndef __JUCE_COREAUDIOFORMAT_JUCEHEADER__ | |||
| /*** Start of inlined file: juce_CoreAudioFormat.h ***/ | |||
| #ifndef __JUCE_COREAUDIOFORMAT_JUCEHEADER__ | |||
| #define __JUCE_COREAUDIOFORMAT_JUCEHEADER__ | |||
| #if JUCE_MAC || JUCE_IOS | |||
| /** | |||
| OSX and iOS only - This uses the AudioToolbox framework to read any audio | |||
| format that the system has a codec for. | |||
| This should be able to understand formats such as mp3, m4a, etc. | |||
| @see AudioFormat | |||
| */ | |||
| class JUCE_API CoreAudioFormat : public AudioFormat | |||
| { | |||
| public: | |||
| /** Creates a format object. */ | |||
| CoreAudioFormat(); | |||
| /** Destructor. */ | |||
| ~CoreAudioFormat(); | |||
| const Array <int> getPossibleSampleRates(); | |||
| const Array <int> getPossibleBitDepths(); | |||
| bool canDoStereo(); | |||
| bool canDoMono(); | |||
| AudioFormatReader* createReaderFor (InputStream* sourceStream, | |||
| bool deleteStreamIfOpeningFails); | |||
| AudioFormatWriter* createWriterFor (OutputStream* streamToWriteTo, | |||
| double sampleRateToUse, | |||
| unsigned int numberOfChannels, | |||
| int bitsPerSample, | |||
| const StringPairArray& metadataValues, | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreAudioFormat); | |||
| }; | |||
| #endif | |||
| #endif // __JUCE_COREAUDIOFORMAT_JUCEHEADER__ | |||
| /*** End of inlined file: juce_CoreAudioFormat.h ***/ | |||
| #endif | |||
| #ifndef __JUCE_FLACAUDIOFORMAT_JUCEHEADER__ | |||
| @@ -37767,7 +37819,7 @@ public: | |||
| const StringPairArray& metadataValues, | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (FlacAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FlacAudioFormat); | |||
| }; | |||
| #endif | |||
| @@ -37829,7 +37881,7 @@ public: | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (OggVorbisAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OggVorbisAudioFormat); | |||
| }; | |||
| #endif | |||
| @@ -37881,7 +37933,7 @@ public: | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (QuickTimeAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (QuickTimeAudioFormat); | |||
| }; | |||
| #endif | |||
| @@ -38007,7 +38059,7 @@ public: | |||
| bool replaceMetadataInFile (const File& wavFile, const StringPairArray& newMetadata); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (WavAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WavAudioFormat); | |||
| }; | |||
| #endif // __JUCE_WAVAUDIOFORMAT_JUCEHEADER__ | |||
| @@ -68,7 +68,7 @@ public: | |||
| private: | |||
| JUCE_LEAK_DETECTOR (AiffAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AiffAudioFormat); | |||
| }; | |||
| @@ -32,6 +32,7 @@ BEGIN_JUCE_NAMESPACE | |||
| #include "juce_WavAudioFormat.h" | |||
| #include "juce_FlacAudioFormat.h" | |||
| #include "juce_OggVorbisAudioFormat.h" | |||
| #include "juce_CoreAudioFormat.h" | |||
| #include "../../io/files/juce_FileInputStream.h" | |||
| #include "../../memory/juce_ScopedPointer.h" | |||
| @@ -75,6 +76,7 @@ void AudioFormatManager::registerBasicFormats() | |||
| #if JUCE_MAC | |||
| registerFormat (new AiffAudioFormat(), true); | |||
| registerFormat (new WavAudioFormat(), false); | |||
| registerFormat (new CoreAudioFormat(), false); | |||
| #else | |||
| registerFormat (new WavAudioFormat(), true); | |||
| registerFormat (new AiffAudioFormat(), false); | |||
| @@ -67,7 +67,7 @@ public: | |||
| const StringPairArray& metadataValues, | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (FlacAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FlacAudioFormat); | |||
| }; | |||
| @@ -208,8 +208,7 @@ public: | |||
| { | |||
| for (int i = numDestChannels; --i >= 0;) | |||
| if (destSamples[i] != nullptr) | |||
| zeromem (destSamples[i] + startOffsetInDestBuffer, | |||
| sizeof (int) * numSamples); | |||
| zeromem (destSamples[i] + startOffsetInDestBuffer, sizeof (int) * numSamples); | |||
| } | |||
| return true; | |||
| @@ -80,7 +80,7 @@ public: | |||
| int qualityOptionIndex); | |||
| private: | |||
| JUCE_LEAK_DETECTOR (OggVorbisAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OggVorbisAudioFormat); | |||
| }; | |||
| @@ -68,7 +68,7 @@ public: | |||
| private: | |||
| JUCE_LEAK_DETECTOR (QuickTimeAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (QuickTimeAudioFormat); | |||
| }; | |||
| @@ -145,7 +145,7 @@ public: | |||
| private: | |||
| JUCE_LEAK_DETECTOR (WavAudioFormat); | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WavAudioFormat); | |||
| }; | |||
| @@ -33,7 +33,7 @@ | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 54 | |||
| #define JUCE_BUILDNUMBER 17 | |||
| #define JUCE_BUILDNUMBER 18 | |||
| /** Current Juce version number. | |||
| @@ -144,6 +144,7 @@ public: | |||
| static String createRandomWideCharString() | |||
| { | |||
| juce_wchar buffer [50] = { 0 }; | |||
| Random r; | |||
| for (int i = 0; i < numElementsInArray (buffer) - 1; ++i) | |||
| { | |||
| @@ -74,6 +74,9 @@ | |||
| #ifndef __JUCE_AUDIOTHUMBNAILCACHE_JUCEHEADER__ | |||
| #include "audio/audio_file_formats/juce_AudioThumbnailCache.h" | |||
| #endif | |||
| #ifndef __JUCE_COREAUDIOFORMAT_JUCEHEADER__ | |||
| #include "audio/audio_file_formats/juce_CoreAudioFormat.h" | |||
| #endif | |||
| #ifndef __JUCE_FLACAUDIOFORMAT_JUCEHEADER__ | |||
| #include "audio/audio_file_formats/juce_FlacAudioFormat.h" | |||
| #endif | |||