From 7d7f851de8fb3745209a78cd3238c6eabee06938 Mon Sep 17 00:00:00 2001 From: Johannes Schriewer Date: Wed, 28 Feb 2024 21:25:50 +0100 Subject: [PATCH] Project setup --- .gitignore | 2 + AudioLib.xcodeproj/project.pbxproj | 536 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 163299 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 56 ++ .../xcschemes/xcschememanagement.plist | 14 + AudioLib/main.c | 40 ++ 8 files changed, 663 insertions(+) create mode 100644 .gitignore create mode 100644 AudioLib.xcodeproj/project.pbxproj create mode 100644 AudioLib.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 AudioLib.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 AudioLib.xcodeproj/project.xcworkspace/xcuserdata/dark.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 AudioLib/main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fe9ece9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +libs/ +.DS_Store diff --git a/AudioLib.xcodeproj/project.pbxproj b/AudioLib.xcodeproj/project.pbxproj new file mode 100644 index 0000000..cb46864 --- /dev/null +++ b/AudioLib.xcodeproj/project.pbxproj @@ -0,0 +1,536 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 420794F42B817ECA0077507F /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 420794F32B817ECA0077507F /* main.c */; }; + 420794FC2B8182940077507F /* libao.4.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 420794FB2B8182940077507F /* libao.4.dylib */; }; + 420795182B8184300077507F /* audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 420795172B8184300077507F /* audio.c */; }; + 4207951A2B8185280077507F /* audio_sink_libao.c in Sources */ = {isa = PBXBuildFile; fileRef = 420795192B8185280077507F /* audio_sink_libao.c */; }; + 4207951D2B818C500077507F /* audio_source_testtone.c in Sources */ = {isa = PBXBuildFile; fileRef = 4207951C2B818C500077507F /* audio_source_testtone.c */; }; + 422D25C32B892E3F00552952 /* resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25C02B892E3F00552952 /* resample.c */; }; + 422D25C82B8939DF00552952 /* audio_filter_resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25C72B8939DF00552952 /* audio_filter_resample.c */; }; + 422D25CA2B89493100552952 /* audio_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25C92B89493100552952 /* audio_internal.c */; }; + 422D25CE2B89668F00552952 /* audio_source_file.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25CD2B89668F00552952 /* audio_source_file.c */; }; + 422D25D02B896B1200552952 /* audio_decoder_mp3.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25CF2B896B1200552952 /* audio_decoder_mp3.c */; }; + 422D25ED2B896D9A00552952 /* timer.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25D22B896D9A00552952 /* timer.c */; }; + 422D25EE2B896D9A00552952 /* huffman.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25DC2B896D9A00552952 /* huffman.c */; }; + 422D25EF2B896D9A00552952 /* fixed.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25E12B896D9A00552952 /* fixed.c */; }; + 422D25F02B896D9A00552952 /* version.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25E22B896D9A00552952 /* version.c */; }; + 422D25F12B896D9A00552952 /* bit.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25E32B896D9A00552952 /* bit.c */; }; + 422D25F22B896D9A00552952 /* frame.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25E52B896D9A00552952 /* frame.c */; }; + 422D25F42B896D9A00552952 /* synth.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25E72B896D9A00552952 /* synth.c */; }; + 422D25F52B896D9A00552952 /* layer12.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25E92B896D9A00552952 /* layer12.c */; }; + 422D25F62B896D9A00552952 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25EB2B896D9A00552952 /* stream.c */; }; + 422D25F72B896D9A00552952 /* layer3.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25EC2B896D9A00552952 /* layer3.c */; }; + 422D25FC2B8CE1FA00552952 /* audio_demuxer_mp3.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25FB2B8CE1FA00552952 /* audio_demuxer_mp3.c */; }; + 422D25FF2B8D2B3600552952 /* audio_sink_file.c in Sources */ = {isa = PBXBuildFile; fileRef = 422D25FE2B8D2B3600552952 /* audio_sink_file.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 420794EE2B817ECA0077507F /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 420794F02B817ECA0077507F /* AudioLib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = AudioLib; sourceTree = BUILT_PRODUCTS_DIR; }; + 420794F32B817ECA0077507F /* main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; + 420794FB2B8182940077507F /* libao.4.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libao.4.dylib; path = ../../../../opt/homebrew/Cellar/libao/1.2.2/lib/libao.4.dylib; sourceTree = ""; }; + 420794FF2B8184300077507F /* audio_sink_libao.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_sink_libao.h; sourceTree = ""; }; + 420795012B8184300077507F /* audio_decoder_vorbis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_decoder_vorbis.h; sourceTree = ""; }; + 420795022B8184300077507F /* audio_source_icecast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_source_icecast.h; sourceTree = ""; }; + 420795032B8184300077507F /* audio_filter_resample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_filter_resample.h; sourceTree = ""; }; + 420795042B8184300077507F /* audio_source_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_source_file.h; sourceTree = ""; }; + 420795052B8184300077507F /* audio_filter_channelmixer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_filter_channelmixer.h; sourceTree = ""; }; + 420795062B8184300077507F /* audio_source_http.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_source_http.h; sourceTree = ""; }; + 420795072B8184300077507F /* audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio.h; sourceTree = ""; }; + 420795082B8184300077507F /* audio_source_sd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_source_sd.h; sourceTree = ""; }; + 420795092B8184300077507F /* audio_filter_volume.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_filter_volume.h; sourceTree = ""; }; + 4207950A2B8184300077507F /* audio_demuxer_mp4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_demuxer_mp4.h; sourceTree = ""; }; + 4207950B2B8184300077507F /* audio_demuxer_ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_demuxer_ogg.h; sourceTree = ""; }; + 4207950C2B8184300077507F /* audio_decoder_flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_decoder_flac.h; sourceTree = ""; }; + 4207950D2B8184300077507F /* audio_filter_eq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_filter_eq.h; sourceTree = ""; }; + 4207950E2B8184300077507F /* audio_decoder_aac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_decoder_aac.h; sourceTree = ""; }; + 4207950F2B8184300077507F /* audio_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_internal.h; sourceTree = ""; }; + 420795102B8184300077507F /* audio_encoder_wav.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_encoder_wav.h; sourceTree = ""; }; + 420795112B8184300077507F /* audio_sink_i2s.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_sink_i2s.h; sourceTree = ""; }; + 420795122B8184300077507F /* audio_decoder_opus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_decoder_opus.h; sourceTree = ""; }; + 420795142B8184300077507F /* audio_decoder_wav.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_decoder_wav.h; sourceTree = ""; }; + 420795152B8184300077507F /* audio_decoder_mp3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_decoder_mp3.h; sourceTree = ""; }; + 420795162B8184300077507F /* audio_sink_sd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_sink_sd.h; sourceTree = ""; }; + 420795172B8184300077507F /* audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = audio.c; sourceTree = ""; }; + 420795192B8185280077507F /* audio_sink_libao.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_sink_libao.c; sourceTree = ""; }; + 4207951B2B818C230077507F /* audio_source_testtone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_source_testtone.h; sourceTree = ""; }; + 4207951C2B818C500077507F /* audio_source_testtone.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_source_testtone.c; sourceTree = ""; }; + 422D25B72B892CF900552952 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 422D25B82B892E3F00552952 /* resample_neon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resample_neon.h; sourceTree = ""; }; + 422D25BA2B892E3F00552952 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + 422D25BB2B892E3F00552952 /* fixed_arm5e.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed_arm5e.h; sourceTree = ""; }; + 422D25BC2B892E3F00552952 /* speex_resampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = speex_resampler.h; sourceTree = ""; }; + 422D25BD2B892E3F00552952 /* fixed_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed_debug.h; sourceTree = ""; }; + 422D25BE2B892E3F00552952 /* fixed_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed_generic.h; sourceTree = ""; }; + 422D25C02B892E3F00552952 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resample.c; sourceTree = ""; }; + 422D25C22B892E3F00552952 /* fixed_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed_arm4.h; sourceTree = ""; }; + 422D25C42B89306B00552952 /* os_support.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = os_support.h; sourceTree = ""; }; + 422D25C52B8930B000552952 /* arch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arch.h; sourceTree = ""; }; + 422D25C62B8930F200552952 /* speexdsp_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = speexdsp_types.h; sourceTree = ""; }; + 422D25C72B8939DF00552952 /* audio_filter_resample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_filter_resample.c; sourceTree = ""; }; + 422D25C92B89493100552952 /* audio_internal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_internal.c; sourceTree = ""; }; + 422D25CC2B89570C00552952 /* audio_muxer_wav.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_muxer_wav.h; sourceTree = ""; }; + 422D25CD2B89668F00552952 /* audio_source_file.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_source_file.c; sourceTree = ""; }; + 422D25CF2B896B1200552952 /* audio_decoder_mp3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_decoder_mp3.c; sourceTree = ""; }; + 422D25D22B896D9A00552952 /* timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timer.c; sourceTree = ""; }; + 422D25D32B896D9A00552952 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 422D25D42B896D9A00552952 /* fixed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed.h; sourceTree = ""; }; + 422D25D52B896D9A00552952 /* synth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = synth.h; sourceTree = ""; }; + 422D25D62B896D9A00552952 /* frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = frame.h; sourceTree = ""; }; + 422D25D82B896D9A00552952 /* bit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit.h; sourceTree = ""; }; + 422D25D92B896D9A00552952 /* layer3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = layer3.h; sourceTree = ""; }; + 422D25DA2B896D9A00552952 /* stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stream.h; sourceTree = ""; }; + 422D25DB2B896D9A00552952 /* layer12.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = layer12.h; sourceTree = ""; }; + 422D25DC2B896D9A00552952 /* huffman.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = huffman.c; sourceTree = ""; }; + 422D25DD2B896D9A00552952 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 422D25DE2B896D9A00552952 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = ""; }; + 422D25E02B896D9A00552952 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING; sourceTree = ""; }; + 422D25E12B896D9A00552952 /* fixed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fixed.c; sourceTree = ""; }; + 422D25E22B896D9A00552952 /* version.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = version.c; sourceTree = ""; }; + 422D25E32B896D9A00552952 /* bit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bit.c; sourceTree = ""; }; + 422D25E42B896D9A00552952 /* COPYRIGHT */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYRIGHT; sourceTree = ""; }; + 422D25E52B896D9A00552952 /* frame.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = frame.c; sourceTree = ""; }; + 422D25E72B896D9A00552952 /* synth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = synth.c; sourceTree = ""; }; + 422D25E82B896D9A00552952 /* huffman.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = huffman.h; sourceTree = ""; }; + 422D25E92B896D9A00552952 /* layer12.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = layer12.c; sourceTree = ""; }; + 422D25EA2B896D9A00552952 /* CREDITS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CREDITS; sourceTree = ""; }; + 422D25EB2B896D9A00552952 /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stream.c; sourceTree = ""; }; + 422D25EC2B896D9A00552952 /* layer3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = layer3.c; sourceTree = ""; }; + 422D25F82B896DF800552952 /* global.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = global.h; sourceTree = ""; }; + 422D25F92B896FB800552952 /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + 422D25FA2B8CE1FA00552952 /* audio_demuxer_mp3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_demuxer_mp3.h; sourceTree = ""; }; + 422D25FB2B8CE1FA00552952 /* audio_demuxer_mp3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_demuxer_mp3.c; sourceTree = ""; }; + 422D25FD2B8D2B3600552952 /* audio_sink_file.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_sink_file.h; sourceTree = ""; }; + 422D25FE2B8D2B3600552952 /* audio_sink_file.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_sink_file.c; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 420794ED2B817ECA0077507F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 420794FC2B8182940077507F /* libao.4.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 420794E72B817ECA0077507F = { + isa = PBXGroup; + children = ( + 420794FD2B8184300077507F /* audio */, + 420794F22B817ECA0077507F /* AudioLib */, + 420794F12B817ECA0077507F /* Products */, + 420794FA2B8182940077507F /* Frameworks */, + ); + sourceTree = ""; + }; + 420794F12B817ECA0077507F /* Products */ = { + isa = PBXGroup; + children = ( + 420794F02B817ECA0077507F /* AudioLib */, + ); + name = Products; + sourceTree = ""; + }; + 420794F22B817ECA0077507F /* AudioLib */ = { + isa = PBXGroup; + children = ( + 420794F32B817ECA0077507F /* main.c */, + ); + path = AudioLib; + sourceTree = ""; + }; + 420794FA2B8182940077507F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 420794FB2B8182940077507F /* libao.4.dylib */, + ); + name = Frameworks; + sourceTree = ""; + }; + 420794FD2B8184300077507F /* audio */ = { + isa = PBXGroup; + children = ( + 422D25B52B89297900552952 /* deps */, + 420794FE2B8184300077507F /* include */, + 420795172B8184300077507F /* audio.c */, + 422D25C92B89493100552952 /* audio_internal.c */, + 4207951C2B818C500077507F /* audio_source_testtone.c */, + 422D25CD2B89668F00552952 /* audio_source_file.c */, + 422D25C72B8939DF00552952 /* audio_filter_resample.c */, + 420795192B8185280077507F /* audio_sink_libao.c */, + 422D25FE2B8D2B3600552952 /* audio_sink_file.c */, + 422D25CF2B896B1200552952 /* audio_decoder_mp3.c */, + 422D25FB2B8CE1FA00552952 /* audio_demuxer_mp3.c */, + ); + path = audio; + sourceTree = ""; + }; + 420794FE2B8184300077507F /* include */ = { + isa = PBXGroup; + children = ( + 422D25CB2B8956D800552952 /* todo */, + 420795072B8184300077507F /* audio.h */, + 4207950F2B8184300077507F /* audio_internal.h */, + 422D25FA2B8CE1FA00552952 /* audio_demuxer_mp3.h */, + 420795152B8184300077507F /* audio_decoder_mp3.h */, + 4207951B2B818C230077507F /* audio_source_testtone.h */, + 420795042B8184300077507F /* audio_source_file.h */, + 420795032B8184300077507F /* audio_filter_resample.h */, + 420794FF2B8184300077507F /* audio_sink_libao.h */, + 422D25FD2B8D2B3600552952 /* audio_sink_file.h */, + ); + path = include; + sourceTree = ""; + }; + 422D25B52B89297900552952 /* deps */ = { + isa = PBXGroup; + children = ( + 422D25D12B896D9A00552952 /* mp3 */, + 422D25B62B892CDA00552952 /* resampler */, + ); + path = deps; + sourceTree = ""; + }; + 422D25B62B892CDA00552952 /* resampler */ = { + isa = PBXGroup; + children = ( + 422D25C62B8930F200552952 /* speexdsp_types.h */, + 422D25C52B8930B000552952 /* arch.h */, + 422D25C42B89306B00552952 /* os_support.h */, + 422D25BA2B892E3F00552952 /* config.h */, + 422D25C22B892E3F00552952 /* fixed_arm4.h */, + 422D25BB2B892E3F00552952 /* fixed_arm5e.h */, + 422D25BD2B892E3F00552952 /* fixed_debug.h */, + 422D25BE2B892E3F00552952 /* fixed_generic.h */, + 422D25B82B892E3F00552952 /* resample_neon.h */, + 422D25C02B892E3F00552952 /* resample.c */, + 422D25BC2B892E3F00552952 /* speex_resampler.h */, + 422D25B72B892CF900552952 /* README.md */, + ); + path = resampler; + sourceTree = ""; + }; + 422D25CB2B8956D800552952 /* todo */ = { + isa = PBXGroup; + children = ( + 420795012B8184300077507F /* audio_decoder_vorbis.h */, + 420795022B8184300077507F /* audio_source_icecast.h */, + 420795052B8184300077507F /* audio_filter_channelmixer.h */, + 420795062B8184300077507F /* audio_source_http.h */, + 420795082B8184300077507F /* audio_source_sd.h */, + 420795092B8184300077507F /* audio_filter_volume.h */, + 4207950A2B8184300077507F /* audio_demuxer_mp4.h */, + 4207950B2B8184300077507F /* audio_demuxer_ogg.h */, + 4207950C2B8184300077507F /* audio_decoder_flac.h */, + 4207950D2B8184300077507F /* audio_filter_eq.h */, + 4207950E2B8184300077507F /* audio_decoder_aac.h */, + 420795102B8184300077507F /* audio_encoder_wav.h */, + 420795112B8184300077507F /* audio_sink_i2s.h */, + 420795122B8184300077507F /* audio_decoder_opus.h */, + 420795142B8184300077507F /* audio_decoder_wav.h */, + 420795162B8184300077507F /* audio_sink_sd.h */, + 422D25CC2B89570C00552952 /* audio_muxer_wav.h */, + ); + path = todo; + sourceTree = ""; + }; + 422D25D12B896D9A00552952 /* mp3 */ = { + isa = PBXGroup; + children = ( + 422D25F92B896FB800552952 /* config.h */, + 422D25F82B896DF800552952 /* global.h */, + 422D25D32B896D9A00552952 /* version.h */, + 422D25D42B896D9A00552952 /* fixed.h */, + 422D25E82B896D9A00552952 /* huffman.h */, + 422D25D82B896D9A00552952 /* bit.h */, + 422D25DE2B896D9A00552952 /* timer.h */, + 422D25DA2B896D9A00552952 /* stream.h */, + 422D25D62B896D9A00552952 /* frame.h */, + 422D25D52B896D9A00552952 /* synth.h */, + 422D25D92B896D9A00552952 /* layer3.h */, + 422D25DB2B896D9A00552952 /* layer12.h */, + 422D25E22B896D9A00552952 /* version.c */, + 422D25E12B896D9A00552952 /* fixed.c */, + 422D25DC2B896D9A00552952 /* huffman.c */, + 422D25E32B896D9A00552952 /* bit.c */, + 422D25D22B896D9A00552952 /* timer.c */, + 422D25EB2B896D9A00552952 /* stream.c */, + 422D25E52B896D9A00552952 /* frame.c */, + 422D25E72B896D9A00552952 /* synth.c */, + 422D25EC2B896D9A00552952 /* layer3.c */, + 422D25E92B896D9A00552952 /* layer12.c */, + 422D25DD2B896D9A00552952 /* README.md */, + 422D25E42B896D9A00552952 /* COPYRIGHT */, + 422D25EA2B896D9A00552952 /* CREDITS */, + 422D25E02B896D9A00552952 /* COPYING */, + ); + path = mp3; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 420794EF2B817ECA0077507F /* AudioLib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 420794F72B817ECA0077507F /* Build configuration list for PBXNativeTarget "AudioLib" */; + buildPhases = ( + 420794EC2B817ECA0077507F /* Sources */, + 420794ED2B817ECA0077507F /* Frameworks */, + 420794EE2B817ECA0077507F /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = AudioLib; + productName = AudioLib; + productReference = 420794F02B817ECA0077507F /* AudioLib */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 420794E82B817ECA0077507F /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastUpgradeCheck = 1520; + TargetAttributes = { + 420794EF2B817ECA0077507F = { + CreatedOnToolsVersion = 15.2; + }; + }; + }; + buildConfigurationList = 420794EB2B817ECA0077507F /* Build configuration list for PBXProject "AudioLib" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 420794E72B817ECA0077507F; + productRefGroup = 420794F12B817ECA0077507F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 420794EF2B817ECA0077507F /* AudioLib */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 420794EC2B817ECA0077507F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 422D25F22B896D9A00552952 /* frame.c in Sources */, + 422D25F52B896D9A00552952 /* layer12.c in Sources */, + 422D25EF2B896D9A00552952 /* fixed.c in Sources */, + 422D25EE2B896D9A00552952 /* huffman.c in Sources */, + 4207951A2B8185280077507F /* audio_sink_libao.c in Sources */, + 420795182B8184300077507F /* audio.c in Sources */, + 420794F42B817ECA0077507F /* main.c in Sources */, + 422D25F42B896D9A00552952 /* synth.c in Sources */, + 422D25F12B896D9A00552952 /* bit.c in Sources */, + 422D25CA2B89493100552952 /* audio_internal.c in Sources */, + 422D25C82B8939DF00552952 /* audio_filter_resample.c in Sources */, + 422D25FC2B8CE1FA00552952 /* audio_demuxer_mp3.c in Sources */, + 422D25CE2B89668F00552952 /* audio_source_file.c in Sources */, + 422D25D02B896B1200552952 /* audio_decoder_mp3.c in Sources */, + 422D25ED2B896D9A00552952 /* timer.c in Sources */, + 422D25F02B896D9A00552952 /* version.c in Sources */, + 4207951D2B818C500077507F /* audio_source_testtone.c in Sources */, + 422D25FF2B8D2B3600552952 /* audio_sink_file.c in Sources */, + 422D25F72B896D9A00552952 /* layer3.c in Sources */, + 422D25F62B896D9A00552952 /* stream.c in Sources */, + 422D25C32B892E3F00552952 /* resample.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 420794F52B817ECA0077507F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 420794F62B817ECA0077507F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + }; + name = Release; + }; + 420794F82B817ECA0077507F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + GCC_C_LANGUAGE_STANDARD = c99; + HEADER_SEARCH_PATHS = /opt/homebrew/include; + LIBRARY_SEARCH_PATHS = /opt/homebrew/lib; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 420794F92B817ECA0077507F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + GCC_C_LANGUAGE_STANDARD = c99; + HEADER_SEARCH_PATHS = /opt/homebrew/include; + LIBRARY_SEARCH_PATHS = /opt/homebrew/lib; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 420794EB2B817ECA0077507F /* Build configuration list for PBXProject "AudioLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 420794F52B817ECA0077507F /* Debug */, + 420794F62B817ECA0077507F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 420794F72B817ECA0077507F /* Build configuration list for PBXNativeTarget "AudioLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 420794F82B817ECA0077507F /* Debug */, + 420794F92B817ECA0077507F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 420794E82B817ECA0077507F /* Project object */; +} diff --git a/AudioLib.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AudioLib.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/AudioLib.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/AudioLib.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AudioLib.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/AudioLib.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/AudioLib.xcodeproj/project.xcworkspace/xcuserdata/dark.xcuserdatad/UserInterfaceState.xcuserstate b/AudioLib.xcodeproj/project.xcworkspace/xcuserdata/dark.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..e063bcf808ac8a02660f4037a529a02e59fcb75f GIT binary patch literal 163299 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 G%KrdctRv$9 literal 0 HcmV?d00001 diff --git a/AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..4922abb --- /dev/null +++ b/AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + diff --git a/AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcschemes/xcschememanagement.plist b/AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5f12d2d --- /dev/null +++ b/AudioLib.xcodeproj/xcuserdata/dark.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + AudioLib.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/AudioLib/main.c b/AudioLib/main.c new file mode 100644 index 0000000..050dc66 --- /dev/null +++ b/AudioLib/main.c @@ -0,0 +1,40 @@ +#include + +#include "audio.h" +#include "audio_source_file.h" +#include "audio_demuxer_mp3.h" +#include "audio_decoder_mp3.h" +#include "audio_filter_resample.h" +#include "audio_sink_libao.h" + +int main(int argc, char **argv) { + AudioPipeline *pipeline; + + pipeline = audio_pipeline_assemble( + audio_source_file("/Users/dark/test2.mp3", 512), + audio_demuxer_mp3(), + audio_decoder_mp3(), + // audio_filter_resample(48000), + audio_sink_libao(), + NULL + ); + + if (pipeline != NULL) { + /* Assembly worked, start the thing ! */ + AudioPipelineStatus result = pipeline->start(pipeline); + + if (result != PipelineFinished) { + fprintf(stderr, "Pipeline failed, status was %d\n", result); + } else { + fprintf(stderr, "Pipeline finished.\n"); + } + + /* We're done here, disassemble and free everything */ + audio_pipeline_destroy(pipeline); + } else { + fprintf(stderr, "Failed to assemble MP3 pipeline!\n"); + return 1; + } + + return 0; +}