Browse Source

New class: CoreAudioFormat, for using system audio codecs in OSX and iOS.

tags/2021-05-28
Julian Storer 14 years ago
parent
commit
3d8ce244b1
31 changed files with 375 additions and 51 deletions
  1. +6
    -0
      Builds/Linux/Makefile
  2. +6
    -0
      Builds/MacOSX/Juce.xcodeproj/project.pbxproj
  3. +2
    -0
      Builds/VisualStudio2005/Juce.vcproj
  4. +2
    -0
      Builds/VisualStudio2008/Juce.vcproj
  5. +2
    -0
      Builds/VisualStudio2008_DLL/Juce.vcproj
  6. +2
    -0
      Builds/VisualStudio2010/Juce.vcxproj
  7. +6
    -0
      Builds/VisualStudio2010/Juce.vcxproj.filters
  8. +6
    -0
      Builds/iOS/Juce.xcodeproj/project.pbxproj
  9. +4
    -0
      Juce.jucer
  10. +1
    -0
      amalgamation/juce_amalgamated_template.cpp
  11. +6
    -2
      extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
  12. +1
    -1
      extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h
  13. +10
    -21
      extras/Introjucer/Source/Project/jucer_ProjectSaver.h
  14. +6
    -2
      extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj
  15. +6
    -2
      extras/amalgamator/Builds/MacOSX/Amalgamator.xcodeproj/project.pbxproj
  16. +4
    -0
      extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
  17. +4
    -0
      extras/audio plugins/demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
  18. +6
    -2
      extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj
  19. +6
    -2
      extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
  20. +218
    -5
      juce_amalgamated.cpp
  21. +58
    -6
      juce_amalgamated.h
  22. +1
    -1
      src/audio/audio_file_formats/juce_AiffAudioFormat.h
  23. +2
    -0
      src/audio/audio_file_formats/juce_AudioFormatManager.cpp
  24. +1
    -1
      src/audio/audio_file_formats/juce_FlacAudioFormat.h
  25. +1
    -2
      src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp
  26. +1
    -1
      src/audio/audio_file_formats/juce_OggVorbisAudioFormat.h
  27. +1
    -1
      src/audio/audio_file_formats/juce_QuickTimeAudioFormat.h
  28. +1
    -1
      src/audio/audio_file_formats/juce_WavAudioFormat.h
  29. +1
    -1
      src/core/juce_StandardHeader.h
  30. +1
    -0
      src/io/streams/juce_MemoryInputStream.cpp
  31. +3
    -0
      src/juce_app_includes.h

+ 6
- 0
Builds/Linux/Makefile View File

@@ -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"


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

@@ -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,


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

@@ -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"/>


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

@@ -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"/>


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

@@ -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"/>


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

@@ -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"/>


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

@@ -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>


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

@@ -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,


+ 4
- 0
Juce.jucer View File

@@ -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"


+ 1
- 0
amalgamation/juce_amalgamated_template.cpp View File

@@ -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


+ 6
- 2
extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj View File

@@ -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,


+ 1
- 1
extras/Introjucer/Source/Project/jucer_ProjectExport_XCode.h View File

@@ -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);


+ 10
- 21
extras/Introjucer/Source/Project/jucer_ProjectSaver.h View File

@@ -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);


+ 6
- 2
extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj View File

@@ -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,


+ 6
- 2
extras/amalgamator/Builds/MacOSX/Amalgamator.xcodeproj/project.pbxproj View File

@@ -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,


+ 4
- 0
extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj View File

@@ -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 = (


+ 4
- 0
extras/audio plugins/demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj View File

@@ -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; };


+ 6
- 2
extras/binarybuilder/Builds/MacOSX/BinaryBuilder.xcodeproj/project.pbxproj View File

@@ -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,


+ 6
- 2
extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj View File

@@ -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,


+ 218
- 5
juce_amalgamated.cpp View File

@@ -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)
{


+ 58
- 6
juce_amalgamated.h View File

@@ -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__


+ 1
- 1
src/audio/audio_file_formats/juce_AiffAudioFormat.h View File

@@ -68,7 +68,7 @@ public:
private:
JUCE_LEAK_DETECTOR (AiffAudioFormat);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AiffAudioFormat);
};


+ 2
- 0
src/audio/audio_file_formats/juce_AudioFormatManager.cpp View File

@@ -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);


+ 1
- 1
src/audio/audio_file_formats/juce_FlacAudioFormat.h View File

@@ -67,7 +67,7 @@ public:
const StringPairArray& metadataValues,
int qualityOptionIndex);
private:
JUCE_LEAK_DETECTOR (FlacAudioFormat);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FlacAudioFormat);
};


+ 1
- 2
src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp View File

@@ -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;


+ 1
- 1
src/audio/audio_file_formats/juce_OggVorbisAudioFormat.h View File

@@ -80,7 +80,7 @@ public:
int qualityOptionIndex);
private:
JUCE_LEAK_DETECTOR (OggVorbisAudioFormat);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OggVorbisAudioFormat);
};


+ 1
- 1
src/audio/audio_file_formats/juce_QuickTimeAudioFormat.h View File

@@ -68,7 +68,7 @@ public:
private:
JUCE_LEAK_DETECTOR (QuickTimeAudioFormat);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (QuickTimeAudioFormat);
};


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

@@ -145,7 +145,7 @@ public:
private:
JUCE_LEAK_DETECTOR (WavAudioFormat);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WavAudioFormat);
};


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

@@ -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.


+ 1
- 0
src/io/streams/juce_MemoryInputStream.cpp View File

@@ -144,6 +144,7 @@ public:
static String createRandomWideCharString()
{
juce_wchar buffer [50] = { 0 };
Random r;
for (int i = 0; i < numElementsInArray (buffer) - 1; ++i)
{


+ 3
- 0
src/juce_app_includes.h View File

@@ -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


Loading…
Cancel
Save